您的当前位置:首页正文

古典密码笔记

来源:华佗小知识

古典密码已经是很不安全的密码了,但是对于作为加密学而言,古典密码中的一些原理和方法还是有必要了解的。尤其是其中的关于“模运算”的数学知识尤为重要。

置换密码

明文的字母不变,但位置被打乱了,也就是说把明文中的字母重新排列了,这样的密码称为“置换密码”。

比如:
文明:I am student
矩阵:
I am s
tudent
密文:It uadme nst

置换密码可以根据矩阵的大小与选出顺序获得到不同的密文。置换密码非常简单,且容易被破解。但是,把它与其他密码相结合,可以得到十分有效的密码。

代替密码

代替密码,构造一个或多个密文表,然后用密文表中的字母或字母组代替明文的字母或字母组,生成密文。
根据代替密码使用替换表的个数,开源将代替密码分为单表代替密码、多名码代替密码、多字母代替密码和多表代替密码。

单表代替密码(又称为简单替代密码)

一个明文字符对应一个密文字符。

明文字母表 A = {a0, a1, a2,……an-1}
密文字母表 B = {b0, b1, b2,……bn-1}
A 到 B 的一一映射 f:A -> B,即 f(ai) = bi
明文 M = (m0, m1, m2, …… mn-1)
密文 C = (f(m0), f(m1), f(m2), …… f(mn-1))
f 函数或者密文字母表 B 称为密钥

常见单表代替密码:

  • 加法密码
    加法密码的映射函数为:
    f(ai) = bi = aj
    j = i + k mod n
    k 是正整数且 0 < k < n
  • 乘法密码
    惩罚密码的映射函数为:
    f(ai) = bi = aj
    j = i * k mod n
    k 和 n 互素
  • 仿射密码
    加法密码和乘法密码的结合。
    仿射密码的映射函数为:
    f(ai) = bi = aj
    j = (ak1 + k0) mod n
    k1 和 n 互素
多名代替密码

单个字符明文开源映射成密文的多个字符之一

多字母代替密码

字符块被成组加密

多表代替密码

使用从明文字母到密文字母的多个映射,每个映射是像简单代替密码中的一对一映射。由于多表代替密码采用了多个密文字母表,就比单表代替密码安全强度要高许多

代数密码

利用代数相关理论和方法进行加密

Verman 密码是常见的代数密码,该方法使用带书运算中的模二运算。

明文 M = (m0, m1, …… mn-1)
密文 C = (c0, c1,…… cn-1)
密钥 K = (k0, k1, …… kn-1)
加密 Ci = mi ^ ki
解密 Mi = Ci ^ ki



我的微信公众号:“码农UP2U”
我的公众号