密碼學 仿射密碼

2020-07-29 16:31 更新

簡介

當a=1,仿射加密為凱撒密碼

仿射密碼為單表加密的一種,字母系統(tǒng)中所有字母都藉一簡單數(shù)學方程加密,對應至數(shù)值,或轉回字母。

仿射密碼是一種替換密碼。它是一個字母對一個字母的。它的加密函數(shù)是,其中a和m互質,m是字母的數(shù)目。 那么為什么 仿射變換密碼c=(ap+b)mod26,a為什么與m互素 如果a=3,m=26 c就有可能=0得不到值,無法解密 加密函數(shù)是e(x)=(ax+b)mod m 解碼函數(shù)是,其中是a在群的乘法逆元。

代碼實現(xiàn)

## 列印仿射密碼的字母表。# a必須與m互質
    def affine(a, b):
        for i in range(26):
        print chr(i+65) + ": " + chr(((a*i+b)%26)+65)# 調用函數(shù)的例子
    affine(5, 8)

缺點

因為仿射密碼仍為單字母表密碼, 其依舊保留了該類別加密之弱處。當a=1,仿射加密為凱撒密碼,因該加密方程可簡化為線性移動。 考慮加密英文。(即:m=26),不計26與凱撒密碼,總共有286非易仿射密碼。此數(shù)值是由于小于26之數(shù)中有12數(shù)與26互質。a 的每個值可有26互異之加法移動(b之值);因此,共有 12*26 或 312 可能之關鍵值。 因為密碼缺少復雜性,根據(jù)柯克霍夫原則,這套系統(tǒng)是不安全的。 此密碼之首要弱處為,如果密碼學家可發(fā)現(xiàn)(如頻率分析, 暴力破解, 臆測或任何其他方法) 加密文件兩字元之原文,則關鍵值可透過解一方程組得到。 由于我們知道a及m互質,這個事實可被用于快速破解密碼。 仿射密碼中同種的轉換使用于線性虛擬隨機產生器, 為虛擬隨機數(shù)產生器其中一種。 此產生器不為安全加密虛擬隨機數(shù)產生器,因仿射密碼不安全。

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號