现代密码学8.1--密码学所涉及的数论和群论

  • 数论
    • 素数和整除
    • 模运算
  • 群论
    • 有限群
    • 群Zn∗\mathcal{Z}_n^*Zn∗​
    • 群同构和中国剩余定理
    • 使用中国剩余定理进行计算

博主正在学习INTRODUCTION TO MODERN CRYPTOGRAPHY (Second Edition) --Jonathan Katz, Yehuda Lindell,做一些笔记供自己回忆,如有错误请指正。整理成一个系列现代密码学,方便检索。

博主暂时跳过私钥加密部分,直接进入公钥加密,从第8章开始。

8.1节介绍了密码学所涉及的数学知识:数论群论。其中,数论在初等数论,群论在近世代数中有较为完整深入的介绍。所以此节只简单概述数论和群论的定理,少数进行证明。

数论

素数和整除

  • a∈Z,b∈Z+a\in Z,b\in Z^+a∈Z,b∈Z+,存在唯一的整数q,rq,rq,r使得a=qb+r,0≤r≤ba=qb+r,0\le r\le ba=qb+r,0≤r≤b。
  • ∃X,Y∈Z,s.t.Xa+Yb=gcd(a,b)\exists X,Y\in Z,s.t. Xa+Yb=gcd(a,b)∃X,Y∈Z,s.t.Xa+Yb=gcd(a,b),gcd(a,b)gcd(a,b)gcd(a,b)是可以写成Xa+YbXa+YbXa+Yb的最小正整数。
  • 如果c∣abc\mid abc∣ab,且gcd(a,c)=1gcd(a,c)=1gcd(a,c)=1,那么c∣bc\mid bc∣b。可推出,如果ppp是素数,而且p∣abp\mid abp∣ab,那么p∣ap\mid ap∣a或p∣bp\mid bp∣b。(因为p∤a→gcd(a,p)=1p\nmid a\rightarrow gcd(a,p)=1p∤a→gcd(a,p)=1)
  • 如果a∣N,b∣N,gcd(a,b)=1a\mid N,b\mid N,gcd(a,b)=1a∣N,b∣N,gcd(a,b)=1,那么ab∣Nab\mid Nab∣N。

模运算

  • 如果a=qN+ra=qN+ra=qN+r,那么[a[a[a mod N]=rN]=rN]=r
  • “规约后,加、减、乘”↔\leftrightarrow↔“加、减、乘,再规约”;即如果a=a′a=a'a=a′ mod N,b=b′N,b=b'N,b=b′ mod NNN,则有a+b=a′+b′a+b=a'+b'a+b=a′+b′ mod N,ab=a′b′N,ab=a'b'N,ab=a′b′ mod NNN。
  • 除法不一定能满足,因为往往没有定义。只有bbb在模NNN下是可逆的,即∃c∈{1,2……N−1},s.t.bc=1\exists c\in \{1,2……N-1\},s.t. bc=1∃c∈{1,2……N−1},s.t.bc=1 mod NNN,才有a/b=a′/b′=a′ca/b=a'/b'=a'ca/b=a′/b′=a′c mod NNN。而且bbb在模NNN下是可逆的↔gcd(b,N)=1\leftrightarrow gcd(b,N)=1↔gcd(b,N)=1。(根据扩展欧几里得算法,gcd(b,N)=1→Xb+YN=1→Xb=1gcd(b,N)=1\rightarrow Xb+YN=1\rightarrow Xb=1gcd(b,N)=1→Xb+YN=1→Xb=1 mod N→X=b−1N\rightarrow X=b^{-1}N→X=b−1 mod NNN)
  • 模NNN下的加、减、乘、逆、指数运算都可以在多项式时间内完成。

群论

有限群

  • 密码学中通常研究的是有限交换群

    • 封闭性、结合性、单位元、逆元、有限、交换性
  • 有限群GGG的阶m=∣G∣m=|G|m=∣G∣,则∀g∈G,gm=1\forall g\in G,g^m=1∀g∈G,gm=1。(根据循环群:ggg的阶是<g><g><g>的阶,根据拉格朗日定理:<g><g><g>的阶是∣G∣|G|∣G∣的因子,则ggg的阶是∣G∣|G|∣G∣的因子,即若ggg的阶为ddd,则有d∣md\mid md∣m,即gm=gnd=(gd)n=en=eg^m=g^{nd}=(g^d)^n=e^n=egm=gnd=(gd)n=en=e)
  • 有限群GGG的阶m=∣G∣m=|G|m=∣G∣,∀g∈G,∀x∈Z\forall g\in G,\forall x\in Z∀g∈G,∀x∈Z,有gx=g[xmodm]g^x=g^{[x mod m]}gx=g[xmodm]
  • 有限群GGG的阶m=∣G∣m=|G|m=∣G∣,e∈Ze\in Ze∈Z,函数fe:G→Gf_e:G\rightarrow Gfe​:G→G定义为fe(g)=gef_e(g)=g^efe​(g)=ge。如果gcd(e,m)=1gcd(e,m)=1gcd(e,m)=1,则fff双射;如果d=e−1d=e^{-1}d=e−1 mod mmm,那么fdf_dfd​是fef_efe​的逆。(fd(fe(g))=fd(ge)=(ge)d=ged=g[edmodm]=g1=gf_d(f_e(g))=f_d(g^e)=(g^e)^d=g^{ed}=g^{[ed mod m]}=g^1=gfd​(fe​(g))=fd​(ge)=(ge)d=ged=g[edmodm]=g1=g,双射通过函数的逆来证明)

群Zn∗\mathcal{Z}_n^*Zn∗​

对于Zn={0,1……n−1}Z_n=\{0,1……n-1\}Zn​={0,1……n−1},"0"对于乘法运算没有可逆元,把"0"除去,得到集合{1,2,……n−1}\{1,2,……n-1\}{1,2,……n−1},这个集合是否对于乘法运算满足群的定义呢?需要判断是否每个元素都有可逆元。

在“模运算”中阐述过:bbb在模NNN下是可逆的↔gcd(b,N)=1\leftrightarrow gcd(b,N)=1↔gcd(b,N)=1,也就是只有bbb和NNN互素,在模NNN下bbb才有可逆元。那么我们取这么一个集合:ZN∗={b∈{1,…N−1}∣gcd(b,N)=1}Z_N^*=\{b\in\{1,…N-1\}|gcd(b,N)=1\}ZN∗​={b∈{1,…N−1}∣gcd(b,N)=1}。

  • ZN∗Z_N^*ZN∗​在运算⋅modN\cdot_{mod N}⋅modN​下,是交换群。
  • 如果N=pN=pN=p是素数,则ZN∗={1,2,……N−1},ϕ(N)=∣ZN∗∣=N−1Z_N^*=\{1,2,……N-1\},\phi(N)=|Z_N^*|=N-1ZN∗​={1,2,……N−1},ϕ(N)=∣ZN∗​∣=N−1;
  • 如果N=pqN=pqN=pq,p、qp、qp、q是素数,则对于a∈{1,2,……N−1}a\in\{1,2,……N-1\}a∈{1,2,……N−1},如果p∣ap\mid ap∣a或者q∣aq\mid aq∣a,则gcd(a,N)≠1gcd(a,N)\neq 1gcd(a,N)​=1,也就是说满足p∣ap\mid ap∣a或者q∣aq\mid aq∣a的aaa不在ZN∗Z_N^*ZN∗​中。这样的aaa有{p,2p,……(q−1)p},{q,2q,……(p−1)q}\{p,2p,……(q-1)p\},\{q,2q,……(p-1)q\}{p,2p,……(q−1)p},{q,2q,……(p−1)q},共有p−1+q−1p-1+q-1p−1+q−1个,那么ϕ(N)=N−1−(p−1+q−1)=pq−1−p+1−q+1=pq−p−q+1=(p−1)(q−1)\phi(N)=N-1-(p-1+q-1)=pq-1-p+1-q+1=pq-p-q+1=(p-1)(q-1)ϕ(N)=N−1−(p−1+q−1)=pq−1−p+1−q+1=pq−p−q+1=(p−1)(q−1)。
  • N=∏ipieiN=\prod_ip_i^{e_i}N=∏i​piei​​,pip_ipi​是素数,ei≥1e_i\ge 1ei​≥1,则ϕ(N)=∏ipiei−1(pi−1)\phi(N)=\prod_ip_i^{e_i-1}(p_i-1)ϕ(N)=∏i​piei​−1​(pi​−1)。
  • ∀a∈ZN∗,aϕ(N)=1\forall a\in Z_N^*,a^{\phi(N)}=1∀a∈ZN∗​,aϕ(N)=1 mod NNN。

群同构和中国剩余定理

  • 群GGG的运算是∘G\circ_G∘G​,群HHH的运算是∘H\circ_H∘H​,如果满足以下两个条件:

    • fff是双射
    • ∀g1,g2∈G\forall g_1,g_2\in G∀g1​,g2​∈G,有f(g1∘Gg2)=f(g1)∘Hf(g2)f(g_1\circ_G g_2)=f(g_1)\circ_H f(g_2)f(g1​∘G​g2​)=f(g1​)∘H​f(g2​)

那么函数f:G→Hf:G\rightarrow Hf:G→H是GGG到HHH的同构/isomorphism,写作G≅HG\cong HG≅H

  • 如果存在GGG到HHH的同构fff,也一定存在HHH到GGG的同构f−1f^{-1}f−1,但有可能地,fff是可高效计算的,然而f−1f^{-1}f−1不能。
  • GGG和HHH的直积:写作G×H,∀(g,h)∈G×H,g∈G,h∈H,G\times H,\forall (g,h)\in G\times H,g\in G,h\in H,G×H,∀(g,h)∈G×H,g∈G,h∈H, 运算∘\circ∘的定义是:(g,h)∘(g′,h′)=(g∘Gg′,h∘Hh′)(g,h)\circ(g',h')=(g\circ_G g',h\circ_H h')(g,h)∘(g′,h′)=(g∘G​g′,h∘H​h′)。
  • 中国剩余定理:N=pqN=pqN=pq,p、qp、qp、q是素数,则ZN≅Zp×Zq,ZN∗≅Zp∗×Zq∗Z_N\cong Z_p \times Z_q,Z_N^*\cong Z_p^*\times Z_q^*ZN​≅Zp​×Zq​,ZN∗​≅Zp∗​×Zq∗​,其中同构函数fff的定义域是x∈{0,……N−1}x\in\{0,…… N-1\}x∈{0,……N−1},值域是(xp,xq),xp∈{0,……p−1},xq∈{0,……q−1}(x_p,x_q),x_p\in\{0,……p-1\},x_q\in \{0,……q-1\}(xp​,xq​),xp​∈{0,……p−1},xq​∈{0,……q−1},f(x)=([xf(x)=([xf(x)=([x mod p],[xp],[xp],[x mod q])q])q])。
    证明

    • fff是双射

      • fff是单射
        如果f(x)=(xp,xq)=f(x′)f(x)=(x_p,x_q)=f(x')f(x)=(xp​,xq​)=f(x′),那么x=x′=xpx=x'=x_px=x′=xp​ mod p,x=x′=xqp,x=x'=x_qp,x=x′=xq​ mod qqq,那么p∣x−x′,q∣x−x′,p\mid x-x',q\mid x-x',p∣x−x′,q∣x−x′,又因为gcd(p,q)=1gcd(p,q)=1gcd(p,q)=1,所以pq∣x−x′pq\mid x-x'pq∣x−x′,即N∣x−x′,x=x′N\mid x-x',x=x'N∣x−x′,x=x′ mod NNN。
      • fff是满射
        因为函数的值域大小应该是p⋅qp\cdot qp⋅q,∣ZN∣=N=p⋅q=∣Zp∣⋅∣Zq∣|Z_N|=N=p\cdot q=|Z_p|\cdot|Z_q|∣ZN​∣=N=p⋅q=∣Zp​∣⋅∣Zq​∣,所以fff是满射。
    • 定义群ZNZ_NZN​中的运算是"+N+_N+N​",直积Zp×ZqZ_p\times Z_qZp​×Zq​的运算是"∘\circ∘",∀x1,x2∈ZN\forall x_1,x_2\in Z_N∀x1​,x2​∈ZN​,有f(x1+Nx2)=f(x1)∘f(x2)f(x_1+_N x_2)=f(x_1)\circ f(x_2)f(x1​+N​x2​)=f(x1​)∘f(x2​)
      f(x1+Nx2)=([x1+Nx2f(x_1+_N x_2)=([x_1+_N x_2f(x1​+N​x2​)=([x1​+N​x2​ mod p],[x1+Nx2p],[x_1+_N x_2p],[x1​+N​x2​ mod q])q])q])
      =([x1+px2=([x_1+_p x_2=([x1​+p​x2​ mod p],[x1+qx2p],[x_1+_q x_2p],[x1​+q​x2​ mod q])q])q])
      =([x1+x2=([x_1+x_2=([x1​+x2​ mod p],[x1+x2p],[x_1+x_2p],[x1​+x2​ mod q])q])q])
      =([x1=([x_1=([x1​ mod p],[x1p],[x_1p],[x1​ mod q])∘([x2q])\circ([x_2q])∘([x2​ mod p],[x2p],[x_2p],[x2​ mod q])q])q])
      =f(x1)∘f(x2)=f(x_1)\circ f(x_2)=f(x1​)∘f(x2​)

使用中国剩余定理进行计算

  • 函数fff是群G→HG\rightarrow HG→H的同构,GGG的运算是∘G\circ_G∘G​,HHH的运算是∘H\circ_H∘H​。∀g1,g2∈G\forall g_1,g_2\in G∀g1​,g2​∈G,当计算g=g1∘Gg2g=g_1 \circ_G g_2g=g1​∘G​g2​时,可以通过以下3步来计算(先分别求函数值,然后在同构群上计算,得到结果再映射到原群):

    • h1=f(g1),h2=f(g2)h_1=f(g_1),h_2=f(g_2)h1​=f(g1​),h2​=f(g2​)
    • h=h1∘Hh2h=h_1\circ_H h_2h=h1​∘H​h2​
    • g=f−1(h)g=f^{-1}(h)g=f−1(h)
  • 直积里的元素(xp,xq)(x_p,x_q)(xp​,xq​)可以被写成(xp,xq)=xp⋅(1,0)+xq⋅(0,1)(x_p,x_q)=x_p\cdot (1,0)+x_q\cdot (0,1)(xp​,xq​)=xp​⋅(1,0)+xq​⋅(0,1),1p↔(1,0),1q↔(0,1)1_p\leftrightarrow(1,0),1_q\leftrightarrow(0,1)1p​↔(1,0),1q​↔(0,1),也就是:(xp,xq)↔[(xp⋅1p+xq⋅1q)(x_p,x_q)\leftrightarrow [(x_p\cdot 1_p+x_q\cdot 1_q)(xp​,xq​)↔[(xp​⋅1p​+xq​⋅1q​) mod N]N]N]

现代密码学8.1--密码学所涉及的数论和群论相关推荐

  1. 密码学复习(密码学及其信息安全基础)(陈小松)

    密码学复习(密码学及其信息安全基础)(陈小松) 整除与同余 1 2 经典密码 概念 凯撒密码 仿射密码 维吉尼亚密码 费尔南密码 普莱费尔密码 希尔密码 现代密码 1 2 整除与同余 1 2 经典密码 ...

  2. python密码学编程pdf-Python密码学编程PDF电子书免费下载

    本书主要介绍了加密算法,同时从Python编程的角度来引导读者将加密算法更好地实现.书中不仅讲述了详细的算法理论,还附以详细的代码示例帮助读者更好地学习算法,并最终实现加密算法.除此之外,书中还提供了 ...

  3. python密码学编程pdf-Python密码学编程 PDF 下载

    相关截图: 资料简介: Python是一种高级程序设计语言,因其简洁.易读及可扩展性日渐成为程序设计领域备受推崇的语言.同时,Python语言在算法领域也得到了很好的应用.本书通过理论和实例相结合的方 ...

  4. 密码学电子书_密码学中的电子密码书(ECB)

    密码学电子书 This Electronic Code Book (ECB) is cryptography as a mode of operation for a block cipher, wi ...

  5. python 密码学计算_python 密码学示例——理解哈希(Hash)算法

    Hash 是密码学安全性的基石,它引入了单向函数(one-way function)和指纹(fingerprint)的概念.即: 对于任意输入,都可以产生相同的.唯一的输出值 输出值中不包含输入值的任 ...

  6. 经典密码学与现代密码学

    一.密码学概论 1.密码学是构建功能更强大.更有效的新的加密-解密方法的科学. 2.密码分析学是发现已有加密法的弱点,以便不用密钥就能还原成明文的科学.. 3.编码法就是用字.短语或数字来替代明文.生 ...

  7. 【密码学一】密码学概念、密码学初体验

    一.密码学 1.密码信息安全常识与威胁 不要使用保密的密码算法 使用低强度的密码比不进行任何加密更危险 任何密码总有一天都会被破解 密码只是信息安全的一部分 不要使用保密的密码算法 很多企业都有下面这 ...

  8. 古典密码学与现代密码学

    一.古典密码学 何谓"加密" "密码"或"加密系统"用于"加密"数据. 对于原始的未加密的数据,我们称之为"明 ...

  9. 计算机密码学试题,现代密码学试卷(含答案)

    武汉大学计算机学院 信息安全专业2004级"密码学"课程考试题 (卷面八题,共100分,在总成绩中占70分) 一.单表代替密码(10分) ① 使加法密码算法称为对合运算的密钥k称为 ...

最新文章

  1. 避免单线程单元 (STA) COM 组件
  2. git 错误 RPC
  3. 100的阶乘c语言代码,求10000的阶乘(c语言代码实现)
  4. Spring Cloud Zuul中使用Swagger汇总API接口文档 1
  5. 网络协议:TCP连接管理
  6. 声谱图,梅尔语谱,倒谱,梅尔倒谱系数
  7. Sql 行转换列(列转换行), JavaScript解决思路
  8. python代理IP的使用
  9. 编译原理实验——递归下降分析法(回溯)
  10. 【bzoj1406】【AHOI2007】【密码箱】【数论】
  11. 计算机excel表格公式教程,职称计算机Excel教程:显示公式的方法
  12. ionic刷新html页面,Ionic实现页面下拉刷新(ion-refresher)功能代码
  13. 站长紧急:新站要沉得住气
  14. 不一样的“中国速度”,数据可视化交通运输大屏,带你见证中国高铁
  15. 我的世界服务器聊天微信互通,我的世界跨平台联机 PC、手机等平台数据互通
  16. 测试高考体育成绩的软件,高考体育成绩查询
  17. 密码学累加器cryptographic accumulator
  18. win10家庭版 遇到的问题
  19. jquery弹幕效果
  20. AddressSanitizer使用介绍

热门文章

  1. map分组后取前10个_人口净流入排名前10的城市,在这10个城市买房,只涨不跌
  2. 佳能g3800故障灯说明书_汽车仪表灯的使用方法以及注意事项
  3. java static method_java static关键字静态方法详解,静态方法实例分享
  4. 未来数据中心运营将靠人工智能和机器学习
  5. 5G会重新定义数据中心吗?
  6. linux替换每个英文字开头为大写,shell脚本,文件里面的英文大小写替换方法。...
  7. Python之fastparquet:fastparquet的简介、安装、使用方法之详细攻略
  8. MAT之GUI:GUI的方式创建/训练/仿真/预测神经网络
  9. Google提出的新型激活函数:Swish
  10. 朴素贝叶斯法分类器的Python3 实现