1. 引言
CPK鉴别系统由CPK组合公钥 [1] 和GAP一步协议 [2] 构成,为物联网的每一实体,为事联网的每一事件提供真实性证明。CPK组合公钥是CPK鉴别系统的核心技术,而CPK的核心技术是标识鉴别。标识鉴别具有“事前证明”的性质,用于通信网络与业务网络的接入控制,有效防止非法接入。因此,“标识鉴别”成为各国梦寐以求的“银弹”。
用CPK组合公钥实现的“GAP一步协议”是通用协议,实现“一物一证,一事一证”的当场鉴别,以阻断信任的转移和由此产生的权利的被接管,是对抗网络攻击和阻止黑客作案的有力武器。
2. CPK工作原理
CPK在ECC [3] [4] 上实现,由组合矩阵和映射函数构成,矩阵分为私钥矩阵a和公钥矩阵A,分别用分别用
和
表示,r是小于n的随机整数,私钥矩阵
由KMC保有,用于私钥的生成,公钥矩阵
由各客体保有,用于公钥的生成。公钥矩阵是由私钥矩阵派生的:
。
矩阵的坐标是由YS序列指示的,YS序列是实体标识(Alice)在映射密钥Hkey作用下Hash输出。
的字长为5 bit,
指示行坐标,列坐标采用自然序。
3. 私钥结构
CPK私钥的结构是从单层结构发展为多块性和而成性的。其中多块性具有普遍意义,而合成性是满足防量子穷举的特殊需要的。
3.1. 私钥的单层结构
原始的CPK的私钥是单层结构的,称CPK v0.0版本。
矩阵的坐标是由YS序列指示的:
Bob的私钥由中心计算:
公钥则由验证方计算:
公钥可以大斜BOB表示,私钥以小斜bob表示。
显然,私钥是一个方程,方程带来什么危害,作为公开问题提出来。一般的理解是按代数定理,线性无关方程当满秩时导致唯一解,而线性相关方程导致无穷解。CPK由于取值特点,不构成构成满秩矩阵,最大秩为993。
3.2. 私钥的多层结构
在防量子穷举的研究中,为了增加解方程的难度,在私钥构成等式中增设了分层参数fcc和年度密钥year,形成了CPK v0.9版本。
Bob的私钥由中心计算:
Bob的公钥则由验证方计算:
年度公钥YEAR是单独公布的,全网相同。在分层参数的作用下,矩阵变成多层次的矩阵,方程变为多系数方程。
3.3. 私钥的多块结构
2016年,廖国鸿等人发表了“组合公钥体制的线性共谋攻击” [5] 的论文,对CPK v0.0实施了攻击,而获得成功。他们建立了秩为993的最大线性无关的等效矩阵,等价求出了CPK私钥矩阵,所用私钥为3000个。那么等效矩阵的线性攻击法很可能对CPK v0.9也有效,因为年度密钥是固定因素,他没有破坏矩阵的平移等价性,分层参数在一个私钥的等式中式固定的,而且可以被消掉。由此产生了私钥的多块结构,不仅消不掉分层参数,更使私钥方程变为参数保护下的两层无穷解方程。
由此将分层参数fcc由一个增加到4个,形成了多块结构的私钥,解决等价矩阵的建立,称CPK v1.0。
Alice的私钥由密钥管理中心计算:
For j := 0 to 3 do
Alice的公钥由验证方算:
For j := 0 to 3 do
3.4. 私钥的合成结构
设置两个中心,一是密钥管理中心,负责注册和第一密钥的分发;二是密钥服务中心,负责第二密钥的分发。第一密钥的公钥矩阵和Hkey公布,以便让客户计算第一公钥。
第一私钥由管理中心(KMC)生成:
第一公钥由客户计算:
第二私钥由服务中心(SVC)生成:
第二公钥由服务中心生成:
时刻私钥由客户合成:
时刻公钥由客户合成:
由于第二私钥时刻化标识的作用下,使私钥具有一次性。
4. 编制结构
为了适应全局性开放环境中鉴别的需求,适应局域性封闭环境中鉴别的需求,以及防止量子计算穷举的特殊需要,定义了三种不同版本,固定型、灵巧型、一次型。
4.1. 编制的固定型
固定型适应全局性开放的通信网络和业务网络的鉴别需求,同时为加密数据提供密钥加密功能(不包括数据加密)。
矩阵大小固定为32 × 32;
密钥长度固定为256 bit;
分层参数的数量 固定为4个;
验证码长度固定为2m = 232。
固定型称CPK v1.0。
4.2. 编制的灵巧型
灵巧型适应局域性封闭的通信网络和业务网络的鉴别需求;同时为加密数据提供密钥加密功能(不包括数据加密)。
矩阵大小范围为4 × 4 ∙∙∙ 16 × 16;
密钥长度的范围为64 ∙∙∙ 128;
分层参数数量2个;
验证码长度为2m = 216。
灵巧型称CPK v1.1。
4.3. 编制的合成型
密钥管理中心和密钥服务中心各自生成一半密钥,由用户合成为一个密钥。合成型满足防量子计算攻击的特殊需求;同时为加密数据提供密钥加密功能(不包括数据加密)。
设置密钥管理中心,配置矩阵1,大小为32 × 32,设置和密钥服务中心,配置矩阵2,大小为32 × 32;两个中心配置不同的Hkey1和Hkey2,密钥长度均为256比特;分层参数各一个,验证码长度为2m = 232。
一次型称CPK v1.2。
5. 数字签名
CPK的签名用修改的DSA [6] 实现。一般的数字签名只证明客体的真实性,如:
;
;
;
如果
,则证明sk和PK是一对密钥,因此客体h是真实的。至于谁签的名,则另行给出证明。但是用基于标识的公钥签名时,含义就发生变化。
5.1. 对客体的签名
CPK的签名是签名方用由标识派生的私钥进行,验证是依赖方由标识派生的公钥进行,因此,签名与验证构成特殊的证明关系。举一个Alice对客体h签名的例子:
;
;
;
当
时,验证方可直接认定:
1) 签名所用私钥和验证所用公钥是一对的;
2) 标识和密钥是一体的,因为密钥是从标识派生的;进而直接验证标识的真实性;
3) 真实的标识对客体h签了名,因此h是真实的。
基于标识的公钥对客体的签名,不仅用于真实性证明,还可以用于所属性证明。在物理世界中,所属性可用占有性实现,但在逻辑世界中,很难实现占有性,因此所属性证明一直是难点。比如像数字货币,所属性应由逻辑方法解决,而不能采用纸质货币的钱包形式体现所属性。
5.2. 对标识的签名
在主体对客体签名的实例中可看出,在一次证明中,同时证明了标识真实性和客体真实性,但证明是有顺序的。在对客体的真实性判别依赖标识的真实性证明,即在客体真实性证明之前先进行标识的真实性证明,发过来,标识真实性证明与客体真实性证明无关。因此可另行构造标识签名协议。
;
;
标识签名用于标识鉴别,标识鉴别不仅证明标识的真实性,更证明其声称要求的真实性。比如一人声称他是张三,并提供标识签名的证据,那么,证明了他就是张三,也证明了他的声称权是真实性的。又比如,在数字货币中印有“中国人民银行”。这是一种声称,标识签名就可以解决。如果靠第三方证明,那么还要提供第三方真实性的证明。声称权的证明也可以用作溯源性证明。
6. 结束语
从以上版本变化过程中可以看到,CPK具有很好的结构特点很容易适应各种不同环境和要求。中国顶级密码和信息安全专家组成的评议会认为:“具有重大创新意义”1,国外专家认为“CPK将公钥体制梦寐以求的所有好处集于一身”2。由于某些原因,CPK在中国至今没被推广使用,不过到了物联网时代,会出现越来越多非使用CPK不可的情况,也会有越来越多的人认识到CPK的使用价值。
CPK组合公钥的新进展
摘要:CPK的私钥结构由单层、多层发展到多块和合成结构;CPK的编制结构形成为固定型、灵活型、一次型;CPK数字签名不仅对数据签名,也可对标识签名,形成了标识签名协议,不仅提供真实性证明和溯源性证明,还提供普通数字签名难于实现的声称权证明和所属性证明。CPK不仅适用于开放的全局性通信网络和业务网络的鉴别需求,还能适应于封闭的局域性通信网络和业务网络的鉴别需求;其中合成性私钥结构能抵抗量子的穷举。
关键字:公钥,签名,鉴别,加密,映射
NOTES
12005年6月3日北京市科技技术委员会专家评议意见。
2James P. Hughes (2013) Preface to “CPK Cryptosystem and Identity Authentication―Basic Technology of Active Management”.