Classical Cryptography
本文章包含以下内容:
•密码学是什么?
•经典密码学
•一次性密码本 One-time pad
密码学是什么?
Cryptology(密码学)来自希腊语,“kryptos” meaning “hidden” and “logos” meaning “word”.
密码学是保密通信的艺术/科学,它分为两部分:
- Cryptography:设计确保安全性的算法:即机密性、完整性和真实性
- Cryptanalysis:以破坏安全为目的分析安全算法。
Steganography vs Cryptography
Steganography 信息伪装
也被称为秘密/隐蔽的文字, 将秘密信息隐藏在公共信息中,专注于隐藏存在的秘密信息或通信通道。
这一种很好理解,就是像经典的藏头诗或者藏尾诗,隔着一行读一行等等。。。
Cryptography 密码学
通信通道是公开的,专注于文本转换 (plaintext) to ciphertext 原文到密文。
这是我们要学习的。
经典密码学
• Shift cipher 移位密码
• Substitution cipher 替代密码
• Transposition cipher 置换密码
Shift cipher 移位密码:
用一段固定距离内的不同字母替换信息中的字母。
比较出名的有凯撒密码 Caesar Cipher。
Encryption E K (x) = x + K mod 26
Decryption D K (x) = x - K mod 26
举个例子
Plaintext: ATTACK AT DAWN
Ciphertext: DWWDFN DW GDZQ
K=3.
A–> D 移位距离为3.
再做个练习:
PELCGBTENCULVFNAVAGRERFGVATFHOWRPG
这段文字已经被移位密码加密,解密它!
两种方法解密
1:试,从K=1试到K=25
2: 使用代码进行穷举,将K从1-25的情况都列出来。
解:
这种移位密码按13个字母进行移位。
CRYPTOGRAPHYISANINTERESTINGSUBJECT→cryptography is an interesting subject.
Substitution cipher 替代密码
Key是字母字符的随机排列。
换言之我们有一个密码本,根据密码本将一个字母替换成另一个字母。
按照字母的位置进行移位置换。
破解这种密码需要庞大的计算量来暴力破解。
举例:
Monoalphabetic Substitution Cipher
一旦选择了Key,每个字母字符都会映射到一个唯一的字母字符,类似于移位密码。
Polyalphabetic Substitution Ciphers
处理方法:对于不同的位置,用不同的字母代替相同的字母。
举例:
Vigenere Cipher 维吉尼亚密码
Key是一串0到25之间的随机数。例如,密钥为“3 19 5···”,则明文的第一个字母用a加密
(循环)移动3个字母,第二个移动19个字母,第三个移动5个字母,以此类推。
如果原文的长度大于Key的长度,那么就对Key进行循环重新使用。
如果原文的长度等于Key的长度呢?
那么这就是一次性密码本 One-time pad
Transposition cipher 置换密码
它们通过重新排列字母顺序来隐藏信息,而不改变实际使用的字母。
也用于Steganography隐写术。
举个例子:
Key: 4312567
Plaintext: attackpostponeduntiltwoam
Ciphertext: TTNAAPTMTSUOAODWCOIXKNLYPETZ
按照数字顺序竖着读!
Reference
- Wenbo Mao, Modern Cryptography, Prentice-Hall, 2003.
- Jonathan Katz and Yehuda Lindell, Introduction to Modern Cryptography, 2nd Edition, CRC Press, 2015.