一种基于双曲线群算术的公钥密码体制及签名方法

文档序号:7810325阅读:341来源:国知局
一种基于双曲线群算术的公钥密码体制及签名方法
【专利摘要】本发明公开了一种基于双曲线群算术的公钥密码体制及签名方法,该算法包括公钥密码算法、数字签名算法、区别保密等级算法。本发明的基于双曲线群算术的公钥密码及签名算法,便于系统实现、具有多重安全性、可实现安全等级加密、可针对多种数据形式包括文字和多媒体进行加密、通信和存储等,克服了其它体制弱点和不足,如密钥过长,模运算赤裸性,明文的单一性,系统安全性无层次,密级无差别性等等。
【专利说明】一种基于双曲线群算术的公钥密码体制及签名方法

【技术领域】
[0001] 本发明属于公钥密码体制领域,尤其涉及一种基于双曲线群算术的公钥密码体制 及签名方法。

【背景技术】
[0002] 现有主要技术有RSA公钥密码及签名(不足之处:密钥过长导致时间效率低;模 运算赤裸性;非随机性算法;明文的单一性;安全性无层次,限制了其它功能算法的进一步 开发)、椭圆曲线公钥密码及签名(由于一般椭圆曲线群的阶难以获得,导致其应用受到极 大限制,尽管其具备双曲线公钥密码及签名的相似优势,但是,仍然处于理论研究阶段,尚 未得到广泛应用,并且,椭圆曲线群运算较双曲线群运算复杂,没有双曲线运算容易实现, 这增加了其运行成本,降低了时间效率)、ElGamal公钥密码及签名(不足之处:模运算赤裸 性;系统安全性仅基于离散对数的困难性;明文的单一性等)
[0003] 公开密钥密码体制是现代密码学的最重要的发明和进展,现有的公钥密码体制密 钥过长,模运算赤裸性,明文的单一性、安全性无层次,密级无差别性。


【发明内容】

[0004] 本发明的目的在于提供一种基于双曲线群算术的公钥密码体制及签名方法,旨在 解决现有的公钥密码体制密钥过长,模运算赤裸性,明文的单一性、安全性无层次,密级无 差别性的问题。
[0005] 本发明是这样实现的,一种基于双曲线群算术的公钥密码体制及签名方法包括公 钥密码算法、数字签名算法、区别保密等级算法。
[0006] 进一步,所述的公钥密码算法包括四种基本算法;
[0007] 算法一的具体方法为:
[0008] 加密算法:
[0009] (1)将明文Μ编码映射到双曲线HD(N)上的点M' = ;
[0010] (2)计算 M,e 三 C(modN),其中 C 是密文且 C = (Cl,c2) e HD(N);
[0011] 解密算法:
[0012] (l)CdEM' (modN);
[0013] (2)对 NT = (11^, m2)解码还原明文 Μ ;
[0014] 算法二的具体方法为:
[0015] 加密算法:
[0016] (1)将明文Μ编码映射到模双曲线H(N)上,或有限域的双曲线〃(^,)上的点M' =(nij, m2);
[0017] ⑵在[2, q-1]中随机选择一个整数r ;
[0018] (3)计算 Q = Gr,C2 = M' Pr,形成密文 C = (C" C2);
[0019] 解密算法:
[0020] (1)计算 C,;
[0021] (2)M/ =C2Crk;
[0022] (3)对 W = (mi,m2)解码得到 M ;
[0023] 算法三的具体方法为:
[0024] 加密算法:
[0025] (1)将消息明文Μ变化成剩余系Z/ZNi,或者基域GF(p)上的二元组M = ;
[0026] (2)在[2, q-1]中随机选择一个整数r ;
[0027] (3)计算得到密文(CQ,Cl,c2),其中
[0028] C〇 = Gr,
[0029] Y = (Yi, y2) = Pr
[0030] 〇! = (modN or p)
[0031] c2 = y2m2 (modN or p)
[0032] 解密算法:
[0033] (1)计算 Z = (z" z2) = C0k ;
[0034] (2)得到明文 M = (11^, m2) = (cff1 (modN or p), c2z2-1 (modN or p));
[0035] 算法四的具体方法为:
[0036] 加密算法:
[0037] (1)将消息明文Μ变化成剩余系Z/ZN±,或者基域GF(p)上的一维元m;
[0038] (2)在[2, q-1]中随机选择一个整数r ;
[0039] (3)计算得到密文(CQ,Cl),其中
[0040] C〇 = Gr,
[0041] Y = (Yi, y2) = Pr
[0042] q = 5^111 (modN or p)
[0043] 解密算法:
[0044] (1)计算 Z = (z" z2) = C0k ;
[0045] ⑵得到一维元m = cff1 (modN or p),还原成明文M。
[0046] 进一步,所述的数字签名算法包括三种基本算法:
[0047] 算法一的具体方法为:
[0048] 签名过程:
[0049] 用户A对已经编码到双曲线上的消息M e HD(N)进行签名,
[0050] (1)计算SA = Md = C(modN),其中d是签名方A的私钥;
[0051] (2)将SA附在消息Μ后作为用户A的签名;
[0052] 签名验证:
[0053] (l)Ce = Μ; (modN),其中e是签名方Α的公钥;
[0054] (2)M'与Μ比对,如果两者一致,相信签名确实为用户A所产生的,否则拒绝确认 该签名消息;
[0055] 算法二的具体方法为:
[0056] 加密消息并签名:
[0057] (1)用户 A 对消息 m 签名,SA = md 三 m' (modN);
[0058] (2)在[2, q-1]中随机选择一个整数r ;
[0059] ⑶计算 Q = Gr,C2 = M,Pr,其中 M' = (m,m'),且形成密文 C = (Q,C2);
[0060] 解密及验证签名:
[0061] ⑴计算C,;
[0062] (2)M/ = C2C^k ;
[0063] (3)对 Μ' = (m,m,)中 m'做签名验证 m" e(m〇dN),如果 m"和 m-致, 签名获得确认;
[0064] 算法三的具体方法为:
[0065] 消息签名:
[0066] (1)选择一个随机数r满足1 < r < q-Ι ;
[0067] (2)计算 Q = Gr = (X,y),且 x < q ;
[0068] (3)计算8 = ^〇!(Μ)+1?)(πι〇(1(?),其中h(M)是对消息M进行散列压缩得到的散 列码;
[0069] (4)用户Α将(s,x)作为消息Μ的数值签名,与Μ-起发送给接受方;
[0070] 签名验证:
[0071] (l)s,x是否在[l,q_l]内,若不是则拒绝签名;
[0072] (2)计算 h = h (M) s-1 (modq)和 u2 = xs-1 (modq);
[0073] (3)利用用户A的公钥P,计算

【权利要求】
1. 一种基于双曲线群算术的公钥密码体制及签名方法,其特征在于,所述的基于双曲 线群算术的公钥密码体制及签名方法包括公钥密码算法、数字签名算法、区别保密等级算 法; 公钥密码算法包括四种基本算法; 第一种算法的具体方法为: 加密算法:
(1) 将明文Μ编码映射到双曲线HD(N)上的点,=(πι,,πΟ : (2) 计算Μ' e = C (modN),其中C是密文且 解密算法: (1) Cd = (modN); (2) 对,=(mpng解码还原明文Μ; 算法二的具体方法为: 加密算法: (1) 将明文Μ编码映射到模双曲线Η(Ν)上,或有限域的双曲线上的点Μ'= 0^,1?); (2) 在[2, q-Ι]中随机选择一个整数r ; (3) 计算 Q = G' C2 = M' F,形成密文 C = (Q,C2); 解密算法: (1) 计算C,; (2) M/ = C2Crk ; (3) 对,=0^1?)解码得到Μ; 算法三的具体方法为: 加密算法: (1) 将消息明文Μ变化成剩余系Z/ZNi,或者基域GF(p)上的二元组M= 0^,1?); (2) 在[2, q-1]中随机选择一个整数r ; ⑶计算得到密文(CQ,Cl,c2),其中:

解密算法 (1) 计算 (2) 得到明文
算法四的具体方法为: 加密算法: (1) 将消息明文Μ变化成剩余系Z/ZNi,或者基域GF(p)上的一维元m; (2) 在[2, q-1]中随机选择一个整数r ; (3) 计算得到密文(CQ,Cl),其中
解密算法: Q)计算
(2)得到一维元
(modN or P),还原成明文; 所述的数字签名算法包括三种算法: 算法一的具体方法为: 签名过程: 用户A对已经编码到双曲线上的消息M e HD(N)进行签名; (1) 计算
,其中d是签名方A的私钥; (2) 将SA附在消息Μ后作为用户A的签名; 签名验证: (1) (T = M' (modN),其中e是签名方A的公钥; (2) M'与Μ比对,如果两者一致,相信签名确实为用户A所产生的,否则拒绝确认该签 名消息; 算法二的具体方法为: 加密消息并签名: (1) 用户A对消息m签名,SA = md三m' (modN); (2) 在[2, q-1]中随机选择一个整数r ; (3) 计算 Q = G'C2 = 1VT P1·,其中 NT = (m, ),且形成密文 C = (Q, C2); 解密及验证签名: (1) 计算C,; (2) M/ = C2Crk ; (3) 对M' )中m'做签名验证m"^m' e(m〇dN),如果m"和m-致,签名 获得确认; 算法三的具体方法为: 消息签名: (1) 选择一个随机数r满足1 < r < q-Ι ; (2) 计算 Q = Gr = (X,y),且 x < q ; (3) 计算s = (modq),其中h(M)是对消息M进行散列压缩得到的散列码; (4) 用户Α将(s,X)作为消息Μ的数值签名,与Μ-起发送给接受方; 签名验证: (1) s,x是否在[l,q_l]内,若不是则拒绝签名; (2) 计算 h = h (M) s-1 (modq)和 u2 = xs-1 (modq); (3) 利用用户A的公钥P,计算
,如果验证x ,那么签名被证实。
2.如权利要求1所述的基于双曲线群算术的公钥密码体制及签名方法,其特征在于所 述的区别保密等级算法的具体方法为: 加密: (1) 用户A对高密级别的消息1?加密,SA = iV = cJmodN); (2) 在[2, q-1]中随机选择一个整数r ; ⑶计算 Q = G1·,C2 = 1VT P1·,其中 NT = ((^,m2),且形成密文 C = (Q, C2); 解密: (1) 计算C,; (2) M/ = C2Crk ; (3) 对Μ' = (¢^, m2)中高级别密文q做进一步解密叫=c/OnodN); 该算法可实现消息不是被消息直接接受者而是转发给另外的授权人。
【文档编号】H04L9/30GK104158663SQ201410369236
【公开日】2014年11月19日 申请日期:2014年7月30日 优先权日:2014年7月30日
【发明者】王瑞, 王成茜, 刘小琴, 郑旗 申请人:云南大学, 王瑞
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1