一种多维度密钥生成方法
技术领域
本发明涉及一种密钥生成方法。特别是涉及一种多维度密钥生成方法。
背景技术
随着互联网技术的高速发展,人们对如何安全高效地获取资源和数据变得更加关注,与此同时,数据安全及加解密技术也应运而生。常见的加密算法有两种,即为对称加密算法(Symmetric Cryptography Algorithm)和非对称加密算法(Asymmetric CryptographicAlgorithm)。对称加密算法中,用户的加解密过程使用相同的密钥;而在非对称密钥算法中,加解密过程中所使用的密钥是不相同的。
在网络环境中,非对称加密方式已被证明是一种有效的信息保护手段,在非对称密钥体系下,用户采用公私钥对的形式进行数据的认证和加密。目前主流的非对称密钥应用是基于PKI体系,而PKI体系中的公钥获取与认证均借助第三方认证中心和在线数据库的支持,公钥的传递同样也会占用大量的网络资源。因此,自认证密钥体系作为非对称密钥体系的典型,其通过认证及加密的分离,可使得其在不依赖于第三方的情况下进行。
图1所示为自认证密钥体系结构图。实体将其唯一标识ID传递给密钥产生中心(KeyGeneration Center,KGC),KGC对其ID信息进行某种变换,即图1中对应的私钥矩阵可产生用户的私钥。密钥产生中心在向实体传递其私钥的同时,还将体系的公钥矩阵传递给实体。这样用户在已知其它用户唯一标识信息的情况下,就可以通过公钥矩阵生成其公钥,即公钥的获取不依赖于第三方,实现了自认证的过程。
图2、图3分别为自认证密钥体系下,数据认证及加密传输流程。数据的认证及加密数据认证及加密过流中,密钥的交换过程均不经过第三方,类似于认证中心(CA,CertificateAuthority)这样的机构,而是在事件交流的双方中进行的。即发送方与接收方均可以根据对方提供的公开标识来自行确定相应的公钥,并对对方的私钥签名进行验证;另外,用户可根据任意其他用户的公开标识确定其公钥,利用该用户的公钥对数据进行加密和传输,从而实现了与特定用户之间的数据交互与共享。这些过程中,公钥的获得均不借助第三方来实现,从而减少了网络资源消耗,提高了数据加密与认证的安全性。
可见自认证密钥体系的核心在于用户在本地实时地获得系统任意单元的公钥。申请号为200510002156.4的专利申请中提出了一种本地实现方法。该方案基于组合公钥定理,通过组合公私钥基中一些基元形成用户密钥对。其公私钥基保存为二维矩阵,公钥的形成以对行列的操作来实现。对于大小为m×h的矩阵,其可生成的用户公钥规模大小为mh。
发明内容
本发明所要解决的技术问题是,提供一种在公钥组合定理基础上,密钥基采用高维矩阵的组织方式的多维度密钥生成方法。
本发明所采用的技术方案是:一种多维度密钥生成方法,包括:生成三维坐标序列和生成公私密钥两部分,生成三维坐标序列是:设三维密钥基为M,共包括m×l×h个密钥基元,沿Z轴,三维矩阵的每一层是大小为m×l的二维矩阵Mk,其中m为每一层矩阵Mk的行数,l为每一层矩阵Mk的列数,k=1,…,h;公私密钥基的处理,与所述的生成三维坐标序列方式一致。
所述的三维坐标序列的生成具体包括如下步骤:
1)设定沿矩阵的Z轴,三维矩阵包括有h个m行l列的二维矩阵Mk,其中k=1,…,h;
2)首先将标识ID进行Hash变换,生成高维坐标选取序列P,
P=Hash(ID)=[P1 … Pk … Ph]
其中Pk对应第k层二维阵Mk的二维坐标选取序列,共l个单元,与Mk的列数对应;
Pk=[pk1 pk2 … pkl]
其中pkj,j=1,2,…,l,是按xy方向展开的二维矩阵Mk的第j列中待选取基元的行坐标,取值范围[1,m];
3)通过Hash变换,输入的标识ID生成了包含h个l单元的基元坐标选取序列的高维序列P,P表达为二维形式:
其中pkj,k=1,2,…,h;j=1,2,…l,分别表示第k层二维矩阵Mk,k=1,2,…,h中第j列所选取基元的行坐标,并且有任意0≤pkj≤m,k=1,2,…,h;j=1,2,…,l。
3对于更高维密钥基,也是采用所述的生成三维坐标序列的方法确定基阵列中要选取基元的坐标序列。
所述的公私密钥的生成包括如下步骤:
1)对于的高维公私钥矩阵,以三维矩阵为例,公私钥矩阵分别为Rm×l×h和rm×l×h,通过所述的三维坐标序列的生成方法得到所选取的:
公钥矩阵对应元素
私钥矩阵对应元素为
上述公私钥矩阵中对应元素中的下标元素p
ij,i=1,2,…,h,j=1,2,…,l与三维坐标序列中的元素相对应,i表示公私钥元素
、
在公私钥矩阵R
m×l×h和r
m×l×h中的第i层,j表示公私钥元素
、
在公私钥矩阵R
m×l×h和r
m×l×h中第i层矩阵的第j列,相应的p
ij表示公私钥元素
、
在公私钥矩阵R
m×l×h和r
m×l×h中第i层矩阵第j列的第p
ij行。
2)基于步骤1)所述的矩阵元素选取方法,密钥产生中心得到该用户所对应的标识私钥为
其中n为椭圆曲线中加法群的阶;通过公开的公钥矩阵,用户自行获取确定标识用户的公钥为
3)三维矩阵的每一层均有ml种组合方法,因此,三维组合矩阵可得到(ml)h种组合方法,m,l,h分别表示三维公私钥矩阵的行数,列数以及层数。
本发明的一种多维度密钥生成方法,将传统的二维组合矩阵用多维矩阵来替代。在多维矩阵的条件下,通过Hash变换对矩阵坐标进行选取,采用的是分层处理的方法。专利中以三维矩阵为例进行叙述,将三维矩阵按照竖坐标分成若干层,通过对标识进行Hash变换,可对应着选取每一层二维矩阵中的元素,作为公钥矩阵和私钥矩阵的组合元素。将组合矩阵经过上述改进后,在保证数据规模不改变的情况下,多维矩阵的密钥组合数量远远高于二维矩阵对应的组合数量,从而增加了密钥数据库的容量,提高了密钥数据包的利用率。
附图说明
图1是现有技术的自认证密钥体系结构图;
图2是现有技术的数据认证流程;
图3是现有技术的数据加密传输流程;
图4是本发明的密钥矩阵示意图;
图5是本发明的Hash变换示意图。
具体实施方式
下面结合实施例和附图对本发明的一种多维度密钥生成方法做出详细说明。
本发明的一种多维度密钥生成方法,是以三维矩阵为例来描述其实现。但本发明的思想也包括任意维度的密钥矩阵的密钥管理办法。本节描述不区分公私钥基,其表述与处理方式一致。
本发明的一种多维度密钥生成方法,包括:生成三维坐标序列和生成公私密钥两部分,生成三维坐标序列是:如图4所示,设三维密钥基为M,共包括m×l×h密钥基元(公钥或私钥)。沿Z轴,三维矩阵的每一层是大小为m×l的二维矩阵Mk,其中m为每一层矩阵Mk的行数,l为每一层矩阵Mk的列数,k=1,…,h;生成公私密钥基的处理,与所述的生成三维坐标序列方式一致。
2.根据权利要求1所述的一种多维度密钥生成方法,其特征在于,所述的三维坐标序列的生成具体包括如下步骤:
1)如图4所示,设定沿矩阵的Z轴,三维矩阵包括有h个m行l列的二维矩阵Mk,其中k=1,…,h:
2)生成坐标序列时,首先将标识ID进行Hash变换,生成高维坐标选取序列P,其中,Hash变换流程如图5所示,
P=Hash(ID)=[P1 … Pk … Ph]
其中Pk对应第k层二维阵Mk的二维坐标选取序列,共l个单元,与Mk的列数对应;
Pk=[pk1 pk2 … pkl]
其中pkj,j=1,2,…,l,对应图4中是按xy方向展开的二维矩阵Mk的第j列中待选取基元的行坐标(沿X方向),取值范围[1,m];
3)通过Hash变换,输入的标识ID生成了包含h个l单元的基元坐标选取序列的高维序列P,P表达为二维形式:
其中pkj,k=1,2,…,h;j=1,2,…l,分别表示第k层二维矩阵Mk,k=1,2,…,h中第j列所选取基元的行坐标,并且有任意0≤pkj≤m,k=1,2,…,h;j=1,2,…,l。
对于更高维密钥基,也是采用所述的生成三维坐标序列的方法确定基阵列中要选取基元的坐标序列。
所述的公私密钥的生成包括如下步骤:
1)以经典算法ECC为例,来阐述公私钥的生成。对于的高维公私钥矩阵分别为Rm×l×h和rm×l×h,通过所述的三维坐标序列的生成方法得到所选取的:
公钥矩阵对应元素
私钥矩阵对应元素为
上述公私钥矩阵中对应元素中的下标元素p
ij,i=1,2,…,h,j=1,2,…,l与三维坐标序列中的元素相对应,i表示公私钥元素
、
在公私钥矩阵R
m×l×h和r
m×l×h中的第i层,j表示公私钥元素
、
在公私钥矩阵R
m×l×h和r
m×l×h中第i层矩阵的第j列,相应的p
ij表示公私钥元素
、
在公私钥矩阵R
m×l×h和r
m×l×h中第i层矩阵第j列的第p
ij行。
2)基于步骤1)所述的矩阵元素选取方法,密钥产生中心(KGC)可得到该用户所对应的标识私钥(identity private key)为
其中n为椭圆曲线中加法群的阶;通过公开的公钥矩阵,用户可自行获取某一标识用户的公钥(identity public key)为
3)三维矩阵的每一层均有ml种组合方法,因此,三维组合矩阵可得到(ml)h种组合方法,m,l,h分别表示三维公私钥矩阵的行数,列数以及层数。
以大小32×32的二维矩阵与16×16×4的三维矩阵为例,上述两个矩阵具有相同规模的数据量,均包含1024个元素。通过采用本发明中三维矩阵的密钥组合形式,大小为16×16×4的三维矩阵可形成1.158×1077个密钥组合;而在二维组合密钥情况下,大小为32×32二维矩阵对应的组合数量为1.462×1048。显然,三维矩阵的组合数量远远高于二维矩阵的组合。因此,基于多维度的密钥生成算法,可以在不增加数据规模的基础上,增大了密钥数据库的容量,提高了密钥数据包的利用率。
目前的管理应用中,私钥基仅由密钥生成中心保存,用于生成私钥,并与公钥基一起发布给申请用户。用户通过本地公钥基与生成器,可离线获得任意用户的公钥。
本发明的一种多维度密钥生成方法,对于提高密钥的利用率有了较大的突破。因此,在采用本发明方法的情况下,密钥产生中心可以在为其分配私钥时,一次性地将更多用户的公钥信息以数据压缩包的形式分发给其他用户,比如在手机等其他移动终端应用中,终端均可在本地查询到更多终端的公钥信息。另外,用户可以定期向密钥产生中心提出公钥数据压缩包更新申请,但其更新后的认证过程是离线操作的,这就体现了自认证过程。