学习
实践
活动
专区
工具
TVP
写文章
专栏首页包罗万想Dan Boneh密码学笔记10

Dan Boneh密码学笔记10

10.Intro. Number Theory

1.Notation

2.Fermat and Euler

3.Modular e’th roots

4.Arithmetic algorithms

5.Intractable problems

更新本节用了三天。最近开学事情有点多,学习上有点不知道先学哪个。要学的东西太多了,区块链安全的15篇论文、以太坊的课程、密码学课程(进度10/13)、UC安全框架、现在学本节课的过程中遇到了些困难,又开始学信息安全数学基础(近世代数、数论)......越学越多,倒是也挺好,轮换着学,换脑子.....就是头皮有点冷。

在几经坎坷后,决定先把密码学的课刷完。本节课的数论基础,仅仅是为后面这几节课的铺垫。刚好够用。信息安全数学基础的东西不是很多,但是也需要时间。本科学过信安数基,对刷本节课非常有帮助。可能是斯德哥尔摩综合征吧,被数学虐的这么惨,现在竟然觉得有意思了......原来数学这么有用。

1.Notation

N 正整数

p 正质数

双对角线Z_N 表示集合{0,1,2…….,N-1} 以及模N的加法和乘法,Z_N表示一个环

最大公约数

扩展的欧几里得算法

x和y最大公约数是1,则x和y互质

Z_N 中哪些元素有逆?当且仅当X和N互质时

计算逆的方法,找到a和b,a就是X的逆

Z_N* 是Z_N中所有可逆的元素

0与p不互质

Z_p*就是Z_p除去0,意味着Z_p中的所有元素都是可逆的,0除外

Z_p*的大小就是p-1

解决线性同余方程

欧几里得算法求逆,时间复杂度是,是一个平方算法,quadratic algorithm,事实上这是已知的最好的算法。

2.Fermat and Euler

费马和欧拉的贡献

100年后欧拉给出了这个费马小定理的证明

另一个计算X模质数的逆的算法

不足,这个算法只能工作在质数模上,而欧几里得算法可以工作在合数模上

实际上这个算法效率更低

简单的费马小定理的应用

假质数FP(carmichael数,分布密度指数级衰减),有很少的数,不是质数,是合数的,却能通过这个检测的。

随机选择落到FP集合里的概率是很小的,可以忽略。

这种费马检测,是简单的但是实际中并不用这种方法来生成质数。

质数定理,迭代次数的期望是1024*ln2,约为710。

(Z_p)*的结构,是一个循环群

到g^(p-2),因为到p^(p-1)=1 Zp回到了1

这样的元素g叫做生成元generator,比如3对于p=7

不是每个元素都是生成元比如2对于p=7

g的全体幂组成的集合,叫做g的生成群,用<g>表示

Ord(g)表示g的阶=集合的个数|<g>|

拉格朗日定理的一个特例,有限子群的阶必然整除有限群的阶

费马小定理是拉格朗日定理的直接推论

推广到合数Z_N^*的结构。

欧拉定理,一个费马小定理的直接推广

给定一个整数N,欧拉定义了函数Φ(phi), φ(M)表示Z_N^*的大小,也叫做欧拉的φ函数

对质数,φ(p)=p-1

之后再RSA系统中要用:

如果N=p·q,pq是两个质数,φ(N)=N-p-q+1=(p-1)(q-1)

N是Z_N的大小,移除所有与m不是互质的元素,

一个元素如何才能不与m互质?它要不被p整除,要不就被q整除。

在0到m-1之间一定有q个元素能被p整除,一定有p个元素能被q整除。

减去p,来减去那些被q整除的数;减去q,来减去那些被p整除的数

我们见了0两次,因为0被q和p同时整除,所以再+1

欧拉还证明了这个定理,这是费马小定理的一个推广,特别地,费马小定理只适用于质数的情况。

欧拉定理还适用于合数

欧拉定理也是拉格朗日定理的特例 欧拉定理是RSA密码系统的基础

3.Modular e’th roots

上节讨论了如何解模线性方程,这节讨论如何解模二次方程

如何计算模e次方根

通过使用求逆的算法,知道如何解线性方程了

怎么解高次多项式方程呢?

什么时候这些e次方根存在?

当我们想计算某个数的e次方根时,正好有e与p-1互质,这时c^(1/e)始终存在

proof,首先因为e与p-1互质,我们知道e模p-1有逆,记为d

当e与p-1不互质时

当我们工作在奇质数模下,平方函数实际上是2-to-1函数,它把x和-x映射到了同一个值x^2。

本质上,这个平方函数也是一个群同态

例如4模11是一个二次剩余,9、5、3、1也是二次剩余

如果p是奇质数,Z_p中的二次剩余一共有(p-1)/2+1个

0总是二次剩余的。

约有一半的元素有平方根,另一半则没有

在容易的情况下,Z_p的每一个元素都有一个e次方根,当e与p-1不互质的时候就不是这样了。特别是p=2时,只有一半的元素有平方根。我们能否对Z_p^*里的一个元素x判断出x是否有平方根呢?

Q.R.二次剩余

=1 的就是二次剩余 ,13459有平方根,p=11

勒让德符号,只有1和-1

只证明了二次剩余存在,没有展示如何计算我们想要的平方根

如何计算质数模的平方根

P=3(mod 4)必然有p+1=0 mod 4,意味着p+1可以被4整除

当p=1(mod 4)时,有点困难

求二次方程的解

当Z_p中有平方根的时候,这个公式可解。

如何计算合数模而不是质数模。

计算合数模的e次方根困难得多,需要因子分解N。

4.Arithmetic algorithms

质数模与合数模的加法、乘法和指数算法

如何计算大整数的模

如何在计算机里表示大整数

加减乘除时间复杂度

karatsuba苏联的科学家发明了这种更好的乘法,常用

最好的乘法是n·logn,不实用,特别大数据才有效。

带余数的除法

求幂的问题

有限循环群G,g是生成元

快速计算幂乘的方法,重复平方算法。

举例x=53,把53写成二进制。

5次平方,4次乘法。所以我们只需要做9步乘法就可以得到g的53次方

重复平方算法

y是一个总是做平方运算的寄存器,z是一个累加器

以非常快的速度计算极高次幂运算

循环次数log_2 x 取决于x的位数

5.Intractable problems

质数模、合数模的难题

这些难题是我们下周构建密码系统的基础

考虑一个指数函数,x映射到g^x,正向计算简单,但是逆向计算是困难的。

离散对数discrete logarithm Dlog问题

g^x的离散对数是x

大数,计算离散对数的困难的

不在局限于Z_p*,更抽象地看一个普通群G

有限循环群G,g是生成元

群G上的离散对数问题是困难的

没有有效的算法能够以不可忽略的概率计算出离散对数

离散的椭圆曲线群

椭圆曲线群上的问题要比Z_p*群上的困难的多

计算离散对数有一个亚指数算法,一个n位的质数,这个算法的运行时间的指数大约是n的立方根。

对于椭圆曲线群,运行时间的2^(n/2), 这是一个合适的指数时间算法。

椭圆曲线大小(质数模的大小)是对称密钥大小两倍的原因是,由于指数里的这个因子2 ,我们必须将椭圆曲线群的大小扩大一倍以获得2^n的运行时间

离散对数困难性的直接应用

这个函数H 哈希函数是防碰撞的,找到一个H的碰撞与计算G上的离散对数一样困难

碰撞为两对不同的信息对,(x0,y0),(x1,y1),它们正好在函数H上发生碰撞

得证,g为底h的离散对数。

y1-y0的模q的逆,然后把结果与x0-x1相乘

所以,为什么我们希望q是质数,因为我们需要确保y1-y0始终可逆

如果y1-y0=0,我们无法得到离散对数,与前提矛盾,不存在的。

高斯的毕业论文,因子分解和素性检测

把合数因子分解仍然是个难题,在计算机中

目前最好的算法叫做数域筛法NFS,但是运行时间的指数级的,指数是立方根次的,所以这就是为什么合数要非常大才难分解。

文章分享自微信公众号:
包罗万想

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!

作者:安包
原始发表时间:2019-09-04
如有侵权,请联系 cloudcommunity@tencent.com 删除。
登录 后参与评论
0 条评论

相关文章

  • Dan Boneh密码学笔记7

    1.Active attacks on CPA-secure encryption

    安包
  • Dan Boneh密码学笔记2

    实际上我的学习时间得在四个小时才够,而且得是脑子清醒的四个小时。这还是刚开始简单的流密码......感觉也就听懂了90%,真正消化完......尤其那些安全性的...

    安包
  • Dan Boneh密码学笔记9

    TTP发送给Alice用Alice密钥加密的信息,包括”这个共享密钥是AB之间的“和Kab。

    安包
  • Dan Boneh密码学笔记5

    ⇒ attacker cannot produce a valid tag for a newmessage

    安包
  • Dan Boneh密码学笔记8

    3.Deterministic Encryption Constructions:SIV and wide PRP

    安包
  • Dan Boneh密码学笔记6

    这个定理:如果底层MAC是安全的,且H是抗碰撞的,那么这个组合可以计算长信息的MAC,得到的MAC也是安全的。

    安包
  • Dan Boneh密码学笔记15

    Boneh, D., & Franklin, M. (2001, August). Identity-based encryption from the Wei...

    安包
  • Dan Boneh密码学笔记3

    安包
  • Dan Boneh密码学笔记1

    https://crypto.stanford.edu/~dabo/courses/OnlineCrypto/

    安包
  • Dan Boneh密码学笔记13

    Boneh的课程更新到12章就没了,好像明年会继续更新,第一次像追剧一样追一门课。可太刺激了。

    安包
  • Dan Boneh密码学笔记4

    4.modes of operation: many time key (CBC)

    安包
  • Dan Boneh密码学笔记12

    12.Public key encryption from Diffie-Hellman

    安包
  • Dan Boneh密码学笔记11

    11.Public Key Encryption from trapdoor permutations

    安包
  • Dan Boneh密码学笔记14

    Elliptic Curve Diffie-Hellman Key Exchange

    安包
  • 密码学安全归约6 Simulation and Solution

    密码学安全归约1 Algorithm and Security Model Definitions

    安包
  • Pairings in Cryptography

    Dan Boneh密码学笔记14这篇part3介绍了bilinear pairing。

    安包
  • Random oracles(2)

    上面这篇笔记引用自Fuchun Guo, Willy Susilo, Yi Mu 《Introduction to security reduction》介绍了...

    安包

扫码关注腾讯云开发者

领取腾讯云代金券