1. 程式人生 > >讀書筆記一【加密——替換法】

讀書筆記一【加密——替換法】

sci bubuko 第一個 bsp 讀書 讀書筆記 行為 作品 字母表

1.簡單的替換法

替換法即為將一個字(或字母)替換為另一個字(或字母),通過一張對應表進行加密或解密。

例如,將每個字母替換為原先字母後面的一個字母

【I‘m a programmer】將被替換ASCII後面的字符為【J(n!b!qsphsbnnfs】

簡單的替換法會被【頻率分析】方法攻擊,例如英文中最常出現的字母為E,最常見的組合為TH;同理,中文中“的”字也是最常用的字。攻擊者可以通過最常出現的字或字母反推對應表,從而破解密文。

2.變化替換模式

為了防止替換法被頻率分析方法破解,可以對替換表格進行擴展,這種方法叫做【多表替換】。

多表替換的一種形式叫做【tabularecta】,即為下圖

技術分享圖片

根據上表,不同明文與密鑰對應的密文字母就不同

例如明文是HELLO,密鑰是CATCH

那麽密文第一個字母就是H行C列的J

簡單來說 就是密文第i個字母為表中行為明文第i字母,列為密鑰第i個字母的那個值

代碼即為:密文[i]=表格[明文[i]][密鑰[i]]

3.替換法密鑰擴展

像上面的例子,每個字母只有5個被替換的可能性(密鑰長度),所以加密要足夠強,就必須要有一個與原文一樣長的密鑰。

這種方法通常是使用某本書的某個章節來做,例如以莎士比亞作品為密碼本,密鑰為2.2.4.9

則密碼表為

按字母表順序第二個戲劇《As You Like It》,第二個2位該劇第二幕,4指其中第四個場景,9指其中第9句

這種方法通常這電影裏出現

讀書筆記一【加密——替換法】