doi:10.3969/j.issn.1671-1122.2011.08.002
任伟
(中国地质大学(武汉)计算机学院,湖北武汉 430074)
文章对理论密码学体系的建立、密码学中的基本原语以及相互间构造的关联、密码学中的常摘 要:
用范式、可证明安全理论的概念和基本思路(如归约)进行总结和分析。
密码学基础;现代密码学;范式;规约关键词:
中图分类号:TP393.08 文献标识码:A 文章编号:1671-1122(2011)08-0001-03
Thinking on Theoretic Cryptography and Modern Cryptography
REN Wei
( School of Computer Science, China University of Geosciences(Wuhan), Wuhan Hubei, 430074, China )
Abstract:This article summarizes some ideas in theoretic cryptography and modern cryptography as follows: the construction of cryptographic foundation, basic primitives, construction relations between primitives, classic paradigms, concepts on provable security, and essential techniques such as reduction.
Key words: cryptography foundation; modern cryptography; paradigm; reduction
1 理论密码学体系的建立
经典密码学是艺术而不是科学,但是经典密码学取得了一些经验,如密钥空间要足够大,以抗击蛮力搜索攻击;又如Kerckhoffs原则,加密方案的安全性必须建立在密钥的安全性上,而不是加密算法的保密上,即加密算法应该是开放的。
经典密码学乃至近代密码学,都有一个问题,就是其安全性依赖于一种“智慧”,即尚未发现其安全缺陷便认为其是安全的。但方案的攻破可能会是将来的某一天。为了打破“构建方案、攻破方案”这一循环反复的怪圈,现代密码学基于更严格和更科学的基础。根据J. Katz的观点,现代密码学的三个主要原则是:
1)原则1:解决任何密码学问题的第一步是公式化的表述严格且精确的对安全含义的定义;2)原则2:当密码学构造方案的安全性依赖于某个未被证明的假设时,这种假设必须精确地陈述,而且所假设的要尽可能的少;3)原则3:密码学构造方案应当有严格的安全证明,符合原则1的安全定义,以及与原则2陈述的假设有关(如果假设是需要的)。
现代密码学建立在精确的安全假设基础上,使用安全证明的方法,证明了方案达到了精确陈述的安全要求。其方法论是规约方法,其特征是可证明安全性。现代密码学的一个发展分支是理论密码学,它为现代密码学提供了理论基础和基本原理和原则。
理论密码学中,关键内容是从安全的需要出发,合理定义一些具备一定性质要求的对象,称为密码原语(Cryptographic Primitive),进而探讨使用密码原语解决安全问题的方式,称为范式(Paradigm)。通常基于已证明存在或合理假设存在的原语,证明通过范式构造的解决方案(包括通用构造方法,以及基于某些具体困难问题或者数学结构构造的实际方案)满足预先定义的安全需求。
理论密码学的研究重点在于合理定义需要的原语,并基于原语寻求有效的范式,提出通用的构造方法,解决安全问题,而将某些原子原语(Atomic Primitives, 也称为极微本原)分离,交给数学家(尤其是算法数论,也称为计算数论专家)来完成。将密码学和数学(尤其是算法数论)进行了分割,有利于形成密码学自身的理论。
现代密码学的方案或者协议的设计建立在理论密码学的基础之上,尤其是要求可证明安全性。大部分密码学研究人员将研究的重点放在基于原语假设构造安全的方案上面,而把关于安全假设或者原子原语的论证工作交给了数学家。
理论密码学理论体系的建立过程基于公理集合论的方法,从计算复杂性理论出发,在P不等于NP的基本假设基础上,以归约证明为基本方法,建立起密码学的逻辑体系。其中,单向函数是最核心、最基础的原语,基于单向函数构造了伪随机生成器、
收稿时间:2011-05-09作者简介:任伟(1973-),男,湖北,副主任,副教授,主要研究方向:密码学和信息网络安全。
1
伪随机函数、陷门单向函数等原语,这些原语已经找到了有效的数学实现,通过原语构造了有效的范式。
这一体系的建立,本质上基于公理集合论的方法。主要研究方法是构造的方法(构造法是计算方法中的一个基本方法)。从单向函数的概念开始展开。单向函数是密码学理论中最核心、最基础的原语。
命题1:如果P≠NP,则存在单向函数。
定理2:如果存在单向函数,那么就存在伪随机发生器,伪随机函数和(强)伪随机置换。
定理3:如果存在单向函数,则存在:选择密文攻击下不可区分加密的对称密钥加密方案,以及适应性选择消息攻击下存在不可伪造的消息鉴别码。
因此,单向函数是所有对称密钥密码学的充分条件。定理4:如果存在单向函数,则存在适应性选择消息攻击下的存在性不可伪造的数字签名。1990年,Rompel证明了数字签名存在的充分必要条件是单向函数存在。
定理5:如果存在单向函数,则存在比特承诺方案。基本原语举例和关联构造:
1)单向函数是最核心、最基础的原语。
2)像和原像数量相同的单向函数称为单向置换。3)序列密码使用的原语是伪随机生成器。伪随机生成器是序列密码的理论模型。基于单向置换和硬核谓词可构造伪随机生成器。对于得到窃听者存在条件下的不可区分加密的对称密钥加密方案,伪随机发生器已经足够。
4)分组密码的抽象是伪随机置换,伪随机置换是分组密码的理论模型。伪随机生成器可以推广得到伪随机函数的定义,并得到伪随机置换的概念(像和原像数量相同的伪随机函数)。基于单向置换可构造伪随机函数。
5)依赖伪随机函数可以得到IND-CPA2安全的对称密钥加密和消息鉴别码。
6)由单向函数定义一种无爪(claw-free)的函数对,构成了安全Hash函数的一种理论模型。从而单向函数的存在性导出了抗碰撞Hash函数的存在性。
7)基于单向函数可以合理定义陷门单向函数,并引入了陷门单向置换的概念。
8)单向函数(单向置换)可以引出单向函数簇(单向置换簇)的概念。该簇中的某个函数(置换)由一个参数决定(该参数表现为密码方案中的密钥)。
9)具有压缩性质的单向函数是Hash函数。基于定长输入输出长度的压缩函数可以构造任意输入长度Hash函数,采用Merkle-Damagard构造法。
10)使用具有唯一标记的消息鉴别码和IND-CPA2安全的对称密钥加密,可以构造IND-CCA2安全的对称密钥加密。
11)利用陷门单向置换和硬核谓词可以构造IND-CPA2安全的公钥加密。12)硬核谓词是公钥加密方案的比特安全性的基础。(比特安全性是指从密文中恢复明文的单个比特如同恢复整个明文一样困难)。
13)由陷门单向置换和抗碰撞的Hash函数,可以构造EU-CMA安全的数字签名。
14)基于单向函数的存在性,可以证明任何NP语言均存在(计算)零知识证明(1986年O. Goldreich,S. Micali和A. Wigderson的著名结论)。
15)基于陷门单向置换,运用完善、安全的秘密共享,可以证明在被动攻击下一般多方安全协议的存在性,再结合零知识证明,进而证明了主动攻击下一般多方安全协议的存在性。
可以看到,这些原语之间的关系有的已经构成了原语与范式之间的关系。
特别的,需要关注公钥密码学设计中可用到的原语:1)单向函数,单向陷门函数和单向陷门置换(One-way functions, one-way trapdoor functions, one-way trapdoor permutations);2)Hash 函数(Hash functions);3)伪随机生成器(pseudo-random generators);4)对称密钥加密(Secret-key permutations);5)消息鉴别码(Message authentication codes);6)随机预言机模型(Random Oracle)。这是一个理想原语,一个虚构的理想函数。
2 常用范式总结
根据原语构造的常用范式(Paradigm,范例)举例:1)OAEP变换,通过将明文填充,将明文转化为格式化的明文,原始明文扩散到这种格式化的明文中,并引入随机性,产生了概率加密和明文敏感性的效果,使得基于单射的单向陷门置换构造的公钥加密方案为IND-CCA2安全的方案。这种填充方法使用了伪随机发生器和Hash函数。
2)安全公钥加密的典型范式如混合加密(Hybrid Encryption),即用非对称密钥算法加密临时的随机密钥,然后利用临时的随机密钥使用对称密钥算法加密消息。使用了非对称加密作为原语。
3)IND-CCA2安全的公钥加密的通用转化方法。包括:Fujisaki-Okamoto转化方法(FO Conversion)、Pointcheval转化方法、Okamoto-Pointcheval转化方法。
4)安全数字签名的一个典型范式就是Hash-and-Sign范式。所谓Hash-and-Sign范式就是现将消息用Hash函数求值,然后再对散列值进行签名。有的文献将这种范式称为Hash-and-Decrypt范式。使用了Hash函数作为原语(工具,模块)。
5)零知识证明中将交互零知识转变成非交互零知识的Fiat-Shamir启发式(Hurisitics),也称为Fiat-Shamir范式。该变换是知识签名的基础。也是将基于身份的识别协议转化为签名方案的一般方法。
6)PSS构造方法是在使用Hash-and-Sign范式前的填充
方法。该填充方法和OAEP填充方法具有某些相似性。
7)基于随机预言模型,可以将原始明文随机化,从而得到更安全的公钥加密和签名。因为如果一个明文消息是随机化的,则从密文找到明文的任何信息(如一个比特)和求单向函数的逆一样困难。
8)特定应用背景下的范式,如ElGamal一般签名形式,Schnorr缩短素数域元素的表示,但又不降低DLP的困难程度。
类是以随机预言(Random Oracle)模型中能证明其安全性,另一类是在标准模型中能证明其安全性。在随机预言模型中,将密码学Hash函数视为是理想的,即当用定义域内某个数问询该Hash函数时,从值域内随机选取一个值作为应答;若使用相同的数问询,则使用值域中相同值进行应答。使用不同值进行问询时,应答应是完全独立的。使用随机预言模型证明是安全的方案,当随机预言模型被实际中的Hash函数替换后,方案不一定是安全的,但通过这个模型证明是安全的方法比那些尚未证明的方案更让人放心,起码说明方案的其他部分没有安全隐患。实践中的大多数可证明方案都只能在随机语言模型中进行证明,且在这种模型中被证明的方案的效率往往比使用标准模型的方案要高。标准模型是指不假设Hash函数是理想的,而采用一些标准的数论假设,如假设因子分解是困难的,或离散对数的计算是困难的。因而标准模型中的安全性证明更加令人信服。目前的研究表明,在标准模型中的可证明安全方案一般比基于随机预言模型的方案要效率低。
3 可证明安全的概念
早期的方案设计往往在长时间没有找到安全缺陷的基础上被认为是安全的,往往陷入发现缺陷——修补,再发现缺陷——再修补的恶性循环。为改变这种状况,近年来,提出了可证明安全的思想,可证明安全性成为密码体制安全性的重要理论标准。
可证明安全理论包括可证明安全公钥加密、可证明安全签名、可证明安全协议。该思想也可应用到可证明安全的伪随机密钥发生器、可证明安全的对称密钥加密模式、可证明安全的消息鉴别码。我们简单介绍可证明安全协议,重点介绍可证明安全公钥加密和可证明安全签名。
可证明安全的研究方法主要依靠两种方法:一种是基于计算复杂性的方法,另一种是基于形式化的方法。后者主要用于可证明安全协议的研究。基于计算复杂性的方法是可证明安全公钥加密和签名的基本方法。
受计算复杂性理论中的“归约”思想,可证明安全试图建立密码学方案与安全假设或困难问题之间的联系,从而将方案的安全性建立在一个公认的“前提基础”之上。
可证明安全是指方案的安全性可以被“证明”,这种“证明”用到了反证法和归约的思想,即若可以攻破该方案的安全性,则导致攻破某个被证明是安全的或是被广泛认为是计算上困难的安全假设、密码学原语、数论中的困难问题,或是一个NPC问题的推翻。但是,通常公认为这些假设、原语是成立的或问题是困难的,因此原设错误即不可攻破。从这一意义上讲,可“证明安全”其实就是可“归约”到某个困难问题的假设,因此称为可“归约安全”可能更准确。
可证安全的意义在于将安全性建立在一个公认的假设基础之上,至少可以排除一些设计上的缺陷,将安全性集中到安全假设之上,这比起没有基于经验和启发式的安全感觉要严格得多,同时,也为密码体制的设计提供一定的启发式思路。
可证明安全性包含3个元素,即安全性定义,安全性所基于的密码学原语或假设,归约证明。安全性定义要首先明确安全的目标,抵抗何种攻击。其次需要明确安全性所给予的密码学原语和假设。最后,通过归约,将一个反命题归约到一个明显的矛盾(如某个数论困难问题的解决等)。
目前的可证明安全加密和签名方案可以分为两大类:一
4 可证明安全的基本思路
通常一个密码学方案的设计有如下几步:1)从现实的安全需求中抽象出需要解决的密码问题的模型;2)深入分析攻击者的能力和可能的攻击目标,应用逻辑合理的定义模式定义安全性;3)提出新的密码学原语,或基于现有的密码学原语来解决问题模型的通用构造方法;4)采用具体的数学结构或安全性假设给出一个通用方案的实例;5)通过可证明安全的方法进行安全证明。
通常,一个安全性证明需要的步骤如下:1)描述一个密码系统以及其操作模式;2)形式化定义一个要达到的安全定义;3)做精确的安全假设;4)给出一个攻破安全定义的算法与攻破安全假设之间的归约证明。这种归约简言之是指当以攻破安全定义的算法为子函数时,可以构造一个算法攻破安全假设。
给定两个问题G和H。从G到H的归约是一个(t,e)算法SolveG,具有如下性质:
1)假定存在(t,e)算法SolveH求解问题H;2)SolveG可以调用SolveH并使用它的任一输出值,但SolveG不能对于SolveH执行的实际运算作任何限定;3)除了访问SolveH以外,SolveG是一个PPT算法;4)SolveG可以在时间t'内,以e'的概率正确求解问题G。
几点说明:
1)t'=t+f(q,k),e'=g(e,t,q,k),其中:q是问询次数;k是安全参数;f,g是两个分别与e,t,q,k有关的函数。
2)如果G是(t',e')困难的,则H是(t',e')困难的,即如果在时问t'内,不能以超过e'的概率求解问题G,则在时间t内,就不能以超过e'的概率求解问题H。
3)在时间t'≈t时,如果攻击目标是密文的不可区分性,e'与
e-1/2越接近,则归约越e'与e越接“紧”(tight);否则,
下转第7页
3
正,一种更为便捷、经济而又相对公平的第三方支付争议处理方式——ODR应运而生。ODR是指利用互联网进行全部或主要程序的各种争议解决方式的总称[6]。这是一种以非诉讼的方式,能过和解、调解、仲裁等的民间纠纷解决渠道。通过第三方以身处其外的超然地位和态度从中协调纠纷双方或几方的矛盾,进而以第三方促成和约的形式确定纠纷解决方案,以合同约定来监督执行,并因合同而受法律保护。
目前,我国ODR发展沿尚处于起步阶段,比较成功的ODR机构有以下两家:一是中国国际经济贸易仲裁委员会网上争议解决中心。二是中国在线争议解决中心(简称China ODR)。应大力推进ODR发展。
并期望不会发生各种不公平、不合理的情况。同理,银行与用户间签订的也往往是对消费者不利的格式合同。仅依据这些格式条款来规定消费者在第三方支付中的权利义务不利于对消费者的保护,应有第三方机构或相关部门来监管。(责编 程斌)
参考文献:
[1] 黄殊涵.网上银行支付法律问题的思考[J].黑龙江省社会主义学院学报,2005,4:100-101.
[2] 黄建水,尹猛.第三方网上支付法律问题及其对策研究[J].河南省政法管理干部学院学报,2007,6:139-143.
[3] 任曾云. 网络第三方支付法律问题研究[D]. 福建:厦门大学,2009.
[4] 张宽海.网上支付与结算[M]. 北京:电子工业出版社,2009.210-230.
[5] 钟志勇. 网上支付中的法律问题研究[M]. 北京:北京大学出版社,2009. 100-107.
[6] 黄涛. 第三方支付方式的法律规制之研究[D]. 北京:首都经济贸易大学,2008.
[7] 陈德康.商业银行中间业务精析[M].北京:中国金融出版社,2007.217-230.
[8] 齐爱民,陈文成. 网络金融法[M]. 湖南长沙:湖南大学出版社,2002. 317-330.
[9] 胡鸣. 电子商务中的消费者保护问题[D]. 吉林:吉林大学,2006.[10] 王培,陈颖波,苏庆岑. 我国第三方网上支付经营模式探索[J]. 魅力中国,2008,12:41-42.
4.2 格式条款
目前,我国第三方支付中消费者的权利与义务及违约责任等主要依据第三方制定的格式条款。对于这些格式条款《非金融机构支付服务管理办法》只在第二十一条规定,支付机构应当公开披露支付服务协议的格式条款。
在第三方支付企业制定的格式合同中往往会有很多第三方支付平台排除自身责任或其它的不公平、不合理的内容。在网络环境下,合同条款较高的隐蔽性令作为合同相对人的消费者往往忽略其中的不公平、不合理的内容。即使消费者意识到了这些内容的不公平、不合理,也会因谈判成本高而只能选择接受
3页
近,归约越紧,即两问题的难度越接近。
归约松紧度。在上面的定量描述中,设Δt=t'-t,且Δt是多项式时间的,称Δe为归约松紧度:如果攻击目标是密文的可区分性,Δe=e-1/2-e';否则,Δe=e-e'。
容易理解,在安全性证明中“紧的”归约是较为理想的。主要的计算假设包括:RSA是单向的(以及强RSA问题是困难的);离散对数问题是困难的;CDH和DDH是困难的;大整数分解时困难的;寻找最短格向量是困难的;计算剩余类是困难的;判定二次剩余是困难的。
规约证明方法简单地说就是如果要证明方案的安全性,采用反证法和规约机制,即通过对方案安全性的攻破导致(规约到)某个困难假设的不成立。
如果想证明方案II的安全性,采取的办法是将攻破方案II的敌手视为一个子过程,输入为方案II的实例,输出为对该方案的攻破。这种攻破可能表示不同的结果,如IND-CCA2中,表示可以输出一个正确的猜测比特,在EUF-CMA中表示可以输出一个正确的消息签名对。利用这一子过程构造一个新的过程A’,该过程的输入是问题的实例,如RSA问题、Rabin问题、离散对数问题等,该过程的输出是对该问题的解答。显然,这一解答是利用子过程A的结果。
如果想证明方案II’的安全性,采用类似的方法,输入
为方案II’的实例,调用子过程A,将方案II的实例输入,返回对方案II的攻破,利用攻破的结果得到对方案II’的攻破。
通常,为了规约的方便,可以先固定某些原语(组成部件)是理想的,这样可以排除这些原语外的构成部分是不安全的这一情况,从而将安全的焦点集中到这些原语本身,一个典型的例子是随机预言模型(Random Oracle Model)。在ROM下的可证明安全,可以表明除了该理想模型(理想假设)外,其余部分没有设计上的安全漏洞。类似这样的理想模型还有理想加密模型(Ideal Cipher Model),如将安全方案中的原语(组件)分组加密视为随机置换。对群的理想假设为通用群模型(Generic Group Model),即假设群中没有隐藏的结构,也就是说,基于这假设的方案被攻破,只能意味着敌手可以用非平凡的方式得到了群中隐藏的结构。(责编 杨晨 )
参考文献:
[1] Wenbo Mao. 现代密码学理论与实践[M]. 王继林等. 北京:电子工业出版社,2004:357-365.
[2] 祝跃飞等. 密码学与通信安全基础[M]. 武汉:华中科技大学出版社,2008. 136-137.
[3] 肖国镇,张宁. 密码学导引:原理和应用[M]. 北京:
清华大学出版社,2008. 8-10.
[4] Katz J, Lindel Y. Introduction to Modern Cryptography-Principle and Protocol 现代密码学——原理与协议[M]. 任伟. 北京:国防工业出版社,2010:10-15.
7
doi:10.3969/j.issn.1671-1122.2011.08.002
任伟
(中国地质大学(武汉)计算机学院,湖北武汉 430074)
文章对理论密码学体系的建立、密码学中的基本原语以及相互间构造的关联、密码学中的常摘 要:
用范式、可证明安全理论的概念和基本思路(如归约)进行总结和分析。
密码学基础;现代密码学;范式;规约关键词:
中图分类号:TP393.08 文献标识码:A 文章编号:1671-1122(2011)08-0001-03
Thinking on Theoretic Cryptography and Modern Cryptography
REN Wei
( School of Computer Science, China University of Geosciences(Wuhan), Wuhan Hubei, 430074, China )
Abstract:This article summarizes some ideas in theoretic cryptography and modern cryptography as follows: the construction of cryptographic foundation, basic primitives, construction relations between primitives, classic paradigms, concepts on provable security, and essential techniques such as reduction.
Key words: cryptography foundation; modern cryptography; paradigm; reduction
1 理论密码学体系的建立
经典密码学是艺术而不是科学,但是经典密码学取得了一些经验,如密钥空间要足够大,以抗击蛮力搜索攻击;又如Kerckhoffs原则,加密方案的安全性必须建立在密钥的安全性上,而不是加密算法的保密上,即加密算法应该是开放的。
经典密码学乃至近代密码学,都有一个问题,就是其安全性依赖于一种“智慧”,即尚未发现其安全缺陷便认为其是安全的。但方案的攻破可能会是将来的某一天。为了打破“构建方案、攻破方案”这一循环反复的怪圈,现代密码学基于更严格和更科学的基础。根据J. Katz的观点,现代密码学的三个主要原则是:
1)原则1:解决任何密码学问题的第一步是公式化的表述严格且精确的对安全含义的定义;2)原则2:当密码学构造方案的安全性依赖于某个未被证明的假设时,这种假设必须精确地陈述,而且所假设的要尽可能的少;3)原则3:密码学构造方案应当有严格的安全证明,符合原则1的安全定义,以及与原则2陈述的假设有关(如果假设是需要的)。
现代密码学建立在精确的安全假设基础上,使用安全证明的方法,证明了方案达到了精确陈述的安全要求。其方法论是规约方法,其特征是可证明安全性。现代密码学的一个发展分支是理论密码学,它为现代密码学提供了理论基础和基本原理和原则。
理论密码学中,关键内容是从安全的需要出发,合理定义一些具备一定性质要求的对象,称为密码原语(Cryptographic Primitive),进而探讨使用密码原语解决安全问题的方式,称为范式(Paradigm)。通常基于已证明存在或合理假设存在的原语,证明通过范式构造的解决方案(包括通用构造方法,以及基于某些具体困难问题或者数学结构构造的实际方案)满足预先定义的安全需求。
理论密码学的研究重点在于合理定义需要的原语,并基于原语寻求有效的范式,提出通用的构造方法,解决安全问题,而将某些原子原语(Atomic Primitives, 也称为极微本原)分离,交给数学家(尤其是算法数论,也称为计算数论专家)来完成。将密码学和数学(尤其是算法数论)进行了分割,有利于形成密码学自身的理论。
现代密码学的方案或者协议的设计建立在理论密码学的基础之上,尤其是要求可证明安全性。大部分密码学研究人员将研究的重点放在基于原语假设构造安全的方案上面,而把关于安全假设或者原子原语的论证工作交给了数学家。
理论密码学理论体系的建立过程基于公理集合论的方法,从计算复杂性理论出发,在P不等于NP的基本假设基础上,以归约证明为基本方法,建立起密码学的逻辑体系。其中,单向函数是最核心、最基础的原语,基于单向函数构造了伪随机生成器、
收稿时间:2011-05-09作者简介:任伟(1973-),男,湖北,副主任,副教授,主要研究方向:密码学和信息网络安全。
1
伪随机函数、陷门单向函数等原语,这些原语已经找到了有效的数学实现,通过原语构造了有效的范式。
这一体系的建立,本质上基于公理集合论的方法。主要研究方法是构造的方法(构造法是计算方法中的一个基本方法)。从单向函数的概念开始展开。单向函数是密码学理论中最核心、最基础的原语。
命题1:如果P≠NP,则存在单向函数。
定理2:如果存在单向函数,那么就存在伪随机发生器,伪随机函数和(强)伪随机置换。
定理3:如果存在单向函数,则存在:选择密文攻击下不可区分加密的对称密钥加密方案,以及适应性选择消息攻击下存在不可伪造的消息鉴别码。
因此,单向函数是所有对称密钥密码学的充分条件。定理4:如果存在单向函数,则存在适应性选择消息攻击下的存在性不可伪造的数字签名。1990年,Rompel证明了数字签名存在的充分必要条件是单向函数存在。
定理5:如果存在单向函数,则存在比特承诺方案。基本原语举例和关联构造:
1)单向函数是最核心、最基础的原语。
2)像和原像数量相同的单向函数称为单向置换。3)序列密码使用的原语是伪随机生成器。伪随机生成器是序列密码的理论模型。基于单向置换和硬核谓词可构造伪随机生成器。对于得到窃听者存在条件下的不可区分加密的对称密钥加密方案,伪随机发生器已经足够。
4)分组密码的抽象是伪随机置换,伪随机置换是分组密码的理论模型。伪随机生成器可以推广得到伪随机函数的定义,并得到伪随机置换的概念(像和原像数量相同的伪随机函数)。基于单向置换可构造伪随机函数。
5)依赖伪随机函数可以得到IND-CPA2安全的对称密钥加密和消息鉴别码。
6)由单向函数定义一种无爪(claw-free)的函数对,构成了安全Hash函数的一种理论模型。从而单向函数的存在性导出了抗碰撞Hash函数的存在性。
7)基于单向函数可以合理定义陷门单向函数,并引入了陷门单向置换的概念。
8)单向函数(单向置换)可以引出单向函数簇(单向置换簇)的概念。该簇中的某个函数(置换)由一个参数决定(该参数表现为密码方案中的密钥)。
9)具有压缩性质的单向函数是Hash函数。基于定长输入输出长度的压缩函数可以构造任意输入长度Hash函数,采用Merkle-Damagard构造法。
10)使用具有唯一标记的消息鉴别码和IND-CPA2安全的对称密钥加密,可以构造IND-CCA2安全的对称密钥加密。
11)利用陷门单向置换和硬核谓词可以构造IND-CPA2安全的公钥加密。12)硬核谓词是公钥加密方案的比特安全性的基础。(比特安全性是指从密文中恢复明文的单个比特如同恢复整个明文一样困难)。
13)由陷门单向置换和抗碰撞的Hash函数,可以构造EU-CMA安全的数字签名。
14)基于单向函数的存在性,可以证明任何NP语言均存在(计算)零知识证明(1986年O. Goldreich,S. Micali和A. Wigderson的著名结论)。
15)基于陷门单向置换,运用完善、安全的秘密共享,可以证明在被动攻击下一般多方安全协议的存在性,再结合零知识证明,进而证明了主动攻击下一般多方安全协议的存在性。
可以看到,这些原语之间的关系有的已经构成了原语与范式之间的关系。
特别的,需要关注公钥密码学设计中可用到的原语:1)单向函数,单向陷门函数和单向陷门置换(One-way functions, one-way trapdoor functions, one-way trapdoor permutations);2)Hash 函数(Hash functions);3)伪随机生成器(pseudo-random generators);4)对称密钥加密(Secret-key permutations);5)消息鉴别码(Message authentication codes);6)随机预言机模型(Random Oracle)。这是一个理想原语,一个虚构的理想函数。
2 常用范式总结
根据原语构造的常用范式(Paradigm,范例)举例:1)OAEP变换,通过将明文填充,将明文转化为格式化的明文,原始明文扩散到这种格式化的明文中,并引入随机性,产生了概率加密和明文敏感性的效果,使得基于单射的单向陷门置换构造的公钥加密方案为IND-CCA2安全的方案。这种填充方法使用了伪随机发生器和Hash函数。
2)安全公钥加密的典型范式如混合加密(Hybrid Encryption),即用非对称密钥算法加密临时的随机密钥,然后利用临时的随机密钥使用对称密钥算法加密消息。使用了非对称加密作为原语。
3)IND-CCA2安全的公钥加密的通用转化方法。包括:Fujisaki-Okamoto转化方法(FO Conversion)、Pointcheval转化方法、Okamoto-Pointcheval转化方法。
4)安全数字签名的一个典型范式就是Hash-and-Sign范式。所谓Hash-and-Sign范式就是现将消息用Hash函数求值,然后再对散列值进行签名。有的文献将这种范式称为Hash-and-Decrypt范式。使用了Hash函数作为原语(工具,模块)。
5)零知识证明中将交互零知识转变成非交互零知识的Fiat-Shamir启发式(Hurisitics),也称为Fiat-Shamir范式。该变换是知识签名的基础。也是将基于身份的识别协议转化为签名方案的一般方法。
6)PSS构造方法是在使用Hash-and-Sign范式前的填充
方法。该填充方法和OAEP填充方法具有某些相似性。
7)基于随机预言模型,可以将原始明文随机化,从而得到更安全的公钥加密和签名。因为如果一个明文消息是随机化的,则从密文找到明文的任何信息(如一个比特)和求单向函数的逆一样困难。
8)特定应用背景下的范式,如ElGamal一般签名形式,Schnorr缩短素数域元素的表示,但又不降低DLP的困难程度。
类是以随机预言(Random Oracle)模型中能证明其安全性,另一类是在标准模型中能证明其安全性。在随机预言模型中,将密码学Hash函数视为是理想的,即当用定义域内某个数问询该Hash函数时,从值域内随机选取一个值作为应答;若使用相同的数问询,则使用值域中相同值进行应答。使用不同值进行问询时,应答应是完全独立的。使用随机预言模型证明是安全的方案,当随机预言模型被实际中的Hash函数替换后,方案不一定是安全的,但通过这个模型证明是安全的方法比那些尚未证明的方案更让人放心,起码说明方案的其他部分没有安全隐患。实践中的大多数可证明方案都只能在随机语言模型中进行证明,且在这种模型中被证明的方案的效率往往比使用标准模型的方案要高。标准模型是指不假设Hash函数是理想的,而采用一些标准的数论假设,如假设因子分解是困难的,或离散对数的计算是困难的。因而标准模型中的安全性证明更加令人信服。目前的研究表明,在标准模型中的可证明安全方案一般比基于随机预言模型的方案要效率低。
3 可证明安全的概念
早期的方案设计往往在长时间没有找到安全缺陷的基础上被认为是安全的,往往陷入发现缺陷——修补,再发现缺陷——再修补的恶性循环。为改变这种状况,近年来,提出了可证明安全的思想,可证明安全性成为密码体制安全性的重要理论标准。
可证明安全理论包括可证明安全公钥加密、可证明安全签名、可证明安全协议。该思想也可应用到可证明安全的伪随机密钥发生器、可证明安全的对称密钥加密模式、可证明安全的消息鉴别码。我们简单介绍可证明安全协议,重点介绍可证明安全公钥加密和可证明安全签名。
可证明安全的研究方法主要依靠两种方法:一种是基于计算复杂性的方法,另一种是基于形式化的方法。后者主要用于可证明安全协议的研究。基于计算复杂性的方法是可证明安全公钥加密和签名的基本方法。
受计算复杂性理论中的“归约”思想,可证明安全试图建立密码学方案与安全假设或困难问题之间的联系,从而将方案的安全性建立在一个公认的“前提基础”之上。
可证明安全是指方案的安全性可以被“证明”,这种“证明”用到了反证法和归约的思想,即若可以攻破该方案的安全性,则导致攻破某个被证明是安全的或是被广泛认为是计算上困难的安全假设、密码学原语、数论中的困难问题,或是一个NPC问题的推翻。但是,通常公认为这些假设、原语是成立的或问题是困难的,因此原设错误即不可攻破。从这一意义上讲,可“证明安全”其实就是可“归约”到某个困难问题的假设,因此称为可“归约安全”可能更准确。
可证安全的意义在于将安全性建立在一个公认的假设基础之上,至少可以排除一些设计上的缺陷,将安全性集中到安全假设之上,这比起没有基于经验和启发式的安全感觉要严格得多,同时,也为密码体制的设计提供一定的启发式思路。
可证明安全性包含3个元素,即安全性定义,安全性所基于的密码学原语或假设,归约证明。安全性定义要首先明确安全的目标,抵抗何种攻击。其次需要明确安全性所给予的密码学原语和假设。最后,通过归约,将一个反命题归约到一个明显的矛盾(如某个数论困难问题的解决等)。
目前的可证明安全加密和签名方案可以分为两大类:一
4 可证明安全的基本思路
通常一个密码学方案的设计有如下几步:1)从现实的安全需求中抽象出需要解决的密码问题的模型;2)深入分析攻击者的能力和可能的攻击目标,应用逻辑合理的定义模式定义安全性;3)提出新的密码学原语,或基于现有的密码学原语来解决问题模型的通用构造方法;4)采用具体的数学结构或安全性假设给出一个通用方案的实例;5)通过可证明安全的方法进行安全证明。
通常,一个安全性证明需要的步骤如下:1)描述一个密码系统以及其操作模式;2)形式化定义一个要达到的安全定义;3)做精确的安全假设;4)给出一个攻破安全定义的算法与攻破安全假设之间的归约证明。这种归约简言之是指当以攻破安全定义的算法为子函数时,可以构造一个算法攻破安全假设。
给定两个问题G和H。从G到H的归约是一个(t,e)算法SolveG,具有如下性质:
1)假定存在(t,e)算法SolveH求解问题H;2)SolveG可以调用SolveH并使用它的任一输出值,但SolveG不能对于SolveH执行的实际运算作任何限定;3)除了访问SolveH以外,SolveG是一个PPT算法;4)SolveG可以在时间t'内,以e'的概率正确求解问题G。
几点说明:
1)t'=t+f(q,k),e'=g(e,t,q,k),其中:q是问询次数;k是安全参数;f,g是两个分别与e,t,q,k有关的函数。
2)如果G是(t',e')困难的,则H是(t',e')困难的,即如果在时问t'内,不能以超过e'的概率求解问题G,则在时间t内,就不能以超过e'的概率求解问题H。
3)在时间t'≈t时,如果攻击目标是密文的不可区分性,e'与
e-1/2越接近,则归约越e'与e越接“紧”(tight);否则,
下转第7页
3
正,一种更为便捷、经济而又相对公平的第三方支付争议处理方式——ODR应运而生。ODR是指利用互联网进行全部或主要程序的各种争议解决方式的总称[6]。这是一种以非诉讼的方式,能过和解、调解、仲裁等的民间纠纷解决渠道。通过第三方以身处其外的超然地位和态度从中协调纠纷双方或几方的矛盾,进而以第三方促成和约的形式确定纠纷解决方案,以合同约定来监督执行,并因合同而受法律保护。
目前,我国ODR发展沿尚处于起步阶段,比较成功的ODR机构有以下两家:一是中国国际经济贸易仲裁委员会网上争议解决中心。二是中国在线争议解决中心(简称China ODR)。应大力推进ODR发展。
并期望不会发生各种不公平、不合理的情况。同理,银行与用户间签订的也往往是对消费者不利的格式合同。仅依据这些格式条款来规定消费者在第三方支付中的权利义务不利于对消费者的保护,应有第三方机构或相关部门来监管。(责编 程斌)
参考文献:
[1] 黄殊涵.网上银行支付法律问题的思考[J].黑龙江省社会主义学院学报,2005,4:100-101.
[2] 黄建水,尹猛.第三方网上支付法律问题及其对策研究[J].河南省政法管理干部学院学报,2007,6:139-143.
[3] 任曾云. 网络第三方支付法律问题研究[D]. 福建:厦门大学,2009.
[4] 张宽海.网上支付与结算[M]. 北京:电子工业出版社,2009.210-230.
[5] 钟志勇. 网上支付中的法律问题研究[M]. 北京:北京大学出版社,2009. 100-107.
[6] 黄涛. 第三方支付方式的法律规制之研究[D]. 北京:首都经济贸易大学,2008.
[7] 陈德康.商业银行中间业务精析[M].北京:中国金融出版社,2007.217-230.
[8] 齐爱民,陈文成. 网络金融法[M]. 湖南长沙:湖南大学出版社,2002. 317-330.
[9] 胡鸣. 电子商务中的消费者保护问题[D]. 吉林:吉林大学,2006.[10] 王培,陈颖波,苏庆岑. 我国第三方网上支付经营模式探索[J]. 魅力中国,2008,12:41-42.
4.2 格式条款
目前,我国第三方支付中消费者的权利与义务及违约责任等主要依据第三方制定的格式条款。对于这些格式条款《非金融机构支付服务管理办法》只在第二十一条规定,支付机构应当公开披露支付服务协议的格式条款。
在第三方支付企业制定的格式合同中往往会有很多第三方支付平台排除自身责任或其它的不公平、不合理的内容。在网络环境下,合同条款较高的隐蔽性令作为合同相对人的消费者往往忽略其中的不公平、不合理的内容。即使消费者意识到了这些内容的不公平、不合理,也会因谈判成本高而只能选择接受
3页
近,归约越紧,即两问题的难度越接近。
归约松紧度。在上面的定量描述中,设Δt=t'-t,且Δt是多项式时间的,称Δe为归约松紧度:如果攻击目标是密文的可区分性,Δe=e-1/2-e';否则,Δe=e-e'。
容易理解,在安全性证明中“紧的”归约是较为理想的。主要的计算假设包括:RSA是单向的(以及强RSA问题是困难的);离散对数问题是困难的;CDH和DDH是困难的;大整数分解时困难的;寻找最短格向量是困难的;计算剩余类是困难的;判定二次剩余是困难的。
规约证明方法简单地说就是如果要证明方案的安全性,采用反证法和规约机制,即通过对方案安全性的攻破导致(规约到)某个困难假设的不成立。
如果想证明方案II的安全性,采取的办法是将攻破方案II的敌手视为一个子过程,输入为方案II的实例,输出为对该方案的攻破。这种攻破可能表示不同的结果,如IND-CCA2中,表示可以输出一个正确的猜测比特,在EUF-CMA中表示可以输出一个正确的消息签名对。利用这一子过程构造一个新的过程A’,该过程的输入是问题的实例,如RSA问题、Rabin问题、离散对数问题等,该过程的输出是对该问题的解答。显然,这一解答是利用子过程A的结果。
如果想证明方案II’的安全性,采用类似的方法,输入
为方案II’的实例,调用子过程A,将方案II的实例输入,返回对方案II的攻破,利用攻破的结果得到对方案II’的攻破。
通常,为了规约的方便,可以先固定某些原语(组成部件)是理想的,这样可以排除这些原语外的构成部分是不安全的这一情况,从而将安全的焦点集中到这些原语本身,一个典型的例子是随机预言模型(Random Oracle Model)。在ROM下的可证明安全,可以表明除了该理想模型(理想假设)外,其余部分没有设计上的安全漏洞。类似这样的理想模型还有理想加密模型(Ideal Cipher Model),如将安全方案中的原语(组件)分组加密视为随机置换。对群的理想假设为通用群模型(Generic Group Model),即假设群中没有隐藏的结构,也就是说,基于这假设的方案被攻破,只能意味着敌手可以用非平凡的方式得到了群中隐藏的结构。(责编 杨晨 )
参考文献:
[1] Wenbo Mao. 现代密码学理论与实践[M]. 王继林等. 北京:电子工业出版社,2004:357-365.
[2] 祝跃飞等. 密码学与通信安全基础[M]. 武汉:华中科技大学出版社,2008. 136-137.
[3] 肖国镇,张宁. 密码学导引:原理和应用[M]. 北京:
清华大学出版社,2008. 8-10.
[4] Katz J, Lindel Y. Introduction to Modern Cryptography-Principle and Protocol 现代密码学——原理与协议[M]. 任伟. 北京:国防工业出版社,2010:10-15.
7