著录项信息
专利名称 | 双因子组合公钥生成和认证方法 |
申请号 | CN200810113494.9 | 申请日期 | 2008-05-28 |
法律状态 | 权利终止 | 申报国家 | 中国 |
公开/公告日 | 2009-04-29 | 公开/公告号 | CN101420300 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04L9/32 | IPC分类号 | H;0;4;L;9;/;3;2;;;H;0;4;L;9;/;3;0;;;H;0;4;L;9;/;0;8查看分类表>
|
申请人 | 北京易恒信认证科技有限公司 | 申请人地址 | 北京市石景山区石景山路40号信安大厦三层E-G区
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 北京易恒信认证科技有限公司 | 当前权利人 | 北京易恒信认证科技有限公司 |
发明人 | 陈华平;南相浩 |
代理机构 | 北京同恒源知识产权代理有限公司 | 代理人 | 赵荣之 |
摘要
本发明提供了一种标识密钥和随机密钥复合的双因子组合公钥Two-FactorCombinedPublicKey体制和认证方法。标识密钥以用户标识生成的数列对种子密钥集进行选取与组合产生;随机密钥基于一般公钥密码依据的单向函数原理生成。随机密钥与标识密钥的多种复合模式,既可以满足集中管理的需求,又可赋予用户对私钥的专有权。基于此种密钥生成方法的认证系统,兼具标识认证不需要第三方证书证明和一般公钥密码随机私钥高度随机化和私密化的优点。可以广泛应用于各种规模尤其是超大规模公开系统的认证,包括可信接入、可信加载、电子银行、可信交易、可信物流等领域。
1.一种双因子组合公钥生成和认证方法,其特征在于包括以下步骤:
步骤一:生成标识密钥,包括标识公钥与标识私钥;
步骤二:生成随机密钥,包括随机公钥与随机私钥;
步骤三:密钥管理中心将标识密钥与自定义的随机密钥相加,复合生成一阶双因子密钥;
步骤四:用户将一阶双因子密钥与自定义随机密钥相加,复合生成二阶双因子密钥;
步骤五:用户将n-1阶双因子密钥与自定义更新随机密钥相加,复合生成n阶双因子密钥,其中n≥3;
步骤六:验证或加密方,通过对方标识计算出的标识公钥与对方签名中提供的或密钥管理中心发布的随机公钥复合,获得该用户公钥。
2.根据权利要求1的方法,其中步骤一具体包括:
a)密钥管理中心对用户提交的标识进行审核确认,保证其真实性和唯一性;
b)密钥管理中心定义并生成彼此对应的种子私钥集seedSK和种子公钥集seedPK;
c)以用户标识为hash函数的输入,计算出该标识的hash值H(ID);
d)密钥管理中心以H(ID)构建选取数列,从种子私钥集选取并经组合运算生成用户标识私钥IdSK;
e)加密或验证方以H(ID)构建选取数列,从种子公钥集选取并经组合运算生成用户标识公钥IdPK。
3.根据权利要求2的方法,其中步骤b)中所述种子私钥集seedSK和种子公钥集seedPK采用矩阵或序列形式构建。
4.根据权利要求3的方法,其中所述种子公钥集对外公开,种子私钥集由密钥管理中心秘密保管。
5.根据权利要求1的方法,其中所述步骤二具体包括:
f)密钥管理中心用随机数发生器随机生成模m的正整数作为中心定义的随机私钥RaSK(KMC),并通过椭圆曲线群的标量乘法运算生成中心定义随机公钥RaPK(KMC),其中m是用于对随机数发生器随机生成的正整数取模的模数;
g)用户利用随机数发生器生成模m的正整数作为用户自定义随机私钥RaSK(USER)并通过椭圆曲线群的标量乘法运算生成用户自定义随机公钥RaPK(USER)。
6.根据权利要求5的方法,其中步骤三具体包括:
h)密钥管理中心将用户标识私钥IdSK和中心随机生成的随机私钥RaSK(KMC)相加,生成一阶私钥SK1;
i)密钥管理中心将一阶私钥SK1和随机公钥RaPK(KMC)写入芯片提供给拥有该标识的用户;
j)标识与随机公钥RaPK(KMC)由用户对外发送或通过密钥管理中心公布;
k)加密或验证方用用户标识生成标识公钥IdPK,将其与公开发布或发送的RaPK(KMC)相加生成一阶公钥PK1。
7.根据权利要求6的方法,其中步骤四具体包括:
l)用户利用随机数发生器生成RaSK(USER),并通过椭圆曲线群标量乘法运算生成RaPK(USER);
m)用户将SK1与RaSK(USER)相加生成二阶私钥SK2;
n)用户将RaPK(USER)与RaPK(KMC)相加生成二阶随机公钥RaPK2;
o)用户将SK2和RaPK2写入芯片,并将SK1与RaPK(KMC)删除;
p)标识和RaPK2由用户对外发送或密钥管理中心公布;
q)加密和验证方利用用户标识生成IdPK,将其与公开发布与发送的RaPK2相加,得到二阶公钥PK2。
8.根据权利要求7的方法,其中步骤五具体包括:
r)用户以二阶或高于二阶的双因子密钥为初始态,生成n阶双因子密钥,其中n≥3;
s)在更新密钥对时,用户利用随机数发生器生成RaSK(USER),并通过椭圆曲线群的标量乘法生成RaPK(USER);
t)将原芯片中存储的n-1阶私钥SKn-1与新定义的RaSK(USER)累加,生成n阶私钥SKn;
u)将原芯片中存储的n-1阶随机公钥RaPKn-1,与新定义的RaPK(USER)累加得到n阶随机公钥RaPKn;
v)用户将SKn和RaPKn写入芯片,并将SKn-1和RaPKn-1删除;
w)标识与随机公钥RaPKn由用户对外发送或通过密钥管理中心公布,包括用户将标识和随机密钥通过数字签名一并提供给验证方,以及用户将其提交密钥管理中心,由后者公布。
9.根据权利要求1的方法,其中步骤六具体包括:
x)加密或验证方利用对方的用户标识和公布的种子公钥集计算出该用户的标识公钥IdPK;
y)将该用户的标识公钥IdPK与发送或公布的随机公钥RaPK相加,得出该用户的公钥PK。
10.根据权利要求1的方法,其中由密钥管理中心定义的为一阶双因子密钥;在一阶密钥基础上增加用户定义随机密钥的为二阶或n阶双因子密钥;在二阶或高于二阶的密钥基础上更新用户自定义随机密钥生成的密钥为高阶双因子密钥。
11.根据权利要求1或10的方法,其中:
一阶公钥(PK1)=IdPK+RaPK(KMC)=IdPK+RaPK1,其中RaPK1表示该随机公钥仅由一项随机公钥构成;
二阶公钥(PK2)=IdPK+RaPK(KMC)+RaPK(USER)=IdPK+RaPK2,其中 RaPK2表示该随机公钥由
2项随机公钥相加构成;
n阶公钥(PKn)=IdPK+RaPKn,其中n≥3,RaPKn表示该随机公钥由n项随机公钥相加构成。
12.根据权利要求8的方法,允许用户根据需要随时变更自定义随机公私钥对,并生成新的公、私钥对。
13.根据权利要求12的方法,用户将自定义随机私钥和芯片内存放的复合私钥相加,得到该阶复合私钥;将自定义随机公钥与芯片内存放的随机公钥相加,得到该阶的随机公钥;芯片内应包含用户标识ID、该阶私钥和随机公钥。
14.根据权利要求9的方法,当用私钥SK1或SK2或SKn签名时,同时将随机公钥RaPK1或RaPK2+RaPKn作为签名码的一部分一并发送给依赖方。
15.根据权利要求14的方法,用户将随机公钥RaPKn提交密钥管理中心,由密钥管理中心将其作为实体标识的后缀公布,其格式为:用户ID||RaPKn。
16.根据权利要求14或15的方法,用户自定义随机因子公钥RaPK(USER)通过密钥管理中心发布或从用户的数字签名信息中获得。
17.根据权利要求16的方法,当验证签名时,验证方首先用公开发布的用户标识和种子公钥集计算出标识公钥IdPK,将其与公布的或签名方发送的随机公钥RaPK相加,计算出对方的公钥PK,用于验证其签名的真实性。
双因子组合公钥生成和认证方法 \n技术领域\n[0001] 本发明涉及公钥密码与认证领域,是一种基于标识密钥和随机密钥的双公钥密钥生成和认证方法。 \n背景技术\n[0002] 认证系统主要用于提供真实性证明和安全性保证,是实现信息安全(Information Security)和信息保障(Information Assurance)的技术基础。认证系统的核心是公钥密码,当前需要解决的核心问题,一是能够支持大规模公开网络的认证,二是在集中管理模式下保证用户私钥的私密权问题。围绕认证系统的构建,现已形成了两大技术体系:一是基于传统公钥密码的证书认证体系,如PKI,二是基于标识的公钥密码如IBC、IBE、CPK。 [0003] 1)基于传统公钥密码的证书认证体系 \n[0004] 传统的公钥密码中,公钥与私钥之间的关系为: \n[0005] 公钥=F(私钥) \n[0006] F是一个单向函数,由用户独享的私钥计算公钥是容易的;由公钥逆求私钥则是数学难题。以此构建的认证系统,如目前最流行公钥基础设施(PKI),公钥与用户标识的绑定需依靠权威的密钥管理部门颁发的证书给予证明。证书认证机制需要证书发放、验证、废除、更新等众多环节的计算与通信资源的支持与消耗,成为制约其应用的瓶颈,尤其不能适\n9\n应大规模网络(例如实体数以10 计的网络)和需要直接验证的应用需求。 \n[0007] 2)基于标识的公钥密码 \n[0008] 基于标识的公钥密码以用户标识作为公钥或以用户标识生成公钥,使 标识与公钥一体化,而私钥则由权威的密钥管理部门用其掌控的主密钥以用户标识为自变量生成。\n基于标识的公钥密码中,公钥与私钥的关系为: \n[0009] 私钥=F(主密钥,用户标识) \n[0010] 在基于标识的公钥密码中,与公钥一体化的用户标识是函数关系中的自变量。在密钥管理中心的主密钥控制下,用户标识给定后,私钥就唯一确定。不掌握主密钥的攻击者企图由用户标识(公钥)求取私钥是数学难题。1999年中国学者南相浩提出基于标识的组合公钥体制(简称CPK),采用种子密钥矩阵组合方法生成基于标识的密钥,是基于标识的公钥密码家族的一个新成员。 \n[0011] 在所有基于标识的公钥密码中,实体私钥皆由密钥管理中心基于标识和主密钥生成,实体对私钥没有完全的专有权或私密性,而组合公钥(CPK)体制的私钥是种子私钥的线性和,理论上具有被共谋攻击的可能性,从而会影响到其规模化的应用。 发明内容\n[0012] 本发明提供了一种标识密钥和随机密钥复合的双因子组合公钥(Two-Factor Combined Public Key)体制和认证系统。标识密钥以用户标识生成的数列对种子密钥集进行选取与组合产生;随机密钥基于一般公钥密码依据的单向函数原理生成。随机密钥与标识密钥的多种复合模式,既可以满足集中管理的需求,又可赋予用户对私钥的专有权。基于此种密钥生成方法的认证系统,兼具标识认证不需要第三方证书证明和一般公钥密码随机私钥高度随机化和私密化的优点。可以广泛应用于各种规模尤其是超大规模公开系统的认证,包括可信接入、可信加载、电子银行、可信交易、可信物流等领域。 \n[0013] 根据本发明,在双公钥密码体制中,标识密钥中公钥与私钥的关系是基于标识的公钥密码的公私钥关系: \n[0014] 私钥=F(种子私钥集,用户标识) \n[0015] 而自定义随机密钥的公钥与私钥关系沿用了传统公钥密码的函数关系: [0016] 公钥=F(私钥) \n[0017] 因此,双公钥密码体制的密钥是基于标识的公钥密码体制和传统公钥密码体制两种公私密钥关系的叠加,是继传统公钥密码和基于标识的公钥密码之后的新的以公钥的二元化为特征的公钥密码体制,它保留了两种公钥密码各自的优越特性,而克服了各自存在的不足。 \n[0018] 根据本发明,由密钥管理中心登记审定标识和生成种子密钥集,并将种子公钥集公布,供各实体计算标识公钥之用。标识公钥计算过程为标识和标识公钥提供了一体性证明,因此,不需要第三方证书的证明。 \n[0019] 根据本发明,密钥管理中心可将实体标识与中心定义随机公钥绑定发布,供加密或验证方使用。 \n[0020] 根据本发明,允许各实体自行定义随机密钥(RaPK(USER))并与中心定义的随机公钥相加,生成二阶随机公钥,公开发布供加密或验证方使用; \n[0021] 根据本发明,允许各实体自行定义随机密钥(RaPK(USER))与n-1阶随机公钥相加生成n阶随机公钥,公开发布公加密或验证方使用。 \n[0022] 根据本发明的优选实施例,进行数字签名时,应将随机公钥作为签名码的一部分一并发送给验证方; \n[0023] 根据本发明的优选实施例,验证和加密方首先用对方标识和公布的种子公钥集计算标识公钥(IdPK),将其与公布的或由签名方提供的随机公钥(RaPK)相加,计算出公钥(PK),并验证其签名的真实性。 \n[0024] 根据本发明,提供一种双因子组合公钥生成和认证方法,其特征在于包括以下步骤: \n[0025] 步骤一:生成标识密钥,包括标识公钥与标识私钥; \n[0026] 步骤二:生成随机密钥,包括随机公钥与随机私钥; \n[0027] 步骤三:密钥管理中心(KMC)将标识密钥与自定义的随机密钥复合生成一阶双因子密钥; \n[0028] 步骤四:用户将一阶双因子密钥与自定义随机密钥复合生成二阶双因子密钥; [0029] 步骤五:用户将二阶双因子密钥与自定义更新随机密钥复合生成n阶双因子密钥,其中n≥3; \n[0030] 步骤六:验证或加密方,通过对方标识计算出的标识公钥与对方签名中提供的或管理中心发布的随机公钥复合,获得该用户公钥。 \n[0031] 根据本发明的优选实施例,步骤一具体包括: \n[0032] a)密钥管理中心对用户提交的标识进行审核确认,保证其真实性和唯一性; [0033] b)密钥管理中心定义并生成彼此对应的种子私钥集(seedPK)和种子公钥集(seedPK); \n[0034] c)以用户标识为hash函数的输入,计算出该标识的hash值H(ID); \n[0035] d)密钥管理中心以H(ID)构建选取数列,从种子私钥集选取并经组合运算生成用户标识私钥(IdSK); \n[0036] e)加密或验证方以H(ID)构建选取数列,从种子公钥集选取并经组合运算生成用户标识公钥(IdPK)。 \n[0037] 根据本发明的优选实施例,步骤b)中所述种子密钥集(seedSK和seedPK)可采用矩阵、序列等不同形式构建。 \n[0038] 根据本发明的优选实施例,所述种子密钥集的构建形式和规模根据系统的实际需要确定。 \n[0039] 根据本发明的优选实施例,所述种子公钥集对外公开,种子私钥集由中心秘密保管。 \n[0040] 根据本发明的优选实施例,所述步骤二具体包括: \n[0041] f)密钥管理中心用随机数发生器随机生成模n的正整数作为中心定义的随机私钥(RaSK(KMC)),并通过椭圆曲线群的标量乘法运算生成中心定义随机公钥(RaPK(KMC)); [0042] g)用户利用随机数发生器生成模n的正整数作为用户自定义随机私钥(RaSK(USER))并通过椭圆曲线群的标量乘法运算生成用户自定义随机公钥(RaPK(USER))。 [0043] 根据本发明的优选实施例,步骤三具体包括: \n[0044] h)密钥管理中心将用户标识私钥(IdSK)和中心随机生成的随机私钥(RaSK(KMC))相加,生成一阶私钥(SK1); \n[0045] i)密钥管理中心将SK1和RaPK(KMC)写入芯片提供给拥有该标识的用户; [0046] j)标识与随机公钥RaPK(KMC)由用户对外发送或通过密钥管理中心公布; [0047] k)加密或验证方用用户标识生成标识公钥(IdPK),将其与公开发布或发送的RaPK(KMC)相加生成一阶公钥(PK1)。 \n[0048] 根据本发明的优选实施例,步骤四具体包括: \n[0049] l)用户利用随机数发生器生成RaSK(USER),并通过椭圆曲线群标量乘法运算生成RaPK(USER); \n[0050] m)用户将SK1与RaSK(USER)相加生成二阶私钥(SK2); \n[0051] n)用户将RaPK(USER)与RaPK(KMC)相加生成二阶随机公钥(RaPK2); [0052] o)用户将SK2和RaPK2写入芯片,并将SK1与RaPK(KMC)删除; \n[0053] p)标识和RaPK2由用户对外发送或密钥管理中心公布; \n[0054] q)加密和验证方利用用户标识生成IdPK,将其与公开发布与发送的RaPK2相加,得到二阶公钥(PK2)。 \n[0055] 根据本发明的优选实施例,步骤五具体包括: \n[0056] r)用户以n-1阶的复合密钥为初始态,可生成n阶复合密钥,其中n≥3; [0057] s)在更新密钥对时,用户利用随机数发生器生成RaSK(USER),并通过椭圆曲线群的标量乘法生成RaPK(USER); \n[0058] t)将原芯片中存储的n-1阶私钥(SKn-1)与新定义的RaSK(USER)累加,生成n阶私钥(SKn); \n[0059] u)将原芯片中存储的n-1阶随机公钥(RaPKn-1),与新定义的RaPK(USER) 累加得到n阶随机公钥(RaPKn); \n[0060] v)用户将SKn和RaPKn写入芯片,并将SKn-1和RaPKn-1删除; \n[0061] w)标识与随机公钥(RaPKn)由用户对外发送或通过密钥管理中心公布,包括用户将标识和随机密钥通过数字签名一并提供给验证方,以及用户将其提交密钥管理中心,由后者公布。 \n[0062] 根据本发明的优选实施例,步骤五中所述n阶的阶数n为大于等于3的整数。 [0063] 根据本发明的优选实施例,步骤六具体包括: \n[0064] x)加密或验证方利用对方的用户标识和公布的种子公钥集计算出该用户的标识公钥(IdPK); \n[0065] y)将该用户的标识公钥(IdPK)与发送或公布的随机公钥(RaPK)相加,得出该用户的公钥(PK)。 \n[0066] 根据本发明的优选实施例,所述双因子组合密钥由标识密钥和随机密钥复合构成。 \n[0067] 根据本发明的优选实施例,由密钥管理中心定义的为一阶双因子密钥;在一阶密钥基础上增加用户定义随机密钥的为二阶或n阶双因子密钥。 \n[0068] 根据本发明的优选实施例,一阶公钥(PK1)=IdPK+RaPK(KMC)=IdPK+RaPK1,其中RaPK1表示该随机公钥仅由一项随机公钥构成; \n[0069] 二阶公钥(PK2)=IdPK+RaPK(KMC)+RaPK(USER)=IdPK+RaPK2,其中RaPK2表示该随机公钥由2项随机公钥相加构成; \n[0070] n阶公钥(PKn)=IdPK+RaPKn,其中n≥3,RaPKn表示该随机公钥由n 项随机公钥相加构成。 \n[0071] 根据本发明的优选实施例,允许用户根据需要随时变更自定义随机公私钥对,并生成新的公、私钥对。 \n[0072] 根据本发明的优选实施例,用户将自定义随机私钥和芯片内的存放的复合私钥相加,得到该阶复合私钥;将自定义随机公钥与芯片内存放的随机公钥相加,得到该阶的随机公钥;芯片内应包含用户标识(ID)、该阶私钥和随机公钥。 \n[0073] 根据本发明的优选实施例,当用私钥(SK1,SK2或SKn)签名时,同时将随机公钥(RaPK(KMC),RaPK2或RaPKn+RaPK(USER))作为签名码的一部分一并发送给依赖方。 [0074] 根据本发明的优选实施例,当验证签名时,验证方首先用公开发布的用户标识和种子公钥集计算出标识公钥(IdPK),将其与用公布的或签名方发送的随机公钥RaPK相加,计算出对方的公钥(PK),用于验证其签名的真实性。 \n[0075] 综上所述,本发明具有如下优点: \n[0076] 1)本发明以双公钥为特征,属基于椭圆曲线离散对数难题的密码体制,通过双重密钥相互融合使该体制的安全性极大增强。 \n[0077] 2)本发明中,用户自定义随机密钥使用户拥有对私钥的完全私有权,除用户之外,任何人包括密钥管理中心都不能侵犯用户的私密权。这种用户私密权是一般基于标识的密码体制所不能提供的。 \n[0078] 3)自定义随机私钥对标识私钥的加密,可使以少量种子密钥组合生成极大数量实用密钥的可能性,在确有安全保障的条件下,转化为现实,从而使双公钥密码成为解决大规模网络环境下认证难题的现实手段。 \n[0079] 4)自定义随机密钥赋予密钥结构极大灵活性,可供KMC生成RaSK(KMC),构建一阶私钥和随机公钥;可供用户生成RaSK(USER),构建二阶私钥和随机公钥;可供用户反复生成RaSK’(USER),构建高阶私钥和随机公钥。不同的应用环境可选择自定义随机密钥不同应用方式。\n[0080] 5)自定义随机密钥的加入,使密钥完全随机化,从而使实用的密钥空间最大化。完全随机化的密钥为密钥碰撞概率提供了科学计算的可能,从而为用户规模的确定提供可靠依据。 \n[0081] 6)采用本发明构建的认证系统,不需要第三方证书证明,能够支持各种规模,特别是超大规模的公共网络认证,同时具有结构简洁,管理维护运行简便经济的特点。 [0082] 本发明的目标和其他优点可以通过下面的说明书,权利要求书,以及附图中所特别指出的结构来实现和获得。 \n[0083] 附图说明\n[0084] 为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步的详细描述,附图中 \n[0085] ∑++++表示椭圆曲线点运算 秘密部分 \n[0086] ∑++表示模n整数运算 公开部分 \n[0087] .G表示椭圆曲线群标量乘法 \n[0088] 图1示出了根据本发明的一阶双因子私钥生成及随机公钥模式; \n[0089] 图2示出了根据本发明的二阶双因子私钥和随机公钥生成模式; \n[0090] 图3示出了根据本发明的高阶双因子私钥和随机公钥生成模式; \n[0091] 图4为根据本发明的基于标识和随机公钥生成公钥的示意图; \n[0092] 图5为根据本发明的密钥管理中心功能框图; \n[0093] 图6为根据本发明的认证芯片功能图; \n[0094] 图7示出了根据本发明的电子签章系统; \n[0095] 图8示出了根据本发明的防伪电子标签生成流程;以及 \n[0096] 图9示出了根据本发明的防伪电子标签验证流程。 \n[0097] 具体实施方式\n[0098] 本发明提出的双因子组合公钥密码体制(Two Factor Combined PublicKey System,简称为TF-CPK)采用由两个相互独立的公钥——自定义随机公钥与标识公钥复合构成,涉及:数学基础,密钥组合律,随机数,标识,杂凑函数,种子密钥等。下面以椭圆曲线密码和离散对数为例,结合附图,从各个方面,对根据本发明的密钥生成方法的具体实施方式作进一步的详细描述。需要注意的是,根据本发明的双因子组合公钥技术与标识认证系统的具体实施方式仅仅作为例子,但本发明不限于该具体实施方式。 \n[0099] 1.双因子组合公钥密码体制的若干要素 \n[0100] 本密码体制的要素包括:椭圆曲线群,密钥组合律,随机数,标识,杂凑函数,种子密钥等。 \n[0101] 1.1椭圆曲线群 \n[0102] 椭圆曲线离散对数难题是本密码体制安全性的数学基础。所选用的椭圆曲线群以五元组(a,b,G,n,p)定义: \n[0103] p:是一个大素数,椭圆曲线建于模P的有限域上 \n[0104] a,b:定义三次方程y2=x3+ax+b(mod P) \n[0105] G:是基点,由它的所有倍点构成椭圆曲线群 \n[0106] n:是一个大素数,是基点G生成的椭圆曲线群的阶 \n[0107] 1.2倍点与离散对数 \n[0108] (a,b,G,n,p)是a,b定义的三次方程的解和一个无穷远点组成的加法群。群中\n2 3\n的元素是满足方程y =x+ax+b(mod P)的整数对(x,y)和无穷远点(记为O)。 [0109] 加法群的元素P和Q的加法运算规则为: \n[0110] 1)P+O=P \n[0111] 2)点P=(x,y),Q=(x,-y),则P+Q=O。 \n[0112] 3)若P=(x1,y1),Q=(x2,y2),且P≠-Q,则P+Q=(x3,y3)的取值计算规则为: [0113] x3≡λ2-x1-x2mod p \n[0114] y3≡λ(x1-x3)-y1mod p \n[0115] 其中, \n[0116] \n[0117] P≠Q的加法称为点加运算,P=Q的运算称为倍点运算。 \n[0118] G的倍数为na的点记为na.G,G通过倍点运算和点加运算生成加法群中的元素na.G(na=1,2,...,n)。na称为na.G的离散对数。给定na和G求na.G称标量乘法,它的计算是容易的;而给定G和naG,逆求na是椭圆曲线离散对数难题。在椭圆曲线密码中,(na.G,na)构成公钥和私钥对,倍点na.G为公钥,离散对数na是私钥。 \n[0119] 1.3密钥组合律 \n[0120] 椭圆曲线密码的密钥组合律是椭圆曲线群的一个重要的密码学性质。 [0121] 密钥组合律:若(n1.G,n1)和(n2.G,n2)是两组公私钥对,则它们的公钥之和 [0122] n3.G=n1.G+n2.G (椭圆曲线群运算) \n[0123] 和它们的私钥之和 \n[0124] n3=n1+n2 (模n整数加) \n[0125] 构成组合公私钥对(n3.G,n3)。 \n[0126] 密钥组合律更一般的表述:若(n1.G,n1),(n2.G,n2),...,(nt.G,nt)是椭圆曲线的公私钥对,则它们的公钥之和 \n[0127] P=n1.G+n2.G+...+nt.G (椭圆曲线群运算) \n[0128] 和它们的私钥之和 \n[0129] S=n1+n2+...+nt (模n整数加) \n[0130] 构成组合公私钥对(P,S)。 \n[0131] 1.4随机数发生器 \n[0132] 自定义随机密钥对中的私钥是一个随机数RN。RN由随机数发生器RNG生产,以避免人为的习惯与惰性的负面影响。对随机数发生器生产的随机数需给予适当的筛选(如不得为很小的数值),以适用于密钥。密钥管理中心通过RNG生成不同的随机数作为加密标识私钥的随机密钥;用户通过RNG生成自定义随机密钥以达到私钥的独享及私钥的随时更新。 \n[0133] 1.5用户标识 \n[0134] 用户标识简称标识(记为ID),由一个实体的名称、地址等专有属性构成。用户标识需向密钥管理中心(记为KMC)注册核准,使其具有真实性和唯一性。 \n[0135] 1.6杂凑函数 \n[0136] 采用国际标准推荐的杂凑函数。它以不同长度的用户标识为输入,输出等长的比特串,用于生成选取数列。 \n[0137] 设选取数列由v个u位的二进制数构成,则杂凑函数输出长度定义为v×u,即H(ID)=(a0,a1,...,avu-1)。 \n[0138] 输出数列记为:w0,w1,...,wv-1\n[0139] wi=aiu×2u-1+aiu+1×2u-2+aiu+2×2u-3+...+aiu+u-1×20,i=0,1,...,v-1 [0140] 上述公式的简化形式是 \n[0141] (二进制转换为十进制数,i=0,1,...,v-1) \n[0142] 1.7种子密钥序列 \nu\n[0143] 从密钥空间中,选出2×v个密钥对 \n构成种 子密钥集,包括种 子公钥 集 和种 子私钥 集 \n[0144] 2.双因子组合公钥密码体制的密钥构成 \n[0145] 密钥包括: \n[0146] 自定义随机密钥对(RaPK,RaSK) \n[0147] 标识密钥对(IdPK,IdSK) \n[0148] 种子密钥对(P,S) \n[0149] 复合的密钥对(PK,SK) \n[0150] 2.1自定义随机密钥 \n[0151] 自定义随机密钥是由随机公钥RaPK和随机私钥RaSK组成的公私钥对(RaPK,RaSK)。 \n[0152] 随机私钥是随机数发生器生成的随机数RN,即 \n[0153] RaSK=RN \n[0154] 随机公钥则以RN为基点的倍数作标量乘法运算获得,即 \n[0155] RaPK=RN.G (椭圆曲线群的标量乘法) \n[0156] 自定义随机密钥包括密钥管理中心(KMC)生成的(RaPK(KMC),RaSK(KMC))和用户(USER)生成的(RaPK(USER),RaSK(USER)) \n[0157] RaPK(KMC)=RN(KMC).G (椭圆曲线群的标量乘法) \n[0158] RaSK(KMC)=RN(KMC) RN(KMC)是KMC借助RNG生成的随机数 \n[0159] RaPK(USER)=RN(USER).G (椭圆曲线群的标量乘法) \n[0160] RaSK(USER)=RN(USER) RN(USER)是USER借助RNG生成的随机数 \n[0161] 2.2标识密钥 \n[0162] 标识密钥是由标识公钥(IdPK)和标识私钥(IdSK)组成的公私钥对(IdPK,IdSK)。 [0163] 以标识为输入的杂凑函数的输出 \n[0164] H(ID)=(w0,w1,...,wv-1) \n[0165] 取c为一个正整数(0<c<2u),则选取位(记为swi)按以下公式计算: [0166] sw0=c+w0\n[0167] sw1=c+w1+sw0\n[0168] …… \n[0169] \n[0170] 标识公私钥对的计算公式为: \n[0171] (椭圆曲线群的点运算) \n[0172] (模n整数加法运算) \n[0173] 3.双因子组合公钥密码体制的多种工作模式 \n[0174] 3.1一阶双因子密钥模式 \n[0175] 参见图1,示出了根据本发明的一阶双因子密钥模式。 \n[0176] 在一阶双因子密钥模式中,用户钥完全由密钥管理中心(KMC)生成。该模式适用于任意规模的封闭系统,系统内用户对密钥管理中心完全信任的环境。此外,一阶双因子密钥也是生成二阶或n阶双因子密钥的基础。其生产流程包括: \n[0177] ①定义并生成彼此对应的种子私钥集(seedPK)和种子公钥集(seedPK); [0178] ②对用户提交的标识进行审核确认,保证其真实性和唯一性; \n[0179] ③以用户标识为hash函数的输入,计算出该标识的hash值H(ID); \n[0180] ④以H(ID)构建选取数列,从种子私钥集选取并经组合运算生成用户标识私钥(IdSK); \n[0181] ⑤利用随机数发生器生成中心定义的随机密钥RaSK(KMC)和RaPK(KMC); [0182] ⑥将IdSK和RaSK(KMC)相加得到一阶双因子私钥SK1; \n[0183] ⑦将(SK1‖RaPK(KMC))注入芯片提供给用户。 \n[0184] 3.2二阶双因子密钥模式 \n[0185] 参见图2,示出了根据本发明的二阶双因子密钥模式。 \n[0186] 二阶双因子密钥模式,在一阶双因子密钥模式的基础上,增加了用户自定义随机密钥,主要适用于任意规模,包括大规模和超大规模的开放系统,系统内用户要求对私钥享有不受控于密钥管理中心的私有权的环境。其生成过程包括: \n[0187] ①用户利用随机数发生器生成用户自定义随机私钥RaSK(USER),并通过椭圆曲线群标量乘法运算生成用户自定义随机公钥RaPK(USER); \n[0188] ②用户将RaSK(USER)与SK1相加生成二阶双因子私钥(SK2); \n[0189] ③用户将RaPK(USER)与RaPK(KMC)相加生成二阶随机公钥(RaPK2); [0190] ④用户将SK2和RaPK2写入芯片,并将SK1与RaPK(KMC)删除; \n[0191] 3.3n阶双因子密钥模式 \n[0192] 参见图3,示出了根据本发明的n阶双因子密钥模式。 \n[0193] n阶双因子密钥模式主要用于系统内用户要求对私钥具有自行随时更新权利的环境。其生成过程如下: \n[0194] ①用户利用随机数发生器生成用户自定义随机私钥RaSK(USER),并通过椭圆曲线群标量乘法运算生成用户自定义随机公钥RaPK(USER); \n[0195] ②用户将SK2与新产生的RaSK(USER)相加生成n阶双因子私钥(SKn); [0196] ③用户将新产生的RaPK(USER)与RaPK2相加生成n阶随机公钥(RaPK2); [0197] ④用户将SKn和RaPKn写入芯片,并将SK2与RaPK2删除; \n[0198] 上述过程可以反复进行。此外,用户更新密钥也可以通过重复使用二阶双因子密钥模式实现。以二阶双因子密钥模式实现密钥的更新时,流程的初始状态应始终为一阶双因子私钥和中心定义随机公钥(SK1‖RaPK(KMC))。 \n[0199] 3.4双公钥到公钥的转换 \n[0200] 验证方或加密方需要知道对方实际使用的公钥,为此需要实行从标识和随机公钥到公钥的转换。其转过程如下: \n[0201] ①验证方或加密方首先需要通过签名方发送或从密钥管理中心发布获得用户标识ID和与其对应的随机公钥(RaPK); \n[0202] ②以用户标识ID为hash函数的输入,计算出该标识的hash值H(ID); [0203] ③以H(ID)构建选取数列,从种子私钥集选取并经组合运算生成用户标识公钥(IdPK); \n[0204] ④将IdPK与RaPK相加,得到用户使用的公钥(PK)。 \n[0205] 参见图4,示出了根据本发明的基于标识和随机公钥生成公钥的流程。 [0206] 4.数字签名算法 \n[0207] 数字签名算法采用国际标准推荐的ECDSA算法。 \n[0208] 4.1公开的参数与算法 \n[0209] ①椭圆曲线群的五元参数组(a,b,G,n,p) \n[0210] ②对消息的hash函数h \n[0211] ③种子公钥集\n[0212] ④签名方A发送的标识ID和随机公钥RaPK \n[0213] 4.2A对消息m的签名流程 \n[0214] ①随机选取k∈Zn \n[0215] ②计算k.G=(x,y) (椭圆曲线群标量乘法) \n[0216] ③计算r=x mod n \n[0217] ④计算S=k-1(h(m)+SK.r)mod n \n[0218] ⑤A将m和签名(r,s)发给B \n[0219] 4.3B对A的签名验证流程 \n[0220] ①以A的标识经种子公钥集生成标识公钥IdPK \n[0221] ②计算PK=IdPK+RaPK (椭圆曲线点运算) \n[0222] ③计算u1=h(m).S-1mod n \n[0223] u2=r.S-1mod n \n[0224] ④计算R=u1.G+u2.PK (椭圆曲线点运算) \n[0225] 记R=(x′,y′) \n[0226] ⑤计算v=x′mod n,若v=r则验证通过,签名有效,否则签名无效 [0227] 5.用于数据加密的密钥传送算法 \n[0228] 用于数据加密的密钥称为会话密钥。会话密钥每次通话都要更新。 [0229] 5.1公开的参数 \n[0230] ①椭圆曲线群的五元参数组(a,b,G,n,p) \n[0231] ②种子公钥集\n[0232] ③收方B的标识ID和随机公钥RaPKB\n[0233] 5.2发方A的密钥发送 \n[0234] ①用收方B的标识ID通过种子公钥集生成B方的标识公钥IdPKB\n[0235] ②计算B方的公钥 \n[0236] PKB=IdPKB+RaPKB (椭圆曲线点运算) \n[0237] ③随机选取k∈Zn \n[0238] ④计算k.G=(x,y) (标量乘法) \n[0239] ⑤取r=x(mod n)作为会话密钥 \n[0240] ⑥计算k.PKB\n[0241] ⑦将k.PKB发给B \n[0242] 5.3收方B获取会话密钥的流程 \n[0243] ①收到k.PKB\n[0244] ②计算SKB-1.(k.PKB)=k.G=(x,y) \n[0245] ③取r=x(mod n)作为会话密钥 \n[0246] 6.基于双因子组合公钥(TF-CPK)体制的认证系统 \n[0247] 利用双因子组合公钥(TF-CPK)技术,可构建任意规模,包括超大规模的认证系统,并实现端到端直接认证,认证过程不需要第三方在线数据库的支持。该系统主要由密钥管理中心和用户客户端组成。 \n[0248] 如图5所示,示出了根据本发明的KMC功能框图。 \n[0249] 6.1密钥管理中心 \n[0250] 密钥管理中心主要有以下部分构成: \n[0251] ①用户注册,负责对用户标识进行审核确认,保证其真实性和唯一性,用户标识可以依据人员姓名、单位、机构名称、银行帐号、电话号码等定义; \n[0252] ②种子密钥生产,负责生成种子密钥集(SeedSK,SeedPK); \n[0253] ③用户密钥生产及分发,利用用户标识、种子私钥集和随机数发生器生成一阶私钥(SK1)和中心定义随机公钥(RaPK(KMC))并将SK1和RaPK(KMC)写入专用芯片(可以封装成IC卡、U-Key等形态)分发给用户,密钥生产过程参见 \n[0254] 3.1一阶双因子密钥模式; \n[0255] ④公共数据发布,发布内容包括:种子公钥集、作废标识列表,以及用户标识和与其对应的RaPK(KMC)和RaPK(USER)等。如下表所示,示出了KMC发布用户标识及与其对应的随机公钥的数据格式。 \n[0256] \n[0257] KMC发布数据的格式 \n[0258] 6.2用户客户端 \n[0259] 客户端主要由认证芯片(可封装成IC卡、USB-key等方便使用的形式)和客户端软件构成。TF-CPK认证系统的认证过程主要在客户端与服务端(功能与 客户端相当),客户端与客户端之间完成。芯片内含计算和存储单元,算法协议以及用户私钥和公钥数据,相当于一个完整的认证系统(参见系统功能图)私钥经用户pin码加密后保存在芯片的安全存储区内,所有涉及私钥的操作,如数字签名、密钥交换等均在芯片内进行,以确保私钥的安全。 \n[0260] 参见图6,示出了根据本发明的TF-CPK认证芯片结构与功能图。 \n[0261] 7.应用领域 \n[0262] TF-CPK认证系统理论上可以用于所有需要真实性证明的领域,如:电子签章、电子标签防伪等,并可借助中心发布带有随机公钥的用户标识,实现密钥交换,如对电子邮件进行加密等。 \n[0263] 7.1电子签章系统 \n[0264] 参见图7,示出了根据本发明的电子签章系统。 \n[0265] 电子签章系统通过数字签名证明交易信息的真实性,广泛适用于电子商务、电子政务等领域。其实现过程如下: \n[0266] 7.1.1签名者A用认证芯片中的私钥对原数据m进行签名,签名过程如下: [0267] ①随机选取k∈Zn \n[0268] ②计算k.G=(x,y) (椭圆曲线群标量乘法) \n[0269] ③计算r=x mod n \n[0270] ④计算S=k-1(h(m)+SK.r)mod n \n[0271] ⑤A将m和签名(r,s)发给B \n[0272] 7.1.2验证者B对A的签名数据进行验证,验证过程如下: \n[0273] ①以A的标识经种子公钥集生成标识公钥IdPK \n[0274] ②计算PK=IdPK+RaPK (椭圆曲线点运算) \n[0275] ③计算u1=h(m).S-1 mod n \n[0276] u2=r.S-1 mod n \n[0277] ④计算R=u1.G+u2.PK (椭圆曲线点运算) \n[0278] 记R=(x′,y′) \n[0279] ⑤计算v=x′mod n,若v=r则验证通过,签名有效,否则签名无效。 [0280] 7.2电子标签防伪 \n[0281] 电子标签防伪是将TF-CPK数字签名技术与RFID技术相结合产生的一种兼具物理和逻辑防伪特性的新型防伪技术,能够有效地防止假冒复制,同时具有通用验证能力。其实现过程如下: \n[0282] 7.2.1防伪电子标签制作 \n[0283] 图8示出了根据本发明的防伪电子标签生成流程。 \n[0284] ①读取RFID芯片上的唯一编号; \n[0285] ②利用TF-CPK算法及私钥对防伪信息,如证件持有人个人信息、证件发放单位或产品信息和生产单位等,连同RFID唯一编号以及与私钥对应的随机公钥进行数字签名(签名算法参见7.11),生成签名信息; \n[0286] ③将签名信息写入该RFID芯片 \n[0287] 7.2.2防伪电子标签验证 \n[0288] 图9示出了根据本发明的防伪电子标签验证流程。 \n[0289] ①用TF-CPK算法计算出签名者的标识公钥,将其与发送的随机公钥相加得出签名者的实用公钥; \n[0290] ②用该公钥解读防伪芯片上的数字签名信息(算法参见7.11); \n[0291] ③能够正确显示信息为真,否则为假。 \n[0292] 7.3安全电子邮件系统 \n[0293] 电子邮件是应用最为广泛的网络信息交流手段。利用TF-CPK技术可以对邮件内容进行数字签名和加密,有效地保证信息内容的真实性、完整性和私密性。 [0294] 7.3.1对邮件内容的数字签名和验证 \n[0295] 签名方利用私钥进行数字签名,并在签名中提供用本方的户标识和随机公钥; [0296] 验证方用对方的标识通过公布的种子公钥集计算出对方的标识公钥,将其与对方发送的随机公钥相加得出对方的实用公钥,并用其对签名内容进行验证; \n[0297] 7.3.2对邮件内容进行加脱密 \n[0298] 发送方A通过中心公布的用户标识和随机公钥后缀计算出接收方B的公钥; [0299] 随机选取k∈Zn; \n[0300] 计算k.G=(x,y) (标量乘法); \n[0301] 取r=x(mod n)作为会话密钥; \n[0302] 计算k.PKB; \n[0303] 将R.PKB随加密信息发给B; \n[0304] 接收方B收到附有k.PKB的加密信息; \n[0305] 计算SKB-1.(k.PKB)=k.G=(x,y); \n[0306] 取r=x(mod n)作为会话密钥,对加密信息进行脱密。 \n[0307] 以上所述仅为本发明的优选实施例而已,并不用于限制本发明,显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
法律信息
- 2021-05-07
未缴年费专利权终止
IPC(主分类): H04L 9/32
专利号: ZL 200810113494.9
申请日: 2008.05.28
授权公告日: 2013.05.29
- 2013-05-29
- 2009-06-24
- 2009-04-29
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2005-06-29
|
2005-01-14
| | |
2
| |
2007-01-31
|
2006-08-15
| | |
3
| |
2007-02-07
|
2006-08-09
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 1 | | 2014-01-30 | 2014-01-30 | | |