计算机安全保密:第二讲 密码学数学基础课件.ppt
《计算机安全保密:第二讲 密码学数学基础课件.ppt》由会员分享,可在线阅读,更多相关《计算机安全保密:第二讲 密码学数学基础课件.ppt(94页珍藏版)》请在三一办公上搜索。
1、计算机安全保密第二讲密码学数学基础,本次课的内容,2.1信息论2.2复杂性理论2.3初等数论2.4因数分解2.5 素数的产生2.6 有限域内的离散对数2.7 单向哈希函数,2.1 信息论,2.1.1 熵与疑义度2.1.2 自然语言率2.1.3 密码系统的安全性2.1.4 确定性距离2.1.5 混乱与扩散,2.1.1 熵与疑义度,1949年,Shannon发表“Communication Theory of Secrecy Systems” 一条消息中的信息量,形式上由该消息的熵来度量。,一、自信息和熵,1、自信息 文字、图象、声音是消息,信息是消息的有价值内容。给定一离散事件集X,它含有N 个
2、事件x1,x2,xN,事件xi 出现的概率记作pi,1pi0且 自信息定义定义 事件xi的自信息,记作I(xi),定义为 注意:自信息的定义没有规定对数的底!对数底为2时,自信息单位为比特(bit);对数底取为e时,自信息单位为奈特(nat);对数底为10时,自信息单位为哈特(hart)。,自信息的含义自信息度量了一个随机事件xi未出现时所呈现的不确定性,也度量了该事件xi出现后所给出的信息量。 事件的不确定性越大,则一旦出现给出的信息量也就越大。举例例 计算从英文字母表中任选一个字母时所给出的自信息量。 因为从26个字母中任取一个字母的概率为,所以任选一个字母所给出的信息量为,一、自信息和熵
3、,2、熵自信息描述了事件集X中一个事件出现给出的信息量,整个集X的平均信息量是该集所有事件自信息的统计平均值(数学期望),称作集X的熵。 定义2.2 集X的熵,记作H(X),定义为 定义中,规定0log0=0。H(X)度量了集X中各个事件未出现时所呈现的平均不确定性(疑义度),也度量了集X中一个事件出现时所给出的平均信息量。,疑义度:消息的熵同时也可衡量其不确定性(疑义度),即将消息隐藏在密文中时,要破译它所需的明文比特数(即当消息被加密成密文时,为了获取明文需要解密的明文的位数)。,一、自信息和熵,2、熵举例例 给出集按定义有:I(x1) =-log2 1/2=log2 2 =1比特,I(x
4、2)=I(x3)=-log2 1/4=log2 4=2比特。于是一个事件集的熵越大,其不确定性越高。,。,比特。,关于熵的实际例子,例:X可能在下周某天去钓鱼。星期一,星期日共有七种可能(x1,x7),假设各种可能性出现概率相等,则:P(Xi)=1/7,H(x)=7(1/7)log21/7=log21/7= log27同时,H(x)也指出了X中的信息量将消息中所有可能的值进行编码时所需的最少比特数。 2 H(x)= log27 3b1b2b3可以表示一周的7个状态:000 星期日001 星期一110 星期六保留,关于熵的实际例子,甲任意取一个不超过15的整数,由乙来猜,但允许乙提K个问题,甲只
5、回答“是”或者“非”,问K多大时可以确定猜到该数。,解:若令乙猜想作为事件V,V可能有16种结果,假定这16种结果是等概率的,V的熵为:H(V)= log216令事件Ak=U1U2U3Uk为提问k个问题,但Ui的熵不超过log22=1,(因为只有“是”或者“非”),故Ak的熵为不超过k比特,则:log216 klog22 =k, k 4故 k=4,继续前面的例子,0到15之间的数可以由4比特信息来表示。即 而上面的问题实际上可以转化为如何获得这4个比特信息。因为每个问题的答案只有两种,故每个问题的答案最多只能提供1比特的信息。因而如果要确保得到正确结果,则至少需要4次。,那如何保证每次可以获得
6、1位的信息呢?,最直接的四个问题:这个数被表示为四位二进制后,第一位是0吗?这个数被表示为四位二进制后,第二位是0吗?这样,我们可以确保每次都可以得到一位信息。,思考?,假设乙的第一个问题是“这个数字是a吗?” 其中a是0-15之间的任意一个确定的数。,如果乙得到“是”的回答,请问该事件提供的信息量是多少?如果乙得到“否”的回答,请问乙是否还能够确保在规定次数之内得到正确结果?为什么?,思考?,假设乙的第一个问题是“这个数字大于11吗?”,如果乙得到“是”的回答,请问该事件提供的信息量是多少?如果乙得到“否”的回答,请问乙是否还能够确保在规定次数之内得到正确结果?为什么?,关于熵的实际例子,有
7、25个外表完全相同的硬币,其中24个重量完全一样,有一个较轻的伪币,用无砝码的天平,试问要做多少次的比较,可以找到这枚伪币?,继续前面的例子,解:事件V为找出伪币,可能有25个结论,他们是等概率,故:H(V)= log225,事件U为天平称的结果,可能有3种情况:1.左右平衡;2.左边重;3.右边重;故:H(U)= log23令Ak=U1U2U3Uk为连续用k次天平的事件, klog23 log225 k (log225)/ log23=2.93故 k最少为3次,继续前面的例子,一种解决方案:25=8+8+9(第一次)天平两端各放8个,如果平衡,则伪币在剩余的9个之中,跳到ii;如果不平衡,则
8、伪币在较轻的8个之中,跳到iii。9=3+3+3(第二次)天平两端各放3个,如果平衡,则从剩下3个中寻找伪币。否则,从较轻的3个中寻找伪币。8=3+3+2(第二次)天平两端各放3个,如果平衡,则从剩下2个中寻找伪币。否则,从较轻的3个中寻找伪币。,思考?,有25个外表完全相同的硬币,其中24个重量完全一样,伪币重量不一样,但不知是轻还是重,用无砝码的天平,试问要做多少次的比较,可以找到这枚伪币?,2.1.2 自然语言率,自然语言率:对于给定的一种语言,其自然语言率为r = H(M)/ N其中N为消息长度。英语的自然语言率:1.0比特/字母1.5比特/字母它是一个语言系统的实际表现力,实际上是一
9、个语言系统的实际熵。,绝对语言率,绝对语言率:每个字符编码的最大比特数,这里假设每个字符序列出现的机会相等。若语言中有L个字母,则绝对语言率为:R = log2L为单个字母的最大熵。英语的绝对语言率:log226 4.7比特/字母它是一个语言系统理论上的最大表现力。当每个字符出现的概率相同时,其具有最大表现力。实际上是语言系统的最大熵。,冗余度:语言的冗余度记为D,定义为:D = R - r其中,R为绝对语言率,r为自然语言率。英语:r = 1.3比特/字母,则D = 3.4比特/字母。,2.1.3 密码系统的安全性,绝对安全的密码系统:M:明文空间;K:密钥空间;C:密文空间;c= E(m,
10、 k)。E: M C。H(M), H(K)绝对保密的密码系统的必要条件:H(K) H(M)卢开澄,计算机密码学,清华大学出版社。即:一次一密(密钥与消息本身一样长,且密钥不重复使用)系统。密码系统的熵:衡量密钥空间K的大小的一个标准,通常是密钥数以2为底的对数。H(K) = log2k,2.1.4 确定性距离,对于长度为n的消息,能够将一段密文消息解密成与原始明文同种语言的可懂文本的密钥个数为:2H(K)- nD - 1确定性距离:能够唯一地确定密钥的最短的密文长度的近似值。对称密码系统的确定性距离:定义为密码系统的熵除以语言的冗余度。U = H(K)/ D理想安全的密码系统:确定性距离无限大
11、的密码系统。,2.1.5 混乱与扩散,混乱:在加密变换中,让密钥与密文的关系尽可能复杂的做法。实现混乱的方法:代替扩散:在加密过程中,尽可能将明文的位置统计特性在密文中消除。实现扩散的方法:换位,2.2 复杂性理论,2.2.1 算法复杂性2.2.2 问题复杂性,2.2.1 算法复杂性,算法的复杂性通常由两个变量来衡量:T(时间复杂性)和S(空间复杂性,或存储需求)。T和S都用n的函数来表示,其中n为输入的大小。数量级法:当n增大时,复杂性函数中增加得最快的一项。,多项式时间算法:O(1):常数的O(n):线性的O(n2):平方的O(nm):m为常数指数时间算法:O(tf(n),其中t为大于1的
12、常数,f(n)为n的多项式函数。超多项式时间算法:O(cf(n),其中c为大于1的常数,f(n)大于常数,小于线性。,2.2.2 问题复杂性,图灵机:一个有限状态机,具有无限的读写存储磁带,是一个理想化的计算模型。问题:易解的问题:可以在多项式时间内求解难解的问题:只能在指数时间内求解不确定的问题:找不出解决的算法,不考虑算法的时间复杂性,问题复杂性的划分:P问题:可以在多项式时间内求解的问题。NP问题:只能在一个非确定性的图灵机(能够进行猜测的一种图灵机)上在多项式时间内求解的问题。NP完全问题:一些特定的NP问题,与其他NP问题同等困难。P空间问题:可以在多项式空间内求解,但不能在多项式时
13、间内求解的问题。P空间完全问题:与其他P空间问题同等困难。指数时间问题,2.3 初等数论,2.3.1 模运算2.3.2 素数2.3.3 最大公因数2.3.4 乘法逆元素2.3.5 Fermat小定理及欧拉函数2.3.6 中国剩余定理2.3.7 二次剩余2.3.8 Legendre(勒让得)符号2.3.9 Jacobi(雅各比)符号2.3.10 生成元2.3.11 有限域中的计算,2.3.1 模运算,同余:如果a = b + kn,k为整数,则a b(mod n)a mod n :a模n操作,表示a除以n的余数,为 0到n 1之间的整数。例如:(79) mod 12 = 16 mod 12 =
14、4,模运算(+、 )满足交换律、结合律和分配律。(a+b) mod n=(a mod n)+(b mod n)mod n(a-b) mod n=(a mod n)-(b mod n)mod n(a*b) mod n=(a mod n)*(b mod n) mod n(a*(b+c) mod n=(a*b mod n)+(a*c mod n) mod n,按模计算原理:对中间结果作模运算与做完了全部运算后再做模运算结果相同。求:1711mod 26=?,按模指数运算:am mod n将指数运算作为一系列乘法运算,每次做一次模运算。例:a8 mod n = (a2 mod n)2 mod n)2
15、mod n当m不是2的乘方时,将m表示成2的乘方和的形式。例如:25=(11001)2,即25=24+23+20 a25 mod n = (a16 a8 a) mod n = (a2)2)2)2 (a2)2)2 a) mod n = (a2 a)2)2)2 a) mod n适当存储中间结果,则只需6次乘法:(a2mod n) a)mod n)2mod n)2mod n)2mod n) a)mod n,求1711mod26=?,2.3.2 素数,素数(质数):大于1的整数,只能被1和本身整除。有无穷多个素数。如:2,73,2521,2365347734339,2756839-1,2.3.3 最大
16、公因数,公因数:两个整数a,b的公因数定义为能同时整除a,b的所有整数。最大公因数:a与b的公因数中能被所有a,b的公因数整除的正整数,记为gcd(a,b)。互素(互质):两个整数称为互素的,如果它们除了1以外没有其他的公因数,即 gcd(a,b)=1。,最大公因数的求法:辗转相除法即Euclid算法例如:求gcd(15,36)36=15 2+615=6 2+36=3 2+0因此,gcd(15,36)=3原理:若a b (mod c),则 gcd(a,c) = gcd(b,c)这里,gcd(15,36) = gcd(15,6) = gcd(6,3) = 3理论基础:若a=bq+r,则gcd(a
17、,b)=gcd(b,r),定理:若a=bq+r,则gcd(a,b)=gcd(b,r) 那么:gcd(a,b)=gcd(b, a mod b) until a mod b =0 then b is the result.证明:d=(a,b),d=(b,r)d|(a bq) d|r,d为b,r的公因数;d|d d=hdd|(bq+r) d|a,d为a,b的公因数;d|d d=kd所以 kh=1,由于d,d都为正整数,所以k和h也都为正整数,故: k=h=1;,2.3.4 乘法逆元素,定理:axb mod n有解的充要条件是d|b,其中d=gcd(a,n)。我们关心下列同余式:(b=1时)当b=1时
18、,d=1,即可得:如果gcd(a,n)=1,则ax 1 mod n有解。如果ax 1 mod n有解,则gcd(a,n)=1。,2.3.4 乘法逆元素,求x,满足 (a x) mod n = 1, 即 x a-1(mod n)当a与n互素时, 方程 x a-1(mod n) 有唯一解;当a与n不互素时, 此方程无解。如果n为素数,则从1到n-1的任意整数都与n互素,即在1到n-1之间都恰好有一个关于模n的乘法逆元。求乘法逆元:扩展的Euclid算法例:求5关于模14的乘法逆元素辗转相除:14 = 5 2 + 4 5 = 4 + 1逆推:1 = 5 - 4 = 5 - (14 - 5 2)= 5
19、 3 - 14 因此,5关于模14的乘法逆元为3。,练习,练习:求17关于模26的乘法逆元素。,答案:2326 = 17 + 9 1 = 9 - 817 = 9 + 8 = 9 - (17 - 9)9 = 8 + 1 = 9 2 - 17 = (26 - 17) 2 - 17 = 26 2 - 17 3 = 17 (-3) + 26 2(17 23 - 26 15),2.3.5 Fermat小定理及欧拉函数,Fermat小定理:如果m为素数,a不能被m整除,则 am-1 1 (mod m)n为正整数,Zn=0,1,2,n-1为模n的集合,Zn为模n的完全剩余集。Zn*=a Zn| gcd(a,
20、n)=1称为模n的简化剩余集。(n)=| Zn*|, 表示Zn*元素的个数。称为欧拉函数, (n)为n的欧拉函数值。 如果n是素数,则(n) = n-1设n = p1r1 p2r2 pmrm, 其中p1, p2, ,pm是n的素数因子, 则(n) = n (1-1/p1) (1-1/p2) (1-1/pm)=(n/ (p1 p2 pm) (p1-1) (p2-1) (pm-1) (8)=?,如果n = pq,其中p和q为素数,则(n)= (p 1)(q 1)。 例:n=15,求(15).解:Zn=0,1,2,3,4,14Zn*=1,2,4,7,8,11,13,14,因此 (15)=815=3*
21、5 (15)= (3-1)*(5-1)=8 ,欧拉扩展的Fermat小定理,欧拉扩展的Fermat小定理:如果gcd(a,n) = 1,则 a(n) mod n = 1。即:如果gcd(a,n) = 1,则a*a (n)-1 mod n=1即a关于mod n的乘法逆元素为a (n)-1 再求:17关于模26的乘法逆元素?,中国剩余定理-韩信点兵,秦朝末年,楚汉相争。一次,韩信将1500名将士与楚王大将李锋交战。苦战一场,楚军不敌,败退回营,汉军也死伤四五百人,于是韩信整顿兵马也返回大本营。当行至一山坡,忽有后军来报,说有楚军骑兵追来。只见远方尘土飞扬,杀声震天。汉军本来已十分疲惫,这时队伍大哗
22、。韩信兵马到坡顶,见来敌不足五百骑,便急速点兵迎敌。他命令士兵3人一排,结果多出2名;接着命令士兵5人一排,结果多出3名;他又命令士兵7人一排,结果又多出2名。韩信马上向将士们宣布:我军有1073名勇士,敌人不足五百,我们居高临下,以众击寡,一定能打败敌人。汉军本来就信服自己的统帅,这一来更相信韩信是“神仙下凡”、“神机妙算”。于是士气大振。一时间旌旗摇动,鼓声喧天,汉军步步进逼,楚军乱作一团。交战不久,楚军大败而逃。,我国古代数学名著孙子算经中,提出了闻名于世的“物不知数”问题。原文是:“今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二。问物几何?”,这个问题的解法,()“笨”算法
23、原来的问题题意是:求一数,三除余二,五除余三,七除余二。因为以3除余2,以7除余2的数,所以以21除也余2而23是以3,7除余2的最小数,它刚好又是以5除余3的数。,()古代的口诀解法 程大位著的算法统宗,对“物不知其数”的问题的解答方法用下面的口诀标出:“三人同行七十稀,五树梅花廿一枝,七子团圆正半月,除百零五便得知。”,“三人同行七十稀,五树梅花廿一枝,七子团圆正半月,除百零五便得知。”,它的意义是:以70乘用3除的余数2,21乘用5除的余数3,15乘用7除的余数2,然后总加起来。如果它大于105,则减105,若仍大再减,最后得出来的正整数就是答案了。,它的形式是:270321215=23
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机安全保密:第二讲 密码学数学基础课件 计算机 安全保密 第二 密码学 数学 基础 课件
链接地址:https://www.31ppt.com/p-1596214.html