基于RSA门限密码体制

时间:2022-06-02 02:47:39

摘要:本文通过矩阵分解的方式的生成密钥碎片,通过(t,n)门限密码体制实现密钥共享和管理。在分发私钥的时候采用椭圆曲线密码体制(ECC)分发密钥碎片,通过RSA密码体制进行解密,然后通过门限密码体质的方式使任何小于t个成员都不能打开系统信息,任何大于或等于t个成员都能打开系统信息。

关键词:密钥管理;密钥共享;ECC;RSA门限密码体制

中图分类号:TN918.1文献标识码:A文章编号:1007-9599 (2010) 16-0000-02

Threshold Cryptography based on RSA

Han Zhong

(Kaifeng People’s Police School,Kaifeng475003,China)

Abstract:This paper produces secret sharing through the method of matrix,distributing private key through ECC,the encrytion through RSA Threshold cryptography,making it possible for any member to open the whole system of information through (t,n) threshold while impossible for any member smaller than T to know the whole system of information.

Keywords:Discrete management;Private key sharing;ECC;RSA threshold cryptogrtaphy

一、引言

随着社会的进步,网络应用的深入,人们或企业间通过网络交流越来越频繁,交流的信息量也越来越大。又由于现在的网络是一个开放性的网络,网络中交流的信息和数据很容易被人们捕获或被监听,一些不法分子往往能轻而易举地获得这些重要数据,为了使我们所需要交流的数据能够在不安全的网络中安全的传递,需要我们在发送数据时对某些重要数据进行加密运算,生成密文,而接受者通过一定的算法对接收到的数据进行解密运算,还原出原始数据,我们通常称之为明文。

随着非对称密码学的提出,人们对密码学研究的深入,现代密码学技术在私钥没有泄露的情况下基本上可以做到完善保密性,也就是说偷窥者在掌握了一定量的密文和明文的情况下无法在可以接受的时间内将密文翻译成明文。有时候,我们为了防止权力的过分集中,常常采用密钥分散管理的方式进行密钥管理。本文采用的密钥分散管理算法为:把一个系统密钥S分成N个密钥碎片S1,S2,…,Sn,并且分发给N个具有合法性的节点P1,P2,…,Pn,给定一个正整数T,且T

二、密钥碎片的生成

在传统网络中,可靠的认证中心CA是非对称密码体制系统不可或缺的一部分,它的主要任务是对节点身份认证证书的合法性进行认证以及对公钥算法中生成的密钥进行管理。本文的加密、解密算法也都是在非对称密码体制的基础上提出的,所以,我们这里也首先需要存在一个可靠的认证中心CA(certificate authority),所谓可靠,就是假设这个CA是安全而不容易被攻破的,以及CA不会对系统信息构成威胁,这里的CA就好比大会选举中的唱票人员,起着监督者和公证人的作用,对投票者的身份的合法性进行认证,对投票过程进行监督,左右不了大会的投票结果。CA采用如下的算法进行密钥碎片的生成,具体算法可以描述为:CA首先要建立一个矩阵A= (其中i,j都是正整数,1

x =

认证中心CA再把向量A中的每个列向量值进行散列运算,把散列运算的结果作为一个密钥碎片S1,S2,S3,…,Sn,安全的发送给n个合法的节点P1,P2,P3…,Pn,认证中心CA和各个合法节点要对密钥碎片进行签名生成节点身份认证证书,以便对其他节点对持有该证书的节点身份的合法性和证书的有效期进行认证。

三、密钥碎片的分发

至于如何安全地将密钥碎片发送到合法用户手中,有着很多种方法(包括硬件的或软件的),由于椭圆曲线密码体制密钥短、具有较高的安全性和难破译性,本文采用椭圆曲线的方法将密钥碎片发送给合法用户。这里就需要每个合法节点用户建立一个自己的公私钥对,认证中心CA用户节点的公钥对要发给用户节点的密钥碎片进行加密,用户节点再用自己的私钥对认证中心发过来的密钥碎片进行解密。假设某个节点的椭圆曲线方程为 = +x+6,私钥为t=9,公钥a=(2,7),b=ta=9a=(10,9)具体用公式描述加密解密过程如下:

加密过程: (x,k)=(k(2,7),x+k(10,9)

解密过程: ( , )= -9 =x+k(10,9)-9k(2,7)=x

当我们需要增加或减少或改变某些节点的权利时,我们只需要将相应地改变矩阵A的列向量数及其内容。比如我们要去掉第i个节点的权限,只需要认证中心CA去掉矩阵中的第i个列向量,同时,集合C中的列向量数也要做相应地调整。在投票后,认证中心CA将收到的密钥碎片和矩阵A的列向量进行对照,在矩阵A中不存在的列向量都被认为是无效的。当我们需要增加一个或几个合法用户节点的权限时,我们只需要简单地在矩阵A中增加一个或几个列向量,只要满足增加的列向量ajN和列向量B的乘积数和C中的任一元素都不相等即可。然后用解密后的密钥碎片组成一个新的矩阵A’,再用矩阵A’和列向量B相乘,把所得的列向量C’与列向量C中的元素进行对照,如果集合C’

四、节点与认证中心间建立会话机制

在合法节点与认证中心通信时,通信内容往往会被窃听,为了保证通信内容的安全性,我们需要对节点发送给认证中心的密钥碎片进行加密,然后安全地传送到合法用户节点,这就是多级加密中的二级加密思想。本文采用的是RSA密码体制对各节点的密钥碎片进行加密。各合法用户节点用认证中心CA的会话公钥对自己拥有的私钥碎片中每个元素逐个进行加密,加密算法公式如下:

设n=pq,其中p和q为大素数。且定义

K={(n,p,q,a,b):a*b 1(mod (n))}

这里值n和b组成了公钥,且值p,q和a组成了私钥,当需要投票时,节点Pi用如下公式1对密钥碎片中的每个元素逐个进行加密,然后把加密后的数据发送给认证中心CA,认证中心收到节点Pi发送过来的数据后用如下公式2逐个进行解密。

因为a*b 1(mod (n))

因此我们可以得出a*b=u (n)+1

加密过程: (x)= mod n1

解密过程: (y)= mod nmod nmod n

x mod n2

认证中心CA把从各个节点Pi发送过来的正确的密钥碎片经解密后,把这些密钥碎片随机组成一个矩阵A1,当A1的列向量数大于等于T时,任取其中T列组成新的矩阵A2,然后看A2与列向量B乘积C1是否属于C,如果属于C则投票完成,如果不属于C,我们就重新选取A1中的元素T列,再与列向量B乘积,只要有一次乘积结果是C中的一个元素,投票就算完成。只有所有次选取组成的向量与B乘积都不是C中的元素时,不能打开系统秘密。

五、结束语

本文采用多方协商的方式,使用密钥分散管理能很好地解决权力过分集中和密钥不便经常改变的问题,能够抗中间人的攻击,通过改变矩阵A的列向量值而改变节点用户的权限。但是对系统内部的攻击却很薄弱,这几乎是现在信息安全方面的一个通病,再一个是过分依赖认证中心,如果认证中心不可靠了,整个系统就没秘密可言。所以我们接下来的工作主要是加大对认证中心CA的监管力度,完善公钥密码体制,降低过分对认证中心CA的依赖程度。

参考文献:

[1]程克非.门限RSA密码体制[J].电子学报,1999,6

[2]庞辽军,王育民.基于RSA密码体制(t,n)门限秘密共享方案[J].通信学报,2005,6

[3]陈伟东,冯登国.一类存在特权集的门限群签名方案[J].软件学报,2005,7

[4]亢保元,王育民.完备秘密共享方案的条件[J].工程数学学报,2004,2

[5]王衍波.一种新的背包公钥密码体制[J].理工大学学报(自然科学版),2001,2

[6]Ratna Dutta,Sourav Mukhopadhyay,Martin collier Computationally secure self-healing key distribution with revocation in wireless ad hoc networks[J].Contents lists available at Science Direct Ad Hoc Networks,2010:15-17

作者简介:

韩忠(1970-),男,河南开封人,讲师,硕士,研究方向:网络安全、计算机犯罪侦查。

上一篇:浸胶液中添加纳米材料蒙脱性研究 下一篇:红外遥控智能数字钟的设计