对称密码体制

2024-07-11

对称密码体制(精选7篇)

对称密码体制 篇1

引言

无线技术和移动互联网为人们提供了很大的方便, 然而, 安全性始终是移动互联网面临的一个主要问题。无线网络中传输的消息更容易被窃听和截获。消息的机密性、完整性和不可抵赖性都面临严重的威胁[1]。与个人电脑相比, 移动计算设备, 例如智能手机, 通常具有较低的计算能力和较小的存储容量, 并且, 受到电池电量的限制。因此, 简单高效的安全技术才是最好的选择。

认证技术是保障信息安全的重要手段之一[1]。在移动互联网的无线环境中, 一个移动设备可能会快速移动, 并且访问不同域中的服务, 所以, 跨域认证的使用很普遍。跨域认证及其相关技术得到了广泛的研究, 形成了众多的跨域认证方案[2,3,4,5,6]。然而, 其中的一些方案被证明是不安全或低效率的, 另外一些方案并不适用于移动互联网的无线环境。因此, 本文提出了一种新的基于对称密码体制的无线网络跨域认证协议。

1一种新的无线网络跨域认证协议

该协议包括两个部分:初始认证和后续认证。当一个用户U第一次从域X漫游到域Y, 并且访问域Y的服务SY时, 执行初始认证。初始认证是一个真正的跨域认证协议。此后, 在一个可以接受的时间范围内, 如果用户U离开域Y并且重新进入域Y访问服务SY时, 将执行后续认证。此时, 后续认证代替初始认证完成跨域认证任务, 这将简化认证过程, 减少认证开销。

1.1 初始认证

具体消息说明描述见图1。

1.2 后续认证

具体消息说明描述见图2。

2 方案分析

2.1 安全性分析

·重放攻击:每个消息至少包含一个随机数或时间戳, 用于阻止重放攻击。认证的请求者会将自己生成的随机数和时间戳加入请求消息中, 收到响应消息, 它会检查响应消息的随机数和时间戳。如果随机数值错误或者时间戳过期, 协议将被终止。因为消息是被加密的, 所以随机数和时间戳不会被第三方篡改。

·中间人攻击:所有消息都是利用秘密密钥加密的, 秘密密钥是由消息的发送者和接受者共享的。大多数密钥都是由某一个KDC生成并且通过加密消息传送的。KTU是根据用户和服务之间的共享秘密信息计算出来的, 算法公开, 只有输入参数是秘密的。其它实体无法获取任何秘密密钥, 也就无法读取或修改消息。

·穷举攻击:协议中的消息都是经过加密的, 并且, 不同的消息使用的加密密钥并不相同, 因此, 穷举攻击非常困难。穷举攻击的难度与加密算法的复杂度以及密钥长度有关。由于本文主要是介绍跨域认证协议的, 协议中用到的具体加密算法并没有详细的论述。实际上, 加密算法的选择是比较宽松的, 只要保证足够的复杂度和密钥长度, 常用的加密算法都可以使用。

·伪造攻击:攻击者试图通过伪造一个或多个协议消息的方式来破解协议或获取部分关键内容, 也是非常困难的。这是由以下几个原因造成的:每条消息都是经过加密的, 且不同消息的加密密钥可能不同;消息内包含时间戳;消息内包含随机数以及针对随机数的运算;不同的消息之间具有一定的关联性, 也具有各自的独立性, 即使伪造成功一条消息, 也难以保证后续的消息能伪造成功。

2.2 性能分析

·密码系统的选择:在本文提出的跨域认证协议中, 采用了对称密码体制, 而不是非对称密码体制[1]。消息的机密性、完整性和不可抵赖行是通过对称密码系统保障的。与非对称密码系统相比, 对称密码系统更加高效。

·消息数量:初始认证的过程包括7个消息, 而后续认证的过程只包括3个消息。因此, 经过最多7个消息的认证过程, 一个用户就可以访问一个新域中的服务了。较少数量的消息有助于减少计算和通信开销, 这一点对于移动设备来说尤其重要。

·后续认证:如果一个用户已经完成了初始认证, 那么在一个“可以接受的时间周期”内, 当该用户重新进入此前认证过的域时, 可以利用后续认证达到同样的跨域认证效果。“可以接受的时间周期”的确定主要依赖两个条件:安全性要求和效率要求。通常, 这个时间周期取值范围可以是几秒到几十分钟。如果一个系统对于安全性要求较高而对处理效率要求不太高, 就应该把这个时间定得短一些;如果一个系统对于效率要求较高而对安全性要求不太高, 就应该把这个时间定得长一些。当这个时间周期确定之后, 在认证过程中, 就可以依据这个时间周期值和实际认证间隔时间, 判断是否需要重新进行初始认证。如果实际认证间隔时间小于这个时间周期值, 就无需重新进行初始认证。后续认证只包含3个消息, 因此, 比初始认证更加高效。此外, 后续认证可以在没有任何KDC支持的情况下工作, 这就减少了KDC的负担。

·时间同步:对于每一个实体, 当它发送一个请求消息的时候, 它把一个时间戳放到消息中并加密消息。当该实体收到相应的响应消息的时候, 它解密消息并检查时间戳, 看该时间戳是否是自己当初生成的。因为每个实体只检查自己生成的时间戳, 所以没有必要进行网络中的时间同步。因此, 时间同步的开销是0。

2.3 仿真测试

基于Java环境使用PC机 (CPU:Pentium 4 2.0G;内存:1G;操作系统:Microsoft Windows XP) 在局域网内构建分析测试环境, 测试本文的协议能否完成本文提出的基于对称密码体制的无线网格跨域认证, 对比测试Huang等人的方案[6]和本章提出的协议, 测试结果如表2所示。

测试结果显示, 基于本文提出的方法, 可以实现无线网格跨域功能, 效率与Huang等人的认证方法基本一致。本章提出的认证方法不存在系统瓶颈, 并可有效抵挡重放攻击, 提高系统安全性。

3 结语

本文提出了一种针对无线网络的跨域认证协议, 协议包括了两个部分:初始认证和后续认证。协议中传递的消息安全性是由对称密码系统提供的。该协议通过恰当的方式分发密钥, 可以有效地抵御重放攻击、中间人攻击、穷举攻击和伪造攻击。利用该协议, 不同安全域中的移动设备用户和服务之间可以容易地认证彼此的身份。通过分析和测试表明该协议认证过程简单、安全和高效, 适用于移动互联网环境。

参考文献

[1]Bruce Schneier.Applied Cryptography:Protocols, Algorithms, and Source Code in C, Second Edition[M].Wiley, New York, 1996

[2]Hongjun Liu, Ping Luo, Daoshun Wang.A distributed expansible authentication model based on Kerberos[J].Journal of Network and Computer Applications31 (4) , 2008, 472-486

[3]Rafael Marín-López, Fernando Pere!íguez, Gabriel López, Alejandro Pérez-Méndez.Providing EAP-based Kerberos pre-authentication and advanced authorization for network federations[J].Computer Standards&Interfaces33 (5) , 2011, 494-504

[4]Ming-Chin Chuang, Jeng-Farn Lee.A lightweight mutual authentication mechanism for network mobility in IEEE 802.16e wireless networks[M].Computer Networks, doi:10.1016/j.comnet.2011.05.027

[5]Hongjun Liu, Ping Luo, Daoshun Wang.A scalable authentication model based on public keys[J].Journal of Network and Computer Applications 31 (4) , 2008, 375-386

[6]Y.L.Huang, P.H.Lu, J.D.Tygar, A.D.Joseph.OSNP:Secure wireless authentication protocol using one-time key[J].Computers&Security28 (8) , 2009, 803-815

对称密码体制 篇2

1.1 对称加密体制

对称加密与密钥体制的加密技术主要的特征是加密与解密采用的是同一个密钥, 需要通信的双方共同保存其密钥, 各个方面应保证不会泄露密钥这样才能实现对称加密的效果。对于具有n个用户的网络, 就需要相应的 (n-1) /2数量的密钥, 在用户群不是很大的情况下可以利用此种加密技术, 而如果用户数量较多且分布较广的时候对称密钥的保存与分配会十分复杂, 因此对称加密技术也分为序列加密与分组加密。

1.2 非对称加密体制

非对称的密码体制就是利用不同的密封进行加密与解密。在非对称密码与密钥体制中两个不同的密钥区分为公共密钥与私有密钥。两个密钥之间有一定的联系, 即任意一个加密信息只能由另一个密钥进行解读。设定A向B发出一个加密信息M, 如A需要找到对应B的公开密钥, 即可以对M进行加密, 并将其发送至B, 而接收信息后B就会利用自身的私有密钥对密文进行解密, 得到原有信息M。非对称密钥加密技术与对称密钥不同, 不需要对密码、密钥进行分配与保存, 即对n个用户而言, 仅仅需要2n个密钥。非对称密钥算法有很多种, 如:RSA、椭圆曲线、EIGamal算法等, 其中RSA算法较为突出。其依据的是数学问题中的欧拉定理, 密钥的选择的关键问题是确定欧拉函数的两个基本参数。

2 无线传感器网络加密的特点

无线传感器网络通常都是在无人值守的范围内进行工作, 传感器节点之间都是利用无线通信链路进行传输的, 然而在无线传感器网络中, 计算、存储、通信、能量等资源十分有限。同时无线传感网络节点具有分布性、移动性、相对独立性等, 使得无线传感器网络又容易受到外部干扰与各种入侵行为的攻击。这样就形成了矛盾, 即一方面无线传感器网络的用途不断推广, 一方面是网络设备资源有限不能负担大量计算。因此在对传感器网络数据进行加密的时候如果简单地将网络加密措施移植到无线传感器网络中就会出现矛盾, 而影响网络的正常工作。所以在实际的加密过程中技术人员对对称加密与非对称加密中的典型算法进行了相关的研究, 并以此作为对无线传感器网络加密的参考依据, 使其更适应传感器网络的特征。

3 对称与非对称加密算法的实际比对

3.1 对算法时间的比对

对称加密的体制之所以应用广泛, 就是因为其加密和解密的算法处理速度更快且效率高, 同时算法的安全性也比较突出, 结合硬件设备对称的加密方式可以适应大批量节点、实时化、高安全性的网络环境中。而对于非对称加密体制而言, 如椭圆形曲线加密算法的ECC, 在无线传感器网络中应用需要进行相当多的前期数据处理, 如系统的初始化、椭圆形曲线的参数分析与选择、私钥与公钥的生成与传递等, 其加密与解密算法实现过程较为复杂, 同时还需要发送公钥与密文和消息鉴别等内容, 从而影响了该算法应用的速度与效率。

这两种算法在同等条件下的无线传感器网络中进行执行时间分析得出, 对称算法加密与解密仅仅为毫秒级, 椭圆形曲线加密则需要耗时数秒。所以就网络而言需要采集大量数据信息时, 如在医疗领域对人体心跳进行采集的时候, 其数据传输在每秒中就多达数十个数据包, 即使采用数据处理、过滤冗余等手段后, 其每秒传递的数据包也要超过4个。如果采用椭圆曲线密码体制进行加密, 不仅仅单个数据节点的数据不能及时传输, 且作为解密端的基站节点虽然比数据采集点有着更高的计算与存储资源, 但是也无法处理来自整个网络的数万个节点加密包。这样就可以看出, 椭圆曲线密码算法在传感器网络中应用必然会受到此种情况的限制。因此对实时性要求较高的无线传感器网络在进行加密的时候采用对称加密中的DES算法更加的实用。而传输数据发送周期较长的应用环境中, 无线传感器网络则可采用椭圆曲线密码算法进行加密, 以此获得较好的安全性, 同时增加了加密系统中密钥管理的便捷性。

3.2 空间占用的比对

在试验系统上分别对对称与非对称密码体制进行运行, 并对占用的空间进行比对, 其典型算法为DES与ECIES, 实践证明DES的性能要好于ECIES算法。在RAM占用分析中, 二者大致是相同的。在ROM的占用比较中, ECIES在计算中其整个加密的过程需要占用较多的存储空间。而DES算法只需要进行有限制的置换、替换等简单的代数操作, 从而占用的代码空间较小。从分析中可知ROM占用中椭圆曲线密码算法比DES算法要多出2倍多。与前面的情况相似, 不同的应用平台, 两种算法的空间占用也是不同的, 如MICAz与Imote2中, 前者采用DES密码算法比采用ECIES密码体制要承载更多的应用程序。后者作为一种性能优异的传感器平台, 采用性能更高的处理器, 节点资源丰富且性能高, 可以不考虑两者在代码空间上的占用差异。

3.3 算法的能耗比对

因为无线传感器网络的能源有限, 因此在分析加密算法对网络的适应性时也应当考虑其发送数据时对能耗的影响。按照功率计算公式分析, 其能耗的大小u当前节点的电压、节点关闭无线模块但是仍处于激活状态下的工作电流, 加密或者解密操作需要消耗的时间。参考相关的研究成果, 如:MICAz平台的电压通常为3v, 关闭无线模块而处在激活状态时的最大电流为8mA。在试验中分别DES和ECIES算法进行了能耗的比对。DES因为在计算时仅仅需要进行置换、替代等基本操作, 即可完成加密与解密, 处理器存储指令和数据处理操作需要的指令较少, 因此程序执行的时间短, 所以其能耗也就低。而在ECIES算法实现中, 初始化、椭圆曲线和参数计算、生成公钥私钥、加密数据和生产鉴别码等需要消耗的时间较长, 需要进行数量较大的数据存储与数据分析, 从而增加了算法的能量消耗, 执行因此加密与解密需要的能耗要大大高出对称算法, 在这里仅仅依靠两节电池进行供电的无线传感器网络必须对能耗问题进行充分考虑。

4 结语

对称与非对称是两种思路不同的加密算法, 各自具备优势。如果在实时性要求较高的场合, 对无线传感器网络的加密就成为了重要的安全措施, 试验证明对称加密算法的计算速度快、效率高、计算简单等, 都可以适应此种场合的加密;如在非实时性应用环境, 则需要考虑密钥分配简单、系统密钥量方便管理, 系统开放性需求高、可以方便地实现数字签名、抗抵赖性好的非对称算法则更加的适用。另外, 对于不同的平台与数据量而言, 安全性和密钥管理的需要也不尽相同, 可以灵活地对两种加密算法进行选择, 或者针对不同的环节而选择综合两种算法优点进行混合管理, 以此充分地利用对称加密算法的高效率性能和非对称算法的安全性能, 提高整个系统的加密效果, 保证网络的运行。

摘要:从对称与非对称两种密码加密算法出发, 分析了二者在无线传感器网络中的适用性, 其各自的优势使之在不同的场合下都可获得较好的效果, 因此应视网络情况选择具体的加密算法。

关键词:无线传感器网络,对称加密,非对称加密,算法比对

参考文献

[1]孙玉贵, 赵保华.无线传感器网络安全加密方法研究[J].小型微型计算机系统, 2009 (9) .

[2]杨跃, 王福豹, 段渭军.无线传感器网络安全定位研究[J].信息安全与通信保密, 2008 (9) .

DNA双链密码对使用的不对称性 篇3

正如密码子的非随机使用,大量的研究表明密码对的使用也是高度偏好的[13,14,15,16,17,18]。本文首次从密码对使用的角度分析了基因组组分极其偏向的两种重要的模式生物立克次氏体(GC=29%)和厌氧性粘菌(GC=75%)DNA双链上密码对的使用,研究DNA双链密码对使用的不对称性。其中后者属革兰氏阴性杆状细菌,其编码区占全基因组的90%。我们对同一物种前导链和滞后链上的基因以及不同物种基因组间的密码对用法进行了比较研究,结果表明他们的DNA双链上密码对使用存在非对称现象,并对造成这种不对称的可能机制进行了讨论,这是对目前密码对使用研究的补充,同时期望对DNA非对称机制的研究有一定启发。

1材料和方法

1.1 材料

1.1.1 基因组序列

厌氧性粘菌(Anaeromyxobacter_dehalogenans_2CP-C)和立克次氏体(Rickettsia_bellii_RML369-C)的基因组数据取自(http://www.cbi.pku.edu.cn/pub /bio-mirror/genebank/genomes/),前者序列号CP000251,其前导链与滞后链分别含有2075个基因和2271个基因;后者序列号NC_007940,前导链与滞后链分别含有653和776个基因。这里的基因包括实验上证实的和理论预测的。

1. 2 方法

1.2.1 密码对的频数

密码对的频数统计方法:从每个基因的起始密码子A1开始,依次为第二个密码子A2和第三个密码子A3等,则密码对的组合是按照A1A2,A2A3,…,An-1An的规则得到的,其中An是紧邻终止密码子的有义密码子。全部有义密码对的组合模式数是612=3721个。我们没有考虑AnAstop密码对的组合模式(183个模式)。统计了所有基因的各种密码对出现的频数。

1.2.2 密码对的观察频数

定义O为一个密码对出现的频数。

1.2.3 密码对的期望频数

定义E为基因内密码对(不考虑终止密码子)出现的期望值。计算如下,在x、x+1位点密码对AxAx+1(x=1,2……n-1)的期望值

E=PAxPAx+1×NTOT (1)

NTOT是密码对的总数,PAx和PAx+1是两个密码子Ax和Ax+1的概率,PAx和PAx+1分别定义为

PAx=NOBS(Ax)/NcodonsPAx+1=NOBS(Ax+1)/Ncodons (2)

NOBS(Ax)和NOBS(Ax+1)是密码子Ax和Ax+1的总数, Ncodons是密码子的总数。

1.2.4 修正的密码对期望频数

为消除二肽偏好性对统计结果的影响,对密码对的期望值作如下修正,使每个二肽的观察值与期望值相等[17]。

undefined

kl代表相应密码对所编码的二肽,上式中求和对所有编码二肽kl的密码对。

1.2.5 随机偏差期望值

定义密码对随机偏差的期望值为

undefined

1.2.6 密码对的偏差

为考察密码对的观察值和期望值的差别,定义偏差r

undefined

1.2.7 △REG值

为区分不同链特有的约束从而导致密码对使用偏好的差异,定义:

ΔREG=rp-rN (6)

上式中,rP,rN由式(5)计算,分别为前导链和滞后链上基因密码对的偏差。如果△REG>4或 △REG<-4, 则说明rP与rN在两链上的使用有显著差异[19]。

2 结果与分析

2.1 前导链和滞后链上密码对使用偏好性的差异

首先,根据(5)式密码对偏好性的定义,得到密码对使用偏好性指标,以此指标分别分析了DNA前导链与滞后链基因中密码对使用的偏好性,发现脱卤厌氧粘菌和立克次氏体基因组中分别有17% 和21%的密码对在DNA双链上的使用偏好性正好相对,即在前导链上偏好的密码对在滞后链上却不偏好,反之亦然(见图1)。从图1可见DNA双链之间密码对使用偏好性存在差异。

其次,按照(6)式定义,得到每个密码对的△REG,部分结果列于表1和表2。如:脱卤厌氧粘菌基因组中前导链上,密码对UCA-ACU的r值为35.8,然而在滞后链上却仅为-0.4,即此密码对在前导链上是极其偏好的,但滞后链上却避免使用。Svetlana Boycheva[19]指出,如果△REG>4或△REG<-4,则说明rP与rN在两链上的使用有明显差异。图2是△REG的绝对值大于4的密码对出现频数的百分比,从图2中可以看出:正链偏好△REG为正值的密码对,负链偏好△REG为负值的密码对,这个结果表明DNA双链之间密码对的使用偏好性的差异虽然弱,但的确存在。这种差异意味着不同链有作用于密码对上下文的特异的约束。Xiang Jia Min and Donal A. Hickey的研究发现,DNA单链不对称的核苷酸偏好影响着线粒体蛋白质的氨基酸组分[6]。DNA序列以核苷酸三联体的密码子形式编码蛋白质,需要特异的核苷酸组成,在密码子每个位点上都存在着核苷酸的特异性喜好。同时,我们前面研究发现,密码对中的不同位置对二核苷酸有特异的喜好,密码对中密码子第一位和第二位碱基组成和蛋白质的二肽含量相关,故二肽组成的限制可以使密码子不再满足PR2,从而对密码对偏好性产生重要的影响。另外,对应DNA复制的不同链之间,突变的压力、密码子和氨基酸的组分是非常有选择的[5]。因此,造成DNA双链上密码对使用偏好性差异的机制可能是由于不同链的突变偏好性,二肽的组分和密码子使用最优化等的选择压力约束的结果[7]。

2.2 前导链和滞后链上未出现的密码对模式

在脱卤厌氧粘菌的前导链和滞后链上分别有7.2% 和9.8%的密码对模式未出现,而立克次氏体前导链和滞后链上分别有4.4%和3.7%的密码对模式未出现。表3列出了以上两物种部分未出现密码对模式。从表3可得如下结论:

第一,两物种都存在这种趋势,前导链上未出现的模式并非滞后链上不出现,反之亦然;这点表明除了GC含量的偏好压力之外(DNA双螺旋的两链有相等的GC含量)单链特有的不同的选择压力和突变压力约束密码对的偏好使用。

注:rP和rN非别为前导链和滞后链上密码对的r值。

Note:r P and rNdenotes the r value of Codon pair located on the leading and lagging strands,respectively.

注:rP和rN非别为前导链和滞后链上密码对的r值。

PNNote:rPand rNdenotes the r value of codon pair located on the leading and lagging strands,respectively.

The ordinate represents the fraction of codon pairs from the total number of pairs in the corresponding group of genes.

其次,低GC的立克次氏体(GC=29%)基因组未出现的密码对普遍具有高的GC含量,而高GC的脱卤厌氧粘菌未出现的密码对普遍具有高的AT含量。这点是很容易理解的,如:高AT含量的基因组中避免G和C含量高的密码对。证明,密码对的偏好性受基因组GC含量的约束。另外,为进一步验证密码对的偏好受制于GC含量的压力,分析了上述两个物种每个基因中密码子的三个位点GC含量,结果显示:在脱卤厌氧粘菌基因组中GC含量高达75%,有84%的基因GC3含量在95%以上。为了揭示基因组核苷酸组分的偏好对密码对使用的影响,分别分析181个GC3含量为100%的基因和160个GC3含量小于84%的基因密码对的使用。发现有10%的密码对其r值在以上两组基因中偏好性正好相反。结果说明基因组GC含量的压力影响着密码对的搭配,暗示密码对使用的偏好来自基因组组分特有因素的约束。

注:O表示出现频数的观察值,E表示出现频数的期望值。

Note: O: Observed Number of Occurrence, E: Expected Number of Occurrence.

3 讨论

对厌氧性粘菌和立克次氏体基因组分析结果表明其 DNA双链之间密码对的使用偏好存在差异,即DNA双链特异的偏好性。造成这种不对称的原因可能是:

第一,基因方向性偏好[20]。基因方向性偏好对原核生物是一种普遍现象。如腾冲嗜热厌氧菌、乳酸乳球菌、生殖道支原体和肺炎链球菌前导链上编码的基因全部超过80%,其中腾冲嗜热菌达86.7%。而本文分析的两种细菌都表现为滞后链上编码的基因在53%以上,这种方向性偏好可能约束密码子的选择,因此影响密码对的搭配。

第二,密码子使用的差异。Romero Hyundai等人的研究发现[20],在沙眼衣原体基因组中密码子使用与其所在DNA链有关,不同的链上密码子的使用有显著差异,这种差异或许会造成密码对的偏好。这里分别分析了前导链和滞后链密码子的相对使用频率。发现在前导链和滞后链密码子的相对使用频率虽然变化很小,但有一定的规律。如在立克次氏体基因组中,其前导链和滞后链密码子的相对使用频率的差异在0~23% 之间,差别最大的是密码子CGC,其前导链和滞后链密码子的相对使用频率分别为0.41和0.32。

第三,第三位点为C的16个密码子中有15个在前导链的相对使用频率大于其在滞后链的相对使用频率。在厌氧性粘菌基因组中,前导链和滞后链上密码子的相对使用频率的差异在0~2%之间。结果表明在一定程度上,密码子的使用差异虽然很弱,然而或许也是影响密码对链特异的偏好因素之一。

第四,转录伴随修复。这是一种高度链特异而有效的核苷酸切除修复途径,它只对模板链起修复作用,对编码链不起作用[21,22,23]。因此,也可能是影响密码对搭配的原因之一。另外,可能与操纵子不同结构及邻位依赖突变偏好等有关,每个蛋白质中二肽的保守水平也可能是密码对偏好的因素。

总之,大量的进化因素约束着基因中密码对的使用,如复制、转录、翻译、突变、蛋白质结构和折叠、物种特有的生理上的约束等等。目前,就密码对的偏好性使用,一些学者尤其是生物信息学家在基于实验数据和理论计算分析两方面进行了一些研究,并取得了有意义的结果。研究方法大致可归为两大类:实验方法;统计方法。从核苷酸序列出发来研究密码子对的使用在生物信息学研究领域是一个比较棘手的问题。国内有关这方面的报道还非常少。近年,Gutman Hatfield、Gabriela Moura等[15,16,17]主要是利用数理统计的方法,例如聚类分析、多变量分析等。实验证明,这些方法都得到了不错的结果。如:发现影响密码对搭配的因素包括密码子的偏好性、二肽的偏好性、二核苷酸的偏好性、密码子的前后文关系、序列的GC含量以及转录期间翻译调节信号的潜在驱动力等等。最近一些方法如Age Tats等[24]运用聚类及多变量分析,对密码对进行了较全面的分析。然而,至今还没有人对DNA双链密码对的使用分别进行研究,尽管造成DNA双链密码对使用差异的因素极其复杂,我们已经发现了其中一些可能的影响因素,下一步的工作是分析更多的样本,从氨基酸水平,密码子或密码对所处的上下文关系等方面进行细致的研究,渴望揭示更多有关密码对使用的内在规律。

摘要:目的:分析基因组组分极其偏向的厌氧性粘菌和立克次氏体基因中密码对的使用,研究DNA双链密码对使用的不对称性。方法:生物统计学。结果:发现脱卤厌氧粘菌和立克次氏体基因组中分别有17%和21%的密码对在DNA双链上的使用偏好性正好相对,这表明它们的前导链与滞后链上密码对的使用偏好存在差异。因此,影响密码对搭配的重要原因之一是基因所在链的特性。这些特性可能包括:基因方向性偏好、密码子使用偏好、密码子的前后文关系等。结论:造成上述两物种DNA双链间密码对使用不对称的原因可能是DNA链特异的突变偏好性和在复制、转录、翻译水平上的自然选择约束。

对称密码体制 篇4

当前最著名、应用最广泛的公钥系统RSA是在1978年在题为《获得数字签名和公开钥密码系统的方法》的论文中提出的。它是一个基于数论的非对称(公开钥)密码体制,是一种分组密码体制。它的安全性是基于大整数素因子分解的困难性,而大整数因子分解问题是数学上的著名难题,至今没有有效的方法予以解决,因此可以确保RSA算法的安全性[2]。RSA系统是公钥系统的最具有典型意义的方法,大多数使用公钥密码进行加密和数字签名的产品和标准使用的都是RSA算法。

2 RSA公钥密码体制简介

2.1 密码体制概述与RSA算法

2.1.1 对称密码体制

对称密码体制是一种传统密码体制,也称为私钥密码体制。在对称加密系统中,加密和解密采用相同的密钥。因为加解密密钥相同,需要通信的双方必须选择和保存他们共同的密钥,各方必须信任对方不会将密钥泄密出去,这样就可以实现数据的机密性和完整性。比较典型的算法有DES(Data Encryption Standard数据加密标准)算法及其变形Triple DES(三重DES),GDES(广义DES);欧洲的IDEA;日本的FEAL N、RC5等。对称密码算法的优点是计算开销小,加密速度快,是目前用于信息加密的主要算法。它的局限性在于它存在着通信的双方之间确保密钥安全交换的问题。另外,由于对称加密系统仅能用于对数据进行加解密处理,提供数据的机密性,不能用于数字签名。因而人们迫切需要寻找新的密码体制。

2.1.2 非对称密码体制

非对称密码体制也叫公钥加密技术,该技术就是针对私钥密码体制的缺陷被提出来的。在公钥加密系统中,加密和解密是相对独立的,加密和解密会使用两把不同的密钥,加密密钥(公开密钥)向公众公开,谁都可以使用,解密密钥(秘密密钥)只有解密人自己知道,非法使用者根据公开的加密密钥无法推算出解密密钥,顾其可称为公钥密码体制。最有影响的公钥密码算法是RSA,它能抵抗到目前为止已知的所有密码攻击。

RSA算法是第一个既能用于数据加密也能用于数字签名的算法,算法的名字以发明者的名字命名。RSA算法的安全性依赖于大数分解问题的难解性。算法中使用的公钥和私钥都是两个大素数(大于100个十进制位)的函数。据猜测,从一个密钥和密文推断出明文的难度等同于分解两个大素数的积[3]。

RSA算法在ISAKMP/Oakley框架中被用做一种可能的身份认证方式。Diffie-Hellman密钥交换算法是ISAKMPIOakley框架的一个关键组成部分。在一个密钥协商会话的开始阶段通信参与方通过使用Diffe-Hellman算法产生双方共享的密钥,这些密钥将被用于密钥协商协议的后续步骤。

在实际应用中,人们通常将对称密钥算法和公钥密码算法结合在一起使用,以实现最佳性能。即使用某个对称密钥密码体制来加密需传递的机要信息,而同时使用RSA等非对称密钥密码体制来传送DES的密钥。这样就可以综合发挥两种密码体制的优势,即DES高速简便性和RSA密钥管理的方便和安全性。

2.2 RSA体制的算法过程

RSA密码体制使用了模n的非负最小完全剩余系中的运算,这里n是两个不同的素数p和q的乘积[3]。RSA体制的算法过程如下:

首先产生密钥,过程如下:

1)随机产生两个长度为K/2位的素数P和Q。

2)计算公钥public Key=P*Q;(public Key是k位的长度)。

3)随机产生一个加密密钥key E,2<=key E<=Φ(n)-1,其中GCD(key E,Φ(n))=1。

注意这是保证解密密钥key E×key D mod(Φ)(n)=1有解的充要条件,Φ(n)称为n的欧拉函数,值为:Φ(n)=(P-1)*(Q-1)。

4)求解解密密钥key D=key E-1 mod(n),key E-1为解密密钥key D的逆元,此公式原方程为(key E×key D mod(n)=1)。

由此公钥,加密密钥和解密密钥全部产生。

其次,对明文加密或对密文进行解密,过程如下:

1)加密:C=Mkey E mod public Key;其中M表示明文,C表示密文。

2)解密:M=Ckey D mod public Key;其中M表示明文,C表示密文。

2.3 RSA体制的实现

RSA密码体制的实现是一个比较复杂的过程,它涉及到素数的产生、大整数模运算等数学运算。RSA体制中,p、q均为大的素数,如何有效地产生大素数将是实现RSA体制所需解决的第一个问题。

通常情况下,人们使用一种概率算法来产生大素数。这是因为p、q都是大素数,如果使用因子分解的办法来求素数p、q,这样的难度与对RSA进行攻击(既分解大合数)实际上是相同的,在计算机是可行的。

概率算法的工作过程一般并不着眼于产生素数,而是首先随机地产生一个大奇数,然后使用概率性算法判定该奇数是否为素数(这样的过程一般称为素性检测)。

2.4 RSA公钥密码体制的优势[4]

1)机密性(Confidentiality):保证非授权人员不能非法获取信息,通过数据加密来实现;

2)确认(Authentication):保证对方属于所声称的实体,通过数字签名来实现;

3)数据完整性(Data integrity):保证信息内容不被篡改,入侵者不可能用假消息代替合法消息,通过数字签名来实现;

4)不可抵赖性(Nonrepudiation):发送者不可能事后否认他发送过消息,消息的接受者可以向中立的第三方证实所指的发送者确实发出了消息,通过数字签名来实现。

可见公钥密码体制系统能够满足网络信息安全的所有主要目标。

3 在ASP.NET中实现RSA加密解密的主要方法[5]

在.Net Framework中提供常用的加密算法类中,支持RSA相关的类主要有两个:RSA类和RSACrypto Service Provider类。RSA类是“表示RSA算法的所有实现均从中继承的基类”,而RSACrypto Service Provider类是“使用加密服务提供程序(CSP)提供的RSA算法的实现执行不对称加密和解密”。另外,“表示RSA算法的标准参数”的RSAParameters结构也是很重要的,它保存了RSA算法的参数。

RSA参数的产生:RSA参数的类型就是上面提到的RSAParameters结构,其包含了D、DP、DQ、Exponent、Inverse Q、Modulus、P、Q八个字段。加密时仅需要Exponent和Modulus两个值,可看成公钥。解密时所有字段都需要,可看成私钥。下面这段程序显示了如何产生RSA两个参数:

RSACrypto Service Provider rsa=new RSACrypto Service Provider();

RSAParameters rsa Params Exclude Private=rsa.Export Parameters(false);

RSAParameters rsa Params Include Private=rsa.Export Parameters(true);

RSACrypto Service Provider类的Export Parameters(bool)方法用于导出RSA参数,true表示导出上述八个字段的“私钥”,false表示导出“公钥”。

使用RSA参数进行加密解密:这一步需要把上面两个参数导入到RSACrypto Service Provider类对象中,再用它对数据进行加密。如下面的代码所示,我们可以写一个函数来完成加密过程:

解密时只要把rsa.Import Parameters(rsa Params Exclude Private)换成rsa.Export Parameters(rsa Params Exclude Private),再把Encrypt换成Decrypt就行了。

保存和加载RSA参数:RSA参数可以保存为XML格式,下面代码说明了如何保存和加载(只列出了关键部分)

保存:

4 结论

RSA公开密钥加密算法发展至今,在电子安全领域的各方面已经形成了较为完备的国际规范。RSA作为最重要的公开密钥算法,在各领域的应用广泛。本文详细论述了RSA公钥体制的算法、安全性以及应用优势,以及利用当前常用的ASP.NET技术,简述设计实现对传输文件的RSA加密解密过程。

摘要:针对当前互联网常用密码安全技术——RSA公钥密码体制,该文简述了其算法原理、优势、安全性,并通过ASP.NET语言设计实现RSA加密解密。

关键词:互联网,RSA加密,解密,ASP.NET

参考文献

[1]杨义先,纽心忻,李名选.网络信息安全与保密[M].北京:北京邮电大学出版社,2001.

[2]辛运炜.密码学算法[M].北京:电子工业出版社,1998.

[3]Douglas R.Stinson.密码学原理与实践[M].北京:电子工业出版社,2003:131-132.

[4]安全技术——RSA公钥密码体制安全性分析.http://jxzhoumin.javaeye.com/blog/196011.

公钥密码RSA体制及安全性分析 篇5

公钥密码[1]是1976年提出的一类新的密码体制,公钥密码体制RSA[2]是1977年由美国麻省理工学院的Ron Rivest,Adi Shamir和Len Adleman在题为《获得数字签名和公开密钥密码系统的方法》的论文中提出的。RSA是一个基于数论的非对称密码体制,其名称来自于三位科学家的姓名首字母。RSA算法是和一个能同时用于数据加密和数字签名的算法,是公钥密码体制中最优秀、影响最大的加密算法。RSA的安全性是基于大整数素因子分解的困难性,在理论上一直未能得到证明。RSA经历了各种攻击,至今未能被完全攻破。

1 RSA 算法及分析

1.1 RSA算法描述

(1)找到2个大素数p,q

(2)做乘法:n=pq;欧拉函数值φ(n)=(p-1)(q-1)。

(3)随机选取加密密钥e,满足gcd(e,(p-1)(q-1))=1。

(4)满足ed≡1mod(p-1)(q-1),则d=e-1mod((p-1)(q-1))。

(5)dn互素。公钥是(n,e),私钥是(n,d)。

(6)两个素数pq销毁(保密,不能泄露出去)。

1.2 RSA算法分析

加密消息m时,将m看成一个大整数,把其分成比n小的数据分组。按公式加密:

ci=mie(mod n) (1)

解密消息时,取第一个加密后的分组ci并计算式(2):

mi=cid(mod n) (2)

例如:设p=37,q=41(十进制),那么:n=pq=1517,随机选取e=17作为公钥。将n=1517和e=17公开,并对pq保密。为了得到解密指数,需要找到e=17模(p-1)(q-1)的乘法逆元,于是可以通过使用欧几里得算法得到:

d=e-1mod1517=593

加密消息:m=1234567。

在此例中,按3位数字一分组就可以进行加密:

m1=123;

m2=456;m3=007(不足在左边填充0)。

加密:

12317mod1517=1107=C1;

45617mod1517=1292=C2;

00717mod1517=645=C3;

密文:C=11071292645

解密消息时需要密钥进行相同的指数运算。

如:1107593mod1517=123=m1

消息的其余可用同样的方法恢复出来。

2 几种针对RSA的攻击方法

2.1 RSA的公共模数攻击[3]

为了密钥管理的方便,对一个网络用户群的系统可以选取一个共同的RSA-n密码体制,而不同的人拥有不同的ed。这样系统的安全性将受到威胁。一般的情况是同一信息用不同的公钥加密,这些公钥共模而且互素,那么该信息无需私钥就可以得到恢复。设m为信息明文,用两个互素的公钥e1,e2加密,公开模数为n,那么就有:

C1=me1modn

C2=me2modn

攻击者知道n,e1,e2,C1和C2,就能得到m。因为e1和e2互素,所以通过欧几里得算法可以知道存在r,s,使得re1+se2=1,且r,s中必有一个是负数,设r>0。再用欧几里得算法计算:

C1-1modn,

则(C1-1)-rC2smodn=(me1)r(me2)smodn=

mre1+se2modn=

m

恢复出了明文。

对于RSA的公共模数攻击,解决的办法是不共享n。

2.2 低指数攻击[4]

2.2.1 小加密密钥e攻击

为了提高加密速度,尽量选取较小的加密密钥e。但是如果e选取过小,则系统是不安全的。

例如:对RSA-n,设明文为m,0≤m≺n。如果随机取e过小,则可能有:me≺n。那么C=(memodn)=me,这就是普通的指数,即m=Ce

所以使用加密指数e=216+1=65537(费马素数!)可以避免一些对小加密密钥e的攻击。

2.2.2 小解密密钥d攻击

1990年Micgael Wiener证明了,若d的长度小于模n长度的14时,利用连分数可在多项式时间内计算出d。这一论点使用了连分式的经典数论理论以及如何找到用有理数对二次无理数最合理的逼近方法。也就是说,对于1024位的模数,解密指数应该至少为256位。在1999年,D.B,G.Durfee,在preprint中报告这个结果可以被“改进”到甚至对于更大的解密指数也可以进行快速破解。

对于低指数攻击,对付的办法就是e和d都取较大的值。

2.3 选择密文攻击[5]

由于RSA密文是通过公开渠道传播的,攻击者可以获取密文。假设攻击者为A,密文收件人为T,A得到了发往T的一份密文c,他想不通过分解质因数的方法得到明文。换句话说,他需要m=cd。

为了恢复m,找一个随机数r,r<n,当然有T的公钥(e,n)。他计算:

x=re%n(用T的公匙加密r)

y=xc%n(将临时密文x与c相乘)

t=r-1%n

A知道RSA具有下面的一个特性:

如果x=re%n,那么r=xd%n

因此他想办法让T对y用T自己的私匙签名(实际上就是把y解密了),然后将结果u=yd%n寄回给A。A只要简单地计算:m=tu%n

上面结论的推导是:

tu%n=r-1yd%n=r-1xdcd%n=cd%n=m

对于选择密文攻击,可以采取的办法有两条:一是采用好的公钥协议,保证工作过程中实体不对其他实体任意产生的信息解密,不对自己一无所知的信息签名;二是决不对陌生人送来的随机文档签名。

3 RSA加密算法的安全性

RSA的安全性基础是数论和计算复杂性理论中的下述论断:求两个大素数的乘积是计算机上容易的,但要分解两个大素数的乘积求出他的素因子在计算上是困难的。在理论上,RSA的安全性取决于分解的困难性,但在数学上至今还未证明分解模就是攻击RSA的最佳方法,也未证明分解大整数就是NP问题,可能有尚未发现的多项式时间分解算法。

下文是几种因数分解的算法:

(1)试探除法,一种最老也是最笨的办法,穷举所有小于sqrt(n)的素数,耗时以指数率增长。

(2)二次筛法,对10110以内的数是最快的算法。

(3)MPQS,QS的改进版本,要快一些。

(4)分区筛法(NFS),目前对大于10110的数是最快的算法。曾被用来成功地分解过第九费马数。这些算法代表了人们对大数分解(也就是对RSA攻击)的探索历程。最好的算法具有超多项式率(次指率)的时间复杂度,NFS具有最接近于多项式率的表现。

但是随着计算机能力的提高和因子分解算法的不断改进,其中计算能力的提高包括由于计算机网络的发展所导致的联网众多计算机进行分布式计算能力的大力提高,将会对RSA的安全性造成较大威胁。

4 结束语

RSA算法是第一个同时用于加密和数字签名的算法,也易于理解和操作。RSA是被研究得最广泛、最优秀的公钥方案之一。专家指出,就目前的计算机水平用1024-BITS的密钥是安全的,2048-BITS是绝对安全的。但是他们并不指望这个局面延续到下世纪,他们只是指出:如果RSA像有些人说的那样脆弱,就不可能从1978年一直保持到现在还没有被攻破。

摘要:RSA算法是一种公钥密码算法。RSA是一个基于数论的非对称密码体制,RSA的安全性是依赖于大整数素因子分解的困难性问题。其经历了各种攻击,至今未能被完全攻破。

关键词:公钥密码,RSA算法,加密,解密,安全性

参考文献

[1]Diffie W,Hellman M.A New Direction in Cryptography[J].IEEETrans on Info.Theory,1976,22(6):644-654.

[2]Rivest R L,Shamir A,Adleman L.A Method for Obtaining DigitalSignatures and Public-key Cyptosystem[J].Comm ACM,1978,21(2):120-126.

[3]Delaurentis J M.A Further Weakness in the Common Modulus Proto-col for the RSA Cryptosystem[J].Cryptologia,1984,8(3):253-259.

[4][美]Paul garrett.密码学导引[M].吴世忠,译.北京:机械工业出版社,2003.

对称密码体制 篇6

美国政府于1993年4月提出议案,倡导联邦政府和工业界使用新的具有密钥托管功能的联邦加密标准[1],这是最早的密钥托管方案,它是通过防串扰的芯片(clipper芯片)来实现的。在保密通信领域,存在两种相互矛盾的需要——通信用户对自身隐私的保密性需要与政府为抵制犯罪而进行搭线窃听的需要。而如何在这两种需要中寻求平衡是密钥托管的重要研究内容。

为解决这种矛盾,国内外诸多部门和专家进行了研究[2,3,4]。但是,目前提出的密钥托管方案大都是建立在有某一完全可信赖的部门基础上的,如密钥管理中心KMC,但是在现实生活中,很难找到完全可信任的部门。况且,掌握了大部分重要信息的KMC一旦被攻破,通信用户则无隐私可言。针对这种情况,本方案中,在防止用户、托管代理、监听机构欺诈的同时,将KMC的权力进行了限制,使其无法得到用户的私钥信息,也防止了KMC的欺诈。另外,方案还具有高效性和高安全性。这里采用基于状态树的(k,n)秘密共享算法[5]构造方案,它的运算开销远远低于基于Lagrange多项式插值[6]来构造的秘密共享方案。同时,出于安全性考虑,系统利用基于难解对数问题的ELGamal密码体制[7,8]来实现。

1 密钥托管方案

1.1 系统描述

假设该密钥托管系统包括以下5个主要成员:其中密钥管理中心(KMC),负责为所有用户颁发证书;进行通信的用户A、B,其中要进行密钥托管的用户设为A,其私钥为dA;由P1,P2,…,Pn组成的托管代理,被授权进行用户密钥的托管工作;E是政府的法律执行机构,负责对通信用户进行监听;法律授权机构,负责为监听机构进行法律授权。该系统的会话密钥设为sk,它由通信用户双方事先协商决定,sk在信道传送时使用ELGamal公钥密码体制进行加解密。系统在用户和托管机构之间,监听机构与托管机构之间分别建有安全信道。

1.2 方案的设计

系统基于ELGamal公钥密码体制,由密钥管理中心KMC选取p和g并将它们向系统内用户公开,其中p是一个大的安全素数,而g是GF(P)的一个本原元。若用户需要利用此系统进行通信,则必须先向密钥管理中心注册申请公钥证书。具体步骤如下。

(1)用户A向密钥管理中心申请托管业务,由密钥管理中心发放其身份证IDA。

(2)用户A自己选取部分私钥。首先,用户A随机选取d'∈Zp作为自己的私钥并保存,再计算gd'(modp)将其赋值给Y,最后只将得到的Y传递给密钥管理中心KMC。

(3)密钥管理中心收到Y后,再随机选取两个值t和d''(其中d''∈Zp),通过公式X≡gd"Y≠1(modp),y1≡gt(modp),y2≡(d''Yt)gt(modp),计算得到X、y1和y2。将得到的X公开,并把(y1,y2)回传给用户A。

(4)用户A的私钥由KMC和用户共同决定。用户利用KMC传递的(y1,y2),通过公式d''=(y2(y1d')-1)(modp)计算得到KMC选取的私钥碎片d''。然后,用户计算dA≡(d'+d'')(mod(p-1)),若dA为0,那么需重新注册,否则将所得dA作为自己的私钥,并且将公钥PA≡gdA(modp)公开。

(5)用户A将自己的私钥拆分并交由n个托管代理进行托管。方法为:用户A通过公式dA=d1+d2+…+dn将私钥拆分成n份,再将这些碎片通过秘密信道分发给n个托管代理。将密钥碎片di(i=1,2,…,n)作为托管代理Pi的私钥,用户A计算得它们的公钥Qi,将(di,Qi)发给托管代理,最后用户A公开自己的签名信息。这里采用基于状态树的(k,n)秘密共享方案实现。

(6)托管代理Pi收到用户发送的(di,Qi)后,首先,通过公式Qi≡gdi验证收到的私钥和公钥是否正确。若公式成立,则认为托管的内容是有效的,否则是无效信息,可以要求重新发送。其次,验证用户A的签名信息是否有效。若两项都符合,那么托管代理生成托管证书。(其中托管证书应包括用户A的特定标示符UID、托管代理的标示符、托管代理的公钥和托管证书号。)最后,托管代理用自己的签名私钥对此信息签名后发给KMC,否则不签名。

(7)密钥管理中心KMC在接收到各托管代理的信息后,都要先验证其托管证书的真实性,并且在收到全部代理的信息后,通过公式(1)验证其托管内容的完整性。

若KMC验证公式(1)的等式成立,则证明用户A确实将自己的私钥进行了托管。如果验证全部通过,那么KMC将为用户A颁发公钥证书C(A),否则不予注册。

1.3 用户间的通信

设用户A、B欲使用该系统进行通信,那么双方将在事先共同决定本次通信的会话密钥sk。假设A作为发送方想向接收方B传递消息M,通信过程如下所示。

(1)发送方

发送方A先向接收方B或KMC获得B的公钥证书C(B),再选择随机数c∈Zp,计算(a,b)=(gc(modp),sk*PBc(modp)),其中PB是B的公钥。发送方A通过安全信道向B发送{E1(M,sk),LEAF}。E1(M,sk)是传统密码加密体制,如3DES、IDEA等;而LEAF={(a,b),T,S(H(M,T)),IDA,IDB,C(A)}(其中T代表时戳,H是一个被公开的Hash函数),用户A用自己的私钥对H(M,T)进行签名后得到S(H(M,T))。

(2)接收方

用户B接收到用户A发的消息后,通过解密算法恢复消息。首先,通过ELGamal解密算法恢复事先协商的本次通话密钥sk,计算sk=b*(adB)-1(modp);再由sk得到A传送的消息M。恢复出M后需验证其有效性。利用M求H(M,T),若其与收到的S(H(M,T))中的H(M,T)一致,那么确认本次接收的消息有效,否则无效。

1.4 监听过程

(1)要实现监听,监听机构必须首先向法律授权机构申请并取得监听授权。监听机构在截获用户间通信的信息{E1(M,sk),{(a,b),T,S(H(M,T)),IDA,IDB,C(A)}}后,将监听授权证书和LEAF出示给任意k个托管代理。

(2)托管代理Pi(i=1,2,…,k)在验证了监听机构所持许可证的正确性和时效性后,将Si≡adi(modp)传递给监听机构。

(3)监听机构收到Si(i=1,2,…k)后,计算公式(2)

计算本次会话密钥sk=b*S-1(modp),在利用sk解密E1(M,sk)即可得到明文M,最后,计算H(M,T),验证其是否满足签名方程,若满足则说明M是有效的。

2 性能分析

定理1若成立,则认为托管代理机构托

管并上交给KMC的密钥是完整有效的。

证明

此,托管代理机构托管并上交给KMC的密钥是完整有效的,即用户确实进行了托管,等式成立。

定理2用户A、B通信过程中,B可以通过自己的子密钥计算得到会话密钥sk,从而实现保密通信。

证明sk=b*(adB)-1(modp)=sk*PBc(gc)dB)-1(modp)

因此,B可以通过自己的子密钥dB计算得到会话密钥sk,从而实现保密通信。

3 安全性分析

(1)该方案具有极高的安全性。系统采用的基于离散对数问题困难性的ELGamal密码体制具有更高的抗攻击力。如用户向KMC传递的Y≡gd'(modp),由离散对数的困难性可知,攻击者无法获知用户选取的私钥d'的任何信息;而(k,n)门限方案也具有安全特性,即唯有t个或更多的子密钥才能恢复密钥,方案中的所有等式皆不会泄露任何私钥信息。

(2)该方案可防止用户欺诈、托管代理和密钥管理中心的欺诈。用户的密钥不再由用户独立选取,而是采取了由用户和密钥管理中心各选部分碎片的方式,因而两方都不能独自决定私钥。这里由于用户不具备私钥的绝对选择权致使用户无法欺诈,同时也可以避免阈下信道攻击。系统中,密钥管理中心生成用户证书的必要条件是验证其托管内容的有效性和完整性,这样可以避免用户逃脱托管,同时避免托管代理提交假的或无效份额,避免了用户和托管代理的欺诈问题,从而为政府的合法监听提供了保证。而对于密钥管理中心来说,它无法从用户传递的Y中获知用户自选私钥碎片d'的任何信息,从而防止了KMC的欺诈。

(3)通信时,发送方会在其传递的信息{E1(M,sk),LEAF}中,在LEAF上添加时戳T,并对此时戳一起签名,从而使通信的信息具有了时效性。监听机构若想进行监听,那么它除了需要向委托人出示法院的许可证书外,还需说明进行监听的时间。因此,可防止政府监听机构在获得用户的密钥后伪造用户的签名,并且在合法的监听结束后用户可以不必更新自己的私钥,从而达到保护用户隐私的目的。

(4)方案可避免所谓的“一次监听,永久监听”问题,这里政府的监听机构重构的只是当次通信的会话密钥sk,它无法得知用户之前和以后的通信信息。并且在监听过程中,监听机构并没有获得用户的任何私钥信息,因为监听机构无法从各托管代理传递的Si≡adi(modp)中得知di的信息,即无法得知用户私钥,那么用户也无需在通信后更换私钥。

(5)该方案具有计算量小、效率高的优势。现在常用的Shamir(k,n)门限秘密共享算法的时间复杂度为O(nt-1),而该方案中使用的基于状态树的(k,n)门限秘密共享方案,它的时间复杂度仅为O(t),从而大大节省了计算的时间。

4 结束语

综上所述,论文采用高安全性的ELGamal密码体制和高效率的基于状态树(k,n)门限秘密共享算法,设计了一种可防止欺诈的门限密钥托管方案。经验证,方案具有计算量少、效率高的优势,且在防止用户、托管代理、监听机构欺诈的同时,提出并解决了防止密钥管理中心欺诈的问题。系统具有较强的灵活性和适应性,可根据需要增删成员,有广泛的实用性。

摘要:为寻求用户间秘密安全通信和监听机构合法监听之间的平衡,论文采用ELGamal密码体制和基于状态树的(k,n)门限秘密共享算法,设计了一种高安全性的门限密钥托管方案。经验证,方案在防止用户、托管代理、监听机构欺诈的同时,提出并解决了防止密钥管理中心欺诈的问题。

关键词:门限方案,ELGamal密码体制,密钥托管,KMC

参考文献

[1]Denning D E,Smid M.Key escrowing today[J].IEEE Communication Magazine,1994,32(9):55-68.

[2]M.H.Dehkodi,S.Mashhadi.An efficient threshold verifiable multi-secret sharing[J].Computer Standards&Interfaces,2008,30(3):187-190.

[3]孙晓蓉,工育民.基于RSA的密钥托管方案[J].电子科学学刊,1999,21(6):833-837.

[4]Amr M.Youssef.Cryptanalysis of Boolean permutation-based key escrow scheme[J].Computers and Electrical Engineering,2010,36(1):56-60.

[5]张春生,姚绍文,张险峰.基于状态树的(t,n)门限密钥托管方案[J].计算机工程与应用,2007,43(4):146-149.

[6]L.Luksan,C.Matonoha,J.Vlcek.On Lagrange multipliers of trust-region subproblems[J].Bit Numerical Mathematics,2008,48(4):763-768.

[7]张亚玲,张超奇,马巧梅.读写器可移动的RFID高效认证协议[J].计算机工程,2012,38(1):264-267.

对称密码体制 篇7

互联网的普及,使得网上电子数据交换大量增加。与此同时,信息的安全问题也显得至关重要。目前各方通常综合采用加密等技术作为确保网络安全的手段,根据密钥类型的不同,现代密码技术分为两类:对称加密系统和非对称加密(公开密钥加密)系统。当前安全有效的公钥密码体制主要有RSA体制,ElGamal体制和椭圆曲线加密体制(ECC体制)。1985年,由Neal Koblitz和Victor Miller提出的椭圆曲线密码体系,其安全性建立在椭圆曲线离散对数的难解性的基础上,在同等密钥长度的条件下其安全远高于RSA算法和其它算法,在网络安全领域有着广阔的应用前景。

一、椭圆曲线基本描述

1.1 椭圆曲线的定义

椭圆曲线的定义,最常用的是Weierstrass方程:

一条椭圆曲线是在射影平面上满足方程上所有点的集合,且曲线上的每个点都是非奇异(或光滑)的。

椭圆曲线在射影平面上有一Z=0的点(0,1,0),我们称其为无穷远点,记为O。令x=X/Z,y=Y/Z,则(1)式为:

椭圆曲线(2)可以限制为如下形式:

,为定义在有限域FP(P为大素数)上的椭圆曲线。

1.2 椭圆曲线的运算规则

椭圆曲线加法的运算规则是:一条直线与椭圆曲线相交,所有交点的和为O。在特定的加法运算下,椭圆曲线上的点集构成一个Abel群。定义如下加法运算:设P,Q,R∈E。

(1)O+P=P,且P+O=P;

(2)-O=O;

(3)如果P(x1,y1)≠O,则-P=(x1,-y1);

(4)如果Q=-P,则P+Q=O;

(5)如果P≠Q,Q≠O,Q≠-P,令R表示直线PQ(若P≠Q)或E在P点的切线(若P=Q)与椭圆曲线E的另一个交点,则P+Q=-R。

当P=Q时,P+Q=P+P=2P,此时称为倍点运算,倍点运算是点加运算的特例。给定一个整数k和椭圆曲线的点P,将P加到自身k次,记为kP,称为椭圆曲线上的点的数乘运算。

椭圆曲线可以用参数集T={p,a,b,G,n}来表示,其中p,a,b含义如上描述,G是在椭圆曲线中所挑选的基点,n是G的阶,其值是一个非常大的数,是满足nG=O成立的最小正整数。

1.2 椭圆曲线离散对数问题

根据椭圆曲线的数乘的定义,可以找到一个点P∈E(Ep),满足k∈Fp,kP=P+…+P(共有k个P)。若存在椭圆曲线上的另一点Q≠P,满足方程k P=Q。椭圆曲线离散对数(ECDLP)问题就是在已知P,Q的情况下求k的过程,即k=logpQ[1]。

已知k和P计算Q比较容易,而由Q和P计算k则比较困难,至今没有有效的方法来解决这个问题,这就是椭圆曲线加密原理所在。椭圆曲线离散对数问题是比整数因子分解问题难得多的数学难题,从这种意义上看,椭圆曲线密码系统是目前安全性较高的公钥密码系统。

二、椭圆密码体制的应用

椭圆曲线密码体制的应用主要有加密/解密、数字签名等领域。

2.1 加密/解密

为方便于椭圆曲线密码体制的计算,需要把明文嵌入作为曲线E中上的一个点,也就是对明文信息的编码。如果明文较长,可分段处理[2]。现在我们描述一个利用椭圆曲线进行加密通信的过程:

假设A向B进行加密传输,首先把发送的报文m编码成椭圆曲线上的一个点Pm椭圆曲线参数为T={p,a,b,G,n}。

(1)选取椭圆曲线Ep(a,b)和基点G。A在区间[1,n-1]中随机选取一个整数nA作为私钥保存,B随机选取一个整数nB作为私钥保存,并分别产生自己的公钥PA=nA×G,PB=nB×G。

(2)A随机选取一个正整数k,并产生密文Cm={k G,Pm+kPB},在这里,A使用了B的公钥。

(3)B接到密文{kG,Pm+kPB}要解密,需做以下运算:Pm+k PB-nB(k G)=Pm+k(nBG)-nB(kG)=Pm+k(nBG)-k(nBG)=Pm。

2.2 基于椭圆曲线数字签名

定义椭圆曲线Ep(a,b)和基点G,n是G的阶。建立密钥对(d,Q),其中d为私钥,Q=dG,Q是公钥予以公开。

A向B发送签名信息M时,签名过程如下:

(1)将消息M代入Hash函数,如MD5或SHA-1,计算消息M的摘要e=H(M)。

(2)在区间[1,n-1]中随机选取一个整数k。

(3)计算R=kG。

(4)计算r=Rx mod n(Rx是R的横坐标),若r=0,则返回(2)。

(5)计算s=k-1(e+rd)mod n,d为A的私钥,若s=0,则返回(2)。

(6)A把消息签名(r,s)传送给B。

B收到签名(r,s)后,对签名进行验证:

(1)验证r和s,是不是在[l,n-1]内的正整数,如果不是,则(r,s)不是有效的签名。

(2)获得A的签名公钥Q,利用A和B相同的Hash函数,计算消息M的摘要,e=H(M)。

(3)计算w=s-1 mod n。

(4)计算u=ew mod n。

(5)计算v=rw mod n。

(6)计算T=uG+vQ。

(7)如果T=O,则拒绝签名;否则计算v=Tx mod n(Tx是T的横坐标)。

(8)如果v=r,则A对消息M的签名被验证通过,否则拒绝此签。

该签名方案在抗攻击性安全强度、处理速度、密钥尺寸、计算开销与带宽需求等方面中具有一定的应用优势。

三、椭圆曲线安全性分析

安全性是所有密码体制的核心问题,ECC是建立在求椭圆曲线离散对数困难基础之上的,它的安全性依赖于椭圆曲线离散对数问题(EDLP)的安全性,椭圆曲线是目前最流行的公钥体制之一,所以对它的攻击也成了当前密码学研究中的一个热点。

3.1 特殊曲线攻击

1. MOV攻击

1991年Menezes,Okamoto和Vanstonel[3]给出了一种将ECDLP归约为有限域上离散对数问题,这种方法可以采用指数计算法,但它只适用于超奇异椭圆曲线,对不是超奇异椭圆曲线的曲线则无能为力。

2. Smart方法

q是素数,对定义在Fq上且E(Fq)=q的椭圆曲线E被称为“畸形”(Anomalous)曲线。Smart在1988年提出了一种能够在O(lnq)时间内求解这类曲线的方法[4]。Smart方法就是构造了E(Fp)到Fp的加法群的一个同构映射,使在多项式时间内可求解这类ECDLP。

3.2 一般曲线攻击

1. 大步小步法

1978年以前求解ECDLP最好算法是Shanks的大步小步(Baby step Giant step)算法[5]。设阶为n,这一算法的时间复杂度为,空间复杂度也为。该算法是对“穷搜索”法在时间和空间上的折衷。

2. Pohlig一Hellman算法

这个算法是由Pohlig和Hellmna提出的[6],实质上是一种演化算法。它的最大功能是能够将阶为n的有限群上的离散对数问题演化为阶为n的一个素因子的循环群上的离散对数问题。设阶为n,Q=mP,并设n的标准素因子分解式是,然后对每一个求出m mod,最后由中国剩余定理可求出m。因此为了抗击这种攻击,阶n必须包含大的素因子,而最理想的情况是n本身就是一个素数。

3. Pollard

方法

1978年Pollard提出了一种概率求解的方法[7],其时间复杂度大约是,与Shanks的大步小步法相当,但空间复杂度仅为O(l)。后来又提出如何将Pollard算法分为r个进程并行处理,则时间复杂约为。目前分布式Pollard算法是已知的对一般椭圆曲线离散对数最好的攻击方法。攻击者利用Pollard算法攻击的途径有硬件攻击(Hardware Attacks)和软件攻击(Software Attacks)。

3.3 椭圆曲线与其它加密体制的安全性比较

当前安全有效的公钥密码体制主要有RSA体制和ECC(椭圆曲线密码)体制等。RSA是目前使用最广泛的公钥加密算法,其安全性建立在大整数素因子分解困难的基础之上。但是随着大整数分解和计算机并行处理技术的发展,当前采用的公钥体制必须进一步增长密钥才能实现相对的安全性。而这样将使其更加复杂、速度更慢。

椭圆曲线引入到密码学体系以来,逐步成为一个流行的公钥密码体制,这种密码体制的引人之处在于安全性较好的前提下,可以使用较短的密钥。椭圆曲线资源丰富,同一个有限域上存在着大量不同的椭圆曲线,这为安全性增加了额外的保证,也为软硬件实现带来了方便[7]。

下表列出了RSA和ECC在安全强度相同情况下的密钥长度对比。

相对于RSA等其它公钥加密系统,椭圆曲线的离散对数计算更为困难。并且,与其他公钥密码系统相比,椭圆曲线密码(ECC)系统具有安全性高、计算负载小、密码尺寸短、速度快、占用带宽少等优点。其将逐步取代RSA密码系统,成为公钥密码系统的主体已经成为趋势。

四、结束语

椭圆曲线密码系统是建立在椭圆曲线理论基础上的公钥密码系统,该系统的安全性已经被公认。在理论的突破和技术的更新下,相信椭圆曲线密码体制的实现会加快,也更适合当今电子商务、电子政务和智能卡等需要安全和快速反应的发展潮流,其应用前景也更加广泛。

参考文献

[1]庞闻.ECC算法在数字签名中的应用[J].渭南师范学院学报,2006,2,41-43.

[2]户占良,张建林.椭圆曲线密码体制的应用和研究现状[J].乐山师范学院学报.2006,12,99-101.

[3]A.Menezes,T.Okamoto,S.Vanstone.Reducing elliptic curve logarithms to logarithms in a fi nite fi eld.IEEE Transactions on Information Theory,1993,volume39,Pages1639-1646.

[4]N.Smart.Announcement of an attack on the ECDLP for anomalous elliptic curves,1997.

[5]Shanks.D.Five number theoretical algorithms.Proc,2nd Manitoba Conference on Numerical Math,(Cong resses Nu merantiu m V II,Un iv.Man itoba Winnipeg),1972:353-356.

[6]白永志.基于椭圆曲线密码系统的数字签名研究与应用[D].2005,19.

上一篇:中国物流问题下一篇:疾控机构文化