Hill 密码简介
Hill 密码是一种多字母代替密码。
Hill 密码要求首先将明文分成同等规模的若干个分组(最后一个分组不足时需要填充),每一个分组被整体加密变换,即 Hill 密码属于分组加密。
Hill 密码算法的基本思想
将每一个分组中的 d 个连续的明文字母通过线性变换(与密钥矩阵相乘),转换为 d个密文字母。
- 明文: m = m 1 m 2 … m d m = m_1m_2…m_d m=m1m2…md
- 密文: c = c 1 c 2 … c d c = c_1c_2…c_d c=c1c2…cd
其中,
- c 1 = k 11 m 1 + k 21 m 2 + … + k d 1 m d ( m o d 26 ) c1 = k_{11}m_1+k_{21}m_2+…+k_{d1}m_d \pmod {26} c1=k11m1+k21m2+…+kd1md(mod26)
- c 2 = k 12 m 1 + k 22 m 2 + … + k d 2 m d ( m o d 26 ) c2 = k_{12}m_1+k_{22}m_2+…+k_{d2}m_d \pmod {26} c2=k12m1+k22m2+…+kd2md(mod