一种具有非交互式不可否认性质的签密方法

文档序号:9767662阅读:424来源:国知局
一种具有非交互式不可否认性质的签密方法
【技术领域】
[0001] 本发明涉及签密技术领域,特别是涉及一种具有非交互式不可否认性质的签密方 法。
【背景技术】
[0002] 签密是一种公钥密码技术,用于高效地同时提供保密性和认证性服务。密钥在签 密系统中起着十分重要的作用,只有拥有合法密钥的用户才能执行相关的签密和解签密操 作。
[0003] 数字签名中的消息以明文的形式出现,任何第三方都能验证签名的合法性。只要 签名算法满足不可伪造性,则任何签名者都不能否认自己合法签名的消息。从这个角度讲, 数字签名中的不可伪造性包含了不可否认性。然而在签密中,消息被加密起来,只有接收方 解密出消息并验证是否是发送方合法签密的。任何第三方都不知道消息的内容,所以无从 进行验证。可以看出在签密中,不可伪造性满足并不意味着不可否认性也相应满足。
[0004] 考虑一种情况,发送方签密了一个消息(这个消息可能是一份敏感的医疗报告,一 个商业承诺,或一封重要的电子邮件等),并将签密密文发送给了接收方,不久以后收发双 方发生纠纷,发送方否认其签密过此消息。此时接收方面临的问题就是如何向仲裁方(例如 法院)澄清这个事实。
[0005] 目前关于对于解决签密消息的不可否认性质,密码学者中最优者为Malone-Lee的 方法。在其方法中,
[0006] 签密密文σ为:
[0007]
[0008]
[0009]在实现不可否认性质时,Malone-Lee将接收方发送给仲裁方的信息划分为两个部 分,一部分是需要仲裁的信息包,括收发双方公钥、消息和密文;另一部分就是证据。仲裁方 通过证据验证消息和密文之间的关系。在本方案中,证据就是。有了的帮助,仲裁方可以验 证(r,s)是否是消息m的Schnorr签名。
[00?0]为了保证具有不可否认性质的签密方案的安全性,Malone-Lee建立了专门针对具 有不可否认性质的签密安全性模型。与之前的安全性定义不同的是,Malone-Lee在新的保 密性和不可伪造性的攻击游戏里面允许攻击者进行多次证据询问。每次证据询问的具体处 理如下:
[0011]证据询问:攻击者提交签密密文,和收发双方的公钥给挑战者,挑战者返回给攻击 者相关的证据。
[0012 ] 可以看出攻击者在两个攻击游戏中都可以通过证据询问可以获得证据,从而从根 本上保证了证据的暴露不会影响到签密方案的保密性和不可伪造性。
[0013] Malone-Lee的方法迈出了保证具有不可否认性质的签密方案安全性非常重要的 一大步。但是该方法只适用于一个具体的方案,不是一般性的解决方案,因此在应用上有一 定的局限性。本发明提出一种一般性的高效的具有非交互式不可否认性质的签密方法,使 得具有非交互式不可否认性质的签密可以适用于一般情况,以更广泛地构造。

【发明内容】

[0014] 为解决上述问题,本发明提供了一种非交互式不可否认性质的签密构造方法,包 括如下步骤:
[0015] 步骤一:执行参数建立算法;
[0016] 参数建立算法公式为:PubSetup( lk);
[0017] 详细步骤为:
[0018] (1)计算 Pub-lk;
[0019] (2)返回 Pub;
[0020] 其中,lk为输入安全参数,Pub为输出公开参数;
[0021]步骤二:发送方运行发送方密钥生成算法,输入Pub和发送方身份IDs,输出发送方 公私钥对(PKs;SKs);
[0022] 发送方的密钥生成算法公式为:KeyGens(Pub;IDs);
[0023] 详细步骤为:
[0024] (1)计算(SKsig;PKsig)-SigKeyGen(Pub);
[0025] (2)计算(SKs; PKs) - (SKsig; PKsig);
[0026] (3)返回(SKs;PKs);
[0027] 步骤三:接收方运行密钥生成算法,输入Pub和接收方身份IDr,输出接受公私钥对 (SKR;PK R).接收方保密自己的私钥SKR,并公开自己的公钥PKR;
[0028] 接收方的密钥生成算法公式为:KeyGenR(Pub;IDR);
[0029] 详细步骤为:
[0030] (1)计算(SKenc; PKenc) -EncKeyGen(Pub);
[0031] (2)计算(SKr ; PKr ) - (SKenc; PKenc);
[0032] (3)返回(SKR;PKR);
[0033] 步骤四:发送方运行签密算法,输入SKs;PKR和消息M,输出签密密文〇;
[0034] 签密算法公式为:Signcrypt(M;SKs;PKR);
[0035] 详细步骤为:
[0036] (1)将SKs 表示为 SKsig;
[0037] (2)将PKR表示为 PKenc;
[0038] (3)计算C-Encrypt(PKs| |M;PKenc);
[0039] (4)计算〇sig-Sign(C| |PKR;SKsig);
[0040] (5)设置 (C;〇sig);
[0041 ] (6)返回签密密文〇;
[0042]步骤五:接收方运行解签密算法,输入〇;PKs和SKR,输出消息M或者输出丄表示密文 不合法;
[0043]解签密算法公式为:Unsigncrypt(〇;PKs; SKR);
[0044] 详细步骤为:
[0045] (1)将PKs表示为PKsig、将SKR表示为SK en。、将σ表示为(C; 〇sig);
[0046] (2)计算SigVer(〇sig;C| |PKR;PKsig),如果SigVer(〇sig;C| |PKR;PKsig) =丄,则返回 丄,否则返回T;
[0047] (3)计算 Menc-DeCrypt(C;SKenc);如果 Menc=丄,则返回丄,否则将 Menc 表示成 PK's Μ;
[0048] (4)判断PK's是否与PKs相等,如是则返回Μ;否则返回丄;
[0049]步骤六:接收方运行证据生成算法,输入〇;PKs和SKR,输出发证据d或者输出丄表示 密文不合法;
[0050]证据生成算法公式为EvidenceGen(σ;PKs;SKR);
[0051]详细步骤为:
[0052] (1)将PKs表示为PKsig、将SKR表示为SK enc、将σ表示为(C; 〇sig);
[0053] (2)如果SigVer(〇sig;C| |PKR;PKsig) =丄,则返回丄,否则返回T;
[0054] (3)计算jt-EncEvidenceGen(C;SKenc);
[0055] (4)返回 d-π;
[0056] 步骤七:接收方运行仲裁验证算法,输入〇,M,d,PKs和PKR,输出Τ表示该证据d证明 了消息Μ是密文σ对应的消息,否则输出丄;
[0057]仲裁验证算法公式为]\1(^6\^1'(〇;1;(1;?1(5;?1([0;
[0058] 详细步骤为:
[0059] (1)将PKs表示为PKsig、将SKR表示为SK enc、将〇表示为(C; 〇sig)、将d表示为π或丄;
[0060] ⑵判断:
[0061] 如果M=丄,d=丄,并且SigVer(C;〇slg)=丄,则返回T ;
[0062] 如果M=丄,d = Ji,SigVer(C| |PKR;〇sig;PKsig)= T,并且EncVer(C;丄;3i;PKenc) = T,则返回T ;
[0063] 如果MOMPk,EncVer(C;PKs| |M;Ji;PKenc)= Τ,并且SigVer(C;〇sig); = Τ,则返回 Τ ;
[0064] 否则返回丄;
[0065] 其中,MPk为明文空间。
【具体实施方式】
[0066] 本发明的设计构思为:利用一种具有特殊的性质的公钥加密方案,称为具有非交 互式打开性质的加密(ΡΚΕΝ0)来代替普通的公钥加密方案,使之和数字签名相结合,从而构 造非交互式不可否认性质的签密。
[0067]以下首先描述ΡΚΕΝ0方案,数字签名方案,以及具有非交互式不可否认性质的签密 的语法定义,最后给出本发明具体的的签名方法。
[0068] 1.具有非交互式打开性质的公钥加密(ΡΚΕΝ0)
[0069]语法定义:一个具有非交互式打开性质的公钥加密方案的语法定义包含四个算 法,密钥建立算法EncKeyGen、加密算法Encrypt、解密算法Decrypt、证据产生算法 EncEvidenceGen 和验证算法 EncVer。其中,EncKeyGen、Encrypt和EncEvidenceGen是概率性 算法,Decrypt和EncVer是确定性算法。这四个算法的具体描述如下:
[0070] EnCKeyGen(lk):输入安全性参数lk,该算法输出公钥pk和私钥sk.
[OO71 ] Encrypt(pk,M):输入公钥pk和消息MeMPk(MPk为明文空间),该算法输出密文C。 [0072] 0扣巧?丨(4,〇:输入密文(:和私钥成,该算法输出解密的消息111。若密文(:是非法密 文,该算法输出特殊字符丄。
[0073] EncEvidenceGen(sk,C):输入密文C和私钥sk,该算法输出证据π。
[0074] EncVer(pk,C,m,3i):输入密文C,消息m,公钥达和证据π,该算法输出T代表证据π 证明了密文C是消息m在公钥pk下的加密密文。反之,算法输出丄。特别地,表明C是非法密 文。
[0075] 2.数字签名算法:
[0076]语法定义:一个数字签名方案的语法定义包含四个算法,密钥建立算法 SigKeyGen、签名算法Sign、和验证算法SigVer。其中,SigKeyGen和Sign是概率性算法, SigVer是确定性算法。这三个算法的具体描述如下:
[0077] SigKeyGen(lk):输入安全性参数lk,该算法输出公钥pk和私钥sk.
[0078] Sign(sk,M):输入私钥sk和消息MEMPk(MPk为明文空间),该算法输出签名〇。
[0079] SigVer(pk,〇):输入签名〇和公钥pk,该算法输出解密的消息m。输出T代表通过签 名验证。反之,算法输出丄。
[0080] 3.具有非交互式不可否认性质的签密
[0081]参数建立算法PubSetup(lk):该算法输入安全参数lk,输出公开参数Pub。该算法由 一个收发双方可信任的机构来运行,可信机构随后公开Pub。
[0082] 发送方密钥生成算法KeyGens(Pub; IDs):该算法由发送方运行。输入Pub和发送方 身份IDs,输出发送方公私钥对(PKs;SKs).
[0083]接收方密钥生成算法KeyGenR(Pub;IDR):该算法由接收方运行。输入Pub和发送方 身份IDr,输出发送方公私钥对(SKR; PKR).接收方保密自己的私钥SKR,并公开自己的公钥 PKr.
[0084] 签密算法Signcrypt(Μ; SKs;PKr):该算法由发送方运行。输入SKs;PKr和消
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1