密码学——古典密码中的基本加密运算附简单例题

这篇具有很好参考价值的文章主要介绍了密码学——古典密码中的基本加密运算附简单例题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本篇文章将对古典密码中使用到的基本加解密运算进行总结,并展示个别加减密运算的简单例题,从而使读者更加容易理解古典密码中的基本加减密运算的原理。


前言

首先引入密码学中的几个基本定义:
M:明文空间,明文的集合
C:密文空间,密文的集合
K:密钥空间(也称密钥的数量),密钥的集合
E:加密变换的集合,使明文加密生成密文的算法
D:解密变换的集合,使密文解密生成明文的算法
单表密码体制:明文字母对应的密文字母在密文中保持不变。(浅显一点就是相同的字母加密以后的字母也为相同的)
多表密码体制:明文中不同位置的同一明文字母在密文中对应的密文字母不同。(相同的字母在不同的位置加密以后的字母极大可能不同)

Z q = { 0 , 1 , 2 , . . . , q − 1 } , Z q ∗ = { k ∈ Z q ∣ g c d ( k , q ) = 1 } Z_q=\{0,1,2,...,q-1\},Z_q^*=\{k\in Z_q \vert gcd(k,q)=1 \} Zq={0,1,2,...,q1},Zq={kZqgcd(k,q)=1},其中 g c d ( k , q ) = 1 gcd(k,q)=1 gcd(k,q)=1表示k与q互素。
例如: Z 26 = { 0 , 1 , 2 , . . . , 25 } Z_{26}=\{0,1,2,...,25\} Z26={0,1,2,...,25} Z 26 ∗ = { 1 , 3 , 5 , 7 , 9 , 11 , 15 , 17 , 19 , 21 , 23 , 25 } Z_{26}^*=\{1,3,5,7,9,11,15,17,19,21,23,25\} Z26={1,3,5,7,9,11,15,17,19,21,23,25} 即由与26互素的数组成的


一、单表古典密码中的基本加减密运算

1.加法密码

X = Y = Z q , K = Z q . X=Y=Z_q,K=Z_q. X=Y=Zq,K=Zq.对任意 m ∈ X , k ∈ K m \in X,k \in K mX,kK
加密算法: c = E k ( m ) = ( m + k ) m o d   q c=E_k(m)=(m+k) mod \ q c=Ek(m)=(m+k)mod q 解密算法: m = D k ( c ) = ( c − k ) m o d   q m=D_k(c)=(c-k) mod \ q m=Dk(c)=(ck)mod q 加密密钥和解密密钥:k
密钥量:q

例题: m=4,k=5,q=26,则加密 c = ( 4 + 5 ) m o d   26 = 9 c=(4+5) mod\ 26=9 c=(4+5)mod 26=9;若改为m=23,则 c = ( 23 + 5 ) m o d   26 = 28 m o d   26 = 2 c=(23+5) mod\ 26=28 mod\ 26=2 c=(23+5)mod 26=28mod 26=2
解密 m = ( 9 − 5 ) m o d   26 = 4 m=(9-5) mod\ 26=4 m=(95)mod 26=4 m = ( 2 − 5 ) m o d   26 = − 3   m o d   26 = 26 − 3 = 23 m=(2-5) mod\ 26=-3\ mod\ 26=26-3=23 m=(25)mod 26=3 mod 26=263=23。(分别对应上面的加密过程)
注意:此处运用了模运算,基本上密码学中都会用到模运算,如有不懂可去搜查模运算的知识点。

2.乘法密码

X = Y = Z q , K = Z q ∗ . X=Y=Z_q,K=Z_q^*. X=Y=Zq,K=Zq.对任意 m ∈ X , k ∈ K m \in X,k \in K mX,kK
加密算法: c = E k ( m ) = k m    m o d   q c=E_k(m)=km \ \ mod \ q c=Ek(m)=km  mod q 解密算法: m = D k ( c ) = k − 1 c    m o d   q m=D_k(c)=k^{-1}c \ \ mod \ q m=Dk(c)=k1c  mod q 加密密钥和解密密钥:k
密钥量: φ ( q ) \varphi(q) φ(q),(Euler函数:小于q且与q互素的非负整数的个数)

例题: m=4,k=5,q=26,则加密 c = ( 5 ∗ 4 ) m o d   26 = 20 c=(5*4) mod\ 26=20 c=(54)mod 26=20
解密 m = ( 5 − 1 ∗ 20 ) m o d   26 = 21 ∗ 20 m o d   26 = ( − 5 ) ∗ ( − 6 ) m o d   26 = 30 m o d   26 = 4 m=(5^{-1}*20) mod\ 26=21*20 mod\ 26=(-5)*(-6) mod\ 26=30 mod\ 26=4 m=(5120)mod 26=2120mod 26=(5)(6)mod 26=30mod 26=4
注意:此处的 5 − 1 5^{-1} 51指的是5的逆元,在模运算的情况下应为 5 ∗ x ≡ 1   m o d   26 5*x\equiv1\ mod\ 26 5x1 mod 26 解得 x=21
小tips: 此处 K = Z q ∗ K=Z_q^* K=Zq是因为要使 k − 1 k^{-1} k1存在

3.仿射密码

X = Y = Z q , K = { ( k 1 , k 2 ) ∣ k 1 ∈ Z q , k 2 ∈ Z q ∗ } . X=Y=Z_q,K=\{(k_1,k_2)\vert k_1 \in Z_q,k_2 \in Z_q^*\}. X=Y=Zq,K={(k1,k2)k1Zq,k2Zq}.对任意 m ∈ X , k = ( k 1 , k 2 ) ∈ K m \in X,k=(k_1,k_2) \in K mX,k=(k1,k2)K
加密算法: c = E k ( m ) = k 1 + k 2 m    m o d   q c=E_k(m)=k_1+k_2m \ \ mod \ q c=Ek(m)=k1+k2m  mod q 解密算法: m = D k ( c ) = k 2 − 1 ( c − k 1 )    m o d   q m=D_k(c)=k_2^{-1}(c-k_1) \ \ mod \ q m=Dk(c)=k21(ck1)  mod q 加密密钥和解密密钥: ( k 1 , k 2 ) (k_1,k_2) (k1,k2)
密钥量: q ∗ φ ( q ) q*\varphi(q) qφ(q)
加法密码和乘法密码是仿射密码的特例

例题: m = 7 , k 1 = 1 , k 2 = 3 , q = 26 m=7,k_1=1,k_2=3,q=26 m=7,k1=1,k2=3,q=26,则加密 c = ( 1 + 3 ∗ 7 ) m o d   26 = 22 c=(1+3*7) mod\ 26=22 c=(1+37)mod 26=22
解密 m = ( 3 − 1 ∗ ( 22 − 1 ) ) m o d   26 = 9 ∗ 21 m o d   26 = 189 m o d   26 = 7 m=(3^{-1}*(22-1)) mod\ 26=9*21 mod\ 26=189 mod\ 26=7 m=(31(221))mod 26=921mod 26=189mod 26=7
ps: 3 − 1 = 9 3^{-1}=9 31=9

4.置换密码

X = Y = Z q , K 为 Z q X=Y=Z_q,K为Z_q X=Y=Zq,KZq上全体置换的集合。对任意 m ∈ X , k = σ ∈ K m \in X,k=\sigma \in K mX,k=σK
加密算法: c = E k ( m ) = σ ( m ) m o d   q c=E_k(m)=\sigma(m) mod \ q c=Ek(m)=σ(m)mod q 解密算法: m = D k ( c ) = σ − 1 ( m ) m o d   q m=D_k(c)=\sigma^{-1}(m) mod\ q m=Dk(c)=σ1(m)mod q加密密钥和解密密钥: σ \sigma σ(一个置换)
密钥量: q ! q! q!
因为置换就是简单地将明文字符对应成相应的密文字符,故此处就不写例题了。

二、多表古典密码中的基本加减密运算

1.简单加法密码

X n = Y n = Z q n , K = Z q n . X^n=Y^n=Z_q^n,K=Z_q^n. Xn=Yn=Zqn,K=Zqn.对任意 m = ( m 1 , m 2 , . . . , m n ) ∈ X n , k = ( k 1 , k 2 , . . . , k n ) ∈ K m=(m_1,m_2,...,m_n) \in X^n,k=(k_1,k_2,...,k_n) \in K m=(m1,m2,...,mn)Xn,k=(k1,k2,...,kn)K
加密算法: c = E k ( m ) = ( m 1 + k 1 , m 2 + k 2 , . . . , m n + k n ) c=E_k(m)=(m_1+k_1,m_2+k_2,...,m_n+k_n) c=Ek(m)=(m1+k1,m2+k2,...,mn+kn) 解密算法: m = D k ( c ) = ( c 1 − k 1 , c 2 − k 2 , . . . , c n − k n ) m=D_k(c)=(c_1-k_1,c_2-k_2,...,c_n-k_n) m=Dk(c)=(c1k1,c2k2,...,cnkn) 加密密钥和解密密钥: ( k 1 , k 2 , . . . , k n ) (k_1,k_2,...,k_n) (k1,k2,...,kn)
密钥量: q n q^n qn

2.简单乘法密码

X n = Y n = Z q n , K = ( Z q ∗ ) n . X^n=Y^n=Z_q^n,K=( Z_q^*)^n. Xn=Yn=Zqn,K=(Zq)n.对任意 m = ( m 1 , m 2 , . . . , m n ) ∈ X n , k = ( k 1 , k 2 , . . . , k n ) ∈ K m=(m_1,m_2,...,m_n) \in X^n,k=(k_1,k_2,...,k_n) \in K m=(m1,m2,...,mn)Xn,k=(k1,k2,...,kn)K
加密算法: c = E k ( m ) = ( k 1 m 1 , k 2 m 2 , . . . , k n m n ) c=E_k(m)=(k_1m_1,k_2m_2,...,k_nm_n) c=Ek(m)=(k1m1,k2m2,...,knmn) 解密算法: m = D k ( c ) = ( k 1 − 1 c 1 , k 2 − 1 c 2 , . . . , k n − 1 c n ) m=D_k(c)=(k_1^{-1}c_1,k_2^{-1}c_2,...,k_n^{-1}c_n) m=Dk(c)=(k11c1,k21c2,...,kn1cn) 加密密钥和解密密钥:k
密钥量: φ ( q ) n \varphi (q)^n φ(q)n

因为多表的加法密码和乘法密码与单表的极其相似,区别就在于多表是每一个分量就会给一个算法去进行加密
例如: 设分量长度为3, k 1 = 3 , k 2 = 5 k_1=3,k_2=5 k1=3,k2=5,则 c 1 = 3 ∗ m 1   m o d 26 , c 2 = 5 ∗ m 2   m o d 26 c_1=3*m_1\ mod26,c_2=5*m_2\ mod26 c1=3m1 mod26,c2=5m2 mod26分别对应不同的k,以此可以类推至n项

3.简单仿射密码

X n = Y n = Z q n , K = { ( < k 11 , k 21 > , < k 12 , k 22 > , . . . , < k 1 n , k 2 n > ) ∣ k 1 i ∈ Z q , k 2 i ∈ Z q ∗ , 1 ≤ i ≤ n } . X^n=Y^n=Z_q^n,K=\{(<k_{11},k_{21}>,<k_{12},k_{22}>,...,<k_{1n},k_{2n}>)\vert k_{1i}\in Z_q,k_{2i}\in Z_q^*,1\le i\le n\}. Xn=Yn=Zqn,K={(<k11,k21>,<k12,k22>,...,<k1n,k2n>)k1iZq,k2iZq,1in}.
对任意 m = ( m 1 , m 2 , . . . , m n ) ∈ X n , k = ( < k 11 , k 21 > , < k 12 , k 22 > , . . . , < k 1 n , k 2 n > ) ∈ K m=(m_1,m_2,...,m_n) \in X^n,k=(<k_{11},k_{21}>,<k_{12},k_{22}>,...,<k_{1n},k_{2n}>)\in K m=(m1,m2,...,mn)Xn,k=(<k11,k21>,<k12,k22>,...,<k1n,k2n>)K
加密算法: c = E k ( m ) = ( k 11 + k 21 m 1 , k 12 + k 22 m 2 , . . . , k 1 n + k 2 n m n ) c=E_k(m)=(k_{11}+k_{21}m_1,k_{12}+k_{22}m_2,...,k_{1n}+k_{2n}m_n) c=Ek(m)=(k11+k21m1,k12+k22m2,...,k1n+k2nmn) 解密算法: m = ( k 21 − 1 ( c 1 − k 11 ) , k 22 − 1 ( c 2 − k 12 ) , . . . , k 2 n − 1 ( c n − k 1 n ) ) m=(k_{21}^{-1}(c_1-k_{11}),k_{22}^{-1}(c_2-k_{12}),...,k_{2n}^{-1}(c_n-k_{1n})) m=(k211(c1k11),k221(c2k12),...,k2n1(cnk1n)) 加密密钥和解密密钥: ( ( k 11 , k 21 ) , ( k 12 , k 22 ) , . . . , ( k 1 n , k 2 n ) ) ((k_{11},k_{21}),(k_{12},k_{22}),...,(k_{1n},k_{2n})) ((k11,k21),(k12,k22),...,(k1n,k2n))
密钥量: q n φ ( q ) n q^n\varphi (q)^n qnφ(q)n

例题: 已知多表仿射密码的加密密钥为(2,1),(3,3),则 c 1 = 2 + m 1   m o d 26 , c 2 = 3 + 3 ∗ m 2   m o d 26 c_1=2+m_1\ mod26,c_2=3+3*m_2\ mod26 c1=2+m1 mod26,c2=3+3m2 mod26 以此可以类推至n项

4.简单置换密码

X n = Y n = Z q n , K = { ( k 1 , k 2 , . . . , k n ) ∣ k i 是 Z q 上的置换 , 1 ≤ i ≤ n } . X^n=Y^n=Z_q^n,K=\{(k_1,k_2,...,k_n)\vert k_i是Z_q上的置换,1\le i\le n\}. Xn=Yn=Zqn,K={(k1,k2,...,kn)kiZq上的置换,1in}.对任意 m = ( m 1 , m 2 , . . . , m n ) ∈ X n , k = ( k 1 , k 2 , . . . , k n ) ∈ K m=(m_1,m_2,...,m_n) \in X^n,k=(k_1,k_2,...,k_n) \in K m=(m1,m2,...,mn)Xn,k=(k1,k2,...,kn)K
加密算法: c = E k ( m ) = ( k 1 ( m 1 ) , k 2 ( m 2 ) , . . . , k n ( m n ) ) c=E_k(m)=(k_1(m_1),k_2(m_2),...,k_n(m_n)) c=Ek(m)=(k1(m1),k2(m2),...,kn(mn)) 解密算法: m = D k ( c ) = ( k 1 − 1 ( c 1 ) , k 2 − 1 ( c 2 ) , . . . , k n − 1 ( c n ) ) m=D_k(c)=(k_1^{-1}(c_1),k_2^{-1}(c_2),...,k_n^{-1}(c_n)) m=Dk(c)=(k11(c1),k21(c2),...,kn1(cn)) 加密密钥和解密密钥: ( k 1 , k 2 , . . . , k n ) (k_1,k_2,...,k_n) (k1,k2,...,kn)
密钥量: ( q ! ) n (q!)^n (q!)n

5.换位密码

X n = Y n = Z q n , K 为 { 1 , 2 , . . . , n } . X^n=Y^n=Z_q^n,K为\{1,2,...,n\}. Xn=Yn=Zqn,K{1,2,...,n}.上的全体置换的集合,对任意 m = ( m 1 , m 2 , . . . , m n ) ∈ X n , k = σ ∈ K m=(m_1,m_2,...,m_n) \in X^n,k=\sigma \in K m=(m1,m2,...,mn)Xn,k=σK
加密算法: c = E k ( m ) = ( m σ ( 1 ) , m σ ( 2 ) , . . . , m σ ( n ) ) c=E_k(m)=(m_{\sigma(1)},m_{\sigma(2)},...,m_{\sigma(n)}) c=Ek(m)=(mσ(1),mσ(2),...,mσ(n)) 解密算法: m = D k ( c ) = ( c σ − 1 ( 1 ) , c σ − 1 ( 2 ) , . . . , c σ − 1 ( n ) ) m=D_k(c)=(c_{\sigma^{-1}(1)},c_{\sigma^{-1}(2)},...,c_{\sigma^{-1}(n)}) m=Dk(c)=(cσ1(1),cσ1(2),...,cσ1(n)) 加密密钥和解密密钥: σ \sigma σ
密钥量: n ! n! n!

简而言之就是将其对应的位置全部打乱顺序

1 2 3
σ \sigma σ 3 1 2

第一个明文字符到第三个位置上去,第二个铭文字符到第一个位置上去,第三个明文字符到第二个位置上去。


结束语

第一篇有关密码学的文章就写到这里,希望能对读者们起到一定的作用。
如果存在错误欢迎在评论区指出,可以多多交流哇,大家一起进步,嘿嘿。文章来源地址https://www.toymoban.com/news/detail-519013.html

到了这里,关于密码学——古典密码中的基本加密运算附简单例题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【密码学】块加密(分组加密)的工作模式

    上一篇文章讨论了 DES 算法,现在我们有了“给定 64-bit 的明文、64-bit 的密钥,输出 64-bit 的密文”的加密手段。这离实际应用还有一点点距离,因为要传递的信息当然不止 64 位。 要用 DES 加密一条信息,一般先把信息填充到 64 的倍数,于是就可以分成许多组,每组 8 个字节

    2024年02月16日
    浏览(50)
  • 【密码学基础】RSA加密算法

    RSA是一种非对称加密算法,即加密和解密时用到的密钥不同。 加密密钥是公钥,可以公开;解密密钥是私钥,必须保密保存。 基于一个简单的数论事实:两个大质数相乘很容易,但想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥,即公钥;而两个

    2024年02月01日
    浏览(70)
  • 密码学—Vigenere加密Python程序

    古典密码,属于多表加密。 怎么就是多表了? 维吉尼亚密码的加密算法实质是凯撒密码,因为他是先分好小组,然后用密钥串对应着分好组的每一个字母进行加密(因为一个凯撒表用密钥串的一个字母加密),当然是遵循下标相同的,比如秘钥为:abc,明文为qwer,然后明文

    2024年02月11日
    浏览(47)
  • 密码学基本原理和发展——近代密码学

    目录 1 密码机通信模型 2 Enigma密码机构造 3 Enigma密码机加解密过程 3.1 加密过程 3.2 解密过程 4 Enigma密码机的安全性 5 Enigma密码机破解 5.1 波兰雷耶夫斯基破解 5.2 图灵破解        近代密码一般指20世纪初~20世纪70年代期间的密码技术。20 世纪初电报的出现第一次使远距离

    2024年02月06日
    浏览(54)
  • 密码学【java】初探究加密方式之非对称加密

    非对称加密算法又称现代加密算法。非对称加密是计算机通信安全的基石,保证了加密数据不会被破解。 与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(publickey) 和私有密(privatekey) 公开密钥和私有密钥是一对。如果用公开密钥对数据进行加密,只有用对应的

    2024年02月03日
    浏览(53)
  • 【密码学复习】第七章 公钥加密体制(二)

    RSA单向陷门函数及其应用 ElGamal单向陷门函数 1)密钥生成 ① 选择一大素数 p ,选取Z p * 的生成元 g ; ② 任选 小于 p 的随机数 x ,计算 y ≡ g x mod p ; ③ ( y , g , p )为公开密钥, ( x , g , p )为秘密密钥. 2)加密: 设待加密明文为 M . ① 随机选一整数 k ,0 k = p -1; ② 计算密文对

    2024年02月05日
    浏览(58)
  • 【密码学基础】半/全同态加密算法基础学习笔记

    定义:只支持乘法或加法中的一种的同态加密。同态加密指的是允许直接对密文进行计算,密文计算结果解密后与明文直接计算结果相同。 Paillier加解密过程 Paillier的同态性 明文加法 = 密文乘法 明文乘法 = 密文指数幂 Paillier的安全性 基于大整数分解困难问题 相比Paillier,

    2024年02月13日
    浏览(51)
  • 密码学系列4-选择密文安全,同态加密安全性

    本章将介绍Cramer-Shoup加密方案,并证明其安全性。最后讨论了同态加密方案的安全性证明 一、Cramer-Shoup加密 密钥生成 1.定义群 G G G ,群的阶为 q q q ,选取群的生成元

    2024年04月26日
    浏览(33)
  • 【密码学】Java课设-文件加密系统(适用于任何文件)

    文档显示乱码相信大家一定不陌生,一份很喜欢的文档内容/数据,下载到自己电脑上却是这样的 项目中一些核心程序打开是这样的 文件加密,不仅可以提高数据安全性,还可以在很大程度上保护个人权益/财产不被侵犯。 本篇文章采用的是对称加密方式,效果如下。 常见的

    2024年02月04日
    浏览(50)
  • 密码学基本概念

    密码学的安全目标至少包含三个方面: (1)保密性(Confidentiality):信息仅被合法用户访问(浏览、阅读、打印等),不被泄露给非授权的用户、实体或过程。 提高保密性的手段有:防侦察、防辐射、数据加密、物理保密等。 (2)完整性(Integrity):资源只有授权方或以授

    2024年02月22日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包