基于标识的密钥产生方法及装置的制作方法

文档序号:7884412阅读:291来源:国知局
专利名称:基于标识的密钥产生方法及装置的制作方法
技术领域
本发明涉及网络安全技术领域,更具体说涉及在非对称密钥系统中产生公私钥对的方法和装置。
背景技术
随着互联网的发展,对计算机和网络安全的要求也越来越高,相应的加密算法和技术也在蓬勃发展。目前的加密技术可分为两类,即对称密钥技术和非对称密钥技术。其中非对称密钥技术由于可以避免通过网络传递解密密钥即私钥的需要而受到了广泛的应用。
非对称密钥目前最为本领域内的技术人员所公知的技术是PKI(PublicKey Infrastructure)。PKI的运行靠两大部件层次化的CA机构(Certification Authority)和庞大的证书库LDAP。PKI靠第三方公证来解决标识和密钥的捆绑。为此需要建立庞大的层次化的CA认证机构。PKI还要靠在线运行的证书库的支持,证书库的在线运行引发了大量的网络信息流量,例如一方为了获得通信对方的证书,就需要向CA层层认证。于是各国学者,包括部分PKI公司在内,正在积极寻找一种新的出路。
另一种非常具有前景的加密技术是IBE(Identity BasedEncryption)。1984年,Shamir提出了基于标识的签名设想,并推测基于标识的密码体制(简称IBEIdentity Based Encryption)的存在性,但是一直没有找到具体的实现方法。
2001年Don Boneh和Matthew Franklin根据Shamir的想法,提出了从Weil配对来实现基于标识的密码体制。与PKI技术相比较,IBE算法虽然取消了庞大的层次化CA机构,但需要保留用户相关的参数。因为参数是与各用户相关,所以参数量与用户量形成正比。只要需要公布用户相关信息,就需要目录库(LDAP)等数据库的支持,进而也没法减少动态的在线维护量。

发明内容
本发明的目的就是找出简便的基于标识的不受用户数量限制的密钥产生方法,以解决现有技术中存在的上述问题。
为此,本发明提出了一种密钥产生及管理的方法以及相应的装置和系统,从对方的标识产生公钥,从而不需要第三方CA的证明,也没有系统在线维护量。
根据本发明,基于标识的密钥产生及管理方法以有限的公、私钥对,分别建立公钥计算参数和私钥计算参数,并创设映射计算方法和运算规则,使各依赖方能够通过对方的标识直接计算对方公钥,从而实现基于标识的密钥方法。
本发明公开了一种用于根据用户标识产生非对称密钥对的方法,包括下述步骤生成彼此对应的私钥计算参数和公钥计算参数;根据第一用户提供的标识,利用所述私钥计算参数计算第一用户的私钥;将所产生的私钥提供给第一用户;以及公布所述公钥计算参数,以使得第二用户在获得第一用户的标识后,可根据第一用户的标识,利用所述公钥计算参数,计算第一用户的公钥。
另外,本发明公开了一种用于根据用户标识产生非对称密钥对的装置,包括一个或多个处理器以及存储器,所述处理器生成彼此对应的私钥计算参数和公钥计算参数,将私钥计算参数存储在所述存储器中,根据第一用户提供的标识为其计算私钥,将所计算的私钥提供给该第一用户,并公布公钥计算参数,以使得第二用户可根据公布的公钥计算参数和第一用户的标识,计算出第一用户的公钥。
第二用户可根据公布的公钥参数和第一用户的标识,计算出第一用户的公钥。
本发明可以椭圆曲线密码实现,也可以模拟为离散对数密码。
本发明中的标识的定义是广义的,用户名、用户名身份证号、电话号码、邮件地址、个人帐号、设备序列号、软件进程名等都可以做标识。
在本发明的实施方式中,私钥计算参数是秘密变量,专用于私钥的生产,存放于密钥管理中心(KMC)。公钥计算参数是公开变量,直接公布于最容易访问的任何媒体中。因为需要公布的参数量非常有限,一般直接记录在个人ID认证卡中,与私钥一起发给用户使用。因此,各依赖方只要知道对方的标识,都可以通过公钥计算参数计算出任何用户的公钥。
与现有技术相比,本发明把对方的标识当作对方的公钥,从而不需要第三方机构的证明。与IBE算法相对比的是,本发明只需保留少量共用参数,而无需保留大量用户相关的参数,因而不需要目录库(LDAP)等数据库的支持,也没有系统在线维护量。
本发明对现有技术的对比以及对现有技术的改进用下表可更清楚地表现出来

具体实施方式
下面的实施例中,以椭圆曲线密码为例说明本发明的公私钥产生方法。
根据椭圆曲线密码(ECC)标准的定义,设椭圆曲线(密码)Ey2=x3+ax+b(m),参数T(a,b,G,n,m),其中m是模数,n是界,G是基点,即G=(x0,y0)。假设将私钥s选择为任一整数,那么可得到对应的公钥P为椭圆曲线E上的一个点sG,用(xs,ys)标记。
(1)公钥计算基和私钥计算基公、私钥的计算基是实现基于标识的密钥算法的基础。私钥计算基SCB由任意选择的整数变量sij组成,而公钥计算基PCB则根据上述椭圆曲线密码的原理,从私钥计算基派生,即sijG=(xij,yij)=Pij。在私钥计算基和公钥计算基之间形成一一对应的公、私钥关系。将计算基的大小定义为f×h,可定义如下的私钥计算基(SCB)和公钥计算基(PCB)s11s12s13… s1hP11P12P13… P1hs21s22s23… s2hP21P22P23… P2hSCB=s31s32s33… s3hPCB=P31P32P33… P3h… … … … … … … … … …sf1sf2sf3… sfhPf1Pf2Pf3… Pfh公、私钥计算基有以下性质。
性质1在私钥计算基SCB和公钥计算基PCB之间存在一种一一对应关系。设SCB的s11是私钥,那么PCB的P11是s11的公钥,这是因为P11=(x11,y11)=s11G=s11(xo,yo);同理,假设s21是私钥,那么P21是s21的公钥。类推,设sij是私钥,那么Pij是公钥(i=1..f,j=1..h)。
性质2在椭圆曲线密码中,如果s11和s21是私钥,对应的公钥为P11和P21,那么,当s11+s21=α做私钥时,P11+P21=β为α的公钥。这是因为β=P11+P21=(x11,y11)+(x21,y21)=s11G+s21G=(s11+s21)G=αG。正好符合椭圆曲线密码公、私钥的定义。
从性质1中可以看到,私钥计算基和公钥计算基的建立是非常简便的,从性质2中可以看到,用一种算法实现密钥的规模化提供了依据。
如果能把计算基的这种性质和用户标识有机联系起来,就不难构造出基于标识的密钥系统。
在另一个实施例中,利用了离散对数密码,定义的参数为T=(g,m),g是小于m的整数基,m是模数。假设整数s是私钥,那么,公钥是gs=p mod m,p是整数。与椭圆曲线密码一样模拟出私钥计算基SCB和公钥计算基PCB,结果与上述椭圆曲线密码的情形下类似。
(2)行映射和列置换为了实现基于标识的密钥分发,必须找到一种方法,把公私钥计算基和用户标识结合起来。公钥和标识绑定的方法不是唯一的,但最简便的方法是随机映射。
为了说明问题方便,在下面的例子中用加密的简单方式(随机),将标识和公钥变量绑定在一起。为此需设置两种算法行值计算方法和列值计算方法。
行值计算方法给定行值密钥ROWKEY,这是一个公开变量,以常数形式固定。
首先在一种HASH算法(如MD5)下,将不定长度的名称标识(IDENTITY)变换成固定长度的变量data1。
HASH(IDENTITY)=data1;在加密算法(如AES)下,将中间变量data1作数据,用行值密钥ROWKEY加密,得到中间变量MAP0将中间变量MAP0做数据,再用密钥ROWKEY加密,再得中间变量MAP1,类推,直到得出所需数量的MAP值为止。为了说明方便,在本例中设定计算基大小为(32×32)。所用密钥ROWKEY由ID认证卡中提供。
AESROWKEY(data1)=MAP0;AESROWKEY(MAP0)=MAP1;MAP0的16个字节分别用m(在本例中m=32)模,得到16个小于m的行值,以map
-map[15]标记;MAP1的16个字节分别模m也得到16个小于m的行值,以map[16]-map[31]标记。
MAP0[I]mod m=map[i](i=0,1,..,15);MAP1[I]mod m=map[i](i=16,17,..,31);至此得到32个map值,用于行的32次选取。如map[1]=5,则在私钥计算基或公钥计算基中选择第5行,又如map[2]=21,则选择第21行,类推。
列值计算方法
为了避免列变量的顺序取用,设置了列变量的置换算法PMT,列置换的结果是(0,1,2,3,...,31)的全排列的一种。计算方法如下。
首先计算PMT算法所用密钥PMT_KEYAESCOLKEY(IDENTITY)=PMT_KEY;COLKEY在ID证书中给出。
然后用PMT_KEY作密钥,用PMT算法对原序加密,求出列置换值PERMUTPMTPMT_KEY(原序)=PERMUT;原序是0,1,....31的自然序。PERMUT是新的经置换的序σ(0,1,...,31)=t0,t1,t2,...,t31。
假设t0,t1,t2,...,t31=(3,6,12,...,5),则按3,6,12,...,5的新序取用列变量。
比如,经过上述的行值计算和列值计算后,得到32个行的行值为(7,13,29,...,11),列置换值为(3,6,12,...,5),那么,在私钥计算基中取用的变量为s[7,3],s[13,6],s[29,12],...,s[11,5];在公钥计算基中取用的变量为P[7,3],P[13,6],P[29,12],....,P[11,5];由于公钥计算和私钥计算时的映射值相同,其取用位置完全相同,这就保证了公、私钥的配对关系。
(3)作用域参数作用域的划定是为了在认证网络中解决开放和封闭这一对矛盾,是实现逻辑隔离的关键技术。设将认证网络分为n层,为了说明方便,分三层,即作用域参数分为省域、市域、县域。
省域是只在该省范围内起作用的参数;如果不同省域间没有互联要求而完全独立,那么就使用独立的计算基就行,可以不设省域参数。
市域是只在该市范围内起作用的参数;在不同市域之间参数均不同。
县域作用域是只在该县范围内起作用的参数;在不同县域之间参数均不同。这就满足分割的需求。
省域公钥参数保证省域范围内的交信,市域公钥参数保证该市域范围内的交信,县域公钥参数保证该县域范围内的交信。这就满足互通需求。
(4)密钥对的计算设在互联网上的用户A的地址为abcde@yahoo.com,计算基大小为(32×32);假设,行值为MAP0[I]mod 32=map[i](i=0,1,..,15)MAP1[I]mod 32=map[i](i=16,17,..,31);列值为PMTPMT_KEY(原序)=t0,t1,t2,...,t31;那么,密钥管理中心为用户A生产私钥时所用计算公式为 各依赖方计算用户A的公钥时所用计算公式为 将椭圆曲线密码的公、私钥计算过程用离散对数密码模拟如下密钥管理中心为用户A生产私钥时所用计算公式为 各依赖方计算用户A的公钥时所用计算公式为 到此,形成了一个将邮件地址作标识的公钥和私钥对应关系。只有密钥管理中心才保存有私钥计算基,因此私钥的生成只能在密钥管理中心进行;又因为公钥计算基是公开的,所以任何依赖方只要知道对方的邮件地址都可以计算对方的公钥。因为公钥的计算是自动的,所以对用户来说,等于把对方的用户名(标识)直接当作公钥。
(5)公钥的存储各用户只保留自己的私钥和公钥计算基,用于数字签名和密钥交换。设公钥计算基的大小为(f×h),那么存储量为(f×h)个,而公钥量则为(f)h“。下表列出了计算基大小和公钥量的比较。如当矩阵大小为(16×64)=1k时,存储量为1k,而公钥量则为(16)64=2256=1077。

由于需要存储的共用参数量非常有限,而且是公开变量,可存放在各种最方便的媒介或地点。如直接写在个人ID证书中发给每一个人,或公布在各网站上共用。
(6)ID证书ID证书由证书体和变量体构成。
根据本发明的证书体与一般证书差不多,主要定义用户基本属性,如姓名、职务、等级、有效期、签发单位与签名等固定部分,因此不再论述。证书体满足划分等级的分配式义务型security(保密)安全策略。
变量体是认证卡的核心,具体配置有关密钥、参数变量,包含n个不同标识和n个作用域。变量体包括以下16段内容。变量体满足划分角色的申请式自愿型assurance(自保)安全策略。
验证参数项

角色标识定义项

作用域项

私钥变量项

公钥参数项

证书签发项

以上是变量体的主要组成部分,但可以将公钥计算基和备用密钥加进变量体中。
公钥计算基项

备用密钥项

因此证书的组成形式有以下三种第一种形式ID证书=证书体+变量体;第二种形式ID证书=证书体+变量体+公钥计算基;
第三种形式ID证书=证书体+变量体+备用密钥;(7)实施系统示例可以基于本发明构建一种可信认证系统,包括办公认证系统、电话和邮件认证系统、票据认证系统、代理(进程)认证系统等等。系统大致分三大部分后台程序,客户端程序,标准化部分。
后台程序是密钥中心的程序,密钥中心是管理的最高机构。在相应的安全策略下,主要承担私钥的脱线生产任务。私钥生产需要配置私钥计算基,根据用户提供的用户标识(电话号码,邮件地址,个人帐号等)生产相应私钥,并在用户口令保护下记录在媒体中,以ID证书方式发给用户使用,所述媒体例如是智能IC卡。
客户端程序的关键部分存放在智能IC卡中,它包括含有签名、认证等功能的智能IC卡操作系统、公钥计算程序以及ID证书。这样在智能IC卡中就同时记录了作为共用参数的公钥计算基和公钥计算程序。密钥中心统一生产、配发含有签名、认证等功能的智能IC卡操作系统、公钥计算程序以及不同内容的ID证书的智能IC卡。
因为密钥管理是相当复杂的系统工程,所以程序的系统适应性和证书的灵活性是至关重要的。认证网络有多种,如单层认证网络,多层认证网络,星状认证网络,格状认证网络等,应适应各种不同认证网络,ID证书格式要相同,但证书的内容可不同。
代理(进程)鉴别技术,只能用全软件实现,重点解决私钥的保护。
本发明的技术可以软件、硬件或软件和硬件的结合来实现。本发明的方法可体现在若干程序指令中,这些指令被一个或多个处理器执行时可执行在此所描述的方法,从而实现本发明的目的。
虽然在前述实施例中是以椭圆曲线密码以及离散对数密码为例,并结合了一些具体的密钥生成过程来从标识和少量公用参数产生的公钥,但是本领域内的技术人员将会认识到,基于本申请所公开的内容,可采用现在可获得以及将来可能开发出的其他密码机制来从标识和少量公用参数产生公钥,因为本发明的范围不局限于在此所公开的具体密码形式和产生机制,而包括其他可能的密码形式和产生机制。
权利要求
1.一种用于根据用户标识产生非对称密钥对的方法,包括下述步骤生成彼此对应的私钥计算参数和公钥计算参数;根据第一用户提供的标识,利用所述私钥计算参数计算第一用户的私钥;将所产生的私钥提供给第一用户;以及公布所述公钥计算参数,以使得第二用户在获得第一用户的标识后,可根据第一用户的标识,利用所述公钥计算参数,计算第一用户的公钥。
2.如权利要求1所述的方法,其中产生所述公私钥计算参数时利用了椭圆曲线密码或离散对数密码;并且所述公私钥计算参数具有矩阵的形式;
3.如权利要求2所述的方法,其中在计算所述公钥/私钥时,对所述标识进行变换,定位所述公/私钥计算参数矩阵中的一个或多个元素,组合得到所述公/私钥。
4.如权利要求1所述的方法,其中第一用户和第二用户是同一用户或不同用户。
5.如权利要求1所述的方法,其中,计算所述公钥和私钥时,在所述公钥计算参数和私钥计算参数之外,还利用了具有分层结构的作用域参数。
6.一种用于根据用户标识产生非对称密钥对的装置,包括一个或多个处理器以及存储器,所述处理器生成彼此对应的私钥计算参数和公钥计算参数,将私钥计算参数存储在所述存储器中,根据第一用户提供的标识为其计算私钥,将所计算的私钥提供给该第一用户,并公布公钥计算参数,以使得第二用户可根据公布的公钥计算参数和第一用户的标识,计算出第一用户的公钥。
7.如权利要求6所述的装置,其中产生所述公私钥计算参数时利用了椭圆曲线密码或离散对数密码;并且所述公钥计算参数和私钥计算参数具有矩阵的形式;
8.如权利要求7所述的装置,其中在计算所述公/私钥时,对所述标识进行变换,定位所述公/私钥计算参数矩阵中的一个或多个元素,组合得到所述公/私钥。
9.如权利要求6所述的装置,其中第一用户和第二用户是同一用户或不同用户。
10.如权利要求9所述的装置,其中,计算所述公钥和私钥时,在所述公钥计算参数和私钥计算参数之外,还利用了具有分层结构的作用域参数。
全文摘要
本发明公开了根据用户标识产生非对称密钥对的公钥和私钥的方法和装置。密钥管理中心产生公私钥计算基并公布公钥计算基。根据用户提供的标识为其计算私钥并提供给用户。任一用户都可根据其他用户的标识和所公布的公钥计算基来计算其他用户的公钥。因而在获得通信对方的公钥时不需要第三方CA的证明,也不再需要维护大量用户相关的参数。
文档编号H04L9/28GK1633071SQ20051000215
公开日2005年6月29日 申请日期2005年1月14日 优先权日2005年1月14日
发明者南相浩, 陈钟 申请人:南相浩, 陈钟
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1