Java智能卡密钥协商的方法和装置制造方法及图纸

技术编号:32467101 阅读:21 留言:0更新日期:2022-03-02 09:26
本申请提供了一种Java智能卡密钥协商的方法和装置,包括:第一设备随机生成系统参数和公私钥对,系统参数包括第一系统参数p、第二系统参数q和第三系统参数ω,p和q是素数,ω是正整数,且2p≥3ω,q≥16ω+1,公私钥对包括私钥f和公钥h;第一设备将公钥h发送给第二设备,公钥h用于第二设备对第二设备存储的密钥k进行处理得到密文C||c;第一设备接收第二设备发送的密文C||c;第一设备根据私钥f对密文C||c进行处理,得到密钥k。本申请提供的密钥协商的方法,可以实现基于公开密钥体制Streamlined NTRU Prime方案对Java智能卡上存储的数据进行加密和解密。行加密和解密。行加密和解密。

【技术实现步骤摘要】
Java智能卡密钥协商的方法和装置


[0001]本申请涉及密码与信息安全
,并且更具体地,涉及Java智能卡密钥协商的方法和装置。

技术介绍

[0002]智能卡(Smart Card)是一台信用卡格式的、没有人机界面的小型计算机,能够为每一个持卡人提供安全的身份认证和个性化的服务。在智能卡里存储的数据可以防止未经授权的存取和篡改,智能卡被认为是存储秘密密钥并可以执行密码算法的理想介质。
[0003]目前,难以实现基于公开密钥体制Streamlined NTRU Prime方案对Java智能卡上存储的数据进行加密和解密。

技术实现思路

[0004]本申请提供了一种Java智能卡密钥协商的方法和装置,该方法可以实现基于 Streamlined NTRU Prime密钥协商方案对Java智能卡上存储的数据进行加密和解密。
[0005]第一方面,提供了一种Java智能卡密钥协商的方法,包括:
[0006]第一设备随机生成系统参数和公私钥对,其中,该系统参数包括第一系统参数p、第二系统参数q和第三系统参数ω,本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种Java智能卡密钥协商的方法,其特征在于,所述方法包括:第一设备随机生成系统参数和公私钥对,其中,所述系统参数包括第一系统参数p、第二系统参数q和第三系统参数ω,p和q是素数,ω是正整数,且2p≥3ω,q≥16ω+1,所述公私钥对包括私钥f和公钥h,所述私钥f是根据第一随机多项式R和第二随机多项式S确定的,所述第一随机多项式R=Z[x]/(x
p-x-1),且x
p-x-1在多项式环(Z/q)[x]上不可约,所述第一随机多项式的系数属于集合{-1,0,1},所述第二随机多项式S为(p-1)次多项式,所述第二随机多项式S的p个系数中的ω个系数为随机生成的正负1,其余(p-ω)个系数为零,且S∈R,所述公钥h是根据第三随机多项式g和所述私钥f确定的,所述第三随机多项式g为(p-1)次多项式,所述第三随机多项式g的p个系数属于集合{-1,0,1},所述第三随机多项式g在R/3中可逆,R/3=(Z/3)[x]/(x
p-x-1),所述公钥h满足下列表达式:h=g/(3f);所述第一设备将所述公钥h发送给第二设备,所述公钥h用于所述第二设备对所述第二设备存储的密钥k进行处理得到密文C||c;所述第一设备接收所述第二设备发送的所述密文C||c;所述第一设备根据所述私钥f对所述密文C||c进行处理,得到所述密钥k。2.根据权利要求1所述的方法,其特征在于,所述密文C||c包括第一密文C和第二密文c,所述密文C||c是对所述第一密文C和所述第二密文c进行联接运算得到的,所述第一密文C是对所述密钥k和第四随机多项式r进行哈希处理得到的,所述第四随机多项式r为(p-1)次多项式,所述第四随机多项式r的p个系数中的ω个系数属于{-1,1},其余(p-ω)个系数为零,且r∈R,所述第二密文c是将第五随机多项式hr的系数取整乘以3后得到的,所述第五随机多项式hr为所述公钥h和所述第四随机多项式r的乘积,hr∈R,且hr的系数位于区间[-(q-1)/2,(q-1)/2]。3.根据权利要求2所述的方法,其特征在于,所述第一密文C是对所述密钥k和所述第四随机多项式r进行哈希处理得到的,包括通过以下步骤1至步骤5得到所述第一密文C:步骤1、将所述第四随机多项式r进行处理得到(p+3)维向量[x0,x1,x2,x
i
,...,x
p+3
],其中,x
p
、x
p+1
和x
p+2
的系数为零,i为整数,0≤i≤p+3;步骤2、对所述(p+3)维向量[x0,x1,x2,x
i
,...,x
p+3
]中的每个向量对应的坐标进行加1处理,得到向量(a0,a1,a2,a
i
,...,a
p+2
),并对所述向量(a0,a1,a2,a
i
,...,a
p+2
)进行处理,得到四元素(a
4i
,a
4i+1
,a
4i+2
,a
4i+3
);步骤3、根据所述四元素(a
4i
,a
4i+1
,a
4i+2
,a
4i+3
)计算得到集合A=(A0,A1,A2,A
i
,...,A
190
),其中,A
i
=a
4i
+4
×
a
4i+1
+42×
a
4i+2
+43×
a
4i+3
,i为整数,0≤i≤190,其中,所述集合A是所述第一密文C;步骤4、利用哈希算法对所述集合A中的(A
95
,A
96
,A
97
,...,A
190
)进行处理,得到32字节会话密钥;步骤5、将所述32字节会话密钥与所述集合A中的(A0,A1,A2,...,A
94
)进行联立,验证所述集合A=(A0,A1,A2,A
i
,...,A
190
)。4.根据权利要求2或3所述的方法,其特征在于,所述私钥f为(p-1)次多项式,且所述私钥f的系数位于区间[-(q-1)/2,(q-1)/2],所述第一设备根据所述私钥f对所述密文C||c进行处理,得到所述密钥k,包括:所述第一设备从所述密文C||c中获取所述第二密文c;
所述第一设备根据所述第三随机多项式g与所述第二密文c生成第六随机多项式g.r;所述第一设备在R/3中对所述第七随机多项式r'进行处理,使得r'∈R,所述第七随机多项式r'为对所述第六随机多项式g.r进行模3运算得到的,r'=1/g.e=r(mod3),e为g.r(mod3),g.r(mod3)=3.((699051.a+220)>>21),a∈[-3000,3000];所述第一设备在R/3中对所述第七随机多项式r'进行哈希处理,生成第三密文C'和第二密钥k';在所述第一设备确定所述第三密文C'与所述第一密文C相同的情况下,所述第二密钥k'等于所述密钥k,使得所述第一设备得到所述密钥k。5.根据权利要求4所述的方法,其特征在于,所述所述第一设备根据所述第三随机多项式g与所述第二密文c生成第六随机多项式g.r,包括:在所述第六随机多项式g.r的绝对值小于等于(q-1)/2的情况下,所述第一设备确定所述第六随机多项式g.r满足下列表达式:g.r=3fc=3f.hr=3f.(g/3f)r;在所述第六随机多项式g.r的绝对值大于(q-1)/2的情况下,所述第一设备确定所述第六随机多项式g.r满足下列表达式:g.r=sgn(3fc)(|3fc|-q)。6.根据权利要求1-5任一项所述的方法,其特征在于,所述第一设备随机生成系统参数和公私钥对之前,所述方法还包括:对所述第一设备生成的随机数进行构造,使得构造后的所述第一设备生成大于等于零的任意一个整数。7.根据权利要求1-6任一项所述的方法,其特征在于,所述第一系统参数p等于761,所述第二系统参数q等于4591,所述第三系统参数ω等于286。8.一种Java智能卡密钥协商的装置,其特征在于,所述装置包括:处理单元,用于随机生成系统参数和公私钥对,其中,所述系统参数包括第一系统参数p、第二...

【专利技术属性】
技术研发人员:马文平
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1