公钥密码体制及典型算法-椭圆曲线密码体制.
第4章公钥密码体制
密钥
为公钥。 不再需要, 以n,e为公钥。私密钥为d。(p, q不再需要, 可以销毁。 可以销毁。)
RSA算法在计算上的可行性
加密和解密
无论是加密还是解密都需要计算某个整数的模n 整数次幂,即C=Me mod n、M=Cd mod n。但不 、 需要先求出整数的幂再对n取模,而可利用模运 算的性质: (a mod n) * (b mod n)= (a*b) mod n 对于Me mod n,可先求出M1 mod n,M2 mod n, M4 mod n……,再求Me mod n
RSA算法 RSA算法
RSA Algorithm
概况
MIT三位年轻数学家, 1979年发现了一种用数 论构造双钥的方法,称作MIT 体制 MIT体制 MIT 体制,后来被 广泛称之为RSA体制 RSA体制 RSA体制。 它既可用于加密、又可用于数字签字。 RSA算法的安全性基于数论中大整数分解的 困难性。 迄今为止理论上最为成熟完善的公钥密码体 制,该体制已得到广泛的应用。
公钥密码体制有4个组成部分
明文:算法的输入,它们是可读信息或数据,用M 表示; 密文:算法的输出。依赖于明文和密钥,对给定的 消息,不同的密钥产生密文不同。用E表示; 公钥和私钥:算法的输入。这对密钥中一个用于加 密,为Ke,此密钥公开;一个用于解密,为Kd,此 密钥保密。加密算法执行的变换依赖于密钥; 加密、解密算法
选p=7,q=17。 求n=p×q=119,φ(n)=(p-1)(q-1)=96。 取e=5,满足1<e<φ(n),且gcd(φ(n),e)=1。确 定满足d·e=1 mod 96且小于96的d,因为 77×5=385=4×96+1,所以d为77。 因此公开钥为{5,119},秘密钥为{77,119}。 设明文m=19,则由加密过程得密文为 C=195 mod 119≡2476099 mod 119=66 解密为6677mod 119=19
公钥密码体制公钥密码体制
首次公开提出了“公开密钥密码编码学”的概念。
这是一个与对称密码编码截然不同的方案。
提出公开密钥的理论时,其实用性并没有又得到证明:
❖ 当时还未发现满足公开密钥编码理论的算法; ❖ 直到 1978 年,RSA 算法的提出。
2.基本特征
❖ 加密和解密使用两个不同的密钥 公钥PK:公开,用于加密,私钥SK:保密,用作解密 密钥
3.优点
❖ 密钥管理
加密密钥是公开的; 解密密钥需要妥善保存; 在当今具有用户量大、消息发送方与接收方具有明显的信息不对称
特点的应用环境中表现出了令人乐观的前景。 新用户的增加只需要产生一对公共/私有密钥。
❖ 数字签名和认证
只有解密密钥能解密,只有正确的接收者才拥有解密密钥。
缺点:公共密钥系统的主要弱点是加密和解密速度慢。
加密与解密由不同的密钥完成; 知道加密算法,从加密密钥得到解密密钥在计算上是不可行的; 两个密钥中任何一个都可以作为加密而另一个用作解密。
6.公钥密码算法
除RSA算法以外,建立在不同计算问题上的其他公钥密码算法 有:
基于因子分解问题的Rabin算法; 椭圆曲线公钥算法; 基于有限域中离散对数难题的ElGamal公钥密码算法 基于代数编码系统的McEliece公钥密码算法; 基于“子集和”难题的Merkle-Hellman Knapsack(背包)公钥密码算 法; 目前被认为安全的Knapsack型公钥密码算法Chor-Rivest。
实际应用中的加密方式
❖ 混合加密技术 对称密码体制:密钥分发困难 公钥体制:加解密效率低 将对称加密算法的数据处理速度和公钥算法对密钥的保 密功能相结合 利用对称加密算法加密传输数据 利用非对称加密算法交换会话密钥
实际应用中的加密方式
椭圆曲线加密算法及实例分析
果有,就有两个满足平方根运算的y值(除非这个值是单个的y值 零)。这些(x,y)值就是E (a,b)中的点。
p
(2)椭圆曲线上点的周期计算 ①选取椭圆上一点q(x ,y );
00
②计算 q+q+…+q,使得 nq=0 成立的最小值 n,若 y =0,则 0
此点无周期。 (3)检测 n 是否是素数,如果不是,再回到第(2)步。 采用Miller-Rabin随机性素数测试算法:
56
2004.11
加 密 技 术
2.1 椭圆曲线密码体制思想
选取基域 F ,选择一条椭圆曲线(a,b,p值给定),在E(F )中
q
q
选一个周期很大的点,如选了一个点 G=(x , y ),它的周期为一
G
G
个很大的素数 n,记为∏(p)=n(n 为素数)。在椭圆曲线密码体制
①将 n-1 表示为二进制形式 b b …b ;
④依据 Bob 的公钥计算点(x , y )=kG(k 个 G 相加);
1
1
⑤计算点(x , y )=kQ,如果 x =0,则回到第③步;
2
2
2
⑥计算 C=m*x ; 2
⑦传送加密数据(x , y ,C)给Bob。
1
1
(2)Bob的解密过程
(阶)。经过计算得 n=223。 经过上面算法的验证,得知 n=223 是一个素数,所以点 v 可
在用序列密码对媒体流加密时,网络数据包的大小可以根据 网络的需要来设定,与分组加密不同,这里需要考虑的仅仅是网 络传输的需求。
整个加密过程是:播放过程一旦开始,密钥流生成器就不断 地产生出密码序列,服务器也周期性地发送网络数据包。在数据 流化的过程中,将随机数序列与数据包中的明文序列进行逐位
椭圆曲线公钥密码体制(ECC)
F2m上椭圆曲线的点的加法逆元
• P = (xP, yP)的加法逆元 -P = (xP, xP + yP) • P + (-P) = O • P+O=P
F2m上椭圆曲线不同的点的加法运算
P = (xP, yP) 。如果 P和 Q是不同的点并且P不等于 -Q, 则P + Q = R
s = (yP - yQ) / (xP + xQ) xR = s2 + s + xP + xQ + a yR = s(xP + xR) + xR + yP
F上的椭圆曲线 2m
定义: 对于曲线
y2 +xy= x3 + ax2 + b b不为0,a,b 属于 F2 m
的解的集合构成
F2m 上的椭圆曲线群。记为 E ( F m )
2
F2m上的椭圆曲线举例
• 作为一个简单的例子, 考略 F2 4 , 其上的不可约多项式为 f(x) = x4 + x + 1. • 元素g = (0010)是生成元. • g的幂为: g0 = (0001) g1 = (0010) g2 = (0100) g3 = (1000) g4 = (0011) g5 = (0110) g6 = (1100) g7 = (1011) g8 = (0101) g9 = (1010) g10 = (0111) g11 = (1110) g12 = (1111) g13 = (1101) g14 = (1001) g15 = (0001)
例题
椭圆曲线T=(m=4,f(x)=x4+x+1,g=0010,a=g4,b=g0) 点P=(g6,g8) 求点R=2P
信息安全技术 SM2椭圆曲线公钥密码算法 第4部分:公钥加密算法
算法参数与辅助函数 综述
1
公钥加密算法规定发送者用接收者的公钥将消息加密成密文, 接收者用自已的私钥对收到的密文进 行解密还原成原始消息。 3.2 椭圆曲线系统参数 椭圆曲线系统参数包括有限域 Fq 的规模 q(当 q = 2m 时,还包括元素表示法的标识和约化多项式); 定义椭圆曲线 E(Fq)的方程的两个元素 a、b ∈Fq;E(Fq)上的基点 G = (xG, yG) (G ≠ O),其中 xG 和 yG 是 Fq 中的两个元素;G 的阶 n 及其它可选项(如 n 的余因子 h 等)。 椭圆曲线系统参数及其验证应符合 SM2 椭圆曲线公钥密码算法第 1 部分第 4 章的规定。 3.3 用户密钥对 用户 B 的密钥对包括其私钥 dB 和公钥 PB=[dB]G。 用户密钥对的生成算法与公钥验证算法应符合 SM2 椭圆曲线公钥密码算法第 1 部分第 5 章的规定。 3.4 辅助函数 3.4.1 概述 本部分规定的椭圆曲线公钥加密算法涉及到三类辅助函数: 密码杂凑算法、 密钥派生函数和随机数 发生器。这三类辅助函数的强弱直接影响加密算法的安全性。 3.4.2 3.4.3 密码杂凑算法 密钥派生函数 本部分规定使用国家密码管理局批准的密码杂凑算法,如 SM3 密码杂凑算法。 密钥派生函数的作用是从一个共享的秘密比特串中派生出密钥数据。 在密钥协商过程中, 密钥派生 函数作用在密钥交换所获共享的秘密比特串上,从中产生所需的会话密钥或进一步加密所需的密钥数 据。 密钥派生函数需要调用密码杂凑算法。 设密码杂凑算法为 Hv( ),其输出是长度恰为 v 比特的杂凑值。 密钥派生函数 KDF(Z, klen): 输入:比特串 Z,整数 klen(表示要获得的密钥数据的比特长度,要求该值小于(232-1)v)。 输出:长度为 klen 的密钥数据比特串 K。 a)初始化一个 32 比特构成的计数器 ct=0x00000001; b)对 i 从 1 到 ⎡klen / v ⎤ 执行: b.1)计算 Hai=Hv (Z || ct); b.2) ct++; c)若 klen/v 是整数,令 Ha!⎡klen / v ⎤ = Ha ⎡klen / v ⎤ , 否则令 Ha!⎡klen / v ⎤ 为 Ha ⎡klen / v ⎤ 最左边的 (klen d)令 K = Ha1 || Ha2 || ! || Ha ⎡klen / v ⎤−1 || Ha!⎡klen / v ⎤ 。 3.4.4 随机数发生器 本部分规定使用国家密码管理局批准的随机数发生器。 4 加密算法及流程
密码学中常用数学知识
定义Z 为小于n的所有非负整数集合 定义 n为小于 的所有非负整数集合 Zn={0,1,2,…,n-1}
4.1.4 费尔玛定理和欧拉定理
费尔玛定理: 费尔玛定理: 是素数, 是正整数且gcd(a,p)=1 gcd(a,p)=1, 若p是素数,a是正整数且gcd(a,p)=1,则ap-1≡1 mod p • 证明: 证明: 当gcd(a,p)=1,则a×Zp=Zp 。 则 × 又因为a× 所以a× 又因为 ×0≡0modp,所以 ×(Zp-{0})=Zp-{0} 所以 即:{a mod p,2a mod p,…,(n-1)a mod p} ={1,…,p-1} (a mod p) ×(2a mod p) ×…×(n-1)a mod p=(p-1)!ap-1 mod p × 因此: 因此:(p-1)! ap-1 mod p =(p-1)!modp (p-1)!与p互素,所以乘法可约律,ap-1=1 mod p 与 互素 所以乘法可约律, 互素,
的公因子。 由d|a和d|kb,得d|(a mod b), 故d是b和a mod b的公因子。 和 , , 是 和 的公因子 a,b以及 以及b,a mod b公因子集合相同,故最大公因子也相同。 公因子集合相同, 以及 公因子集合相同 故最大公因子也相同。 gcd(55,22)=gcd(22,11)=gcd(11,0)=11 gcd(11,10)=gcd(10,1)=1
第4章 公钥密码
密码学中常用的数学知识 公钥密码体制的基本概念 RSA算法 椭圆曲线密码体制
4.1.1 群、环、域
<G,*>的定义 的定义: 群<G,*>的定义
*为乘法时,称为乘法群 逆元(a-1) 为乘法时, 逆元( ) 为乘法时 *为加法时,称为加法群 逆元(-a) 为加法时, 逆元( ) 为加法时
5-8椭圆曲线密码
U htA (PB x2RB ) h(d A x1rA )(dBG x2rBG)=h(d A x1rA )(dB x2rB )G=(xU , yU )
V htB (PA x1RA ) h(dB x2rB )(d AG x1rAG)=h(dB x2rB )(d A x1rA )G=(xV , yV )
KB KDF(xV || yV || Z A || ZB ,klen) SB Hash(0x02 || yV || HASH (xV || Z A || ZB || x1 || y1 || x2 || y2 )) S2 Hash(0x03|| yV || HASH (xV || Z A || ZB || x1 || y1 || x2 || y2 ))
若 S 是无穷远点则报错并退出 4: kPB (x2 , y2 ) 5: t KDF (x2 || y2 ,klen)
若t全0返回1 6: C2 M t 7: C3 Hash(x2 || M || y2 ) 8: 输出M的密文C C1 || C2 || C3
解密算法
1: 验证C1是否满足椭圆曲线方程 2: S hC1
R e' x1' mod n r'
SM2之密钥交换协议
A、B协商密钥, 计算ZA、ZB、w ( log2 n ) / 2 1
阶为n的基点G=(xG , yG),h 余因子,(dA , PA )为A的公私钥对,(dB , PB )为B的公私钥对
A
rA [1..n 1] RA rAG (x1 , y1)
密码学原理
椭圆曲线密码
椭圆曲线离散对数问题
SM2之数字签名算法
CONTENT
信息安全技术SM2椭圆曲线公钥密码算法
信息安全技术SM2椭圆曲线公钥密码算法1 范围GB/T XXXXX 的本部分规定了SM2椭圆曲线公钥密码算法涉及的必要数学基础知识与相关密码技术,以帮助实现其它各部分所规定的密码机制。
本部分适用于基域为素域和二元扩域的椭圆曲线公钥密码算法的设计、开发、使用。
2 符号和缩略语B MOV 阈。
正数B ,使得求取B q F 上的离散对数至少与求取q F 上的椭圆曲线离散对数一样困难。
deg ( f ) 多项式f (x )的次数。
E 有限域上由a 和b 定义的一条椭圆曲线。
E (F q ) q F 上椭圆曲线E 的所有有理点(包括无穷远点O )组成的集合。
ECDLP 椭圆曲线离散对数问题。
F p 包含p 个元素的素域。
F q 包含q 个元素的有限域。
F q * 由F q 中所有非零元构成的乘法群。
m 2F 包含m 2个元素的二元扩域。
G 椭圆曲线的一个基点,其阶为素数。
gcd(x , y ) x 和y 的最大公因子。
h 余因子,h=#E (F q )/n ,其中n 是基点G 的阶。
LeftRotate ( ) 循环左移运算。
l max 余因子h 的最大素因子的上界。
m 二元扩域F 2m 关于F 2的扩张次数。
mod f (x ) 模多项式f (x )的运算。
若f (x )是二元域上的多项式,则所有系数执行模2运算。
mod n 模n 运算。
例如,23 mod 7=2。
n 基点G 的阶(n 是#E (F q )的素因子)。
O 椭圆曲线上的一个特殊点,称为无穷远点或零点,是椭圆曲线加法群的单位元。
P P = (x P , y P ) 是椭圆曲线上除O 之外的一个点,其坐标x P ,y P 满足椭圆曲线方程。
P 1+P 2 椭圆曲线E 上两个点P 1与P 2的和。
p 大于3的素数。
q 有限域F q 中元素的数目。
a, b q F 中的元素,它们定义q F 上的一条椭圆曲线E 。
r min 基点G 的阶n 的下界。
13椭圆曲线密码体系
Weierstrass方程被称为光滑的或非奇异的是指对所有适合 以下方程的射影点P=(X:Y:Z) ∈ P2(K)来说, F(X,Y,Z)=Y2Z+a1XYZ+a3YZ2-X3-a2X2Z-a4XZ2-a6Z3=0 F F F 在P点的三个偏导数 X , Y , Z 之中至少有一个不 为 0若否称这个方程为奇异的。 椭圆曲线E的定义: 椭圆曲线E是一个光滑的Weierstrass方程在P2(K)中 的 全部解集合。 Y2Z+a1XYZ+a3YZ2=X3+a2X2Z+a4XZ2+a6Z3 注: a) 在椭圆曲线E上恰有一个点,称之为无穷远点。即(0:1:0) 用θ表示。
RSA/DS A ECC 512 106 768 132 1024 160 2048 211 2100 0 600
椭圆曲线基础知识
1 有关的基本概念
(1) 无穷远元素(无穷远点,无穷远直线) 平面上任意两相异直线的位置关系有相交和平行两 种。引入无穷远点,是两种不同关系统一。 L2 L1 A
Q
B
有限域上的椭圆曲线点集产生方 法
对每一x(0≤x<p且x为整数),计算x3+ax+b
mod p 决定求出的值在模p下是否有平方根,如果没有则 椭圆曲线上没有与这一x对应的点;如果有,则求 出两个平方根。
Ep(a,b)上加法
如果P,Q∈ Ep(a,b)
P+O=P 如果P=(x,y),则(x,y)+(x,-y)=O
3*. 全体无穷远点构成一条无穷远直线。 注:欧式平面添加上无穷远点和无穷远直线,自然构成射 影平面。 L1 L2 A P∞
(2) 齐次坐标 解析几何中引入坐标系,用代数的方法研究欧氏空 间。这样的坐标法也可推广至摄影平面上,建立平面摄影 坐标系。 平面上两相异直线L1,L2,其方程分别为: L1: a1x+b1y+c1=0 L2: a2x+b2y+c2=0
信息安全概论第四章公钥密码体制
14
Diffie-Hellman密钥交换算法 密钥交换算法
Diffie和Hellman在其里程碑意义的文章中, 虽然给出了密码的思想,但是没有给出真正意 义上的公钥密码实例,也既没能找出一个真正 带陷门的单向函数 然而,他们给出单向函数的实例,并且基于此 提出Diffie-Hellman密钥交换算法
13
常用的公开密钥算法
公钥算法的种类很多,具有代表性的三种密码: 公钥算法的种类很多,具有代表性的三种密码: 基于整数分解难题(IFP)的算法体制 基于整数分解难题(IFP)的算法体制(RSA) 基于离散对数难题(DLP)算法体制 基于离散对数难题(DLP)算法体制(ElGamal) 基于椭圆曲线离散对数难题( ECDLP ) 的算法体制 基于椭圆曲线离散对数难题 ( ECDLP) (ECC)
3
4.1 公钥密码体制的基本原理
对称算法的不足
(1)密钥管理量的困难 传统密钥管理:两两分别用一个密钥时, 传统密钥管理:两两分别用一个密钥时,则n个用户需 C(n,2)=n(n-1)/2个密钥 当用户量增大时, 个密钥, 要C(n,2)=n(n-1)/2个密钥,当用户量增大时,密钥空 间急剧增大。 间急剧增大。如: n=100 时, C(100,2)=4,995 n=5000时 n=5000时, C(5000,2)=12,497,500 (2)密钥必须通过某一信道协商,对这个信道的安全 密钥必须通过某一信道协商, 性的要求比正常的传送消息的信道的安全性要高
7
公开密钥密码的重要特性
加密与解密由不同的密钥完成 Y: X: Y = EKU(X) X = DKR(Y) = DKR(EKU(X))
加密: X 解密: Y
知道加密算法,从加密密钥得到解密密钥在计算上 , 是不可行的 两个密钥中任何一个都可以用作加密而另一个用 作解密(不是必须的) X = DKR(EKU(X))
公钥密码体制及典型算法-RSA
公钥密码算法应满足的要求
④ 敌手由B的公开钥PKB求秘密钥SKB在计算 上是不可行的。 ⑤ 敌手由密文c和B的公开钥PKB恢复明文m 在计算上是不可行的。 ⑥ 加、解密次序可换,即 EPKB[DSKB(m)]=DSKB[EPKB(m)] 其中最后一条虽然非常有用,但不是对 所有的算法都作要求。
发方首先用自己的秘密钥SKA对消息m加 密,用于提供数字签字。再用收方的公开钥 PKB第2次加密,表示为 c=EPKB[ESKA[m]] 解密过程为 m=DPKA[DSKB[c]] 即收方先用自己的秘密钥,再用发方的公 开钥对收到的密文两次解密。
23
公钥保密和认证体制
为了要同时实现保密性和确证性,要采用双重加、 解密
20
公钥密码体制认证的原理
以上认证过程中,由于消息是由用户自 己的秘密钥加密的,所以消息不能被他人篡 改,但却能被他人窃听。这是因为任何人都 能用用户的公开钥对消息解密。为了同时提 供认证功能和保密性,可使用双重加、解密。 如下图所示。
21
公钥密码体制的认证、保密框图
22
公钥密码体制认证的原理
18
公钥密码体制认证的原理
因为从m得到c是经过A的秘密钥SKA加 密,只有A才能做到。因此c可当做A对m的 数字签字。 另一方面,任何人只要得不到A的秘密 钥SKA就不能篡改m,所以以上过程获得了 对消息来源和消息完整性的认证。
19
公钥密码体制认证的原理
在实际应用中,特别是用户数目很多时,以 上认证方法需要很大的存储空间,因为每个文件都 必须以明文形式存储以方便实际使用,同时还必须 存储每个文件被加密后的密文形式即数字签字,以 便在有争议时用来认证文件的来源和内容。改进的 方法是减小文件的数字签字的大小,即先将文件经 过一个函数压缩成长度较小的比特串,得到的比特 串称为认证符。 认证符具有这样一个性质:如果保持认证符的 值不变而修改文件这在计算上是不可行的。用发送 者的秘密钥对认证符加密,加密后的结果为原文件 的数字签字。
第6章 椭圆曲线密码体制PPT课件
(Elliptic Curve Cryptography)
二、 McEliece
椭圆曲线公钥密码ECC
1. 简要历史
椭圆曲线(Elliptic curve)作为代数几何中的重要问题已有 100多年的研究历史
1985年,N. Koblitz和V. Miller独立将其引入密码学中,成 为构造双钥密码体制的一个有力工具。
椭圆曲线加密算法
背景 – RSA中用到了因子分解的困难性,而为了增加困难 得加大数的位数,从而导致计算速度变慢。 – ECC可以用较小的密钥长度达到较高的计算难度
获得同样的安全性,密钥长度较RSA短得多 被IEEE公钥密码标准P1363采用
椭圆曲线公钥密码ECC
椭圆曲线上一个点P的k倍表示表示P+P+…(k个点P “相加”),记为kP。
有限域上的椭圆曲线点集产生方法
对每一x(0≤x<p且x为整数),计算
x3+ax+b mod p 决定求出的值在模p下是否有平方根,如果没
有则椭圆曲线上没有与这一x对应的点;如果 有,则求出两个平方根。
Ep(a,b)上加法
如果P,Q∈ Ep(a,b)
–P+O=P
–如果P=(x,y),则(x,y)+(x,-y)=O
利用有限域GF(2n )上的椭圆曲线上点集所构成的群上定义 的离散对数系统,可以构造出基于有限域上离散对数的一 些双钥体制--椭圆曲线离散对数密码体制(ECDLC ),如 Diffie-Hellman,ElGamal,Schnorr,DSA等。
10余年的研外最重要的公 钥密码之一。与RSA算法相比它也有很多独 特的优点。出于国家安全战略考虑,国内学 术界和管理部门一直希望能够在国内一些应 用场合使用椭圆曲线密码。在推广和使用椭 圆曲线密码的过程中,相应的芯片是必不可 少的。然而,由于椭圆曲线密码算法是一种 很复杂的数学算法,如何将椭圆曲线密码算 法芯片化,国内外没有成熟技术。
第4章公钥密码体制
4.2.3 乘法逆元
如果gcd(a,b)=1,那么: 存在a-1,使a* a-1 ≡1 mod b 存在b-1,使b* b-1 ≡1 mod a 这里,把a-1称为a模b的乘法逆元, b-1称为b 模a的乘法逆元
用扩展的欧几里德算法求乘法逆元
gcd(11111,12345)
12345=1*11111+1234 11111=9*1234+5 1234=246*5+4 5=1*4+1 4=4*1+0
characteristic of algorithms
It is computationally infeasible to determine the decryption key given only knowledge of the cryptographic algorithm and the encryption key. Either of the two related keys can be used for encryption, with the other used for decryption.
4.2 数论基础
数论中的许多概念在设计公钥密码算法时是 必不可少的.掌握这些基础知识对于理解公 钥密码体制的原理和应用十分重要.
整 除
定理:设整数a和b,如果存在整数k,使 b=ak,则说b能被a整除,记作:a|b 例:3|15,-15|60 性质:
对所有整数a≠0, a|0, a|a成立 对任意整数b, 1|b成立
本原根的性质
如果a是n的本原根,且:
x1=a1 mod n,x2=a2 mod n,…,xФ(n)=aФ(n) mod n
则:
x1≠x2≠…≠xФ(n),且xФ(n)=1
椭圆曲线加密算法原理
椭圆曲线加密算法原理椭圆曲线加密算法(Elliptic Curve Cryptography,ECC)是一种基于椭圆曲线数学理论的公钥加密算法,被广泛应用于信息安全领域。
相比传统的RSA算法,ECC在保证安全性的同时,能够以更短的密钥长度实现相同的安全等级,因此在资源受限的环境下具有明显的优势。
本文将介绍椭圆曲线加密算法的原理及其在信息安全中的应用。
椭圆曲线加密算法的原理基于椭圆曲线上的离散对数问题。
在椭圆曲线上,存在一个离散对数问题,给定点P和整数n,求解整数m,使得mP = O,其中O为无穷远点。
这一问题的难解性是椭圆曲线加密算法的基础,也是其安全性的保障。
在椭圆曲线加密算法中,每个用户都有一对密钥,包括一个私钥和一个公钥。
私钥是一个随机选取的整数,公钥是私钥对应的椭圆曲线上的点。
发送方使用接收方的公钥对消息进行加密,接收方使用自己的私钥对密文进行解密。
由于椭圆曲线上的离散对数问题的难解性,即使知道公钥和密文,也很难计算出私钥,因此通信过程中的信息安全得到了保障。
椭圆曲线加密算法在实际应用中具有较高的安全性和效率。
相比RSA算法,ECC能够以更短的密钥长度实现相同的安全等级。
以256位的椭圆曲线密钥长度为例,其安全性相当于3072位的RSA密钥长度,大大减少了密钥交换和加密解密过程中的计算量,适合于移动设备、智能卡等资源受限的场景。
除了在传统的加密通信中应用,椭圆曲线加密算法还被广泛应用于数字签名、身份认证、密钥协商等领域。
例如,基于ECC的数字签名方案能够实现消息的完整性和不可抵赖性,保护了通信过程中的数据安全。
另外,ECC也被应用于一些新兴的领域,如物联网、云计算等,为信息安全提供了可靠的保障。
总之,椭圆曲线加密算法作为一种新兴的公钥加密算法,在信息安全领域具有广阔的应用前景。
其基于椭圆曲线数学理论的安全性和高效性,使其成为当前信息安全领域不可或缺的一部分。
随着信息技术的不断发展,相信椭圆曲线加密算法将在更多领域展现其优势,为信息安全保驾护航。
椭圆曲线加密方案原理
椭圆曲线加密方案原理
椭圆曲线加密(Elliptic Curve Cryptography,简称ECC)是一种公开密钥加密算法,其原理基于椭圆曲线上的数学问题。
其加密过
程主要涉及到以下几个步骤:
1. 选择一条合适的椭圆曲线和基点
在椭圆曲线加密方案中,需要先选择一条合适的椭圆曲线和一个
基点G,该基点是椭圆曲线上的一个不必为随机选择的点,即确定的一个点。
2. 生成私钥和公钥
ECC算法中,私钥是一个随机的整数,一般用k表示;公钥则是
基于私钥生成的一个点,表示为P=k*G,其中*是点乘运算。
3. 加密和解密
为了保护机密数据,Bob使用Alice的公钥P_A加密明文数据,
其方法是选择一个随机数r,然后计算点 C_1 = r*G 和 C_2 = M +
r*P_A,其中M是待加密的明文消息。
Bob通过发送(C_1,C_2)给Alice
来传递加密信息。
Alice使用她的私钥k_A解密经过加密和传输的消息,她将计算 P_A = k_A*G,然后使用它从C_1中恢复出随机数r,从而计算M=C_2-r*P_A。
ECC算法比传统的RSA加密算法具有更高的安全性和更短的密钥
长度。
它广泛应用于各种网络加密协议中,例如SSL/TLS协议、SSH加密等。
公钥密码(中Elgamal)
16
ELGamal公钥密码
1985年,El Gamal 在Differ-Hellman密钥交换协议基础上改 进而来 依赖数学难题:DLP (Discrete Logarithm Problem)
17
ELGamal公钥密码
算法
生成密钥对GenKeyPair 加密Encrypt 解密Decrypt
离散对数问题
(备注)算法复杂度:
例如:
离散对数问题
离散对数问题 (Discrete Logarithm Problem),简称 DLP
Given α, y , p, to find x s.t. αx=y (mod p) e.g.
α=2 , y=3 , p=23 , x=? α=2 , y=97206 , p=136943 , x=?
24
ELGamal公钥密码
算法可还原性证明
C2 V-1 mod p =(UM)V-1 mod p =UM(C1 d)-1 mod p =UM((αk)d)-1 mod p =UM((αd)k)-1 mod p =UM((y)k)-1 mod p =UM(U)-1 mod p =M mod p
25
27
ELGamal公钥密码
安全性
针对k重复使用的攻击方法
攻击1(假设攻击者掌握k)如果 k不是一次性的,时间长了 就可能被攻击者获得。又因y是公开密钥,攻击者自然知道。 于是攻击者就可以根据 U=y k mod p计算出U,进而利 用Euclid算法求出U-1。又因为攻击者可以获得密文C2,于是 可根据式C2=UM mod p通过计算U-1C2得到明文M。 攻击2 设用同一个k加密两个不同的明文M和M’,相应的密文 为(C1 ,C2)和(C1’,C2’)。因为y k 不变,所以C2∕C2’= M∕M’,如果攻击者知道M,则很容易求出M’。
密码学公钥密码-PPT
RSA算法得论证
假设截获密文C, 从中求出明文M。她知道 M≡Cd mod n,
因为n就是公开得,要从C中求出明文M,必须先求出d,而d 就是保密得。但知道,
ed≡1 mod Ø(n), E就是公开得,要从中求出d,必须先求出Ø(n),而Ø(n)就是 保密得。
RSA算法得论证
在计算上由公开密钥不能求出解密密钥 但知道,Ø(n)=(p-1)(q-1) 要从中求出Ø(n),必须先求出p与q,而p与q就是保密得。 知道 n=pq,要从n求出p与q,只有对n进行因子分解。 而当n足够大时,这就是很困难得。 只要能对n进行因子分解,便可攻破RSA密码。由此可以 得出,破译RSA密码得困难性<=对n因子分解得困难性。 目前尚不能证明两者就是否能确切相等,因为不能确知除 了 对n进行因子分解得方法外,就是否还有别得更简捷得破译 方法。 目前只有Rabin密码具有:
注:严格来说,公开钥为 e,秘密钥为 d, n 算做公开信息,p,q 为保密信息
2. 加密 先将明文比特串分组,使得每个分组对应的十进制数小于 n,
即分组长度小于 log2n,设分组大小为 k, 2k < n ≤ 2k+1。 然后对每个明文分组 m,作加密运算: c≡me mod n
3. 解密 对密文分组的解密运算为: m≡cd mod n
见:第8章 数论入门、
经典例子
RSA算法 Diffe-Hellman密钥交换算法 ElGamal密码体制 椭圆曲线密码体制ECC
RSA公开密钥算法
RSA算法描述 RSA得实现问题 RSA得安全性
RSA公开密钥算法
1977年由Ron Rivest、Adi Shamir与Len Adleman发明,1978年公布 就是一种分组加密算法
[密码学——基础理论与应用][李子臣][电子课件] 第8章---SM2公钥密码算法
例子:
参数:
取p=11,Ep(1,6),椭圆曲线为y2≡x3+x+6, Ep(1,6)的一个生成元是G=(2,7),私钥d=7, A的公开钥为P=dG=(7,2)。
假定明文M=(9,1)。
加密:
B选取随机数k=6,由kG=6G=6(2,7)=(7,9), M+kPA=(9,1)+6(7,2)=(6,3),得密文为 {(7,9),(6,3)}。
ECC与RSA/DSA在同等安全条件下 所需密钥长度
RSA/DSA 512 768 1024 2048 21000
ECC
106 132 160 211 600
2020/3/17
密码学---基础理论与应用
5
椭圆曲线密码体制的优点
计算量小,处理速度快。 存储空间小。 ECC已被IEEE公钥密码标准P1363采用。
文献:
N.Koblitz, Elliptic Curve Cryptosystems, Mathematics of Computation,48,203-209,1987.
ler, Use of Elliptic Curve in Cryptography, Advances in Cryptology,CRYPTO’ 85 Proceedings. London, UK: Springer Verlag, 1986:417-426.
根 : 5(p1)/4 53 4,因此两个根为4,7 点(2,4)和(2,7)为椭圆曲线上的两个点。
2020/3/17
密码学---基础理论与应用
12
2020/3/17
密码学---基础理论与应用
13
Z11上椭圆曲线y2 x3 x 6中的点
椭圆加密算法
椭圆加密算法椭圆加密算法(ECC)是一种公钥加密体制,最初由Koblitz和Miller两人于1985年提出,其数学基础是利用椭圆曲线上的有理点构成Abel加法群上椭圆离散对数的计算困难性。
优点与经典的RSA,DSA等公钥密码体制相比,椭圆密码体制有以下优点:1、安全性高有研究表示160位的椭圆密钥与1024位的RSA密钥安全性相同。
处理速度快2、在私钥的加密解密速度上,ecc算法比RSA、DSA速度更快。
存储空间占用小。
带宽要求低.原理椭圆曲线密码体制来源于对椭圆曲线的研究,所谓椭圆曲线指的是由韦尔斯特拉斯(Weierstrass)方程:y2+a1xy+a3y=x3+a2x2+a4x+a6 (1)所确定的平面曲线。
其中系数ai(I=1,2,…,6)定义在某个域上,可以是有理数域、实数域、复数域,还可以是有限域GF(pr),椭圆曲线密码体制中用到的椭圆曲线都是定义在有限域上的。
椭圆曲线上所有的点外加一个叫做无穷远点的特殊点构成的集合连同一个定义的加法运算构成一个Abel群。
在等式mP=P+P+…+P=Q (2)中,已知m和点P求点Q比较容易,反之已知点Q和点P求m却是相当困难的,这个问题称为椭圆曲线上点群的离散对数问题。
椭圆曲线密码体制正是利用这个困难问题设计而来。
椭圆曲线应用到密码学上最早是由Neal Koblitz和Victor Miller在1985年分别独立提出的。
椭圆曲线密码体制是目前已知的公钥体制中,对每比特所提供加密强度最高的一种体制。
解椭圆曲线上的离散对数问题的最好算法是Pollard rho方法,其时间复杂度为,是完全指数阶的。
其中n为等式(2)中m的二进制表示的位数。
当n=234, 约为2117,需要1.6x1023 MIPS 年的时间。
而我们熟知的RSA所利用的是大整数分解的困难问题,目前对于一般情况下的因数分解的最好算法的时间复杂度是子指数阶的,当n=2048时,需要2x1020MIPS年的时间。