W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
當(dāng)a=1,仿射加密為凱撒密碼
仿射密碼為單表加密的一種,字母系統(tǒng)中所有字母都藉一簡單數(shù)學(xué)方程加密,對應(yīng)至數(shù)值,或轉(zhuǎn)回字母。
仿射密碼是一種替換密碼。它是一個字母對一個字母的。它的加密函數(shù)是,其中a和m互質(zhì),m是字母的數(shù)目。
那么為什么
仿射變換密碼c=(ap+b)mod26,a為什么與m互素
如果a=3,m=26
c就有可能=0得不到值,無法解密
加密函數(shù)是e(x)=(ax+b)mod m
解碼函數(shù)是,其中是a在群的乘法逆元。
## 列印仿射密碼的字母表。# a必須與m互質(zhì)
def affine(a, b):
for i in range(26):
print chr(i+65) + ": " + chr(((a*i+b)%26)+65)# 調(diào)用函數(shù)的例子
affine(5, 8)
因為仿射密碼仍為單字母表密碼, 其依舊保留了該類別加密之弱處。當(dāng)a=1,仿射加密為凱撒密碼,因該加密方程可簡化為線性移動。 考慮加密英文。(即:m=26),不計26與凱撒密碼,總共有286非易仿射密碼。此數(shù)值是由于小于26之?dāng)?shù)中有12數(shù)與26互質(zhì)。a 的每個值可有26互異之加法移動(b之值);因此,共有 12*26 或 312 可能之關(guān)鍵值。 因為密碼缺少復(fù)雜性,根據(jù)柯克霍夫原則,這套系統(tǒng)是不安全的。 此密碼之首要弱處為,如果密碼學(xué)家可發(fā)現(xiàn)(如頻率分析, 暴力破解, 臆測或任何其他方法) 加密文件兩字元之原文,則關(guān)鍵值可透過解一方程組得到。 由于我們知道a及m互質(zhì),這個事實可被用于快速破解密碼。 仿射密碼中同種的轉(zhuǎn)換使用于線性虛擬隨機(jī)產(chǎn)生器, 為虛擬隨機(jī)數(shù)產(chǎn)生器其中一種。 此產(chǎn)生器不為安全加密虛擬隨機(jī)數(shù)產(chǎn)生器,因仿射密碼不安全。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: