第四章 公钥密码
第四章 公钥密码
公钥密码体制也被称为: 非对称密码体制
公钥密码的基本思想
• RSA算法原理及相关安全性分析
• ElGamal算法原理及相关安全性分析
• SM2算法原理
• 选择密文攻击
对称密码算法的缺陷
- 密钥分配问题:通信双方加密通信前要通过秘密的安全信道协商加密密钥,这种安全信道可能很难实现,对于这个信道的实现要求甚至比消息的安全性要求还要高
- 密钥管理问题:在多用户网络中,任何两个用户之间都需要有共享的秘密钥,n个用户需要Cn2=n(n-1)/2个密钥,n=5000时,Cn2=12,497,500,系统开销非常大
- 没有签名功能:当主体A收到主体B的电子文挡时,无法向第三方证明此电子文档确实来源于B,传统单钥加密算法无法实现抗抵赖的需求
公钥密码的主要作用
- 基于公钥的密钥分配(如DH密钥交换协议实现密钥分配)
- 公钥加密
- 数字签名
公钥密码的理论基础: 陷门单向函数
单向函数:就是一个方向走很轻松,比如hash
陷门单向函数,就是在hash的过程中需要加入一个t,t叫做陷门。有t就可以反求,没有就不行。
研究公钥密码算法就是要找出合适的陷门单向函数
困难问题
- 大整数分解问题
- 若已知两个大素数p和q,求n = pq是容易的。
- 而由n,求p和q则是困难的,这就是大整数分解问题。
- 离散对数问题
- 给定一个大素数p,p-1含另一大素数因子q,则可构造一个乘法群,它是一个p-1阶循环群。设g是的一个生成元,1<g<p-1。
- 已知x,求y=g^x modp是容易的
- 而已知y、g、p,求x使得y=g^x modp成立则是困难的,这就是离散对数问题。
RSA
RSA算法 - Dinesaw - 博客园 (cnblogs.com)
ElGamal密码体制
加密过程中选择的随机整数k也需要保密且为一次性
- K泄露,则敌手可计算出y^k从而可以计算出M
- 使用同一k加密不同的明文M,M',如果敌手知道M就可由C2/C2' =M/M'求出M'
特点:
- 安全性基于有限域上的离散对数的难解性
- 加密算法是概率算法
- 不能抵御选择密文攻击
- 存在密文扩张
ElGamal的选择密文攻击
椭圆曲线密码体制
为保证RSA算法的安全性,它的密钥长度需一再增大,使得运算负担越来越大。相比之下,椭圆曲线密码的密钥长度是其1/5乃至1/10
(53条消息) 【密码学竞赛】椭圆曲线上的计算(多倍点问题)
椭圆曲线上的密码
有两点,一个点P,Q,并且Q=kP。P的阶是满足nP=O的最小正整数n。
(1)已知k和P易求Q;
(2)已知P、Q求k则是困难的
这就是椭圆曲线上的离散对数问题,可应用于构造公钥密码体制。
SM2
参数
通常选择特征p为160bit,加密的SEED不少于192bit的比特串
---------------------------
“朝着一个既定的方向去努力,就算没有天赋,在时间的积累下应该也能稍稍有点成就吧。”