古典密码-仿射密码学习

密码学基础之一

仿射密码

仿射密码(Affine Cipher)是一种古老的单字母替换密码,属于经典密码学范畴。

加密

E(x)=(ax+b)modmE(x) = (a\cdot x + b) \mod{m}
  • E(x)是加密后的字符的数值
  • x是明文字符的数值,通常是字母表的位置(A=0,B=1,...,Z=25)
  • a和b是密钥,而且a必须和m互质(在字母表中,通常m=26)
  • m是字符集的大小(对于英文字母,m=26)

加密步骤:

  1. 将明文字符转换为数字。
  2. 使用E(x)公式进行加密。
  3. 将加密后的数字转换回字符。

解密

仿射密码的解密过程可以用以下公式表示:

D(y)=a1(yb)modmD(y) = a^-1\cdot(y-b)\mod{m}
  • D(y)是解密后的字符的数值
  • y是加密后的字符串的数值
  • a1a^-1是a的模逆元素,满足aa11modma\cdot a^-1 \equiv 1\mod{m}
  • b是加密时使用的密钥
  • m是字符集的大小

解密步骤:

  1. 计算a的模逆元素a1a^-1
  2. 将加密字符转换为数字。
  3. 使用D(y)进行解密。
  4. 将解密后的数字转换回字符。

加密解密Py脚本(26个字母)

学习RC4及C语言手搓RC4算法
🏁第十一届山东省大学生网络安全技能大赛WP

评论区

评论加载中...