基于口令的单轮密钥交换协议的制作方法
【专利摘要】一种使用公共参考串和共享口令初始化加密通信的方法,包括使用第一消息(106a)、第二消息(106b)以及公共参考串(100)确定对等方的秘密密钥(108a),其中所述第一消息和所述第二消息各包括素数阶p的循环群G的元素的元组、所述共享口令的盲加密、以及散列投影密钥。
【专利说明】基于口令的单轮密钥交换协议
[0001]本发明根据内政部授予的编号为FA8750-08-2-0091的合同在美国政府的支持下做出。美国政府对本发明拥有特定的权利。
【技术领域】
[0002]本发明涉及安全通信。更具体地说,本发明涉及实现安全通信的基于口令的单轮(single round)密钥交换。
【背景技术】
[0003]基于口令的认证是重要的安全范式(paradigm)。此场景中的安全性是一项富有挑战性的问题,因为口令通常来自随机性不足以生成密码安全密钥的低熵域(low-entiOpydomain)。
[0004]已经开发出其中口令由对等方(peer)共享的模型来使安全通信免受攻击。所有当前基于口令的密钥交换协议遵循不可延展的承诺范式,例如,所选的密文对手模型CCA2-加密范式,以及相关的散列证明系统。这些协议还采用类似于CCA2加密方案中的平滑投影散列函数(smooth projective hash function)。在此,用于获取散列证明的方法通常包括对等方之间的多轮交换以及模拟可靠零知识证明(simulation sound zeroknowledge proof)。
【发明内容】
[0005]根据本公开的示例性实施例,一种方法包括确定广义Diffie-Hellman元组;生成一次性模拟可靠零知识证明,其用于证明所述广义Diffie-Hellman元组的一致性;以及根据所述广义Diffie-Hellman元组加密消息。
[0006]根据本公开的示例性实施例,一种使用公共参考串和共享口令进行加密通信的方法包括使用被发送到对等方的第一消息、从所述对等方接收的第二消息以及公共参考串确定秘密密钥,其中所述第一消息和所述第二消息各包括素数阶P的循环群G的元素的元组、所述共享口令的盲加密、以及散列投影密钥。
[0007]根据本公开的示例性实施例,一种使用公共参考串和共享口令初始化安全通信的方法包括使用第一消息、第二消息以及公共参考串确定对等方的秘密密钥,其中所述第一消息和所述第二消息各包括素数阶P的循环群G的元素的元组、所述共享口令的盲加密,以及散列投影密钥。
[0008]根据本公开的示例性实施例,一种使用公共参考串和共享口令初始化安全通信的方法包括将第一消息发送到对等方,从所述对等方接收第二消息,以及使用所述第一消息、所述第二消息以及所述公共参考串确定所述对等方的安全密钥,其中所述第一消息和所述第二消息各包括广义DifTie-Hellman元组、所述共享口令的盲加密、散列投影密钥、以及用于证明所述广义Diffie-Hellman元组的一致性的一次性模拟可靠零知识证明。【专利附图】
【附图说明】
[0009]下面参考附图更详细地描述本公开的优选实施例:
[0010]图1是根据本公开的实施例的基于口令的密钥交换协议的图;
[0011]图2是示出根据本公开的实施例的消息生成的图;
[0012]图3是根据本公开的实施例的已接收的消息的图;
[0013]图4是根据本公开的实施例生成共享密钥的示例性方法的流程图;
[0014]图5是根据本公开的实施例的公共参考串的图;
[0015]图6是根据本公开的实施例的Diffie-Hellman元组的图;
[0016]图7是根据本公开的实施例的加密口令的图;
[0017]图8是根据本公开的实施例的散列投影密钥的图;以及
[0018]图9是用于执行根据本公开的实施例的方法的示例性系统。
【具体实施方式】
[0019]根据本公开的实施例,一种基于口令的单轮口令交换实现了安全通信。基于口令的单轮密钥交换可用于不同的安全通信模型。例如,基于口令的单轮密钥交换可用于口令认证密钥(PAK)安全模型或通用可组合(UC)模型。基于口令的单轮密钥交换绕过了构建传统的基于口令的密钥交换协议所依据的不可延展的承诺范式。通过避免CCA-2加密范式的不可延展的承诺范式,可使得方法在通信成本和最终密钥计算这两方面高效。
[0020]根据本公开的实施例,散列证明系统可被实现并集成在基于口令的密钥交换协议中。更具体地说,共享的秘密密钥可被确定为两个投影散列函数的乘积,其中第一投影散列函数对应于与有效的口令加密关联的语言,并且第二投影散列函数对应于加密方案中的密文完整性。第二投影散列函数不需要是在CC2A加密方案中使用的通用2投影散列函数。为了仅基于决定性Diffie - Heilman (DDH)假设证明安全性,在公共参考串陷门中需要进一步的(成对独立的)冗余。
[0021]基于口令的单轮密钥交换是高效的,其中NIZK (模拟可靠非交互式零知识)用于散列密钥的知识证明,但不一定用于构建CC2A安全加密。基于口令的单轮密钥交换使用一个多定理(mu 11 1-theorem )NI ZK证明系统。基于口令的单轮密钥交换可以使用多个多定理NIZK证明系统。
[0022]此处使用的术语只是为了描述特定的实施例并且并非旨在作为本公开的限制。如在此使用的那样,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文明确地另有所指。还将理解,当在此说明书中使用时,术语“包括”和/或“包含”指定存在所述的特征、整数、步骤、操作、元素和/或组件,但是并不排除存在或添加一个或多个其它特征、整数、步骤、操作、元素、组件和/或它们构成的组。
[0023]以下的权利要求中的所有装置或步骤加功能要素的对应结构、材料、操作和等价物,旨在包括任何用于与在权利要求中具体指出的其它要素相组合地执行该功能的结构、材料或操作。所给出的对本公开的描述是示例性和描述性的,并非穷尽性的,并且也不限于所披露形式的发明。在对于本【技术领域】的普通技术人员来说许多修改和变更都是显而易见的,而不偏离本公开的范围和精神。实施例的选择和描述,旨在最好地解释本公开的原理和实际应用,并使本【技术领域】的普通人员理解适合于所构想的特定应用的、本公开带有各种修改的各种实施例。
[0024]根据本公开的实施例,使用散列证明系统,其中对等方共享口令。如果所共享的口令错误,对等方会得出无关的秘密密钥。进一步地,无论是主动的还是被动的窃听者在猜想合法的对等方协商一致的最终密钥方面没有任何优势,以致于开始的口令可以很弱。例如,对于4个数位长的口令,窃听者在一次尝试中可以猜对口令的概率是1/9999,这与随机猜想相同。即,与随机猜想相比,窃听者没有额外的优势。
[0025]根据本公开的实施例,公共参考串(CRS)是全局发布的随机值,其可以被所有对等方访问,例如,任何特定日期上道琼斯平均指数(DJIA)的最后一位数。另一示例是诸如NIST (国家标准技术研究所)之类的组织公布的随机字符串。
[0026]现在参考图1,给定两个对等方A和B (IOla和IOlb)和对等方已选择的独立随机值r_A和r_B (104a和104b),然后通过使用这些随机值,对等方A和B可以确定其相应随机值的函数F、公共的CRS105以及它们的口令(103a和103b)。函数F可以由协议指定。结果值(106a和106b)被发送到另一对等方。然后当在方框107a和107b接收到来自另一对等方的相应值时,这两个对等方基于它们从另一对等方接收的东西、它们的口令、CRS及其随机值确定最终密钥,以便生成相应消息(108a和108b)。
[0027]当且仅当这两个对等方使用相同的口令(103a和103b)时,它们才会确定相同的密钥。而且,如果口令不同,即使有一位不同,两个值也是随机的并且相互独立。如果具有不正确的口令知识的第三方(例如“中间人”(man in the middle))尝试发起主动或被动窃听攻击,则情况依然如此,即,所生成的值是随机的并且独立于对等方所获取的值。
[0028]在说明书和附图中,使用循环群Gl和G2 (都是素数阶P的循环群),以便它们满足SXDH (对称外部 Diffie-Hellman)假设。
[0029]SXDH假设包括使用两个不同的循环群Gl和G2的基础代数结构,每个循环群都是素数阶P的循环群。双线性映射从Gl和G2分别获得一对元素,并将它们映射到被称为目标群G3的第三群。SXDH假设声称,两个群Gl和G2是如此不兼容,以致于Diffie-Hellman假设在这两个群中都单独成立。这样,给定循环群Gl的生成器g、以及两个元素g的a次幂以及g的b次幂(其中a和b是随机选择的),没有任何多项式时间对手(polynomial timeadversary)可以区分g的a乘b次幂与群Gl的随机元素。类似的假设被规定对群G2适用。
[0030]图1中的协议假设固定的CRS100是所有对等方公知的。该协议是对称且异步的,其中每方确定要被发送的消息、接收对应的消息和确定密钥。因此,下面的描述从一方的角度进行的;另一方是对称的。
[0031]CRS(请参阅图5)包括从群G中均匀随机地选择的三个群元素g、A和K(301_303);以及用于NIZK证明的CRS (304)。
[0032]考虑共享公共口令pw的协议中涉及的两方Pi和P」。在图2中,一方PiW I到P均匀随机地生成随机数X、η i和η /并确定消息组件106,包括=Diffie-Hellman元组:= (gx,Ax) (201和图6)、口令加密:=Kxssid* Pw (202、图7)(其中ssid是子会话标识)、散列
投影密钥:gn-1kn-1( ^03和图8)以及存在X的NIZK证明,从而图6中的Diffie-Hellman
元组的形式确实是(gx,Ax)204。[0033]Diffie-Hellman元组一致性〈P P / >的NIZK证明满足以下性质:
[0034]存在X,使得 P !=gx 且 P ^ =Ax。
[0035]NIZK证明可使用已知的技术构建。例如,零知识协议(例如,验证方从证明获取的知识不多于陈述的真实性)可被视为一次性模拟可靠,如果即使给定的假陈述的副本(transcript)在协议中通过采用基础的难解性假设通过替换无法区别的字符串被证明,也没有任何多项式时间对手可以证明假陈述。这可以通过双线性对和SXDH假设实现。证明是一次性模拟可靠,从而在一次性模拟可靠零知识证明协议中,没有任何对手可以修改给定的陈述证明以获取另一陈述的有效证明。
[0036]考虑对于证人关系为R的语言L e NP, (ΝΙΖΚ[1,2]> Π = (1,Ρ, V, 8) = (8^ S2)可以是多定理NIZK证明系统(相应参数),如果:1是多项式,并且P,V, S1, S2都是概率性多时间机器,从而存在可忽略的函数α,以便对于所有k:
[0037]完备性:对于长度为k的所有X e L,以及所有W,从而R(x,w)=true,对于长度为I1(k)的所有字符串 σ,具有 V(x,P(x,w, σ), o)=true。
[0038]可靠性:对于所有无界(相应多项式时间)对手A,如果ο e {O, l}1(k)是随机选择的,则Α(σ)将输出(x,p)以便
【权利要求】
1.一种方法,包括: 确定广义 Diffie-Hellman 元组(201); 生成一次性模拟可靠零知识证明,其用于证明所述广义Diffie-Hellman元组的一致性(204);以及 根据所述广义Diffie-Hellman元组加密消息(108a), 其中所述方法由处理器执行。
2.一种用于使用公共参考串和共享口令执行加密通信的方法,包括: 使用被发送到对等方的第一消息(106a)、从所述对等方接收的第二消息(106b)以及公共参考串(100)确定秘密密钥(107a), 其中所述第一消息和所述第二消息各包括素数阶P的循环群G的元素的元组(201)、所述共享口令(202)的盲加密、以及散列投影密钥(203)。
3.根据权利要求2的方法,进一步包括由处理器使用所述秘密密钥(108a)的解码形式对有效负载进行解码。
4.根据权利要求2的方法,进一步包括使用对称密钥加密方案和所述秘密密钥(106a)对有效负载进行加密。
5.根据权利要求2的 方法,其中所述元素的元组是广义DifTie-Hellman元组。
6.根据权利要求2的方法,其中所述第一消息和所述第二消息各进一步包括一次性模拟可靠零知识证明。
7.根据权利要求6的方法,进一步包括由所述处理器根据对称外部Diffie-Hellman假设证明所述元组的一致性(304 )。
8.根据权利要求6的方法,进一步包括由所述处理器根据决定性线性假设证明所述元组的一致性。
9.一种计算机程序产品,用于使用公共参考串和共享口令初始化加密通信,所述计算机程序产品包括: 计算机可读存储介质,其中包含计算机可读程序代码,所述计算机可读程序代码包括: 被配置为使用第一消息、第二消息以及公共参考串确定对等方(406)的秘密密钥的计算机可读程序代码, 其中所述第一消息和所述第二消息各包括素数阶P的循环群G的元素的元组(201)、所述共享口令(202)的盲加密,以及散列投影密钥(203)。
10.根据权利要求9的计算机程序产品,其中所述元素的元组是广义Diffie-Hellman元组。
11.根据权利要求9的计算机程序产品,其中所述第一消息和所述第二消息各进一步包括一次性模拟可靠零知识证明。
12.根据权利要求11的计算机程序产品,进一步包括根据对称外部Diffie-Hellman假设证明所述元组的一致性(304 )。
13.根据权利要求11的计算机程序产品,进一步包括根据决定性线性假设证明所述元组的一致性。
14.一种用于使用公共参考串和共享口令初始化加密通信的计算机程序产品,所述计算机程序产品包括: 计算机可读存储介质,其中包含计算机可读程序代码,所述计算机可读程序代码包括: 被配置为将第一消息(106a)发送到对等方的计算机可读程序代码; 被配置为从所述对等方接收第 二消息(107a)的计算机可读程序代码;以及 被配置为使用所述第一消息、所述第二消息以及所述公共参考串确定所述对等方的秘密密钥(108a)的计算机可读程序代码, 其中所述第一消息和所述第二消息各包括广义DifTie-Hellman元组、所述共享口令的盲加密、散列投影密钥、以及证明所述广义Diffie-Hellman元组的一致性的一次性模拟可靠零知识证明。
15.根据权利要求14的计算机程序产品,其中所述公共参考串包括从循环群G中选择的元素g、A和K,并且其中所述广义Diffie-Hellman元组包括所述循环群G中的元素S和S’,所述计算机可读程序代码包括: 被配置为通过选取随机整数X,并且以所述随机整数X为指数对所述元素g取幂确定元素S,来获取所述元素S和S’的计算机可读程序代码;以及 被配置为通过以所述随机整数X为指数对所述元素A取幂,来获取所述元素S’的计算机可读程序代码。
16.根据权利要求15的计算机程序产品,进一步包括被配置为通过选取两个或更多个随机整数,并且使用所述两个或更多个随机整数和所述元素g、A和K确定所述散列投影密钥(203)来获得所述散列投影密钥的计算机可读程序代码。
17.根据权利要求15的计算机程序产品,进一步包括被配置为通过以所述随机整数X为指数对所述元素K取幂并且用所述循环群G中的所述共享口令(202 )乘以结果,来获取所述共享口令的加密的计算机可读程序代码。
18.根据权利要求15的计算机程序产品,进一步包括被配置为通过以所述随机整数X为指数对所述元素K取幂,并且通过根据所述散列投影密钥和预定协议会话标识符确定的函数取幂,以及用所述循环群G中的所述共享口令乘以结果,来获取所述共享口令的加密的计算机可读程序代码。
19.根据权利要求14的计算机程序产品,其中所述公共参考串包括从循环群G选择的元素g、A、B、K和Kl,并且其中所述广义Diffie-Hellman元组包括所述循环群G中的元素S、T和U,所述计算机可读程序代码包括: 包括被配置为通过选取随机整数X和I获取所述元素S、T和U的计算机可读程序代码,包括, 通过以所述随机整数X为指数对所述元素g取幂确定元素S, 通过以所述随机整数I为指数对所述元素A取幂确定元素T,以及 通过以所述随机整数X加所述随机整数I为指数对所述B取幂确定元素U。
20.根据权利要求19的计算机程序产品,进一步包括被配置为使用所述循环群G中的所述随机整数X和I以及所述元素g、A、B、Kl和K2获取所述散列投影密钥的计算机可读程序代码。
21.根据权利要求19的计算机程序产品,进一步包括被配置为通过以所述随机整数X为指数对所述元素Kl取幂,并且以所述随机整数I为指数对所述元素K2取幂,乘以所述随机整数X和y,以及用所述共享口令乘以结果来获取所述共享口令的所述加密的计算机可读程序代码。
22.根据权利要求19的计算机程序产品,进一步包括被配置为通过以所述随机整数X为指数对所述元素Kl取幂,并且以所述随机整数I为指数对所述元素K2取幂,乘以所述随机整数X和y,将结果提高到通过散列投影密钥确定的函数的幂,以及用所述共享口令乘以结果来获取所述共享口令 的所述加密的计算机可读程序代码。
【文档编号】H04L9/00GK103563288SQ201280024883
【公开日】2014年2月5日 申请日期:2012年5月3日 优先权日:2011年5月25日
【发明者】C·S·朱莉塔, A·罗伊 申请人:国际商业机器公司