欢迎来到天天文库
浏览记录
ID:37730120
大小:5.58 MB
页数:53页
时间:2019-05-29
《信息安全导论(4-3密码基础-非对称密码)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、密码基础-非对称密码又称公钥密码信息安全导论(模块4-密码基础)1对称密码体制使用中存在的问题密钥分配问题:通信双方要进行加密通信,需要通过秘密的安全信道协商加密密钥,而这种安全信道可能很难实现密钥管理问题:在有多个用户的网络中,任何两个用户之间都需要有共享的秘密钥,当网络中的用户n很大时,需要管理的密钥数目非常大n(n-1)/22对称加密示意图注意注意3公钥密码体制1976年,W.Diffie和M.E.Hellman发表了“密码学的新方向”一文,提出了公钥密码学(Public-keycryptography)的思想,在公钥密码体
2、制(Public-keycryptosystem)中加密密钥和解密密钥是不同的,加密密钥可以公开传播而不会危及密码体制的安全性。通信的一方利用某种数学方法可以产生一个密钥对,一个称为公钥(Public-key),另外一个称为私钥(Private-key)。该密钥对中的公钥与私钥是不同的,但又是相互对应的,并且由公钥不能推导出对应的私钥。选择某种算法(可以公开)能做到:用公钥加密的数据只有使用与该公钥配对的私钥才能解密。4公钥密码体制公钥密码体制(非对称)包括两个密钥:公钥:可以被任何人知道,用于加密私钥:只有消息的接收者知道,用于
3、解密加密者或其他人不能解密从公钥无法导出私钥是密码学几千年历史中最有意义的结果5公钥密码的特点由私钥及其他密码信息容易计算出公开密钥由公钥及算法描述,计算私钥是困难的因此,公钥可以发布给其他人6注意注意非对称加密示意图7公钥密码的核心是使用一种特殊的函数——单项陷门函数,从一个方向求值是容易的,但逆向计算很困难定义:设f是一个函数,如果对于任意给定的x,计算y,使得y=f(x)是容易计算的,但对于任意给定的y,计算x是难解的,即求f的逆函数是难解的,则称f是一个单向函数8定义:设f是一个函数,t是与f有关的一个参数。对于任意给定的
4、x,计算y,使得y=f(x)是容易的。如果当不知道参数t时,计算f的逆函数是难解的但当知道参数t时,计算f的逆函数是容易的则称f是一个单向陷门函数,参数t称为陷门9公钥密码中,加密函数就是一个单向陷门函数,只有解密者知道陷门,可以容易地进行解密,而不知道陷门的人则无法有效解密10典型的公钥密码算法1:背包算法背包系统是1978年Merkle和Hellman基于求解背包问题的难解性提出的一个公钥密码系统背包问题:111213例1415加解密运算:1617例1819发送方(加密)20接收方(解密)21典型的公钥密码算法2:RSARSA
5、是Rivest、Shamire和Adleman于1978年在美国麻省理工学院研制的其安全性建立在“大数分解和素性检测”这一数论难题基础上将两个大素数相乘是容易计算的将该乘积分解成两个大素数因子是困难的(计算上不可行)221.密钥的产生①选两个互异的大素数p和q。②计算n=p×q,φ(n)=(p-1)(q-1),其中φ(n)是n的欧拉函数值。③选一整数e,满足16、。⑤以{e,n}为公开钥,{d,p,q}为秘密钥。RSA算法232.加密加密时首先将明文比特串分组,使得每个分组对应的十进制数小于n,即分组长度小于log2n。然后对每个明文m,作加密运算:c≡memodnRSA算法243.解密对密文分组的解密运算为:m≡cdmodn证明RSA算法中解密过程的正确性.证明过程用到数论中的知识cdmodn≡medmodn≡mRSA算法25例:选p=7,q=17.求得n=p×q=119,φ(n)=(p-1)(q-1)=96.取e=5,满足17、1mod96且小于96的d.因为77×5=385=4×96+1,所以d为77,因此公开钥为{5,119},秘密钥为{77,7,17}.设明文m=19,则由加密过程得密文为c≡195mod119≡2476099mod119≡66;解密过程为m≡6677mod119≡19.RSA算法261.RSA的加密与解密过程RSA的加密、解密过程都为求一个整数的整数次幂,再取模。如果按其含义直接计算,则中间结果非常大,有可能超出计算机所允许的整数取值范围。如上例中解密运算6677mod119,先求6677再取模,则中间结果就已远远超出了计算机允许8、的整数取值范围。而用模运算的性质:(a×b)modn=[(amodn)×(bmodn)]modn就可减小中间结果。RSA中的计算问题272.模指数运算的快速算法例如求x16,直接计算的话需做15次乘法。然而如果重复对每个部分结果做平方运算即求x,x
6、。⑤以{e,n}为公开钥,{d,p,q}为秘密钥。RSA算法232.加密加密时首先将明文比特串分组,使得每个分组对应的十进制数小于n,即分组长度小于log2n。然后对每个明文m,作加密运算:c≡memodnRSA算法243.解密对密文分组的解密运算为:m≡cdmodn证明RSA算法中解密过程的正确性.证明过程用到数论中的知识cdmodn≡medmodn≡mRSA算法25例:选p=7,q=17.求得n=p×q=119,φ(n)=(p-1)(q-1)=96.取e=5,满足17、1mod96且小于96的d.因为77×5=385=4×96+1,所以d为77,因此公开钥为{5,119},秘密钥为{77,7,17}.设明文m=19,则由加密过程得密文为c≡195mod119≡2476099mod119≡66;解密过程为m≡6677mod119≡19.RSA算法261.RSA的加密与解密过程RSA的加密、解密过程都为求一个整数的整数次幂,再取模。如果按其含义直接计算,则中间结果非常大,有可能超出计算机所允许的整数取值范围。如上例中解密运算6677mod119,先求6677再取模,则中间结果就已远远超出了计算机允许8、的整数取值范围。而用模运算的性质:(a×b)modn=[(amodn)×(bmodn)]modn就可减小中间结果。RSA中的计算问题272.模指数运算的快速算法例如求x16,直接计算的话需做15次乘法。然而如果重复对每个部分结果做平方运算即求x,x
7、1mod96且小于96的d.因为77×5=385=4×96+1,所以d为77,因此公开钥为{5,119},秘密钥为{77,7,17}.设明文m=19,则由加密过程得密文为c≡195mod119≡2476099mod119≡66;解密过程为m≡6677mod119≡19.RSA算法261.RSA的加密与解密过程RSA的加密、解密过程都为求一个整数的整数次幂,再取模。如果按其含义直接计算,则中间结果非常大,有可能超出计算机所允许的整数取值范围。如上例中解密运算6677mod119,先求6677再取模,则中间结果就已远远超出了计算机允许
8、的整数取值范围。而用模运算的性质:(a×b)modn=[(amodn)×(bmodn)]modn就可减小中间结果。RSA中的计算问题272.模指数运算的快速算法例如求x16,直接计算的话需做15次乘法。然而如果重复对每个部分结果做平方运算即求x,x
此文档下载收益归作者所有