一、基本概念
- 古典密碼是基于字符替換的密碼。加密技術(shù)有:Caesar(愷撒)密碼、Vigenere(維吉尼爾)密碼、Playfair密碼、Hill密碼……
- 明文:未經(jīng)過加密的信息;密文:加密后的信息
- 加密解密的過程:如下圖
二、Caesar密碼
這里我先簡單講下愷撒密碼,咸覺挺簡單的,后面再主要講Playfair算法原理與編程。
基本原理:
在開拓羅馬帝國的時候,愷撒擔(dān)心信使會閱讀他送給士兵的命令,因此發(fā)明了對命令進(jìn)行加密的算法--愷撒密碼器
愷撒密碼器挺簡單的:把字母表中的每個字母向前循環(huán)移動3位
- 加密信息將字母向前移動三位
- 解密信息將字母向后移動三位
- 移動的位數(shù)是關(guān)鍵,稱之為密鑰
- 加密和解密的密鑰是相同的,我們稱之為對稱密碼器
數(shù)學(xué)表達(dá)
愷撒密碼的加密算法表示為:C=E(p)=(p+3) mod 26
愷撒密碼的解密算法表示為:p=D(C)=(C-3) mod 26
改進(jìn)的愷撒密碼
明文的發(fā)送方和接收方事先協(xié)商好一個密鑰K(1<=K<=25),則:
愷撒密碼的加密算法表示為:C=E(p)=(p+K) mod 26
愷撒密碼的解密算法表示為:p=D(C)=(C-K) mod 26