密码学概论
密码学基本思想:.............................................................................................................................2
数学基础:......................................................................................................................................... 2
有限域:.....................................................................................................................................2
古典密码学:.....................................................................................................................................2
仿射密码:.........................................................................................................................3
Hill 密码:.........................................................................................................................3
分组密码:......................................................................................................................................... 4
DES :......................................................................................................................................... 5
AES :Rijndael............................................................................................................................9
分组密码的工作模式:...........................................................................................................14
电码本模式(ECB):ElectronicCode Block...................................................................... 14
密码分组链接模式(CBC):Cipher Block Chaining.................................................... 14
输出反馈模式(OFB)........................................................................................................15
密码反馈模式(CFB)CipherFeedBack............................................................................ 15
计数器模式(CTR)............................................................................................................15
序列密码...................................................................................................................................16
RC4............................................................................................................................................17
Hash 函数..........................................................................................................................................18
MD5...................................................................................................................................19
SHA1.........................................................................................................................................20
密钥管理........................................................................................................................................... 22
原则:...............................................................................................................................22
分类:...............................................................................................................................22
分发:...............................................................................................................................23
密钥协商:.......................................................................................................................23
密钥共享:.......................................................................................................................24
公钥密码学....................................................................................................................................... 24
RSA :....................................................................................................................................... 25
ElGamal :基于离散对数的问题............................................................................................ 27
椭圆曲线公钥密码体制(ECC)................................................................................................28
椭圆曲线公钥密码算法...................................................................................................29
数字签名:....................................................................................................................................... 30
RSA 数字签名:..................................................................................................................... 31
ELGAMAL 签名算法:......................................................................................................... 31
特殊签名算法:.......................................................................................................................31
密码学基本思想:
柯克霍夫原则:加解密算法的安全性应该取决于密钥的安全性而不是算法。现代密码学起源:1949年香农发表《保密系统的通信理论》
1976年Diffie 与Hellman 发表论文《密码学的新方向》
密码学(cryptology )是研究秘密通信的原理和破译密码的方法的一门科学,依此密码学的包含两个相互对立的分支有密码分析学与密码编码学。密码编码学的任务是寻求生成高强度密码的有效算法,以满足对信息进行加密或认证的要求。密码分析学的任务是破译密码或伪造认证密码,窃取机密信息进行诈骗破坏活动。
密码体制分为对称密码体制(秘密密钥密码体制、单钥密码体制)与非对称密码体制(公钥密码体制)。
安全服务通常包括机密性、完整性、认证性、不可否认性与可用性(指保证信息资源可以随时提供服务),加密技术主要保证前四个方面。
攻击分为:
(1)被动攻击:分析消息内容、通信量分析
(2)主动攻击:中断、篡改、伪造、重放
攻击具体分类:
(1)唯密文攻击:密码分析者仅有密文。
(2)已知明文攻击:密码分析者拥有部分已知的明-密文对。
(3)选择明文攻击:攻击者可以选择部分明文并且获取相关的密文。
(4)选择密文攻击:攻击者可以选择部分密文并且获取相关的明文。
(5)选择文本攻击:选择明文攻击与选择密文攻击的综合。
衡量一个密码系统的安全性从理论安全性又称完全保密性与计算安全性又称实际保密性两个方面衡量。
数学基础:
有限域:
有限域F 的阶是指F 中的元素的个数,通常用p m 表示,其中P 为一个素数,m 大于等于1。古典密码学:
置换密码:置换密码将明文中各个字符的位置次序重新排列得到密文。一种是列置换密码,另一种是周期置换密码。
代换密码:将明文元素(字符、比特)映射成密文的元素。
代换密码又可分为单表代换密码和多表代换密码。
单表替代密码又可分为一般单表替代密码、移位密码、仿射密码、密钥短语密码。
多表替代密码的密码算法加解密时使用多个替换表。多表替代密码有弗吉尼亚密码(最古老而且最著名的多表代换密码体制之一,与位移密码体制相似,但维吉尼亚密码的密钥是动态周期变化的)、希尔(Hill)密码、一次一密钥密码、Playfair 密码。
单表替代密码的密码算法加解密时使用一个固定的替换表。
仿射密码:
注意仿射密码的K 1不能使任意整数。仿射密码的K2从0~25共有26种取值方式,而K1根据欧拉函数为(2-1)*(13-1)=12种,所以仿射加密的密钥空间为312。
Hill
密码:
(Gcd(det(A),26)=1), 编号从0开始。书上是m*k、c*k-1的这种方式。
古典密码学攻击方法:
(1)统计分析法
(2)明文-密文对分析法
分组密码:
分组密码的思想:将明文消息编码表示后的数字序列划分成长为n 的组,各组分别在密钥k 控制下变换成等长的输出数字序列。在相同密钥下,分组密码对长为n 的输入明文组所实施的变换是等同的,所以只需研究对任一组明文数字的变换规则。这种密码实质上是字长为n
的数字序列的代换密码。
设计原则:
混乱原则(confusion):又称混淆原则,是指密钥和明文以及密文之间的依赖关系尽可能的复杂,算法设计时,采用复杂的代数运算。
扩散原则(diffusion):密钥或明文的每一位影响密文的许多位以便隐蔽明文的统计特性。比如古典密码中的hill 密码的设计思想。
基本结构:
通常由一个简单的函数F 迭代若干次而形成,而F 都是基于代换(S盒) —置换(P盒) 的网络,S 盒的设计是分组密码的核心。
Feistel 结构(代换和置换)分组越大、密钥越复杂、轮数越多、子密钥产生算法越复杂、
轮函数越复杂,安全性越高。
F 函数构成:
S 变换起到混淆的作用;P 变换起到扩散的作用。SP 网络(代换-
置换网络)
分类:DES 、AES 、IDEA 、RC6、Skipjack 、CAmellia
DES :
DES 是一种明文分组为64比特,有效密钥56比特,输出密文64比特的,具有16轮迭代的分组对称密码算法,DES 由初始置换,16轮迭代,初始逆置换组成。DES 的解密算法与加密算法相同,只是解密子密钥与加密子密钥的使用顺序刚好相反。DES 的安全强度主要取决于F 函数中的S 盒,它是唯一一个非线性代换的部件。
初始明文按照IP 重排;16轮后的密文按照IP-1重排即为最后密文。
E 盒是扩展置换盒,将32位的输入变为48
位。
一共8个S 盒,其中,每一个S-盒函数都是6比特的输入,4比特的输出。si(h1h2h3h4h5h6)的值就是对应表si 中(h1h6)2行和(h2h3h4h5)2列上的值。每个S 盒是4*16列共64个数。
如输入110011,则行号11=3,列号位1001=9。(行号从0~3)
置换运算P
盒:
子密钥产生过程的输入,为使用者持有的64位初始密钥。加密或解密时,使用者将初始密钥输入至子密钥产生流程中。首先经过密钥置换PC-1,将初始密钥的8个奇偶较验位去掉。留下真正的56位初始密钥。接着,分为两个28位分组C0及D0,再分别经过一个循环左移函数,连结成56位数据,再按密钥置换PC-2做重排,便可输出K1(48位) ,依此类推。要注意的是,密钥置换PC-1的输入为64位,输出为56位;而密钥置换PC-2的输入和输出分别为56位和48
位。
为了增强DES 算法的安全性,人们提出了许多DES 的改进方案。其中,称为三重DES 的多重加密算法是DES 的一个重要的改进算法。
DES 攻击方法:
(1)差分分析法,分析一对给定明文的异或(称为差分)与对应密文对的异或之间的统计相关性。需要247个选择明文与247次加密运算。
(2)线性分析法:以最佳的线性函数逼近DES 的非线性变换S 盒,这是一种已知明文的攻击方法。可以在有2^43个已知明文的情况下破译DES
。
上图是密钥生成中的循环左移表,而解密过程中的循环左移表仅为将第一轮1的移位数改为0;
AES :Rijndael
AES 的加解密过程不同。
设G 为非空集合,在G 内定义了一种代数运算ο,若满足下述公理:
(1)有封闭性。对任意a 、b ∈G ,恒有a οb ∈G.
(2)结合律。对任意a 、b 、c ∈G ,有(aοb) οc=aο(bοc)
(3)G中有一元e ,对任意a ∈G ,有e ∈G ,使a οe=eοa=a
(4)对任意a ∈G ,存在有a 的逆元a-1∈G ,使a οa-1=a-1οa=e则G 构成一个群。若群G 满足交换律,则称群G 为交换群或阿贝尔群
多项式同余:
AES 中的运算是按字节或4个字节的字定义的,并把一个字节看成是系数在Z 2上的次数小于8的多项式。一个4字节的字看成是系数在Z 256上,且次数小于4
的多项式。
Rijndael 采用的是SPN 结构
状态(State ):密码运算的中间结果称为状态。
State 的表示:状态用以字节为基本构成元素的矩阵阵列来表示,该阵列有4行,列数记为Nb 。Nb=分组长度(bits )÷32
Nb 可以取的值为4,6,8, 对应的分组长度为128,192,256bits 。
密码密钥(Cipher Key )的表示:Cipher Key 类似地用一个4行的矩阵阵列来表示,列数记为Nk 。Nk=密钥长度(bits )÷32
Nk 可以取的值为4,6,8, 对应的密钥长度为128,192,256bits 。
分组长度为128bits 的情况下,对应不同的密钥长度,加密轮数分别为10、12、14
。一个方框中为1个字节。DES 的密钥是按照ASCII 码值从左到右依次排列,而AES 是按照字节从上到下依次排列。
1.给定一个明文M ,将State 初始化为M ,并将轮密钥与State 异或(称为AddRoundKey );
2.对前Nr-1轮中的每—轮,用s 盒进行一次替换操作(称为SubBytes );对替换的结
果State 做行移位操作(称为ShiftRows );再对State 做列混淆变换(称为MixColumns );然后进行AddRoundKey 操作。
3.在最后一轮中依次进行SubBytes 、ShiftRows 和AddRoundKey 操作。
4.将State 定义为密文C
。
AES 的步骤主要为字节代换、行移位、列混合和轮密相加。(其中最后一轮少了列混合这一步)
AES 的S 盒构造过程:
M(x)称为既约多项式。
轮密相加:
AES
的密钥扩展:
分组密码的工作模式:
电码本模式(ECB):ElectronicCode Block
相同的明文分组永远被加密成相同的密文分组,理论上可以制作一个包含明文和其对应密文的密码本。
特点:
(1)最简易;
(2)相同密钥作用下,在相同的明文加密后将产生相同的密文,易于暴露明文的固有格式和统计特性;
(3)各密文块间缺乏相关性,信息易于受到块替换攻击。分组的重发
密码分组链接模式(CBC):Cipher Block Chaining
加密时候先异或再加密可以保证加密时候密文可以更好地保护。
1. 明文有一组中有错,会使以后的密文组都受影响,但经解密后的恢复结果,除原来有误的一组外,其后各组明文都正确地恢复。
2. 若在传送过程中,某组密文组出错时,则该组恢复的明文和下一组恢复数据出错。再后面的组将不会受中错误比特的影响。
输出反馈模式(OFB)
与CFB 相似,不同之处是本次加密算法的输入为前一次加密算法的输出。
密码反馈模式(CFB)CipherFeedBack
每次只处理输入的j 比特,将上一次密文用作加密算法的输入以产生伪随机输出,该输
出与当前明文异或以产生密文。
计数器模式(CTR)
加密算法的输入为当前计数器的值,该输出值与当前明文异或以产生密文。
序列密码
序列密码也称为流密码(streamcipher) ,它是对称密码算法的一种。序列密码具有软件实现简单、便于硬件实现、加解密处理速度快、没有或只有有限的错误传播等特点。
1. 序列密码以一个符号(如一个字符或一个比特) 作为基本的处理单元,而分组密码以一定大小的分组作为基本的处理单元;
2. 序列密码使用一个随时间变化的简单的加密变换,即不同时刻所用的密钥不同,而分组密码在不同时刻所用的密钥是相同的。
3. 序列密码可以进一步划分成同步序列密码和自同步序列密码两种。
同步序列密码:密钥流的产生与明密文消息流相互独立
自同步序列密码:密钥流的产生与己经产生的一定数量的密文有关,是一种有记忆变换的密码。
产生密钥流最重要的部件是线性反馈移位寄存器(LFSR)
:
RC4
它是一种基于非线性数据表变换的序列密码。它以一个足够大的数据表为基础,对表进行非线性变换,产生非线性的密钥流。RC4密码的密钥长度可变,其长度取值在8位到2048位之间。一旦密钥流产生好,RC4的加解密就非常简单,即,明文(密文)字节与相应的密钥流字节进行异或操作。
RC4算法使用28=256个字节构成的S 表和两个指针(I和J) ,I 和J 的初值为0。把S 表和I, J 指针的具体取值称为RC4的一个状态:
T=。
对状态T 进行非线性变换,产生出新的状态,并输出S 表的某个值作为产生的密钥流的下一个字节。
对S 表的初始化过程如下:
(1)对S 表进行填充,即令S[i]=i(0≤i ≤255);
(2)j=0;
(3)对于i=0到255重复以下操作:
①j=(j+S[i]+K[imod L])mod 256;
②交换S[i]和S[j]。
注:L 是密钥的字节长度
RC4的状态更新函数定义如下:
(1)I=I+1mod 256;
(2)J=J+S[I]mod 256;
(3)交换S[I]和S[J]。
--每个状态对应的输出为S[h],其中h=S[I]+S[J]mod 256。
Hash 函数
安全要求:
(1)具有单向性。给定消息的散列值h(m),要得到消息m 在计算上不可行;
(2)具有弱抗碰撞性(Weak collision resistance )。对任何给定的消息m ,寻找与m 不同的消息m ’,使得它们的散列值相同,即h(m’) =h (m),在计算上不可行。
(3)具有强抗碰撞性(Strong collision resistance) 。寻找任意两个不同的消息m 和m ’,使得h(m)=h (m’) 在计算上不可行。
Hash 函数是多对一映射,所以必然存在碰撞
(1)穷举攻击(或暴力攻击):不涉及杂凑算法的结构,能对任何类型的散列函数进行攻击。其中最典型方法是“生日攻击”:给定初值H0,寻找M ’M ,使h(H0,M ’)=h(H0,M) 。
生日攻击也称为平方根攻击,攻击者首先产生一份合法的消息,再通过加入空格等方式改变写法或者格式,但保持含义不变,产生2m/2个不同的消息变形,即产生一个合法的消息组。攻击者再产生一份要伪造签名的非法消息,分别对以上两组消息产生散列值,在两组消息中找出具有相同散列值的一对消息。
(2)密码分析法,这类攻击方法依赖于对散列函数的结构和代数性质分析,采用针对散列函数弱性质的方法进行攻击。这类攻击方法有中间相遇攻击、
修正分组攻击和差分分析等等。
MD5
特性:输入:任意长度的消息(小于264)
输出:128位消息摘要
处理:以512位输入数据块为单位
步骤1(填充消息):使得消息的长度(bit 为单位)模512为448。如果数据长度正好是模512为448,增加512个填充bit ,也就是说填充的个数为1~512。填充方法:第一个bit 为1,其余全部为0。
步骤2(补足长度):将数据长度转换为64bit 的数值(指消息的真实长度),如果长度超过64bit 所能表示的数据长度的范围,值保留最后64bit ,增加到前面填充的数据后面,使得最后的数据为512bit 的整数倍。
然后对每个512bit 按每组32bit 进行分组, 可分为16组。512=32*16
步骤三:初始化变量
用到4个变量,分别为A 、B 、C 、D ,均为32bit 长。初始化为:
A=01234567
B=89ab cd ef
C=fedc ba 98
D=76543210
第四步:数据处理,共进行四轮,每轮16步,,共64步。512bit 的消息分组被均分为16个子分组,每个子分组32bit ,每步的输入为4个32bit 的链接变量和一个32bit 的消息子分组,输出为32bit 的值。
设对512bit 按每组32bit 进行分组为M[0],M[1],……, M[15]。
第一轮的辅助函数:
F(X,Y,Z)=(X∧Y) ∨(~X ∧Z )
X ∧Y 表示按位与,X ∨Y 表示按位或,~X 表示按位取反。
第一轮的操作:
FF(a,b,c,d,M[j],s,t[i])表示为:
a=b+((a+(F(b,c,d)+M[j]+t[i]))
其中:M[j]表示第j 个分组,
第二轮的辅助函数:G(X,Y,Z)=(X∧Z) ∨(Y∧~Z)
第三轮的辅助函数:H(X,Y,Z)=X ⊕Y ⊕Z
第四轮的辅助函数:I(X,Y,Z)=Y ⊕(X∨~Z)
SHA1
SHA-1是数字签名标准DSS (Digtial Signature Standard )中使用的散列算法。基于MD4
所以类似MD5输入
任意报文(
输出160bits
SHA-1,SHA-256的分组大小是512
第一步:填充消息
使得消息的长度(bit 为单位)模512为448。如果数据长度正好是模512为448,增加512个填充bit ,也就是说填充的个数为1-512。
填充方法:第一个bit 为1,其余全部为0。
计算公式补零的个数d=(447-|x|)mod 512(l=|x|表示消息长度)X||1||0d||l
第二步:补足长度
将数据长度转换为64bit 的数值,然后对每个512bit 按每组32bit 进行分组, 可分为16组。
512=32*16
处理程序:4回合,每轮为16步,共计80次;5
个缓存器
HASH 函数分类:
(1)改动检测码MDC (Message Detection Code ):不带密钥的HASH 函数,用于验证消息的完整性。
(2)消息认证码MAC (Message Auhentication Code ):带密钥的HASH 函数,用于消息源认证和消息完整性。
密钥管理
原则:
(1)全程安全原则:必须在密钥的产生、存储、备份、分发、组织、使用、更新、终止和销毁等的全过程中对密钥采取妥善的安全管理。
(2)最小权利原则:应当只分发给用户进行某一事务处理所需的最小的密钥集合。
(3)责任分离原则:一个密钥应当专职一种功能。
(4)密钥分级原则:可减少受保护的密钥的数量,又可简化密钥的管理工作。一般划分为三级:主密钥,二级密钥,初级密钥
(5)密钥更新原则
(6)密钥应当有足够的长度
(7)密码体制不同,密钥管理也不相同:由于传统密码体制与公开密钥密码体制是性质不同的两种密码,因此它们在密钥管理方而有很大的不同。
分类:
一、主密钥,也叫密钥加密密钥,会较长时间不变化,也是用户的标识。多采用公钥密码体
制实现。主密钥构成了整个密钥管理系统的关键。
二、会话密钥,又叫数据加密密钥,在一次通信或数据交换中用户之间使用的密钥。可由用户之间进行协商得到,用完即可清除。多指用来进行对称加密的密钥。
分发:
1. 离线分发方式:通过非通信网络的可靠物理渠道携带密钥分发给互相通信的各用户。但这种方法有很多缺点,主要包括:随着用户的增多和通信量的增大,密钥量大大增加;密钥的更新很麻烦等
2. 在线分发方式:主要是通过建立一个密钥分发中心(KDC )来实现。在这种方式中,每个用户将与KDC 共享一个保密的密钥,KDC 可以通过该密钥来鉴别某一个用户
会话密钥由通信发起方生成
会话密钥由KDC
生成
密钥协商:
Diffie-Hellman 密钥交换:该协议是Diffie 和Hellman 在1976年提出的,它是第一个公开发
表的公开密钥密码算法,算法的安全性是基于有限域中计算离散对数的困难性。
准备:A 和Bob 协商好一个大素数q 和q 的一个本原元a ,q 和a 为系统的公开参数。应用:在A 与B
要通信时,他们可以通过下列步骤协商通信密钥:
密钥分配与密钥协商区别:密钥分配方案需要一个可信权威机构TA 来选取密钥并将它们分配给网络用户;密钥协商方案则不需要一个TA 的参与,而是通过一个交互协议来共同确定一个新的会话密钥。密钥共享:
目的:一个重要的消息被加密后,要求解密这个重要消息需要两个(或两个以上)拥有密钥的实体的共同协作才能完成,任何一个人都无法单独对加密的信息进行解密。
定义:将一个秘密s 分成n 个子密钥s1,s2,…,sn ,并安全分配给n 个参与者分别持有。使得满足下列两个条件:
(1)由任意k 个或多于k 个参与者拥有的si 可重构秘密s 。
(2)由任意k -1个或少于k -1个参与者拥有的si 值不可重构秘密s 。则称这种方案为(k,
n) 门限方案,其中s 为门限值。
Shamir 门限方案是基于多项式的Lagrange 插值公式的。
设{(x1,y1),…,(xk ,yk )}是平面上k 个点构成的点集,其中xi (i=1,…,k )均不相同,那么在平面上存在一个唯一的k-1次多项式f(x)通过这k 个点。若把密钥s 取作f(0),n个子密钥取作f(xi)(i=1,…n), 那么利用其中的任意k 个子密钥可重构f(x),从而得到密钥s 。Shamir 秘密分割门限方案由系统初始化、秘密分发和秘密重构三个阶段组成。
公钥密码学
公钥密码也称为非对称密码。使用公钥密码的每一个用户都分别拥有两个密钥:加密密钥与解密密钥,它们两者并不相同,并且由加密密钥得到解密密钥在计算上是不可行的。每一个
用户的加密密钥都是公开的。
公钥密码体制都建立在数学难题之上,现在被广泛认可和使用的三类数学难题是:
1、大整数因子分解问题;
2、有限域乘法群上的离散对数问题;
3、椭圆曲线上的离散对数问题。
RSA
:
因为基于大整数分解的公开密钥体制的安全性依赖于大整数(大合数分解)问题,所以RSA 的安全性完全依赖于大数分解问题。所以要保密p 、
q;
RSA 的安全性:
1.|q–p|要大
设q-p=k,则:(q+p)2-(q-p)2=4pq=4n(q+p)2=(q-p)2+4n=k2+4n
如果k 的值小,则可以容易找到这样的k, 使得k2+4n是一个完全平方数,从得出q+p和q-p 的值,联立求解可得到q 、p 。例:q=313,p=311,则n=97343,(q+p)2=389376
4n=389372,则(q+p)2-4n=4,很简单就得到了k 的值。所以,q, p 的差必须很大,最好差几个比特位。
2.不同用户不可共享模n (共模攻击)
假定用户B1与B2共享模数为n ,它们的加密密钥分别是e1和e2,且(e1, e2)=1,某用户对同一消息m 分别以e1和e2加密得到密文c1与c2
。
注意到RSA 算法满足如下的性质:
(m1*m2) e mod n=(m1e *m2e )mod n
现在设想一个适应性密文攻击者获得了消息m 的密文c ,其可以选择密文m ’,并询问密文(m’) e *c所对应的明文,按照上边的关系,我们知道其明文是(m*m ’) ,则c 对应的明文易得。
ElGamal
:基于离散对数的问题
Elgamal
加解密过程:
椭圆曲线公钥密码体制(ECC)
一般认为,RSA 和D-H 密钥交换协议需用1024比特以上的模数才安全,但对ECC ,
只要160比特的模数就可达到同样级别的安全性。
椭圆曲线指的是由Weierstrass
方程:
如果P=Q,则L 就是P 点的切线.R =P+Q=P+P=2P 此时称之为倍乘运算。当P 与Q 关于x 轴对称时, 定义P 与Q 的和为O , 即P +Q =O ,并称O
为无穷远点。
由阶为n 的点P 在上述加法定义下生成的循环群
是椭圆曲线群(E(F),+)的一个n 阶子群。
定义3设E 是有限域F 上的椭圆曲线,G 是E 的一个循环子群,点P 是G 的一个生成元,即G ={kP :k 1},在已知P ,Q 的条件下,求解整数n ,使得nP =Q 的问题,称为椭圆曲线E 上的离散对数问题。
椭圆曲线公钥密码算法
数字签名:
消息认证可以使收方能够验证消息发送者以及所发消息内容是否被窜改过,但是收者与发者之间有利害冲突时候,就无法解决他们之间的纠纷,此时必须使用数字签名技术。
签名是可以验证的、不可以伪造的、不可重用的(不同时候的数字签名不同)、不可抵赖的。
数字签名过程:
(1)系统初始化过程
(2)签名生成过程
(3)签名验证过程
数字签名的分类:
(1)仲裁数字签名:主要基于对称密码体制
(2)直接数字签名
直接数字签名有RSA 、Elgamal 、Schnorr 、DSA 、椭圆曲线。
RSA
数字签名:
ELGAMAL
签名算法:
Elgamal 签名算法中随机数k 值需要保密,并且不可以使用相同的k 值进行签名。特殊签名算法:
(1)代理签名:原始签名者将他的签名权授予代理者。
(2)盲签名:签名者在不知道被签名文字内容的情况下对消息进行签名,具有匿名性与不可追踪性的特点(签名者知道这是自己的签名但是不知道是何时签名的) 。
(3)多重签名
(4)群签名
身份鉴别技术:
OTP(One-TimePassword) 是一次性口令机制,主要目的是确保在每次鉴别中所使用的加密口令不同,以对付重放攻击。
OTP 主要的实现方式有3种
质询-响应方式。鉴别时,系统随机给出一个信息,用户将该信息连同其鉴别信息(可
能经过计算处理)提交系统进行鉴别;
当声称者想让验证者进行鉴别时,声称者向验证者发出鉴别要求,验证者发给声称者一个自己产生的随机质询消息。声称者输入口令,和id 经过散列函数计算的结果(等于q )再和质询消息n 通过散列函数h 计算得到r ’,发送至验证者。验证者将保存的q 和生成的通过散列函数h 计算得到r ,通过比较和r ’是否相等来确定鉴别是否通过。
●
●采用时钟同步机制,与质询-响应方式的差异是随机信息是同步时钟信息。S/KEY一次性口令身份鉴别协议。
向别人证明知道某种事物或者拥有某种物品有直接证明和间接证明两种方法。直接证明就是出示或说出该事物,使别人知道和相信,从而得到证明。但这会使别人也知道或掌握这一秘密,是最大泄漏证明;另一种方法是用一种有效的数学方法证明其知道秘密,而又不泄漏信息给别人,这就是零知识证明问题。