2.根据密码分析者可得到的密码分析的信息量把密码体制的攻击划分:html
(1)惟密文攻击(仅知道一些密文)算法
(2)已知明文攻击(知道一些密文和相应明文)--------------------------------->密码系统至少应经受住的攻击;对流密码的攻击方式数组
(3)选择明文攻击(密码分析者能够选择一些明文并获得相应密文)缓存
(4)选择密文攻击(密码分析者能够选择一些密文并获得相应明文)安全
(5)选择文本攻击网络
3.攻击方式的分类:函数
(1)穷举攻击(解决方法:增大密钥量)性能
(2)统计分析攻击(解决方法:使明文的统计特性和密文的统计特性不同)学习
(3)数学分析攻击(解决方法:选用足够复杂的加密算法)测试
4.安全性级别:无条件安全性(H(P|C))=H(P))、计算安全性(计算出或估计出破译一个密码系统的计算量下限,利用已有的最好方法破译它所须要的代价超过了破译者的破译能力(时间、空间和资源等))和可证实安全性。
认证体制包括实体认证和消息认证。这里主要指消息认证。
认证体制的安全性:按照攻击目标不一样可分为彻底摧毁、通常性伪造、选择性伪造和存在性伪造。
参看信息论与编码http://www.cnblogs.com/WittPeng/p/8988941.html
算法的复杂度
问题的复杂度
(2)进行置换操做;
(3)读出后即为密文
x=d(e(x))=a-1(e(x)-b)(mod26)
Playfair密码 | 加密步骤:a.在适当位置闯入一些特定字母,譬如q,使得明文字母串的长度为偶数,而且将明文字母串按两个字母一组进行分组,每组中的两个字母不一样。 b.明文m1m2对应的密文c1c2的肯定:m1和m2同行或同列,则c1为m1后的字符,c2为m2后的字符;若m1和m2既不一样行也不一样列,则c1c2在m1m2所肯定的矩形的其余两个角上,c1和m1同行,c2和m2同行。 |
Vigenere(维吉尼亚密码) | 例: |
Vernam(维尔姆密码) | ![]() |
Hill(希尔密码) |
|
组成 | S盒(代换):混乱做用,P盒(置换):扩散做用 |
效果 | 雪崩效应 |
设计原则 |
|
分组长度 | 64位 |
密码体制 | 对称密码体制,加密和密钥使用同一密钥,仅子密钥编排顺序不一样 |
有效密钥长度 | 56位(原64位的每一个第8位为奇偶校验位,可忽略) |
迭代结构 | SP网络结构,共16轮 |
优势 | 只使用了标准的算术和逻辑运算 |
①64位明文->②IP置换->
③分为两部分L0和R0:L0为下一轮的R1;R0和第一次置换获得的子密钥混合通过F函数获得下一轮的L1
->④置换IP-1->⑤获得64位密文
F函数:
扩展置换 | 8*4的矩阵 每行的头尾各补齐一位,变成8*6的矩阵 |
Ki子密钥的生成算法 | 将56位的有效的密钥压缩成48位 |
代换盒(S盒) | 步骤说明:b1b6肯定行,b2b3b4b5肯定列,将48位变成32位 特色:
|
置换运算(P盒) |
2.弱密钥:4个弱密钥,12个半弱密钥
3.迭代轮数
4.密钥长度
![]() |
字节代换:S盒定义方法 (1)初始化S盒,将第m行n列的元素初始化为0xmn (2)将S盒中的每一个字节映射为它在有限域GF(28)中的逆,0x00映射为自身。AES使用Z2[x]上的不可约多项式m(x)=x8+x4+x3+x+1来构造GF(28)。求逆元素的方法是使用Z2[x]上的扩展的欧几里得算法。 |
行位移:简单的左循环位移操做,第n行左移n位 | |
列混合 :经过矩阵相乘来实现 |
|
轮密钥加: 密码扩展算法: 1.将初始密钥输入到一个4*4的矩阵中,每列的四个字节组成一个字,依次命名为w[0],w[1],w[2],w[3] 2.扩充40个新列,构成总共44列的扩展密钥数组 产生方式为 其中,T的组成为:1.字循环(将一个字中的4个字节循环左移一个字节) 2.字节代换(使用S盒) 3.轮常量异或(将前两步的结果同轮常量Rcon[j]进行异或,其中j表示轮数)
|
相同 | 不一样 | |||
DES |
|
密钥长度固定56位 | 面向比特的运算 | 加密和解密运算一致 |
AES | 密钥长度能够是128位、192位、256位 | 面向字节的运算 | 加密和解密运算不一致,加密器不能同时用作解密器 |
国际数据加密算法(IDEA)
RC6
Skipjakc算法
Callmellia算法
其中,加密算法也能用于解密。加密是对移位寄存器的操做,不对明文加密
密文序列c=c0c1···*···cn-1=Ek0(m0)···Ekn-1(mn-1),若ci=Eki(mi)=mi模加ki,称为加法序列密码。
定义 | 是一个从消息空间到像空间不可逆映射,同时是一种具备压缩性的单向函数 | |
散列值的生成 | h=H(M) h是定长的散列值,H是Hash函数运算,M是一个变成消息 | |
应用 | 数字签名 | |
消息认证 | 生成程序或文档的“数字指纹” 用于安全运输和存储口令 |
|
性质 | 生成任意长度的消息 | |
产生定长的输出 | ||
计算任意给定的消息比较容易 | ||
安全性 | 单向性:找到H(x)=h的x是不可行的 | |
抗弱碰撞性:对于给定的消息M1,要发现另外一个消息M2,知足H(M1)=H(M2)在计算上是不可行的 | ||
抗强碰撞性:找任意一对不一样的消息M1M2,使H(M1)=H(M2)在计算上是不可行的 | ||
雪崩效应 |
||
单向性 | ||
用途 | 生成数字签名Sign(H(M)) | |
对程序或者文件生成摘要(完整性认证)H(M) | ||
口令H(Password) | ||
函数结构 | 核心技术:设计无碰撞的压缩函数f | |
迭代结构: 1.将输入消息分红L个固定长度的分组,每一个分组为b位,最后一个分组包含输入消息的总长度,若不足b位须要填充, 2.压缩函数f:有两个输入,一个是前一次迭代的n位输出,成为连接变量;一个是消息的b位分组,并产生一个n位的输出,即散列值。 |
MD5(128位) | 结构 |
|
生成过程 | ![]() |
|
主循环 |
每一分组的算法流程以下:
第一分组须要将上面四个连接变量复制到另外四个变量中:A到a,B到b,C到c,D到d。从第二分组开始的变量为上一分组的运算结果,即A = a, B = b, C = c, D = d。
主循环有四轮(MD4只有三轮),每轮循环都很类似。第一轮进行16次操做。每次操做对a、b、c和d中的其中三个做一次非线性函数运算,而后将所得结果加上第四个变量,
文本的一个子分组和一个常数。再将所得结果向左环移一个不定的数,并加上a、b、c或d中之一。最后用该结果取代a、b、c或d中之一。
如下是每次操做中用到的四个非线性函数(每轮一个)。
F( X ,Y ,Z ) = ( X & Y ) | ( (~X) & Z )
G( X ,Y ,Z ) = ( X & Z ) | ( Y & (~Z) )
H( X ,Y ,Z ) =X ^ Y ^ Z
I( X ,Y ,Z ) =Y ^ ( X | (~Z) )
(&是与(And),|是或(Or),~是非(Not),^是异或(Xor))
这四个函数的说明:若是X、Y和Z的对应位是独立和均匀的,那么结果的每一位也应是独立和均匀的。
F是一个逐位运算的函数。即,若是X,那么Y,不然Z。函数H是逐位奇偶操做符。
假设Mj表示消息的第j个子分组(从0到15),常数ti是4294967296*abs( sin(i) )的整数部分,i 取值从1到64,单位是弧度。(4294967296=2
32)
现定义:
FF(a ,b ,c ,d ,Mj ,s ,ti ) 操做为 a = b + ( (a + F(b,c,d) + Mj + ti) << s)
GG(a ,b ,c ,d ,Mj ,s ,ti ) 操做为 a = b + ( (a + G(b,c,d) + Mj + ti) << s)
HH(a ,b ,c ,d ,Mj ,s ,ti) 操做为 a = b + ( (a + H(b,c,d) + Mj + ti) << s)
II(a ,b ,c ,d ,Mj ,s ,ti) 操做为 a = b + ( (a + I(b,c,d) + Mj + ti) << s)
注意:“<<”表示循环左移位,不是左移位。
这四轮(共64步)是:
第一轮
FF(a ,b ,c ,d ,M0 ,7 ,0xd76aa478 )
FF(d ,a ,b ,c ,M1 ,12 ,0xe8c7b756 )
FF(c ,d ,a ,b ,M2 ,17 ,0x242070db )
FF(b ,c ,d ,a ,M3 ,22 ,0xc1bdceee )
FF(a ,b ,c ,d ,M4 ,7 ,0xf57c0faf )
FF(d ,a ,b ,c ,M5 ,12 ,0x4787c62a )
FF(c ,d ,a ,b ,M6 ,17 ,0xa8304613 )
FF(b ,c ,d ,a ,M7 ,22 ,0xfd469501)
FF(a ,b ,c ,d ,M8 ,7 ,0x698098d8 )
FF(d ,a ,b ,c ,M9 ,12 ,0x8b44f7af )
FF(c ,d ,a ,b ,M10 ,17 ,0xffff5bb1 )
FF(b ,c ,d ,a ,M11 ,22 ,0x895cd7be )
FF(a ,b ,c ,d ,M12 ,7 ,0x6b901122 )
FF(d ,a ,b ,c ,M13 ,12 ,0xfd987193 )
FF(c ,d ,a ,b ,M14 ,17 ,0xa679438e )
FF(b ,c ,d ,a ,M15 ,22 ,0x49b40821 )
第二轮
GG(a ,b ,c ,d ,M1 ,5 ,0xf61e2562 )
GG(d ,a ,b ,c ,M6 ,9 ,0xc040b340 )
GG(c ,d ,a ,b ,M11 ,14 ,0x265e5a51 )
GG(b ,c ,d ,a ,M0 ,20 ,0xe9b6c7aa )
GG(a ,b ,c ,d ,M5 ,5 ,0xd62f105d )
GG(d ,a ,b ,c ,M10 ,9 ,0x02441453 )
GG(c ,d ,a ,b ,M15 ,14 ,0xd8a1e681 )
GG(b ,c ,d ,a ,M4 ,20 ,0xe7d3fbc8 )
GG(a ,b ,c ,d ,M9 ,5 ,0x21e1cde6 )
GG(d ,a ,b ,c ,M14 ,9 ,0xc33707d6 )
GG(c ,d ,a ,b ,M3 ,14 ,0xf4d50d87 )
GG(b ,c ,d ,a ,M8 ,20 ,0x455a14ed )
GG(a ,b ,c ,d ,M13 ,5 ,0xa9e3e905 )
GG(d ,a ,b ,c ,M2 ,9 ,0xfcefa3f8 )
GG(c ,d ,a ,b ,M7 ,14 ,0x676f02d9 )
GG(b ,c ,d ,a ,M12 ,20 ,0x8d2a4c8a )
第三轮
HH(a ,b ,c ,d ,M5 ,4 ,0xfffa3942 )
HH(d ,a ,b ,c ,M8 ,11 ,0x8771f681 )
HH(c ,d ,a ,b ,M11 ,16 ,0x6d9d6122 )
HH(b ,c ,d ,a ,M14 ,23 ,0xfde5380c )
HH(a ,b ,c ,d ,M1 ,4 ,0xa4beea44 )
HH(d ,a ,b ,c ,M4 ,11 ,0x4bdecfa9 )
HH(c ,d ,a ,b ,M7 ,16 ,0xf6bb4b60 )
HH(b ,c ,d ,a ,M10 ,23 ,0xbebfbc70 )
HH(a ,b ,c ,d ,M13 ,4 ,0x289b7ec6 )
HH(d ,a ,b ,c ,M0 ,11 ,0xeaa127fa )
HH(c ,d ,a ,b ,M3 ,16 ,0xd4ef3085 )
HH(b ,c ,d ,a ,M6 ,23 ,0x04881d05 )
HH(a ,b ,c ,d ,M9 ,4 ,0xd9d4d039 )
HH(d ,a ,b ,c ,M12 ,11 ,0xe6db99e5 )
HH(c ,d ,a ,b ,M15 ,16 ,0x1fa27cf8 )
HH(b ,c ,d ,a ,M2 ,23 ,0xc4ac5665 )
第四轮
II(a ,b ,c ,d ,M0 ,6 ,0xf4292244 )
II(d ,a ,b ,c ,M7 ,10 ,0x432aff97 )
II(c ,d ,a ,b ,M14 ,15 ,0xab9423a7 )
II(b ,c ,d ,a ,M5 ,21 ,0xfc93a039 )
II(a ,b ,c ,d ,M12 ,6 ,0x655b59c3 )
II(d ,a ,b ,c ,M3 ,10 ,0x8f0ccc92 )
II(c ,d ,a ,b ,M10 ,15 ,0xffeff47d )
II(b ,c ,d ,a ,M1 ,21 ,0x85845dd1 )
II(a ,b ,c ,d ,M8 ,6 ,0x6fa87e4f )
II(d ,a ,b ,c ,M15 ,10 ,0xfe2ce6e0 )
II(c ,d ,a ,b ,M6 ,15 ,0xa3014314 )
II(b ,c ,d ,a ,M13 ,21 ,0x4e0811a1 )
II(a ,b ,c ,d ,M4 ,6 ,0xf7537e82 )
II(d ,a ,b ,c ,M11 ,10 ,0xbd3af235 )
II(c ,d ,a ,b ,M2 ,15 ,0x2ad7d2bb )
II(b ,c ,d ,a ,M9 ,21 ,0xeb86d391 )
全部这些完成以后,将a、b、c、d分别在原来基础上再加上A、B、C、D。
即a = a + A,b = b + B,c = c + C,d = d + D
而后用下一分组数据继续运行以上算法。
|
|
SHA-1(160位) | 美国国家标准技术研究所NIST开发 |
一、将消息摘要转换成位字符串
由于在Sha-1算法中,它的输入必须为位,因此咱们首先要将其转化为位字符串,咱们以“abc”字符串来讲明问题,由于'a'=97, 'b'=98, 'c'=99,因此将其转换为位串后为:
01100001 01100010 01100011
二、对转换后的位字符串进行补位操做
Sha-1算法标准规定,必须对消息摘要进行补位操做,即将输入的数据进行填充,使得数据长度对512求余的结果为448,填充比特位的最高位补一个1,其他的位补0,若是在补位以前已经知足对512取模余数为448,也要进行补位,在其后补一位1便可。总之,补位是至少补一位,最多补512位,咱们依然以“abc”为例,其补位过程以下:
初始的信息摘要:01100001 01100010 01100011
第一步补位: 01100001 01100010 01100011 1
..... ......
补位最后一位: 01100001 01100010 01100011 10.......0(后面补了423个0)
然后咱们将补位操做后的信息摘要转换为十六进制,以下所示:
61626380 00000000 00000000 00000000
00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000
00000000 00000000
三、附加长度值
在信息摘要后面附加64bit的信息,用来表示原始信息摘要的长度,在这步操做以后,信息报文即是512bit的倍数。一般来讲用一个64位的数据表示原始消息的长度,若是消息长度不大于2^64,那么前32bit就为0,在进行附加长度值操做后,其“abc”数据报文即变成以下形式:
61626380 00000000 00000000 00000000
00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000018
由于“abc”占3个字节,即24位 ,换算为十六进制即为0x18。
四、初始化缓存
一个160位MD缓冲区用以保存中间和最终散列函数的结果。它能够表示为5个32位的寄存器(H0,H1,H2,H3,H4)。初始化为:
H0 = 0x67452301
H1 = 0xEFCDAB89
H2 = 0x98BADCFE
H3 = 0x10325476
H4 = 0xC3D2E1F0
若是你们对MD-5不陌生的话,会发现一个重要的现象,其前四个与MD-5同样,但不一样之处为存储为big-endien format.
五、计算消息摘要
在计算报文以前咱们还要作一些基本的工做,就是在咱们计算过程当中要用到的方法,或定义。
(1)、循环左移操做符Sn(x),x是一个字,也就是32bit大小的变量,n是一个整数且0<=n<=32。Sn(X) = (X<<n)OR(X>>32-n)
(2)、在程序中所要用到的常量,这一系列常量字k(0)、k(1)、...k(79),将其以十六进制表示以下:
Kt = 0x5A827999 (0 <= t <= 19)
Kt = 0x6ED9EBA1 (20 <= t <= 39)
Kt = 0x8F1BBCDC (40 <= t <= 59)
Kt = 0xCA62C1D6 (60 <= t <= 79)
(3)、所要用到的一系列函数
Ft(b,c,d) ((b&c)|((~b)&d)) (0 <= t <= 19)
Ft(b,c,d) (b^c^d) (20 <= t <= 39)
Ft(b,c,d) ((b&c)|(b&d)|(c&d)) (40 <= t <= 59)
Ft(b,c,d) (b^c^d) (60 <= t <= 79)
(4)、计算
计算须要一个缓冲区,由5个32位的字组成,还须要一个80个32位字的缓冲区。第一个5个字的缓冲区被标识为A,B,C,D,E。80个字的缓冲区被标识为W0, W1,..., W79
另外还须要一个一个字的TEMP缓冲区。
为了产生消息摘要,在第4部分中定义的16个字的数据块M1, M2,..., Mn
会依次进行处理,处理每一个数据块Mi 包含80个步骤。
如今开始处理M1, M2, ... , Mn。为了处理 Mi,须要进行下面的步骤
(1). 将 Mi 分红 16 个字 W0, W1, ... , W15, W0 是最左边的字
(2). 对于 t = 16 到 79 令 Wt = S1(Wt-3 XOR Wt-8 XOR Wt- 14 XOR Wt-16).
(3). 令 A = H0, B = H1, C = H2, D = H3, E = H4.
(4) 对于 t = 0 到 79,执行下面的循环
TEMP = S5(A) + ft(B,C,D) + E + Wt + Kt;
E = D; D = C; C = S30(B); B = A; A = TEMP;
(5). 令 H0 = H0 + A, H1 = H1 + B, H2 = H2 + C, H3 = H3 + D, H4 = H4 + E.
在处理完全部的 Mn, 后,消息摘要是一个160位的字符串,如下面的顺序标识
H0 H1 H2 H3 H4.
对于SHA256,SHA384,SHA512。你也能够用类似的办法来计算消息摘要。对消息进行补位的算法彻底是同样的。
|
生日攻击:p(k)=1-p365k/365k;k=23,p(k)=0.5073;k=100,p(k)=0.99999997。能够减小一半的尝试量
两个集合的相交问题。
消息认证:
目的:
MDC和加密:仅能验证完整性
消息认证码MAC
ElGamal | 应用 | 1.加密;2.数字签名 |
密钥生成 |
(随机数的选取可使同一明文在不一样时间加密成不一样密文) |
|
加解密算法 |
|
|
安全性分析 |
来源于生日攻击的思想, 小步为 序列1:g1,···,gj,···,gm(1≤j≤m) 大步为 序列2:y,y*g-m,···,y*g-im 找到gj≡y*g-im(mod p),即找到y=gj+im(mod p),即x=j+im私钥被找到 时间复杂度:O(p1/2) 3.指数积分法
|
|
MH背包公钥加密体制 | 难题来源 | 背包问题:∑aixi=b,这是一个NP彻底类问题 特例:超递增序列(每个元素都比先前的元素和大) 可将背包问题转化为P类问题 |
公私钥对的生成 |
|
|
加密和解密 |
|
|
安全性分析 |
|
|
地位 | 第一个公钥算法 | |
RSA公钥密码 | 理论基础 | 数论中的欧拉定理,安全性依赖于大整数的素因子分解的困难性 欧拉定理:若a和n互素,则aΦ(n)≡1(mod n) |
密钥生成算法 加密和解密 |
(1)生成公私密钥
(3)明文加密 |
|
安全性 | 1.算法正确性的证实 2.攻击
2.针对算法参数的攻击 1.对素数p和q选取时的限制;p和q长度相差不大,大小相差要大,不然难以抵御除法的攻击;p-1和q-1都应有大的素因子。 2.共模攻击(所以不一样用户不用使用相同的p和q) 3.低指数攻击 |
|
椭圆曲线公钥加密体制 | 椭圆曲线 | 韦尔斯特拉方程 :E:y²+axy+by=x³+cx²+dx+e。密码学中,常采用的椭圆曲线为: E:y²=x³+ax+b,并要求4a³+27b²≠0 Hasse定理:若是E是有限域GF(p)上的椭圆曲线,N是E上的点(x,y)(其中x,yξGF(p))的个数,则:|N-(p+1)|≤2(p)½ 椭圆曲线上的点集合Ep(a,b)对于以下定义的加法规则构成一个Abel群:
点乘规则:
椭圆曲线点的计算:
|
ECC密钥生成算法 |
公钥为(E,n,G,PB),私钥为nB。 |
|
加密过程 |
|
|
解密过程 |
|
|
安全性和优点 | 安全性基于椭圆曲线上的离散对数问题 | |
应用前景好,尤为是在移动通讯和无线设备上的应用,计算量小,处理速度快,存储空间占用小,带宽要求低。 | ||
160位的ECC密钥和1024位的RSA和1024位的ElGamal的安全性等同。 |
||
可用于加密、数字签名。 | ||
未申请专利 | ||
Rabin公钥加密体制 | 前言(学习意义) | 具备很好的参考价值 |
特色 | 不是以一一对应的陷门单向函数为基础,同一密文可能有多种明文; |
|
破译该体制等价于对大整数的因子分解。 | ||
密钥生成算法 | 随机选取两个大素数p和q,而且p≡q≡3mod4,将p和q做为私钥,n=pq做为公钥 |
|
加密算法 | 设明文块为m(m<n),运用公式c=m²modn 进行加密,c为密文。 | |
解密算法 | ![]()
|
数字签名技术通常分为带仲裁和不带仲裁的两类。若是使用对称密钥进行数字签名,则必须使用仲裁者,非对称能够不带仲裁。
数字签名能够实现不能否认性和消息完整性认证(检验是否被篡改或伪造)
(P,S,K,Sig,Ver),P:密钥生成算法,S:签名算法,K:验证算发,Sign,Verify
过程简图
基于RSA的签名方案 | 密钥生成算法 |
这里,先选择e再肯定d的缘由是:加密的重要性大于解密的重要性。 |
||
签名算法 |
|
|||
验证算法 |
|
|||
正确性 | ![]() |
|||
安全性 |
|
|||
基于离散对数的签名方案 | ElGamal签名体制 | 密钥生成算法 |
签名者的公钥是(p,g,y),私钥是x。 |
|
签名算法 | 签名者选取随机数k,计算r≡gk(mod p),s≡[h(m)-xr]K-1(mod(p-1)),签名为(r,s),其中h为安全的Hash函数 | |||
验证算法 | 计算h(m)后,验证yxrs≡gh(m)(mod p)是否成立 | |||
正确性 | ![]() |
|||
安全性 |
|
|||
Schnorr签名体制 | 特色 | 签名速度较快,签名长度较短 | ||
密钥生成算法 |
|
|||
签名算法 | 签名者选择随机数k,1≤k≤q-1,而后进行以下计算: r≡gk(mod p) e=h(m,r) s≡(xe+k)(mod q) 签名为(e,s),其中h为安全的Hash函数。 |
|||
验证算法 | 签名接收者在收到消息m和签名(e,s)后,首先计算r1≡gsy-e(mod p) ,而后验证e=h(e,r1),若是等式成立则签名有效,不然无效。 | |||
正确性和安全性 |
安全性和ElGaml相似 |
|||
DSA签名体制 | 密钥生成算法 |
|
||
签名算法 | 选取随机数k,r=(gkmod p)mod q,s≡[h(m)+xr]k-1(mod q),其中h是SHA1的特定Hash函数 | |||
验证算法 | 收到m和签名值(r,s)后,计算 w≡s-1(mod q) u1≡h(m)w(mod q) u2≡rw(mod q) v=(gu1yu2mod p)mod q 比较v和r,相同则签名有效,不然无效。 |
|||
正确性 | ![]() |
|||
安全性 | DSA是ElGamal的变形,所以安全性论述在此也一样使用。还有一点是签名算法计算的s正好为0时,会产生1除以0的状况,必须放弃这个签名。 | |||
三种签名体制的对比 | ![]()
|
|||
离散对数签名体制 | ![]()
|
|||
基于椭圆曲线的签名方案 | 密钥生成算法 | 选择E上一点G∈E,G的阶为知足安全要求的素数n,即nG=O。 选取一个随机数d∈[1,n-1],计算Q使得Q=dG,那么公钥为(n,Q),私钥为d。 |
||
签名算法 |
|
|||
验证算法 |
|
|||
正确性 | ![]()
|
|||
安全性 | ECDSA安全性依赖于基于椭圆曲线的有限群上的离散对数难题,与RSA和有限域离散对数的数字签名相比,在相同的安全强度条件下,有以下特色 签名长度短、密钥存储空间小,特别是用于存储空间有限、带宽受限、要求高速实现的场合。 |
密钥管理的原则
密钥管理的层次结构
越低层的密钥更换越快。仅主密钥须要人工装入,其余各级密钥都可以由密钥管理系统按照某些协议来进行自动地分配、更换、撤销等。