矩阵在密码学的应用——希尔密码详解
矩阵在密码学的应用——希尔密码详解
矩阵作为线性代数的重要工具,在现代密码学中扮演着至关重要的角色。其强大的数学性质为信息安全提供了坚实的理论基础:
矩阵密码学的优势特点
- 数学严谨性:基于线性代数理论,具有完整的数学体系支撑
- 计算效率高:矩阵运算可通过硬件加速,适合大规模数据处理
- 密钥空间大:n×nn \times nn×n矩阵提供n2n^2n2个参数,密钥空间呈指数增长
- 抗统计分析:线性变换破坏明文的统计特性,增强安全性
- 扩展性强:可与其他密码技术结合,构建复合密码系统
矩阵密码学的应用领域
经典密码系统
- 希尔密码(Hill Cipher):最早的矩阵密码,奠定了矩阵密码学基础
- 仿射密码(Affine Cipher):基于矩阵变换的单表代换密码
- 维吉尼亚密码的矩阵形式:将多表代换用矩阵表示
现代密码应用
- 对称密码算法:AES、DES等分组密码中的线性变换层
- 公钥密码系统:基于矩阵运算困难问题的密码方案
- 哈希函数设计:利用矩阵运算增强散列特性
- 数字签名方案:矩阵运算确保签名的不可伪造性
一:模运算的数学基础
模运算的基本概念
模运算是密码学中最基础的数学工具之一。对于整数aaa、nnn(n>0n > 0n>0),a mod na \bmod namodn表示aaa除以nnn的余数。
定义与记号
设aaa、bbb、nnn为整数,n>0n > 0n>0,如果nnn整除(a−b)(a-b)(a−b),则称aaa与bbb模nnn同余,记作:
a≡b(modn)a \equiv b \pmod{n}a≡b(modn)
这等价于:a=qn+ra = qn + ra=qn+r,其中0≤r<n0 \leq r < n0≤r<n,r=a mod nr = a \bmod nr=amodn。
基本性质详解
1. 自反性
a≡a(modn)a \equiv a \pmod{n}a≡a(modn)
举例:15≡15(mod7)15 \equiv 15 \pmod{7}15≡15(mod7),因为15−15=015 - 15 = 015−15=0能被7整除。
2. 对称性
如果a≡b(modn)a \equiv b \pmod{n}a≡b(modn),则b≡a(modn)b \equiv a \pmod{n}b≡a(modn)
举例:由于15≡1(mod7)15 \equiv 1 \pmod{7}15≡1(mod7),所以1≡15(mod7)1 \equiv 15 \pmod{7}1≡15(mod7)。
3. 传递性
如果a≡b(modn)a \equiv b \pmod{n}a≡b(modn)且b≡c(modn)b \equiv c \pmod{n}b≡c(modn),则a≡c(modn)a \equiv c \pmod{n}a≡c(modn)
举例:22≡1(mod7)22 \equiv 1 \pmod{7}22≡1(mod7),1≡15(mod7)1 \equiv 15 \pmod{7}1≡15(mod7),所以22≡15(mod7)22 \equiv 15 \pmod{7}22≡15(mod7)。
模运算的四则运算性质
加法性质
(a+b) mod n=((a mod n)+(b mod n)) mod n(a + b) \bmod n = ((a \bmod n) + (b \bmod n)) \bmod n(a+b)modn=((amodn)+(bmodn))modn
详细推导:
设a=q1n+r1a = q_1n + r_1a=q1n+r1,b=q2n+r2b = q_2n + r_2b=q2n+r2,其中0≤r1,r2<n0 \leq r_1, r_2 < n0≤r1,r2<n
则:a+b=(q1+q2)n+(r1+r2)a + b = (q_1 + q_2)n + (r_1 + r_2)a+b=(q1+q2)n+(r1+r2)
如果r1+r2<nr_1 + r_2 < nr1+r2<n,则(a+b) mod n=r1+r2(a + b) \bmod n = r_1 + r_2(a+b)modn=r1+r2
如果r1+r2≥nr_1 + r_2 \geq nr1+r2≥n,则(a+b) mod n=r1+r2−n(a + b) \bmod n = r_1 + r_2 - n(a+b)modn=r1+r2−n
举例计算:
计算(23+17) mod 7(23 + 17) \bmod 7(23+17)mod7
- 方法1:(23+17) mod 7=40 mod 7=5(23 + 17) \bmod 7 = 40 \bmod 7 = 5(23+17)mod7=40mod7=5
- 方法2:(23 mod 7+17 mod 7) mod 7=(2+3) mod 7=5(23 \bmod 7 + 17 \bmod 7) \bmod 7 = (2 + 3) \bmod 7 = 5(23mod7+17mod7)mod7=(2+3)mod7=5
乘法性质
(a×b) mod n=((a mod n)×(b mod n)) mod n(a \times b) \bmod n = ((a \bmod n) \times (b \bmod n)) \bmod n(a×b)modn=((amodn)×(bmodn))modn
举例计算:
计算(13×11) mod 7(13 \times 11) \bmod 7(13×11)mod7
- 方法1:(13×11) mod 7=143 mod 7=3(13 \times 11) \bmod 7 = 143 \bmod 7 = 3(13×11)mod7=143mod7=3
- 方法2:(13 mod 7×11 mod 7) mod 7=(6×4) mod 7=24 mod 7=3(13 \bmod 7 \times 11 \bmod 7) \bmod 7 = (6 \times 4) \bmod 7 = 24 \bmod 7 = 3(13mod7×11mod7)mod7=(6×4)mod7=24mod7=3
减法性质
(a−b) mod n=((a mod n)−(b mod n)+n) mod n(a - b) \bmod n = ((a \bmod n) - (b \bmod n) + n) \bmod n(a−b)modn=((amodn)−(bmodn)+n)modn
注意:减法结果可能为负,需要加nnn确保结果非负。
举例计算:
计算(15−23) mod 7(15 - 23) \bmod 7(15−23)mod7
- 直接计算:(15−23) mod 7=−8 mod 7=−8+14=6(15 - 23) \bmod 7 = -8 \bmod 7 = -8 + 14 = 6(15−23)mod7=−8mod7=−8+14=6
- 公式计算:((15 mod 7)−(23 mod 7)+7) mod 7=(1−2+7) mod 7=6((15 \bmod 7) - (23 \bmod 7) + 7) \bmod 7 = (1 - 2 + 7) \bmod 7 = 6((15mod7)−(23mod7)+7)mod7=(1−2+7)mod7=6
模逆元的概念与计算
模逆元的定义
对于整数aaa和正整数nnn,如果存在整数xxx使得:
ax≡1(modn)ax \equiv 1 \pmod{n}ax≡1(modn)
则称xxx为aaa关于模nnn的逆元,记作a−1(modn)a^{-1} \pmod{n}a−1(modn)。
模逆元存在条件
aaa关于模nnn的逆元存在的充分必要条件是:最大公约数 gcd(a,n)=1\gcd(a, n) = 1gcd(a,n)=1
证明思路:
- 必要性:若ax≡1(modn)ax \equiv 1 \pmod{n}ax≡1(modn),则ax=kn+1ax = kn + 1ax=kn+1,即ax−kn=1ax - kn = 1ax−kn=1,由贝祖定理知gcd(a,n)=1\gcd(a, n) = 1gcd(a,n)=1
- 充分性:若gcd(a,n)=1\gcd(a, n) = 1gcd(a,n)=1,由扩展欧几里得算法可找到xxx、yyy使得ax+ny=1ax + ny = 1ax+ny=1
扩展欧几里得算法求模逆元
算法步骤:
- 对gcd(a,n)\gcd(a, n)gcd(a,n)应用欧几里得算法
- 从最后一步开始,逆向求出系数
- 得到ax+ny=gcd(a,n)=1ax + ny = \gcd(a, n) = 1ax+ny=gcd(a,n)=1
- x mod nx \bmod nxmodn即为所求逆元
详细举例:求777关于模262626的逆元
步骤1:欧几里得算法
26=3×7+526 = 3 \times 7 + 526=3×7+5
7=1×5+27 = 1 \times 5 + 27=1×5+2
5=2×2+15 = 2 \times 2 + 15=2×2+1
2=2×1+02 = 2 \times 1 + 02=2×1+0
步骤2:逆向计算
1=5−2×21 = 5 - 2 \times 21=5−2×2
1=5−2×(7−1×5)=3×5−2×71 = 5 - 2 \times (7 - 1 \times 5) = 3 \times 5 - 2 \times 71=5−2×(7−1×5)=3×5−2×7
1=3×(26−3×7)−2×7=3×26−11×71 = 3 \times (26 - 3 \times 7) - 2 \times 7 = 3 \times 26 - 11 \times 71=3×(26−3×7)−2×7=3×26−11×7
因此:7×(−11)≡1(mod26)7 \times (-11) \equiv 1 \pmod{26}7×(−11)≡1(mod26)
所以:7−1≡−11≡15(mod26)7^{-1} \equiv -11 \equiv 15 \pmod{26}7−1≡−11≡15(mod26)
验证:7×15=105=4×26+1≡1(mod26)7 \times 15 = 105 = 4 \times 26 + 1 \equiv 1 \pmod{26}7×15=105=4×26+1≡1(mod26) ✓
模幂运算
快速模幂算法
计算ab mod na^b \bmod nabmodn,当bbb很大时,直接计算会导致溢出。
二进制快速幂算法:
function modPow(base, exp, mod):result = 1base = base % modwhile exp > 0:if exp % 2 == 1:result = (result * base) % modexp = exp >> 1base = (base * base) % modreturn result
举例计算:313 mod 73^{13} \bmod 7313mod7
13=(1101)2=8+4+113 = (1101)_2 = 8 + 4 + 113=(1101)2=8+4+1
- 31 mod 7=33^1 \bmod 7 = 331mod7=3
- 32 mod 7=9 mod 7=23^2 \bmod 7 = 9 \bmod 7 = 232mod7=9mod7=2
- 34 mod 7=22 mod 7=43^4 \bmod 7 = 2^2 \bmod 7 = 434mod7=22mod7=4
- 38 mod 7=42 mod 7=16 mod 7=23^8 \bmod 7 = 4^2 \bmod 7 = 16 \bmod 7 = 238mod7=42mod7=16mod7=2
313 mod 7=38×34×31 mod 7=2×4×3 mod 7=24 mod 7=33^{13} \bmod 7 = 3^8 \times 3^4 \times 3^1 \bmod 7 = 2 \times 4 \times 3 \bmod 7 = 24 \bmod 7 = 3313mod7=38×34×31mod7=2×4×3mod7=24mod7=3
二:矩阵的模运算
矩阵模运算的定义
对于矩阵A=[aij]m×nA = [a_{ij}]_{m \times n}A=[aij]m×n和正整数ppp,矩阵AAA关于模ppp的运算定义为:
A mod p=[aij mod p]m×nA \bmod p = [a_{ij} \bmod p]_{m \times n}Amodp=[aijmodp]m×n
即矩阵的每个元素都进行模ppp运算。
举例:
A=[1523318],A mod 7=[1231]A = \begin{bmatrix} 15 & 23 \\ 31 & 8 \end{bmatrix}, \quad A \bmod 7 = \begin{bmatrix} 1 & 2 \\ 3 & 1 \end{bmatrix}A=[1531238],Amod7=[1321]
矩阵模加法
(A+B) mod p=(A mod p)+(B mod p) mod p(A + B) \bmod p = (A \bmod p) + (B \bmod p) \bmod p(A+B)modp=(Amodp)+(Bmodp)modp
详细举例:
A=[1512920],B=[817253]A = \begin{bmatrix} 15 & 12 \\ 9 & 20 \end{bmatrix}, \quad B = \begin{bmatrix} 8 & 17 \\ 25 & 3 \end{bmatrix}A=[1591220],B=[825173]
计算(A+B) mod 7(A + B) \bmod 7(A+B)mod7:
方法1:先相加再取模
A+B=[23293423]⇒(A+B) mod 7=[2162]A + B = \begin{bmatrix} 23 & 29 \\ 34 & 23 \end{bmatrix} \Rightarrow (A + B) \bmod 7 = \begin{bmatrix} 2 & 1 \\ 6 & 2 \end{bmatrix}A+B=[23342923]⇒(A+B)mod7=[2612]
方法2:先取模再相加
A mod 7=[1526],B mod 7=[1343]A \bmod 7 = \begin{bmatrix} 1 & 5 \\ 2 & 6 \end{bmatrix}, \quad B \bmod 7 = \begin{bmatrix} 1 & 3 \\ 4 & 3 \end{bmatrix}Amod7=[1256],Bmod7=[1433]
(A mod 7)+(B mod 7)=[2869] mod 7=[2162](A \bmod 7) + (B \bmod 7) = \begin{bmatrix} 2 & 8 \\ 6 & 9 \end{bmatrix} \bmod 7 = \begin{bmatrix} 2 & 1 \\ 6 & 2 \end{bmatrix}(Amod7)+(Bmod7)=[2689]mod7=[2612]
矩阵模乘法
(AB) mod p=((A mod p)(B mod p)) mod p(AB) \bmod p = ((A \bmod p)(B \bmod p)) \bmod p(AB)modp=((Amodp)(Bmodp))modp
详细计算过程:
A=[3527],B=[4168]A = \begin{bmatrix} 3 & 5 \\ 2 & 7 \end{bmatrix}, \quad B = \begin{bmatrix} 4 & 1 \\ 6 & 8 \end{bmatrix}A=[3257],B=[4618]
计算AB mod 11AB \bmod 11ABmod11:
步骤1:计算矩阵乘积
AB=[3×4+5×63×1+5×82×4+7×62×1+7×8]=[42435058]AB = \begin{bmatrix} 3 \times 4 + 5 \times 6 & 3 \times 1 + 5 \times 8 \\ 2 \times 4 + 7 \times 6 & 2 \times 1 + 7 \times 8 \end{bmatrix} = \begin{bmatrix} 42 & 43 \\ 50 & 58 \end{bmatrix}AB=[3×4+5×62×4+7×63×1+5×82×1+7×8]=[42504358]
步骤2:模运算
AB mod 11=[42 mod 1143 mod 1150 mod 1158 mod 11]=[91063]AB \bmod 11 = \begin{bmatrix} 42 \bmod 11 & 43 \bmod 11 \\ 50 \bmod 11 & 58 \bmod 11 \end{bmatrix} = \begin{bmatrix} 9 & 10 \\ 6 & 3 \end{bmatrix}ABmod11=[42mod1150mod1143mod1158mod11]=[96103]
矩阵模逆的概念
对于n×nn \times nn×n矩阵AAA和正整数ppp,如果存在矩阵BBB使得:
AB≡BA≡I(modp)AB \equiv BA \equiv I \pmod{p}AB≡BA≡I(modp)
则称BBB为AAA关于模ppp的逆矩阵,记作A−1(modp)A^{-1} \pmod{p}A−1(modp)。
矩阵模逆存在条件
矩阵AAA关于模ppp的逆矩阵存在的充分必要条件是:
gcd(det(A),p)=1\gcd(\det(A), p) = 1gcd(det(A),p)=1
证明要点:
- 若A−1A^{-1}A−1存在,则det(A)det(A−1)≡1(modp)\det(A) \det(A^{-1}) \equiv 1 \pmod{p}det(A)det(A−1)≡1(modp)
- 这要求det(A)\det(A)det(A)有模ppp的逆元,即gcd(det(A),p)=1\gcd(\det(A), p) = 1gcd(det(A),p)=1
2×2矩阵模逆的计算公式
对于2×22 \times 22×2矩阵:
A=[abcd]A = \begin{bmatrix} a & b \\ c & d \end{bmatrix}A=[acbd]
如果gcd(det(A),p)=1\gcd(\det(A), p) = 1gcd(det(A),p)=1,其中det(A)=ad−bc\det(A) = ad - bcdet(A)=ad−bc,则:
A−1≡(det(A))−1[d−b−ca](modp)A^{-1} \equiv (\det(A))^{-1} \begin{bmatrix} d & -b \\ -c & a \end{bmatrix} \pmod{p}A−1≡(det(A))−1[d−c−ba](modp)
详细计算举例:求矩阵A=[3257]A = \begin{bmatrix} 3 & 2 \\ 5 & 7 \end{bmatrix}A=[3527]关于模262626的逆矩阵。
步骤1:计算行列式
det(A)=3×7−2×5=21−10=11\det(A) = 3 \times 7 - 2 \times 5 = 21 - 10 = 11det(A)=3×7−2×5=21−10=11
步骤2:检验逆元存在条件
gcd(11,26)=1\gcd(11, 26) = 1gcd(11,26)=1,满足条件。
步骤3:求111111关于模262626的逆元
使用扩展欧几里得算法(前面已计算):11−1≡19(mod26)11^{-1} \equiv 19 \pmod{26}11−1≡19(mod26)
验证:11×19=209=8×26+1≡1(mod26)11 \times 19 = 209 = 8 \times 26 + 1 \equiv 1 \pmod{26}11×19=209=8×26+1≡1(mod26) ✓
步骤4:计算伴随矩阵
adj(A)=[7−2−53]\text{adj}(A) = \begin{bmatrix} 7 & -2 \\ -5 & 3 \end{bmatrix}adj(A)=[7−5−23]
步骤5:计算模逆
A−1≡19×[7−2−53](mod26)A^{-1} \equiv 19 \times \begin{bmatrix} 7 & -2 \\ -5 & 3 \end{bmatrix} \pmod{26}A−1≡19×[7−5−23](mod26)
=[19×719×(−2)19×(−5)19×3](mod26)= \begin{bmatrix} 19 \times 7 & 19 \times (-2) \\ 19 \times (-5) & 19 \times 3 \end{bmatrix} \pmod{26}=[19×719×(−5)19×(−2)19×3](mod26)
=[133−38−9557](mod26)= \begin{bmatrix} 133 & -38 \\ -95 & 57 \end{bmatrix} \pmod{26}=[133−95−3857](mod26)
=[31495]= \begin{bmatrix} 3 & 14 \\ 9 & 5 \end{bmatrix}=[39145]
步骤6:验证结果
AA−1=[3257][31495]=[275278105]≡[1001](mod26)AA^{-1} = \begin{bmatrix} 3 & 2 \\ 5 & 7 \end{bmatrix} \begin{bmatrix} 3 & 14 \\ 9 & 5 \end{bmatrix} = \begin{bmatrix} 27 & 52 \\ 78 & 105 \end{bmatrix} \equiv \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix} \pmod{26}AA−1=[3527][39145]=[277852105]≡[1001](mod26) ✓
高阶矩阵模逆的计算
对于n×nn \times nn×n矩阵(n>2n > 2n>2),可使用高斯-约旦消元法计算模逆:
算法步骤
- 构建增广矩阵[A∣I][A|I][A∣I]
- 对增广矩阵进行模ppp的行变换
- 将左侧化为单位矩阵
- 右侧即为A−1(modp)A^{-1} \pmod{p}A−1(modp)
3×3矩阵举例:
求A=[213101111]A = \begin{bmatrix} 2 & 1 & 3 \\ 1 & 0 & 1 \\ 1 & 1 & 1 \end{bmatrix}A=⎣⎡211101311⎦⎤关于模555的逆矩阵。
步骤1:构建增广矩阵
[A∣I]=[213∣100101∣010111∣001][A|I] = \begin{bmatrix} 2 & 1 & 3 & | & 1 & 0 & 0 \\ 1 & 0 & 1 & | & 0 & 1 & 0 \\ 1 & 1 & 1 & | & 0 & 0 & 1 \end{bmatrix}[A∣I]=⎣⎡211101311∣∣∣100010001⎦⎤
步骤2:行变换(所有运算模5)
R1↔R2R_1 \leftrightarrow R_2R1↔R2:
[101∣010213∣100111∣001]\begin{bmatrix} 1 & 0 & 1 & | & 0 & 1 & 0 \\ 2 & 1 & 3 & | & 1 & 0 & 0 \\ 1 & 1 & 1 & | & 0 & 0 & 1 \end{bmatrix}⎣⎡121011131∣∣∣010100001⎦⎤
R2←R2−2R1R_2 \leftarrow R_2 - 2R_1R2←R2−2R1,R3←R3−R1R_3 \leftarrow R_3 - R_1R3←R3−R1:
[101∣010011∣130010∣041]\begin{bmatrix} 1 & 0 & 1 & | & 0 & 1 & 0 \\ 0 & 1 & 1 & | & 1 & 3 & 0 \\ 0 & 1 & 0 & | & 0 & 4 & 1 \end{bmatrix}⎣⎡100011110∣∣∣010134001⎦⎤
R3←R3−R2R_3 \leftarrow R_3 - R_2R3←R3−R2:
[101∣010011∣130004∣411]\begin{bmatrix} 1 & 0 & 1 & | & 0 & 1 & 0 \\ 0 & 1 & 1 & | & 1 & 3 & 0 \\ 0 & 0 & 4 & | & 4 & 1 & 1 \end{bmatrix}⎣⎡100010114∣∣∣014131001⎦⎤
R3←4−1×R3R_3 \leftarrow 4^{-1} \times R_3R3←4−1×R3,其中4−1≡4(mod5)4^{-1} \equiv 4 \pmod{5}4−1≡4(mod5):
[101∣010011∣130001∣144]\begin{bmatrix} 1 & 0 & 1 & | & 0 & 1 & 0 \\ 0 & 1 & 1 & | & 1 & 3 & 0 \\ 0 & 0 & 1 & | & 1 & 4 & 4 \end{bmatrix}⎣⎡100010111∣∣∣011134004⎦⎤
R1←R1−R3R_1 \leftarrow R_1 - R_3R1←R1−R3,R2←R2−R3R_2 \leftarrow R_2 - R_3R2←R2−R3:
[100∣421010∣041001∣144]\begin{bmatrix} 1 & 0 & 0 & | & 4 & 2 & 1 \\ 0 & 1 & 0 & | & 0 & 4 & 1 \\ 0 & 0 & 1 & | & 1 & 4 & 4 \end{bmatrix}⎣⎡100010001∣∣∣401244114⎦⎤
因此:A−1≡[421041144](mod5)A^{-1} \equiv \begin{bmatrix} 4 & 2 & 1 \\ 0 & 4 & 1 \\ 1 & 4 & 4 \end{bmatrix} \pmod{5}A−1≡⎣⎡401244114⎦⎤(mod5)
三:希尔密码的加密与解密
希尔密码的历史背景
希尔密码(Hill Cipher)由美国数学家莱斯特·希尔(Lester S. Hill)于1929年发明,是第一个基于线性代数的密码系统。它将明文字符映射为数字,通过矩阵运算实现加密,为现代密码学奠定了重要基础。
希尔密码的基本原理
字符映射
将26个英文字母映射为数字0-25:
A=0,B=1,C=2,…,Z=25\text{A}=0, \text{B}=1, \text{C}=2, \ldots, \text{Z}=25A=0,B=1,C=2,…,Z=25
明文分组
将明文按密钥矩阵的维数分组。对于n×nn \times nn×n密钥矩阵,明文每nnn个字符为一组。
加密变换
对于明文向量P=[p1,p2,…,pn]TP = [p_1, p_2, \ldots, p_n]^TP=[p1,p2,…,pn]T和密钥矩阵KKK,密文向量为:
C=KP mod 26C = KP \bmod 26C=KPmod26
解密变换
P=K−1C mod 26P = K^{-1}C \bmod 26P=K−1Cmod26
2×2希尔密码详细示例
问题设定
- 密钥矩阵:K=[3257]K = \begin{bmatrix} 3 & 2 \\ 5 & 7 \end{bmatrix}K=[3527]
- 明文:MATHEMATICS
- 要求:完成加密和解密过程
第一步:验证密钥有效性
检验gcd(det(K),26)=1\gcd(\det(K), 26) = 1gcd(det(K),26)=1:
det(K)=3×7−2×5=21−10=11\det(K) = 3 \times 7 - 2 \times 5 = 21 - 10 = 11det(K)=3×7−2×5=21−10=11
gcd(11,26)=1\gcd(11, 26) = 1gcd(11,26)=1
密钥有效,可以进行加密解密。
第二步:明文处理
将"MATHEMATICS"转换为数字:
- M=12, A=0, T=19, H=7, E=4, M=12, A=0, T=19, I=8, C=2, S=18
长度为11,需要填充到偶数长度。添加填充字符X(23):
明文数字序列:[12, 0, 19, 7, 4, 12, 0, 19, 8, 2, 18, 23]
分组为2×6个向量:
P1=[120],P2=[197],P3=[412],P4=[019],P5=[82],P6=[1823]P_1 = \begin{bmatrix} 12 \\ 0 \end{bmatrix}, P_2 = \begin{bmatrix} 19 \\ 7 \end{bmatrix}, P_3 = \begin{bmatrix} 4 \\ 12 \end{bmatrix}, P_4 = \begin{bmatrix} 0 \\ 19 \end{bmatrix}, P_5 = \begin{bmatrix} 8 \\ 2 \end{bmatrix}, P_6 = \begin{bmatrix} 18 \\ 23 \end{bmatrix}P1=[120],P2=[197],P3=[412],P4=[019],P5=[82],P6=[1823]
第三步:逐组加密
加密P1=[120]P_1 = \begin{bmatrix} 12 \\ 0 \end{bmatrix}P1=[120]:
C1=KP1=[3257][120]=[3660]≡[108](mod26)C_1 = KP_1 = \begin{bmatrix} 3 & 2 \\ 5 & 7 \end{bmatrix} \begin{bmatrix} 12 \\ 0 \end{bmatrix} = \begin{bmatrix} 36 \\ 60 \end{bmatrix} \equiv \begin{bmatrix} 10 \\ 8 \end{bmatrix} \pmod{26}C1=KP1=[3527][120]=[3660]≡[108](mod26)
对应字符:K, I
加密P2=[197]P_2 = \begin{bmatrix} 19 \\ 7 \end{bmatrix}P2=[197]:
C2=KP2=[3257][197]=[71144]≡[1914](mod26)C_2 = KP_2 = \begin{bmatrix} 3 & 2 \\ 5 & 7 \end{bmatrix} \begin{bmatrix} 19 \\ 7 \end{bmatrix} = \begin{bmatrix} 71 \\ 144 \end{bmatrix} \equiv \begin{bmatrix} 19 \\ 14 \end{bmatrix} \pmod{26}C2=KP2=[3527][197]=[71144]≡[1914](mod26)
对应字符:T, O
加密P3=[412]P_3 = \begin{bmatrix} 4 \\ 12 \end{bmatrix}P3=[412]:
C3=KP3=[3257][412]=[36104]≡[100](mod26)C_3 = KP_3 = \begin{bmatrix} 3 & 2 \\ 5 & 7 \end{bmatrix} \begin{bmatrix} 4 \\ 12 \end{bmatrix} = \begin{bmatrix} 36 \\ 104 \end{bmatrix} \equiv \begin{bmatrix} 10 \\ 0 \end{bmatrix} \pmod{26}C3=KP3=[3527][412]=[36104]≡[100](mod26)
对应字符:K, A
加密P4=[019]P_4 = \begin{bmatrix} 0 \\ 19 \end{bmatrix}P4=[019]:
C4=KP4=[3257][019]=[38133]≡[123](mod26)C_4 = KP_4 = \begin{bmatrix} 3 & 2 \\ 5 & 7 \end{bmatrix} \begin{bmatrix} 0 \\ 19 \end{bmatrix} = \begin{bmatrix} 38 \\ 133 \end{bmatrix} \equiv \begin{bmatrix} 12 \\ 3 \end{bmatrix} \pmod{26}C4=KP4=[3527][019]=[38133]≡[123](mod26)
对应字符:M, D
加密P5=[82]P_5 = \begin{bmatrix} 8 \\ 2 \end{bmatrix}P5=[82]:
C5=KP5=[3257][82]=[2854]≡[22](mod26)C_5 = KP_5 = \begin{bmatrix} 3 & 2 \\ 5 & 7 \end{bmatrix} \begin{bmatrix} 8 \\ 2 \end{bmatrix} = \begin{bmatrix} 28 \\ 54 \end{bmatrix} \equiv \begin{bmatrix} 2 \\ 2 \end{bmatrix} \pmod{26}C5=KP5=[3527][82]=[2854]≡[22](mod26)
对应字符:C, C
加密P6=[1823]P_6 = \begin{bmatrix} 18 \\ 23 \end{bmatrix}P6=[1823]:
C6=KP6=[3257][1823]=[100251]≡[2217](mod26)C_6 = KP_6 = \begin{bmatrix} 3 & 2 \\ 5 & 7 \end{bmatrix} \begin{bmatrix} 18 \\ 23 \end{bmatrix} = \begin{bmatrix} 100 \\ 251 \end{bmatrix} \equiv \begin{bmatrix} 22 \\ 17 \end{bmatrix} \pmod{26}C6=KP6=[3527][1823]=[100251]≡[2217](mod26)
对应字符:W, R
加密结果
密文:KITOKAMDCCWR
解密过程详解
第一步:计算密钥逆矩阵
使用前面计算的结果:
K−1≡[31495](mod26)K^{-1} \equiv \begin{bmatrix} 3 & 14 \\ 9 & 5 \end{bmatrix} \pmod{26}K−1≡[39145](mod26)
第二步:密文预处理
将密文"KITOKAMDCCWR"转换为数字:
[10, 8, 19, 14, 10, 0, 12, 3, 2, 2, 22, 17]
分组:
C1=[108],C2=[1914],C3=[100],C4=[123],C5=[22],C6=[2217]C_1 = \begin{bmatrix} 10 \\ 8 \end{bmatrix}, C_2 = \begin{bmatrix} 19 \\ 14 \end{bmatrix}, C_3 = \begin{bmatrix} 10 \\ 0 \end{bmatrix}, C_4 = \begin{bmatrix} 12 \\ 3 \end{bmatrix}, C_5 = \begin{bmatrix} 2 \\ 2 \end{bmatrix}, C_6 = \begin{bmatrix} 22 \\ 17 \end{bmatrix}C1=[108],C2=[1914],C3=[100],C4=[123],C5=[22],C6=[2217]
第三步:逐组解密
解密C1=[108]C_1 = \begin{bmatrix} 10 \\ 8 \end{bmatrix}C1=[108]:
P1=K−1C1=[31495][108]=[142130]≡[120](mod26)P_1 = K^{-1}C_1 = \begin{bmatrix} 3 & 14 \\ 9 & 5 \end{bmatrix} \begin{bmatrix} 10 \\ 8 \end{bmatrix} = \begin{bmatrix} 142 \\ 130 \end{bmatrix} \equiv \begin{bmatrix} 12 \\ 0 \end{bmatrix} \pmod{26}P1=K−1C1=[39145][108]=[142130]≡[120](mod26)
对应字符:M, A
解密C2=[1914]C_2 = \begin{bmatrix} 19 \\ 14 \end{bmatrix}C2=[1914]:
P2=K−1C2=[31495][1914]=[253241]≡[197](mod26)P_2 = K^{-1}C_2 = \begin{bmatrix} 3 & 14 \\ 9 & 5 \end{bmatrix} \begin{bmatrix} 19 \\ 14 \end{bmatrix} = \begin{bmatrix} 253 \\ 241 \end{bmatrix} \equiv \begin{bmatrix} 19 \\ 7 \end{bmatrix} \pmod{26}P2=K−1C2=[39145][1914]=[253241]≡[197](mod26)
对应字符:T, H
继续解密其他分组…
解密结果
去除填充字符后,得到原始明文:MATHEMATICS
3×3希尔密码实例
密钥设定
K=[171752118212219]K = \begin{bmatrix} 17 & 17 & 5 \\ 21 & 18 & 21 \\ 2 & 2 & 19 \end{bmatrix}K=⎣⎡172121718252119⎦⎤
密钥有效性验证
计算det(K) mod 26\det(K) \bmod 26det(K)mod26:
使用行列式展开:
det(K)=17(18×19−21×2)−17(21×19−21×2)+5(21×2−18×2)\det(K) = 17(18 \times 19 - 21 \times 2) - 17(21 \times 19 - 21 \times 2) + 5(21 \times 2 - 18 \times 2)det(K)=17(18×19−21×2)−17(21×19−21×2)+5(21×2−18×2)
=17(342−42)−17(399−42)+5(42−36)= 17(342 - 42) - 17(399 - 42) + 5(42 - 36)=17(342−42)−17(399−42)+5(42−36)
=17×300−17×357+5×6= 17 \times 300 - 17 \times 357 + 5 \times 6=17×300−17×357+5×6
=5100−6069+30=−939= 5100 - 6069 + 30 = -939=5100−6069+30=−939
−939 mod 26=−939+37×26=−939+962=23-939 \bmod 26 = -939 + 37 \times 26 = -939 + 962 = 23−939mod26=−939+37×26=−939+962=23
gcd(23,26)=1\gcd(23, 26) = 1gcd(23,26)=1 ✓,密钥有效。
计算密钥逆矩阵
第一步:计算伴随矩阵
对于矩阵K=[171752118212219]K = \begin{bmatrix} 17 & 17 & 5 \\ 21 & 18 & 21 \\ 2 & 2 & 19 \end{bmatrix}K=⎣⎡172121718252119⎦⎤,计算各元素的代数余子式:
- C11=(18×19−21×2)=300C_{11} = (18 \times 19 - 21 \times 2) = 300C11=(18×19−21×2)=300
- C12=−(21×19−21×2)=−357C_{12} = -(21 \times 19 - 21 \times 2) = -357C12=−(21×19−21×2)=−357
- C13=(21×2−18×2)=6C_{13} = (21 \times 2 - 18 \times 2) = 6C13=(21×2−18×2)=6
- C21=−(17×19−5×2)=−313C_{21} = -(17 \times 19 - 5 \times 2) = -313C21=−(17×19−5×2)=−313
- C22=(17×19−5×2)=313C_{22} = (17 \times 19 - 5 \times 2) = 313C22=(17×19−5×2)=313
- C23=−(17×2−17×2)=0C_{23} = -(17 \times 2 - 17 \times 2) = 0C23=−(17×2−17×2)=0
- C31=(17×21−17×18)=51C_{31} = (17 \times 21 - 17 \times 18) = 51C31=(17×21−17×18)=51
- C32=−(17×21−5×21)=−252C_{32} = -(17 \times 21 - 5 \times 21) = -252C32=−(17×21−5×21)=−252
- C33=(17×18−17×21)=−51C_{33} = (17 \times 18 - 17 \times 21) = -51C33=(17×18−17×21)=−51
伴随矩阵为:
adj(K)=[300−31351−357313−25260−51]\text{adj}(K) = \begin{bmatrix} 300 & -313 & 51 \\ -357 & 313 & -252 \\ 6 & 0 & -51 \end{bmatrix}adj(K)=⎣⎡300−3576−313313051−252−51⎦⎤
第二步:求行列式的模逆元
det(K)=23\det(K) = 23det(K)=23,需求23−1 mod 2623^{-1} \bmod 2623−1mod26
使用扩展欧几里得算法:
26=1×23+326 = 1 \times 23 + 326=1×23+3
23=7×3+223 = 7 \times 3 + 223=7×3+2
3=1×2+13 = 1 \times 2 + 13=1×2+1
逆向计算:
1=3−1×2=3−1×(23−7×3)=8×3−1×231 = 3 - 1 \times 2 = 3 - 1 \times (23 - 7 \times 3) = 8 \times 3 - 1 \times 231=3−1×2=3−1×(23−7×3)=8×3−1×23
=8×(26−23)−23=8×26−9×23= 8 \times (26 - 23) - 23 = 8 \times 26 - 9 \times 23=8×(26−23)−23=8×26−9×23
所以23−1≡−9≡17(mod26)23^{-1} \equiv -9 \equiv 17 \pmod{26}23−1≡−9≡17(mod26)
验证:23×17=391=15×26+1≡1(mod26)23 \times 17 = 391 = 15 \times 26 + 1 \equiv 1 \pmod{26}23×17=391=15×26+1≡1(mod26) ✓
第三步:计算逆矩阵
K−1≡17×[300−31351−357313−25260−51](mod26)K^{-1} \equiv 17 \times \begin{bmatrix} 300 & -313 & 51 \\ -357 & 313 & -252 \\ 6 & 0 & -51 \end{bmatrix} \pmod{26}K−1≡17×⎣⎡300−3576−313313051−252−51⎦⎤(mod26)
逐个计算元素:
- 17×300=5100≡8(mod26)17 \times 300 = 5100 \equiv 8 \pmod{26}17×300=5100≡8(mod26)
- 17×(−313)=−5321≡5(mod26)17 \times (-313) = -5321 \equiv 5 \pmod{26}17×(−313)=−5321≡5(mod26)
- 17×51=867≡9(mod26)17 \times 51 = 867 \equiv 9 \pmod{26}17×51=867≡9(mod26)
- 17×(−357)=−6069≡25(mod26)17 \times (-357) = -6069 \equiv 25 \pmod{26}17×(−357)=−6069≡25(mod26)
- 17×313=5321≡21(mod26)17 \times 313 = 5321 \equiv 21 \pmod{26}17×313=5321≡21(mod26)
- 17×(−252)=−4284≡8(mod26)17 \times (-252) = -4284 \equiv 8 \pmod{26}17×(−252)=−4284≡8(mod26)
- 17×6=102≡24(mod26)17 \times 6 = 102 \equiv 24 \pmod{26}17×6=102≡24(mod26)
- 17×0=0≡0(mod26)17 \times 0 = 0 \equiv 0 \pmod{26}17×0=0≡0(mod26)
- 17×(−51)=−867≡17(mod26)17 \times (-51) = -867 \equiv 17 \pmod{26}17×(−51)=−867≡17(mod26)
因此:
K−1≡[8592521824017](mod26)K^{-1} \equiv \begin{bmatrix} 8 & 5 & 9 \\ 25 & 21 & 8 \\ 24 & 0 & 17 \end{bmatrix} \pmod{26}K−1≡⎣⎡8252452109817⎦⎤(mod26)
验证逆矩阵:
计算KK−1 mod 26KK^{-1} \bmod 26KK−1mod26的第一行第一列元素:
17×8+17×25+5×24=136+425+120=681≡1(mod26)17 \times 8 + 17 \times 25 + 5 \times 24 = 136 + 425 + 120 = 681 \equiv 1 \pmod{26}17×8+17×25+5×24=136+425+120=681≡1(mod26) ✓
加密过程详解
明文处理:“ACT”
数字化:A=0, C=2, T=19
明文向量:P=[0219]P = \begin{bmatrix} 0 \\ 2 \\ 19 \end{bmatrix}P=⎣⎡0219⎦⎤
加密计算:
C=KP=[171752118212219][0219]C = KP = \begin{bmatrix} 17 & 17 & 5 \\ 21 & 18 & 21 \\ 2 & 2 & 19 \end{bmatrix} \begin{bmatrix} 0 \\ 2 \\ 19 \end{bmatrix}C=KP=⎣⎡172121718252119⎦⎤⎣⎡0219⎦⎤
逐个计算:
- c1=17×0+17×2+5×19=0+34+95=129≡25(mod26)c_1 = 17 \times 0 + 17 \times 2 + 5 \times 19 = 0 + 34 + 95 = 129 \equiv 25 \pmod{26}c1=17×0+17×2+5×19=0+34+95=129≡25(mod26)
- c2=21×0+18×2+21×19=0+36+399=435≡19(mod26)c_2 = 21 \times 0 + 18 \times 2 + 21 \times 19 = 0 + 36 + 399 = 435 \equiv 19 \pmod{26}c2=21×0+18×2+21×19=0+36+399=435≡19(mod26)
- c3=2×0+2×2+19×19=0+4+361=365≡1(mod26)c_3 = 2 \times 0 + 2 \times 2 + 19 \times 19 = 0 + 4 + 361 = 365 \equiv 1 \pmod{26}c3=2×0+2×2+19×19=0+4+361=365≡1(mod26)
密文向量:C=[25191]C = \begin{bmatrix} 25 \\ 19 \\ 1 \end{bmatrix}C=⎣⎡25191⎦⎤
对应字符:Z, T, B
加密结果:密文为"ZTB"
解密过程详解
密文处理:“ZTB”
数字化:Z=25, T=19, B=1
密文向量:C=[25191]C = \begin{bmatrix} 25 \\ 19 \\ 1 \end{bmatrix}C=⎣⎡25191⎦⎤
解密计算:
P=K−1C=[8592521824017][25191]P = K^{-1}C = \begin{bmatrix} 8 & 5 & 9 \\ 25 & 21 & 8 \\ 24 & 0 & 17 \end{bmatrix} \begin{bmatrix} 25 \\ 19 \\ 1 \end{bmatrix}P=K−1C=⎣⎡8252452109817⎦⎤⎣⎡25191⎦⎤
逐个计算:
- p1=8×25+5×19+9×1=200+95+9=304≡0(mod26)p_1 = 8 \times 25 + 5 \times 19 + 9 \times 1 = 200 + 95 + 9 = 304 \equiv 0 \pmod{26}p1=8×25+5×19+9×1=200+95+9=304≡0(mod26)
- p2=25×25+21×19+8×1=625+399+8=1032≡2(mod26)p_2 = 25 \times 25 + 21 \times 19 + 8 \times 1 = 625 + 399 + 8 = 1032 \equiv 2 \pmod{26}p2=25×25+21×19+8×1=625+399+8=1032≡2(mod26)
- p3=24×25+0×19+17×1=600+0+17=617≡19(mod26)p_3 = 24 \times 25 + 0 \times 19 + 17 \times 1 = 600 + 0 + 17 = 617 \equiv 19 \pmod{26}p3=24×25+0×19+17×1=600+0+17=617≡19(mod26)
明文向量:P=[0219]P = \begin{bmatrix} 0 \\ 2 \\ 19 \end{bmatrix}P=⎣⎡0219⎦⎤
对应字符:A, C, T
解密结果:明文为"ACT" ✓
长文本加密示例
明文:“CRYPTOGRAPHY”(12个字符,正好4组)
数字化:[2, 17, 24, 15, 19, 14, 6, 17, 0, 15, 7, 24]
分组:
P1=[21724],P2=[151914],P3=[6170],P4=[15724]P_1 = \begin{bmatrix} 2 \\ 17 \\ 24 \end{bmatrix}, P_2 = \begin{bmatrix} 15 \\ 19 \\ 14 \end{bmatrix}, P_3 = \begin{bmatrix} 6 \\ 17 \\ 0 \end{bmatrix}, P_4 = \begin{bmatrix} 15 \\ 7 \\ 24 \end{bmatrix}P1=⎣⎡21724⎦⎤,P2=⎣⎡151914⎦⎤,P3=⎣⎡6170⎦⎤,P4=⎣⎡15724⎦⎤
加密P1P_1P1:
C1=KP1=[171752118212219][21724]C_1 = KP_1 = \begin{bmatrix} 17 & 17 & 5 \\ 21 & 18 & 21 \\ 2 & 2 & 19 \end{bmatrix} \begin{bmatrix} 2 \\ 17 \\ 24 \end{bmatrix}C1=KP1=⎣⎡172121718252119⎦⎤⎣⎡21724⎦⎤
- c11=17×2+17×17+5×24=34+289+120=443≡1(mod26)c_{11} = 17 \times 2 + 17 \times 17 + 5 \times 24 = 34 + 289 + 120 = 443 \equiv 1 \pmod{26}c11=17×2+17×17+5×24=34+289+120=443≡1(mod26)
- c21=21×2+18×17+21×24=42+306+504=852≡20(mod26)c_{21} = 21 \times 2 + 18 \times 17 + 21 \times 24 = 42 + 306 + 504 = 852 \equiv 20 \pmod{26}c21=21×2+18×17+21×24=42+306+504=852≡20(mod26)
- c31=2×2+2×17+19×24=4+34+456=494≡0(mod26)c_{31} = 2 \times 2 + 2 \times 17 + 19 \times 24 = 4 + 34 + 456 = 494 \equiv 0 \pmod{26}c31=2×2+2×17+19×24=4+34+456=494≡0(mod26)
C1=[1200]C_1 = \begin{bmatrix} 1 \\ 20 \\ 0 \end{bmatrix}C1=⎣⎡1200⎦⎤ → B, U, A
加密P2P_2P2:
C2=KP2=[171752118212219][151914]C_2 = KP_2 = \begin{bmatrix} 17 & 17 & 5 \\ 21 & 18 & 21 \\ 2 & 2 & 19 \end{bmatrix} \begin{bmatrix} 15 \\ 19 \\ 14 \end{bmatrix}C2=KP2=⎣⎡172121718252119⎦⎤⎣⎡151914⎦⎤
- c12=17×15+17×19+5×14=255+323+70=648≡24(mod26)c_{12} = 17 \times 15 + 17 \times 19 + 5 \times 14 = 255 + 323 + 70 = 648 \equiv 24 \pmod{26}c12=17×15+17×19+5×14=255+323+70=648≡24(mod26)
- c22=21×15+18×19+21×14=315+342+294=951≡17(mod26)c_{22} = 21 \times 15 + 18 \times 19 + 21 \times 14 = 315 + 342 + 294 = 951 \equiv 17 \pmod{26}c22=21×15+18×19+21×14=315+342+294=951≡17(mod26)
- c32=2×15+2×19+19×14=30+38+266=334≡22(mod26)c_{32} = 2 \times 15 + 2 \times 19 + 19 \times 14 = 30 + 38 + 266 = 334 \equiv 22 \pmod{26}c32=2×15+2×19+19×14=30+38+266=334≡22(mod26)
C2=[241722]C_2 = \begin{bmatrix} 24 \\ 17 \\ 22 \end{bmatrix}C2=⎣⎡241722⎦⎤ → Y, R, W
加密P3P_3P3:
C3=KP3=[171752118212219][6170]C_3 = KP_3 = \begin{bmatrix} 17 & 17 & 5 \\ 21 & 18 & 21 \\ 2 & 2 & 19 \end{bmatrix} \begin{bmatrix} 6 \\ 17 \\ 0 \end{bmatrix}C3=KP3=⎣⎡172121718252119⎦⎤⎣⎡6170⎦⎤
- c13=17×6+17×17+5×0=102+289+0=391≡1(mod26)c_{13} = 17 \times 6 + 17 \times 17 + 5 \times 0 = 102 + 289 + 0 = 391 \equiv 1 \pmod{26}c13=17×6+17×17+5×0=102+289+0=391≡1(mod26)
- c23=21×6+18×17+21×0=126+306+0=432≡16(mod26)c_{23} = 21 \times 6 + 18 \times 17 + 21 \times 0 = 126 + 306 + 0 = 432 \equiv 16 \pmod{26}c23=21×6+18×17+21×0=126+306+0=432≡16(mod26)
- c33=2×6+2×17+19×0=12+34+0=46≡20(mod26)c_{33} = 2 \times 6 + 2 \times 17 + 19 \times 0 = 12 + 34 + 0 = 46 \equiv 20 \pmod{26}c33=2×6+2×17+19×0=12+34+0=46≡20(mod26)
C3=[11620]C_3 = \begin{bmatrix} 1 \\ 16 \\ 20 \end{bmatrix}C3=⎣⎡11620⎦⎤ → B, Q, U
加密P4P_4P4:
C4=KP4=[171752118212219][15724]C_4 = KP_4 = \begin{bmatrix} 17 & 17 & 5 \\ 21 & 18 & 21 \\ 2 & 2 & 19 \end{bmatrix} \begin{bmatrix} 15 \\ 7 \\ 24 \end{bmatrix}C4=KP4=⎣⎡172121718252119⎦⎤⎣⎡15724⎦⎤
- c14=17×15+17×7+5×24=255+119+120=494≡0(mod26)c_{14} = 17 \times 15 + 17 \times 7 + 5 \times 24 = 255 + 119 + 120 = 494 \equiv 0 \pmod{26}c14=17×15+17×7+5×24=255+119+120=494≡0(mod26)
- c24=21×15+18×7+21×24=315+126+504=945≡9(mod26)c_{24} = 21 \times 15 + 18 \times 7 + 21 \times 24 = 315 + 126 + 504 = 945 \equiv 9 \pmod{26}c24=21×15+18×7+21×24=315+126+504=945≡9(mod26)
- c34=2×15+2×7+19×24=30+14+456=500≡6(mod26)c_{34} = 2 \times 15 + 2 \times 7 + 19 \times 24 = 30 + 14 + 456 = 500 \equiv 6 \pmod{26}c34=2×15+2×7+19×24=30+14+456=500≡6(mod26)
C4=[096]C_4 = \begin{bmatrix} 0 \\ 9 \\ 6 \end{bmatrix}C4=⎣⎡096⎦⎤ → A, J, G
完整加密结果:“BUAYRWBQUAJG”
解密验证
使用逆矩阵K−1=[8592521824017]K^{-1} = \begin{bmatrix} 8 & 5 & 9 \\ 25 & 21 & 8 \\ 24 & 0 & 17 \end{bmatrix}K−1=⎣⎡8252452109817⎦⎤对密文"BUAYRWBQUAJG"进行解密:
密文数字化:[1, 20, 0, 24, 17, 22, 1, 16, 20, 0, 9, 6]
解密C1=[1200]C_1 = \begin{bmatrix} 1 \\ 20 \\ 0 \end{bmatrix}C1=⎣⎡1200⎦⎤:
P1=K−1C1=[8592521824017][1200]P_1 = K^{-1}C_1 = \begin{bmatrix} 8 & 5 & 9 \\ 25 & 21 & 8 \\ 24 & 0 & 17 \end{bmatrix} \begin{bmatrix} 1 \\ 20 \\ 0 \end{bmatrix}P1=K−1C1=⎣⎡8252452109817⎦⎤⎣⎡1200⎦⎤
- p11=8×1+5×20+9×0=8+100+0=108≡2(mod26)p_{11} = 8 \times 1 + 5 \times 20 + 9 \times 0 = 8 + 100 + 0 = 108 \equiv 2 \pmod{26}p11=8×1+5×20+9×0=8+100+0=108≡2(mod26)
- p21=25×1+21×20+8×0=25+420+0=445≡17(mod26)p_{21} = 25 \times 1 + 21 \times 20 + 8 \times 0 = 25 + 420 + 0 = 445 \equiv 17 \pmod{26}p21=25×1+21×20+8×0=25+420+0=445≡17(mod26)
- p31=24×1+0×20+17×0=24+0+0=24≡24(mod26)p_{31} = 24 \times 1 + 0 \times 20 + 17 \times 0 = 24 + 0 + 0 = 24 \equiv 24 \pmod{26}p31=24×1+0×20+17×0=24+0+0=24≡24(mod26)
P1=[21724]P_1 = \begin{bmatrix} 2 \\ 17 \\ 24 \end{bmatrix}P1=⎣⎡21724⎦⎤ → C, R, Y
继续解密其他分组…
完整解密结果:恢复原文"CRYPTOGRAPHY" ✓
总结
数学基础的重要性
模运算和矩阵运算为密码学提供了强大的数学工具,其严谨的理论基础确保了密码系统的可靠性。
线性代数的应用价值
矩阵运算不仅实现了明文到密文的有效变换,更为复杂密码系统的设计提供了基本框架。
密码设计的基本原则
希尔密码体现了密码学的核心思想:通过数学变换隐藏信息,同时保证合法用户能够恢复原始信息。
安全性与实用性的平衡
虽然希尔密码在现代标准下安全性不足,但其简洁的设计思想和高效的实现方式仍有重要价值。
希尔密码的学习帮助我们理解密码学从经典向现代发展的历程,为掌握更复杂的现代密码算法打下坚实基础。在信息安全日益重要的今天,这些基础知识仍然具有不可替代的价值。
