《信息安全导论》课程资料 - 图文 下载本文

计算E11(1,6):={O,(2,4),(2,7),(3,5),(3,6),(5,2),(5,9),(7,2),(7,9),(8,3),(8,8),(10,2),(10,9)}。 为了求得椭圆曲线E上的点E11(1, 6),取P:=(2,7),计算

进一步计算点乘

P:=(2,7), 2P:=(5,2), 3P:= (8,3), 4P:= (10,2), 5P:= (3,6), 6P:= (7,9), 7P:= (7,2), 8P:= (3,5), 9P:= (10,9), 10P:= (8,8), 11P:= (5,9), 12P:= (2,4), 13P:= O

结果表明:椭圆曲线E上有13个点,E11(1,6)是一个循环群,P(2,7)是椭圆曲线E的生成元。研究表明,任意素数阶的群都是循环群,任何非无穷远点都是E的生成元。

椭圆曲线上的公钥加密方法有两种方案:一是将明文m编码为椭圆曲线上的点Pm:=(xm,ym);二是将明文m限定为m∈Fp。每种方案都包括密钥生成、加密和解密三个阶段。下面分别介绍这两种方案。

方案1:

在密钥生成阶段,Alice和Bob在椭圆曲线Ep(a, b)上选取大的素数阶n和生成元P,Alice和Bob共享椭圆曲线的公共参数。Bob随机选取整数a,满足1?a?n-1,计算Q:=a·P,则Q为Bob的公钥,a为Bob的私钥。

在加密阶段,Alice将明文m编码为椭圆曲线Ep(a, b)上的点Pm:=(xm,ym),然后随机选取整数k,满足1?k?n-1,计算c1:=k·P:=(x1, y1)及c2:=Pm +k·Q:= (x2, y2)

得到密文为(c1, c2),并将密文(c1, c2)传送给Bob。 在解密阶段,Bob收到密文(c1, c2)后,计算Pm:= c2-a·c1 再对Pm解码得到明文m。 方案2:

在密钥生成阶段,密钥生成算法同方案1。在加密阶段,Alice随机选取整数k,满足1?k?n-1,计算(x2, y2)= k·Q

直到x2≠0,计算c1:=k·P:=(x1, y1)及c2:≡m·x2 (mod p) 得到密文为(c1, c2),并将密文(c1, c2)传送给Bob。 在解密阶段,Bob收到密文(c1, c2)后,计算(x2, y2)= a·c1 然后计算:m≡c2·x2-1 (mod p),得到明文m。 例3-11设有限域F11上的椭圆曲线:E:y2 = x3+x+6 所有的点关于加法构成循环群,P:= (2, 7)是生成元。

密钥生成:Bob随机选取私钥a:= 2,计算公钥Q:= a·P:=2(2, 7):= (5, 2)。

加密:Alice要将明文m:= 9,m∈F11加密传送给Bob,Alice随机选取k:= 3,并计算 c1:=k·P:=3(2, 7):=(8, 3), k·Q:=3(5, 2):=(7,9) c2≡m·x2 (mod p)≡9 x 7(mod 11):=8

得到密文(c1, c2):=(8, 3, 8),并将密文(c1, c2):=(8, 3, 8)传送给Bob。 解密:B ob收到密文(c1, c2):=(8} 3} 8)后,计算 (x2, y2):=a·c1:=2(8, 3):=(7,9)

m≡c2·x2-1 (mod p)≡8 x 7-1 (mod 11):=9 3.3 密钥管理方法及技术

19世纪荷兰语言学家Auguste Kerckhoffs von Nieuwenhoff在他的著作《La Crypthographie Militaire》中首先提出了密码分析学的Kerckhoffs原则:攻击者可以知道密码系统的所有细节,包括算法及其实现过程,而密码系统的安全完全依赖于密钥的安全。 3.3.1 基于共享密钥系统的密钥管理方法及技术

密钥必须经常更换,这是安全保密所必需的。否则,即使采用很强的密码算法,同一份密钥使用的

时间越长,攻击者截获的密文越多,破译密码的可能性就越大。密钥管理就是要在参与通信的各方中建立密钥并保护密钥的一整套过程和机制。密钥管理包括密钥产生、密钥注册、密钥认证、密钥注销、密钥分发、密钥安装、密钥存储、密钥导出及密钥销毁等一系列技术问题。密钥管理的目的是确保使用中的密钥是安全的,即保护密钥的秘密性,防止非授权使用密钥。许多标准化组织提出了一些密钥管理技术的标准,如ISO 11770-X和IEEE1363。

每个密钥都有其生命周期,有其自身的产生、使用和消亡的过程。在密钥的生命周期中有4个主要的状态:即将活动状态(Pending Active)、活动状态(Active)、活动后状态(Post Active)和废弃状态(Obsolete)(如图3-10所示)。在即将活动状态中,密钥已经生成,但还未投入实际使用。活动状态是指密钥已在实际的密码系统中使用。在活动后状态中,密钥已不能像在活动状态中一样正常使用了,如只能用于解密和验证。废弃状态是指密钥已经不可使用了,所有与此密钥有关的记录都应被删除。

密钥安全概念分两级:第一级是长期的密钥,称为主密钥;第二级和一次会话有关,称为会话密钥。主密钥的管理涉及密钥的产生、注册、认证、注销、分发、安装、存储、导出及销毁等一系列技术问题。会话密钥只与当前的一次会话有关,是为了保证安全通信会话而建立的临时性密钥。所谓密钥的建立就是参与密码协议的双方或多方都得到可用的共享密钥的过程。主密钥的建立由专门的密钥管理机构完成,会话密钥的建立则由参与会话的各方协商完成。密钥的建立是信息安全通信中的关键问题,对安全通信的实现有着重要的影响。下面着重介绍会话密钥的建立方法。

密钥的建立是一个复杂的过程,参与协议的各方可能用直接或者间接的方式进行交流,可能属于同一个信任域,也可能属于不同的信任域,还可能使用可信第三方(Trusted Third Party, TTP)提供的服务。

(1)点对点的密钥建立

最常见的密钥建立模型是点对点的密钥建立模型(Point-to-Point Key Establishment)(如图3-11所示)。如果使用对称密码技术,在点对点的密钥建立模型中,要求在建立密钥之前参与协议的双方事先共享一个对称密钥,以便使用此共享的对称密钥来保护建立密钥时双方的通信。如果使用公钥密码技术,那么参与协议的双方也要事先知道对方的公钥。

如果用户和可信第三方之间建立了共享密钥,那么可以借助可信第三方的帮助,在任何两个互不认识的用户之间建立一个共享密钥。

(2)同一信任域中的密钥建立

信任域是指在一个安全策略约束下的安全环境。参与密钥建立的用户Alice和Bob处在同一信任域内,表明Alice和Bob处在同一个安全策略约束下的安全环境内。设可信第三方TTP提供密钥的产生、密钥的鉴别、密钥的分发等服务。发送者Alice和接收者Bob分别与可信第三方TTP共享一个密钥,Alice与TTP的共享密钥为kAT,Bob与TTP的共享密钥为kBT, Alice和Bob可以有两种途径建立密钥。

方案1:Alice产生与Bob共享的密钥kAB,将密钥kAB用Alice与TTP的共享密钥kAT加密,然后把加密的结果:EkAT(kAB),传送给TTP。TTP接收到Alice发送的加密消息后,用与Alice共享的密钥kAT解密后得到kAB,再用与Bob共享的密钥kBT加密kAB,然后把加密的结果:EkBT(kAB),传送给Bob,或者把加密的结果传送给Alice再由Alice传给Bob。Bob用与TTP共享的密钥kBT解密后得到kAB(如图3-12所示)。

方案2:Alice要求TTP产生密钥kAB,TTP产生密钥称kAB后分别用与Alice共享的密钥kAT和与Bob共享的密钥kBT加密kAB,然后把加密的结果:EkAT(kAB)和EkBT(kAB),分别传送给Alice和Bob,或者TTP把加密的结果都传送给Alice再由Alice传送给Bob。Alice和Bob分别用与TTP共享的密钥kAT和kBT解密后得到kAB(如图3-13所示)。

(3)不同信任域中的密钥建立

若参与密钥建立的Alice和Bob处在不同的信任域中,应如何实现密钥的建立呢?每个信任域都有各自不同的安全策略,如果可信第三方TTPA和TTPB之间存在信任关系,如共享某个密钥,则Alice和Bob可以通过一系列可信任的通信来建立Alice和Bob之间的共享密钥。

设Alice处在信任域A中,TTPA是信任域A中的可信第三方,Bob处在信任域B中,TTPB是信任域B中的可信第三方,Alice和 TTPA之间的共享密钥为kAT,Bob和TTPB之间的共享密钥为kBT,TTPA和TTPB之间存在共享密钥kPAB(如图3-14所示)。

Alice和B ob密钥建立过程如下:

? Alice产生与Bob的共享密钥kAB,将密钥kAB用Alice与TTPA的共享密钥kAT加密,然后把加

密结果EKAT(kAB)传送给TTPA。

? TTPA用与Alice共享的密钥kAT解密后得到kAB,再用与TTPB共享的密钥kPAB加密kAB,然

后把加密的结果EkPAB(kAB)传送给TTPB。

? TTPB用与TTPA共享的密钥kPAB解密后得到kAB,再用与Bob共享的密钥kBT加密kAB,然后

把加密的结果EkBT(kAB)传送给Bob。

? Bob用与TTPB共享的密钥kBT解密后得到kAB。 (4)Shamir三次密钥传递协议

Shamir设计了一种三次传递协议,使Alice和Bob无须事先交换任何密钥即可进行保密通信。这里

假设存在一种可交换的对称密码算法,即存在EA(EB(m))=EB(EA(m))

Shamir三次密钥传递协议描述如下(如图3-15所示):

? Alice用自己的密钥加密key得到密文c1:=EA(key),将密文c1传送给Bob。 ? Bob用自己的密钥加密c1得到密文c2:=EB(EA(key)),将密文c2传送给Alice。 ? Alice用自己的密钥解密c2得到C3:=DA(EB(EA(key))):=DA(EA(EB(key))):=EB(key),将C3传送给

Bob。

? Bob用自己的密钥解密C3得到key。

3.3.2 基于公钥系统的密钥管理方法及技术

在公钥密码系统中,公钥是公开传播的。公钥的这种公开性为信息安全通信带来了深远的影响,同时也为攻击者提供了可乘之机。例如,攻击者可以用一个假公钥替换用户的真实的公钥。因此,发展安全公钥密码系统的关键问题是如何确保公钥的真实性。我们将从密钥协商和公钥证书两个方面来讨论基于公钥密码系统的密钥管理方法和技术。

公钥密码系统的一个重要应用是分配会话密钥,使两个互不认识的用户可以建立一个共享密钥,然后双方就可以利用该共享密钥保障通信的安全。例如,Alice和Bob相互发送消息,Alice首先建立一个共享密钥key,并用Bob的公钥ke加密key得到密文c:=E(ke, key),然后把密文c传送给Bob。接收方Bob用自己的私钥kd解密密文c得到共享密钥key:=D(kd,c)。最终,Alice和Bob可以利用共享密钥key来保障双方会话的安全。在这种密钥建立的过程中,只有Alice对密钥的建立有贡献,Bob只是被动地接收Alice发送的密钥。为了增加密钥的随机性,有时需要通信双方都对密钥的建立做出贡献。密钥协商就是这样的一种密钥建立方法。

(1)Diffie-Hellman密钥协商

Diffie-Hellman密钥协商提供了对密钥分发的第一个实用的解决办法,使互不认识的双方通过公共信道交换信息建立一个共享的密钥。Diffie-Hellman密钥协商是一种指数密钥交换,其安全性基于循环群Z*p中离散对数难解问题。

假设p是一个足够大的素数,g是Z*p中的本原根,p和g是公开的。Alice和Bob可以通过执行下面的协议建立一个共享密钥。

Diffie-Hellman密钥协商协议如下:

? Alice随机选择a,满足1?a?p-1,计算c:=ga并把c传送给Bob。 ? Bob随机选择b,满足1?b?p-1,计算d:=gb并把d传送给Alice。 ? Alice计算共享密钥k:= da:=gab。 ? Bob计算共享密钥k:=cb:= gab。

例3-12 Diffie-Hellman密钥协商示例。

设Alice和Bob确定了两个素数p:=11,g:=7。

1)Alice随机选择a:=3,计算c:=ga:=73 mod 11:=343 mod 11 :=2,并把c=2传送给Bob。 2)Bob随机选择b:=6,计算d: =gb:=76 mod 11:=117649 mod 11:=4,并把d=4传送给Alice。 3)Alice计算共享密钥k:=da:=43 mod 11:=64 mod 11:=9。 4)Bob计算共享密钥k:=cb:=26 mod 11:=64 mod 11:=9。

Diffie-Hellman密钥协商防止了被动敌人的攻击。但是,一个主动攻击者Eve可以截获Alice发给Bob的消息然后扮演Bob的角色,因为该协议没有提供参与方的认证。在实际应用中,Diffie-Hellman密钥协商可以结合认证技术使用。

(2)椭圆曲线Diffie-Hellman密钥协商

设E是有限域Fp上的椭圆曲线,点P∈E,并且点P的阶n足够大使得由P生成的循环群上的离