更新时间:2024-06-24 19:29
在信息安全领域,CPK是“Combined Public Key”的缩写,即中文名为组合公钥,是一种加密算法,以很小的资源,生成大规模密钥。
2003年提出了利用种子公钥SPK( Seeded Puhlic Key)解决密钥管理规模化的思想,提出基于RSA的多重公钥(LPK)和基于椭网曲线加密(ECC,Elliptir Curves Cryptography)的基于标识的组合公钥( CPK,Combined Puhlic KeV)两种算法。CPK认证机制可以在可信环境中为大量用户提供简洁、安全的密钥管理。这种密钥产生和存储的新方式可以大大节省密钥存储空间,以少量的种子生成几乎“无限”个公钥,以兆比特级的空间存放千万或上亿个公钥变量。CPK以简捷的方式解决了规模化的密钥管理,为构建认证体系提供了可靠的技术基础。
基于ECC的CPK的主要思想如下:
(1)设定由整数矢量(rij)组成的m*h阶私钥种子矩阵SSK。适当选取阶为素数门的椭圆曲线E,选择其上的一个基点G,计算公钥矢量(rijG)=(xij,yij),得出公钥种子矩阵PSK。保留SSK,公布PSK;
(2)以用户A的标识ID为参数,作h次映射(映射函数可以是加密算法或Hash函数),得五个映射值MAPi(i=1,2,3,…,),进行模n下的加法运算,得出私钥SK=(RMAP11+RMAP22+……+RMAPhh);
(3)根据映射值和公钥种子矩阵,设用户A的h次映射值分别为i,j,k,进行椭圆曲线E上点的加法运算,得出公钥PKA。由此形成了用户A的公、私钥对PKA和SKA。因子矩阵大小为mh的CPK系统,可组合出的密钥量却为mh,因此,CPK只需很小的存储空间就可形成一个相当大的密钥空间。
CPK密钥管理体制是离散对数难题型的基于标识(身份)的密钥生成与管理的体制。它依据离散对数难题的数学原理构建公开密钥与私有密钥矩阵,采用杂凑函数与密码变换将实体的标识映射为矩阵的行坐标与列坐标序列,用以对矩阵元素进行选取与组合,生成数量庞大的由公开密钥与私有密钥组成的公钥、私钥对,从而实现基于标识的超大规模的密钥生产与分发。
CPK密钥管理体制中密钥生产与管理是集中式的,它通过注册部(RA)、生产部(PA)和发行部(DA)接受实体的申请,对身份进行核查,生产基于标识的私钥,并向实体静态分发。各实体的私钥是分散保存的,而公开密钥矩阵可以采用最容易访问的方式存放,供任意实体方便调用,使任意实体均能根据对方标识生产出其公开密钥。
CPK密钥管理体制还采用定义作用域密钥参数的方法,实现不同系统的分割;采用一个实体多个标识的设置,满足一卡多用的需求,使得该体制更增强了应用中的安全性、灵活性和适应性。
CPK密钥管理体制既可以基于一般有限域离散对数问题构建,也可以基于椭圆曲线离散对数问题构建。鉴于椭圆曲线离散对数问题在密码应用中具有在相同安全度条件下所占用的资源小于一般有限域离散对数问题的优势。
CPK是基于组合的公钥体制,将密钥生产和密钥管理结合起来,能够实现数字签名和密钥交换,可以满足超大规模信息网络与非信息网络(包括物联)中的标识鉴别、实体鉴别、数据保密需求。
ECC遵从IEEE标准。
组合矩阵(Combining-matrix)分为私钥矩阵和公钥矩阵,分割密钥序列(Separating-keysequence )由一定数量的分割密钥(Separating-key)构成,密钥对用(ssk, SPK)标记。
标识密钥(Identity-key)由标识产生,用(isk,IPK)标记。
组合密钥(Combined-key)由标识密钥和分割密钥复合而成,用(csk,CPK)标记。
组合公钥体制采用有限域Fp上的椭圆曲线E: ,以参数(a, b,G, n, p)定义。其中a, b是系数,a,b,x,y∈p,G为加法群的基点,n是以G为基点的群的阶。令任意小于n的整数为私钥,则rG=R为对应公钥。
ECC复合特性如下:
在椭圆曲线密码ECC中,任意多对公、私钥,其私钥之和与公钥之和构成新的公、私钥对。
如果,私钥之和为:( r1 + r2 + … + rm ) mod n = r;
则对应公钥之和为: R1 + R2 + … + Rm= R (点加);
那么,r和R刚好形成新的公、私钥对。
因为,R = R1 + R2 + … + Rm =r1G + r2G +…+ rmG = (r1 +r2 +…+ rm) G = rG。
一、组合矩阵
组合矩阵分为私钥矩阵和公钥矩阵。矩阵大小均为hx32,用(ri,j)或(Ri,j)表示,i=1..h,j=1..32。r是小于n的随机数。私钥矩阵(ri,j)用于私钥的生成,是秘密变量。公钥矩阵由私钥矩阵派生,即 ri,j G= (xi,j,yi,j) =Ri,j,是公开变量。
二、标识到矩阵坐标的映射
标识到组合矩阵坐标的映射通过将标识ID经Hash变换变成YS序列实现:YS =Hash (ID)= w1,w2,…,w34;w的字长为k比特,k由矩阵的行数h决定,即h=2,w1 - w32依次指示行坐标。w33- w34指示分割密钥坐标。列坐标从1到32顺序启用。
三、标识密钥的计算
标识私钥(isk)的计算在KMC进行。设第i列所用行坐标用wi表示,令标识私钥为isk,那么私钥以有限域域Fp上的倍数加法实现,实体Alice的私钥为:公钥计算以椭圆曲线E上的倍点加法实现,对应公钥为:分割密钥
分割密钥由YS序列中的w33,w34指示,从分割密钥序列中选取,并只以公钥形式存在,分割公钥序列SPKi可以文件形式公布,或记入CPK-card。
标识密钥和分割密钥复合形成组合密钥。设分割私钥为ssk,实体Alice的组合私钥cskAlice由KMC计算:
cskAlice = (iskAlice +sskAlice)mod n;
将组合私钥cskAlice记入Alice的CPK-card并删除分割私钥sskAlice。
组合公钥由各依赖方计算:CPKAlice=IPKAlice+SPKAlice。
CPK组合私钥csk是标识私钥isk和分割私钥ssk相加而成,分割私钥序列是乱数序列,用于对标识私钥的加密。因为标识私钥是组合矩阵变量的线性组合,只有消除分割私钥的影响,才能暴露标识密钥的线性方程。消除分割私钥的办法是寻找分割私钥的重复。
设组合矩阵变量的总量为N1,分割私钥变量的总量为N2。因为标识密钥方程组的秩为N1-1,要列N1个联立方程,至少要获得N1个重复。假设用户量为N1*N2,分割私钥重复的概率为N1次,那么可以找到N1个重复,但是:
a) 在这些重复中,只有参与共谋的才有私钥,可以列出方程,而没有参与共谋的,即使找到了重复,也因为没有私钥,所以列不出方程,因而没有意义。
b) 在消除分割私钥影响以后的组合私钥的线性方程中,又只有线性无关方程才有意义,而线性相关方程没有意义。
当N1*N2个用户全体参与共谋的情况下,N1个方程恰好满秩的可能性几乎等于零,显然方程不可能有唯一解,私钥的组合矩阵仍然是安全的。
当组合矩阵变量总量为N1,分割密钥变量总量为N2时,公布所需要的空间是两个总量之和(N1+N2),而密钥规模则是两个总量的乘积(N1*N2),因此当N1=N2时,其密钥规模最大。密钥规模是指无意义共谋规模的上限(实际上,离真正得上限还差很远),如果本规模的共谋是不可能事件,那么用户规模可以是无限的。假设ECC密钥长度为160比特(20B),其公钥长度为40B,那么密钥的存储量和密钥规模的关系如下表。
PKI、IBE、CPK在密钥产生、密钥分发管理等几个方面具有自己的特点。
密钥产生方式主要有两种,分别是集中式模式和分散式模式。
PKI的密钥产生方式属于分散式。PKI的私钥由用户自己保存,不需要传递私钥,不依赖安全信道,公钥是随机计算生成的号码,它必须通过证书才能与用户的身份关联到一起,通信双方必须通过CA利用数字证书进行身份确认,即身份确认过程必须建立在对第i方的共同信任的基础之上。
IBE用户的公钥就是该用户的身份标识,私钥的产生方式属于集中式。IBF的私钥由PKG产生,用户可以在每次需要私钥时将自己的标识发送给PKG,PKG将计算后得到的私钥通过秘密通道发回给用户,IBE用户也可以自己保存私钥,PKG只做定期更新用户私钥的工作。在IBE系统用户获得私钥后即使离线也可解密文件,轻松达到认证目的。
CPK的密钥产生方式属于集中式。CPK的种子矩阵由可信第三方KMC离线生产。私钥种子矩阵保密,公钥种子矩阵公开,KMC适当选择单向陷门函数作为公钥查询函数,根据用户身份标识ID唯一确定列因子的一种组合,PSK和SSK采用同样选择方法,求和后分别作为用户的公钥和私钥,并通过安全信道交付用户使用。
密钥的分发和管理分静态和动态两种方式。PKI的公钥保存在证书中,证书采用静态分发,动态管理的模式,LDAP(Lightweight Directory Access Protocol,轻量目录访问协议)目库一直在线运行,其维护量很大,运行费用也很高。另外,PKI由于用户遗失私钥或离职需要更改或撤销证书是一件非常闲难的事情。
IBE的密钥采用动态分发,动态管理的模式,CPK的密钥采用静态分发,静态管理的模式在IBE和CPK系统中,由可信机构根据用户选择的公钥来产生相对应的私钥,所以私钥的产生可以滞后于公钥的产生。用户不必始终保存自己的私钥,因此不必担心私钥泄露的问题。IBE和CPK密钥的更换和撤销是一件非常简单的事情。只要用户在选择公钥的时候加上有关使用期限的信息(比如current year表示本年内使用,rurrent day表示今天内使用),因为每天的日期不同使得公钥可以根据需要更换,超过了使用期限的私钥就不能再使用。而密钥的撤销只需可信机构在确认用户身份的时候,限制非法用户得到私钥即可。此外发送方在选择用户ID的同时,可以加入可查看该消息的用户权限,用于将消息群发时,只有接收方获得该权限才能获得私钥查看消息。