密码学中的可证明安全性杨波
现代密码学杨波课后习题讲解
选择两个不同的大素数p和q, 计算n=p*q和φ(n)=(p-1)*(q-1)。 选择整数e,使得1<e<φ(n)且e 与φ(n)互质。计算d,使得 d*e≡1(mod φ(n))。公钥为 (n,e),私钥为(n,d)。
将明文信息M(M<n)加密为 密文C,加密公式为 C=M^e(mod n)。
将密文C解密为明文信息M,解 密公式为M=C^d(mod n)。
课程特点
杨波教授的现代密码学课程系统介绍了密码学的基本原 理、核心算法和最新进展。课程注重理论与实践相结合, 通过大量的案例分析和编程实践,帮助学生深入理解和 掌握密码学的精髓。
课后习题的目的与意义
01 巩固课堂知识
课后习题是对课堂知识的有效补充和延伸,通过 解题可以帮助学生加深对课堂内容的理解和记忆。
不要重复使用密码
避免在多个账户或应用中使用相同的密码, 以减少被攻击的风险。
注意网络钓鱼和诈骗邮件
数字签名与认证技术习题讲
05
解
数字签名基本概念和原理
数字签名的定义
数字签名的应用场景
数字签名是一种用于验证数字文档或 电子交易真实性和完整性的加密技术。
电子商务、电子政务、电子合同、软 件分发等。
数字签名的基本原理
利用公钥密码学中的私钥对消息进行签 名,公钥用于验证签名的正确性。签名 过程具有不可抵赖性和不可伪造性。
Diffie-Hellman密钥交换协议分析
Diffie-Hellman密钥交换协议的原理
该协议利用数学上的离散对数问题,使得两个通信双方可以在不安全的通信通道上协商出一个共 享的密钥。
Diffie-Hellman密钥交换协议的安全性
该协议在理论上被证明是安全的,可以抵抗被动攻击和中间人攻击。
密码学答案2
《密码学原理与实践(第三版)》课后习题参考答案(由华中科技大学信安09级提供)第二章2.1(何锐)解:依题意有:x ∈{2,…,12},y ∈{D ,N} 计算Pr[x ,y]:Pr[2,D]=1/36 Pr[3,D]=0 Pr[4,D]=1/36 Pr[5,D]=0 Pr[6,D]=1/36 Pr[7,D]=0 Pr[8,D]=1/36 Pr[9,D]=0 Pr[10,D]=1/36 Pr[11,D]=0 Pr[12,D]=1/36Pr[2,N]=0 Pr[3,N]=1/18 Pr[4,N]=1/18 Pr[5,N]=1/9 Pr[6,N]=1/9 Pr[7,N]=1/6 Pr[8,N]=1/9 Pr[9,N]=1/9 Pr[10,N]=1/18 Pr[11,N]=1/18 Pr[12,N]=0 计算Pr[x | y]:有Pr[D]=1/6 Pr[N]=5/6Pr[2 | D]=1/6 Pr[3 | D]=0 Pr[4 | D]=1/6 Pr[5 | D]=0 Pr[6 | D]=1/6 Pr[7 | D]=0 Pr[8 | D]= 1/6 Pr[9 | D]=0 Pr[10 | D]= 1/6 Pr[11 | D]=0 Pr[12 | D]=1/6Pr[2 | N]=0 Pr[3 | N]=1/15 Pr[4 | N]=1/15 Pr[5 | N]=2/15 Pr[6 | N]=2/15 Pr[7 | N]=1/5 Pr[8 | N]=2/15 Pr[9 | N]=2/15 Pr[10 | N]=1/15 Pr[11 | N]=1/15 Pr[12 | N]=0 计算Pr[y | x]:Pr[D | 2]=1 Pr[D | 3]=0 Pr[D | 4]=1/3 Pr[D | 5]=0 Pr[D | 6]=1/5 Pr[D | 7]=0 Pr[D | 8]=1/5 Pr[D | 9]=0 Pr[D | 10]=1/3 Pr[D | 11]=0 Pr[D | 12]=1Pr[N | 2]=0 Pr[N | 3]=1 Pr[N | 4]=2/3 Pr[N | 5]=1 Pr[N | 6]=4/5 Pr[N | 7]=1 Pr[N | 8]=4/5 Pr[N | 9]=1 Pr[N | 10]=2/3 Pr[N | 11]=1 Pr[N | 12]=0 有上面的计算可得:Pr[D | x]Pr[x] = Pr[D]Pr[x | D] Pr[N | x]Pr[x] = Pr[N]Pr[x | N] 显然符合Bayes 定理。
可证明安全性理论与方法研究
V ol.16, No.10 ©2005 Journal of Software 软 件 学 报 1000-9825/2005/16(10)1743 可证明安全性理论与方法研究∗冯登国+ (信息安全国家重点实验室(中国科学院 软件研究所),北京 100080)Research on Theory and Approach of Provable SecurityFENG Deng-Guo +(State Key Laboratory of Information Security (Institute of Software, The Chinese Academy of Sciences), Beijing 100080, China) + Corresponding author: Phn: +86-10-62658643, Fax: +86-10-62520469, E-mail: fdg@, Received 2004-07-06; Accepted 2005-08-24Feng DG. Research on theory and approach of provable security. Journal of Software , 2005,16(10):1743−1756. DOI: 10.1360/jos161743Abstract : This paper presents a survey on the theory of provable security and its applications to the design and analysis of security protocols. It clarifies what the provable security is, explains some basic notions involved in the theory of provable security and illustrates the basic idea of random oracle model. It also reviews the development and advances of provably secure public-key encryption and digital signature schemes, in the random oracle model or the standard model, as well as the applications of provable security to the design and analysis of session-key distribution protocols and their advances.Key words : provable security; cryptosystem; security protocol; random oracle model; standard model摘 要: 论述了可证明安全性理论在安全方案与安全协议的设计与分析中的应用,内容主要包括:什么是可证明安全性,可证明安全性理论涉及到的一些基本概念,RO(random oracle)模型方法论的基本思想及其在公钥加密和数字签名等方案中的应用研究进展,标准模型下可证明安全性理论在公钥加密和数字签名等方案中的应用研究进展,以及可证明安全性理论在会话密钥分配协议的设计与分析中的应用研究进展.关键词: 可证明安全性;密码方案;安全协议;RO(random oracle)模型;标准模型中图法分类号: TP309 文献标识码: A目前多数安全协议的设计现状是:(1) 提出一种安全协议后,基于某种假想给出其安全性论断;如果该协议在很长时间,如10年仍不能被破译,大家就广泛接受其安全性论断;(2) 一段时间后可能发现某些安全漏洞,于是对协议再作必要的改动,然后继续使用;这一过程可能周而复始.这样的设计方法存在以下问题:(1) 新的分析技术的提出时间是不确定的,在任何时候都有可能提出新的分析技术;(2) 这种做法使我们很难确信协议的安全性,反反复复的修补更增加了人们对安全性的担心,也增加了实现代价或成本.那么有什么解决办法呢?可证明安全性理论就是针对上述问题而提出的一种解决方案(当然,并非是唯一∗ Supported by the National Grand Fundamental Research 973 Program of China under Grant No.G1999035802 (国家重点基础研究发展规划(973)); the National Natural Science Foundation of China under Grant No.60273027 (国家自然科学基金)作者简介: 冯登国(1965-),男,陕西靖边人,博士,研究员,博士生导师,主要研究领域为网络与信息安全.1744 Journal of Software软件学报 2005,16(10)的解决方案).可证明安全性是指,安全方案或协议的安全性可以被“证明”,但用“证明”一词并不十分恰当,甚至有些误导[1].一般而言,可证明安全性是指这样一种“归约”方法:首先确定安全方案或协议的安全目标.例如,加密方案的安全目标是确保信息的机密性,;然后根据敌手的能力构建一个形式的敌手模型,并且定义它对安全方案或协议的安全性“意味”着什么,对某个基于“极微本原(atomic primitives,是指安全方案或协议的最基本组成构件或模块,例如某个基础密码算法或数学难题等)”的特定方案或协议,基于以上形式化的模型去分析它,“归约”论断是基本工具;最后指出(如果能成功),挫败方案或协议的唯一方法就是破译或解决“极微本原”.换句话讲,对协议的直接分析是不必要的,因为你对协议的任何分析结果都是对极微本原的安全性的分析.可见,称“归约安全”也许比“可证明安全”更恰当.实际上,可证明安全性理论是在一定的敌手模型下证明了安全方案或协议能够达到特定的安全目标,因此,定义合适的安全目标、建立适当的敌手模型是我们讨论可证明安全性的前提条件.可证明安全性理论的应用价值是显而易见的:我们可以把主要精力集中在“极微本原”的研究上,这是一种古老的、基础性的、带有艺术色彩的研究工作;另一方面,如果你相信极微本原的安全性,不必进一步分析协议即可相信其安全性.综上所述,可证明安全性理论本质上是一种公理化的研究方法,其最基础的假设或“公理”是:“好”的极微本原存在.安全方案设计难题一般分为两类:一类是极微本原不可靠造成方案不安全(如用背包问题构造加密方案);另一类是,即使极微本原可靠,安全方案本身也不安全(如DES-ECB等).后一种情况更为普遍,是可证明安全性理论的主要研究范围.必须说明的是,可证明安全性理论也存在一定的局限性:首先必须注意模型规划,即注意所建立的模型都涵盖了哪些攻击.显然,一些基于物理手段的攻击都不包含在内,但这并不意味着可证明安全性的方案就一定不能抵抗这类攻击,而是说未证明可以抵抗这类攻击;其次,即使应用具有可证明安全性的方案,也可能有多种方式破坏安全性:有时证明了安全性,但问题可能是错误的,也可能应用了错误的模型或者协议被错误操作,甚至软件本身可能有“Bugs”.另一个需要注意的问题是基础假设的选取:可证明安全性是以某一假设为基础的,因此一旦该假设靠不住,安全性证明也就没有意义了(当然,不一定意味着可构造对方案的攻击实例);选取基础假设的原则就是“越弱越好”,通常称弱假设为标准假设.基础假设的强弱是比较不同安全方案的重要尺度之一.上述定义较为抽象,下面以RSA为例加以说明.给定某个基于RSA的协议P,如果设计者或分析者给出了从RSA单向函数到P安全性的归约,那么P具有以下转换性质:对于任何声称破译P的敌手(程序)A,以A为“转换算法”的输入,必然导致一个协议Q,Q可被证明破译RSA.结论是:只要你不相信RSA是可破译的,那么上述的Q就不存在,因而P是安全的.对可证明安全性的精确形式化有多种形式,一般是在计算复杂性理论框架下加以讨论,如主要考虑“概率多项式时间(PPT)”的敌手A和转换算法,以及“可忽略”的成功概率.这是一种“渐近”观点,有着广泛的适用范围.具体内容可参见Goldreich的研究综述[2].1.1 基本概念本质上,可证明安全性理论的主要研究途径是规划安全方案或协议的形式化安全模型,不同的安全方案或协议会导致不同的安全模型,而这些安全模型大多基于一些很基本的密码学概念.因此对一些最基本的密码学概念(如加密、签名及其安全性定义等)给予精确的形式化定义是可证明安全性理论的基础组成部分,有助于消除自然语言的语义二义性.下面分别介绍数字签名方案和公钥加密方案的安全模型.定义1(数字签名方案). 一个数字签名方案由以下3种算法组成:(1) 密钥生成算法K.对于输入1k,K产生一对匹配值(k p,k s),分别称为公钥和私钥,K可以是概率算法.k称为安全参数,密钥等因素的规模都依赖于k.(2) 签名算法Σ.给定消息m和(k p,k s),Σ产生签名σ,Σ可以是概率算法.(3) 验证算法V.给定签名σ和消息m以及公钥k p,V检验σ是否是m的对应于公钥k p的合法签名,通常情况冯登国:可证明安全性理论与方法研究1745下,V 是确定性算法.对于任一数字签名方案(K ,Σ,V ),敌手A 的模型如下: A 的目标有如下3个:揭示签名者私钥(完全破译);构造成功率高的伪签名算法(通用伪造);提供一个新的消息-签名对(存在性伪造). 存在性伪造一般并不危及安全,因为输出消息很可能无意义,但这样的方案本身不能确保签名方的身份,例如不能用来确认伪随机元素(如密钥),也不能用来支持非否认.A的两类攻击:未知消息攻击和已知消息攻击.后一种情况中最强的攻击是“适应性选择消息攻击”,即A 可以向签名方询问对任何消息的签名(当然不能询问欲伪造消息的签名,这是一类自明的约定,后文不再注释),因而可能根据以前的答案适应性地修改随后的询问. 定义2(数字签名方案在适应性选择消息攻击下的安全性). 对任一数字签名方案(K ,Σ,V ),如果敌手A 的攻击成功概率]1),,(:)(),(),1(),Pr[(=←←=Σσσm k V k A m K k k Succ p p k s p A s k是可忽略的,则称该方案能够抵抗适应性选择消息攻击.这里,A 可以获得签名Oracle s k Σ(实际上是一个“黑盒”),这模拟了如上所说的“适应性选择消息询问”,而且要求(m ,σ)没有询问过.s k Σ定义3(公钥加密方案). 一个公钥加密方案由以下3种算法组成:(1) 密钥生成算法K .对于输入1k ,K 产生一对匹配值(k p ,k s ),分别称为公钥、私钥,K 是概率算法.(2) 加密算法E .给定消息m 以及公钥k p ,E 产生m 对应的密文C .E 可以是概率算法,这时记为),;,(r m k E p r 表示随机输入.(3) 解密算法D .给定密文C 及私钥k s ,D 产生C 对应的明文m ,一般是确定性算法.一般而言,加密方案的安全目标是单向性(one-wayness,简称OW)的:在不知私钥的情况下,敌手A 在概率空间M ×Ω上成功地对E 求逆的概率是可忽略的(这里,M 是消息空间,Ω是加密方案的随机掷硬币空间),亦即概率]));,(,(:)1(),Pr[(m r m k E k A K k k Succ p p k s p A =←= 是可忽略的.然而,许多应用要求具有更强的安全性.定义4(多项式安全/密文不可区分). 对任一公钥加密方案(K ,E ,D ),如果满足1]),,,(:);,(),(),,(),1(),Pr[(2102110−==←←×b c s m m A r m k E c k A s m m K k k adv b p p k s p A是可忽略的,则称该方案是多项式安全的或密文不可区分的.这里,敌手A =(A 1,A 2)是一个2阶段攻击者(都是PPT 算法),概率取于(b ,r )之上.上述定义形式化了如下性质:敌手了解明文的某些信息(可任选一对消息,其中一个被加密),但它不能从密文得到除明文长度之外的任何信息.敌手的几种攻击类型(相当于敌手拥有的Oracle 数量及性质):(1) CPA(选择明文攻击),该攻击在公钥方案中显然是平凡的;(2) PCA(明文校验攻击),敌手获得明文校验Oracle,用以回答关于任一输入对(m ,c )是否为对应明密对的 询问;(3) CCA(选择密文攻击),除了获得加密Oracle 以外,敌手还获得解密Oracle,即对于任何询问的密文(除了应答密文),Oracle 都给以相应的明文作为回答.这是最强的攻击(根据是否适应性选择密文,还可以细分为CCA1和CCA2).对应以上攻击条件的相应安全性定义,均可用类似于定义4的方法给出,区别仅在于敌手获得的Oracle 数量和性质不一样.对称密码方案的安全性可类似定义.1746 Journal of Software软件学报 2005,16(10) 2 RO模型方法论及其相关研究结果20世纪80年代初,Goldwasser,Micali和Rivest等人首先比较系统地阐述了可证明安全性这一思想,并给出了具有可证明安全性的加密和签名方案[3,4].然而,以上方案的可证明安全性是以严重牺牲效率为代价的,因此以上方案虽然在理论上具有重要意义,但不实用,这种情况严重制约了这一领域的发展.直到20世纪90年代中期出现了“面向实际的可证明安全性(practice-oriented provable-security)”的概念,特别是Bellare和Rogaway提出了著名的RO(random oracle,随机预言)模型方法论[5],才使得情况大为改观:过去仅作为纯理论研究的可证明安全性理论,迅速在实际应用领域取得了重大进展,一大批快捷有效的安全方案相继提出;同时还产生了另一个重要概念:“具体安全性(concrete security or exact security)”,其意义在于,我们不再仅仅满足于安全性的渐近度量,而是可以确切地得到较准确的安全度量.面向实际的可证明安全性理论取得了巨大的成功,已被国际学术界和产业界广为接受;但Canetti和Goldreich对此持有异议[6],并坚持仍在标准模型(standard model)中考虑安全性.Canetti和Goldreich认为:密码方案在RO模型中的安全性和通过“hash函数实现”的安全性之间无必然的因果关系;具体说来,存在这样的实际签名方案和加密方案,它们在RO模型中是安全的,但任何具体实现都是不安全的.这实际上是提出了一个反例.不过,Goldreich也认为,应该明确RO模型方法论并不能作为实际方案安全的绝对证据,但该方法论仍是有意义的,如可以作为一种基本测试——任何实际方案通过这种安全测试是必要的,RO模型方法论至少可以排除很多不安全的设计,虽然并非完备的.Canetti则进一步指出,RO模型方法论虽然存在以上缺点,但它可用于设计简单而有效的协议——可以抵抗许多未知攻击;更重要的是,其基本思想可以用来设计某些安全的理想系统.Pointcheval等人则认为[7],目前还没有人能提出令人信服的关于RO模型实际合法性的反例.文献[6]的反例仅仅是一种理论上的反例,是针对实际目的的“明显错误设计”;RO模型已经被广为接受,并被认为是度量实际安全级别的一种很好的手段;即使并未提供一个正规的安全性证明(像标准模型那样),但在其“安全性论断”(hash函数没有弱点)下,RO模型中的证明确保了整个方案的安全性.更确切些,RO模型可视为对敌手能力的某种限制——敌手的攻击是不考虑任何特殊hash函数实例的一般攻击,而且如果假定存在某些防窜扰设备(如Smart Cards),则RO模型等价于标准模型,这时只要求伪随机函数存在[2].最重要的是,仅就实现效率这一点,RO 模型中的可证明安全性的方案就远远优于那些能够提供标准安全性证明的方案,仅此一点就可以从实际应用中排除当前所有“在标准模型中具有可证明安全性”的方案.事实上,一些有代表性的、有效的标准解决方案,如文献[3,4]中的方案,过于复杂且代价昂贵,归约的复杂性使得难以确定实际安全参数,其有效性也只是相对于过去的标准方案而言.但可以肯定的是,迄今为止,RO模型方法论是可证明安全性理论最成功的实际应用,其现状是:几乎所有国际安全标准体系都要求提供至少在RO模型中可证明安全性的设计,而当前可证明安全性的方案也大都基于RO模型.2.1 RO模型介绍文献[5]中提出如下观点:假定各方共同拥有一个公开的Random Oracle,就可以在密码理论和应用之间架起一座“桥梁”.具体办法是,当设计一个协议P时,首先在RO模型(可看成是一个理想模拟环境)中证明P R的正,然后在实际方案中用“适当选择”的函数h取代该Oracle(潜在论断是理想模拟环境和现实环境在敌手看来是多项式时间计算不可区分的).一般来说,这样设计出来的协议可以和当前协议的实现效率相当.必须指出,这并非是严格意义上的可证明安全性,因为安全性证明仅在RO模型中成立,随后的“取代”过程本质上是一种推测:RO模型中的安全特性可以在标准模型中得以保持.假设我们提出一个协议问题Π(这个问题和h函数“独立”),要设计一个安全协议P解决该问题,可按如下步骤执行:(1) 建立Π在RO模型中的形式定义,RO模型中各方(包括敌手)共享随机Oracle R;(2) 在RO模型中设计一个解决问题Π的有效协议P;(3) 证明P满足Π的定义;冯登国:可证明安全性理论与方法研究1747(4) 在实际应用中用函数h 取代R . 严格说来,h 不可能真的“像”随机函数:首先,其描述较短;其次,所谓的随机Oracle 即hash 函数对每一个新的询问产生一个随机值作为回答(如果问相同的询问2次,回答仍相同),这也是和随机函数的一个微小区别.但这并未改变上述方法论的成功,因为只要求在敌手看来“像”随机函数.此外,h 函数“独立”于Π也是至关重要的(否则可能不安全,可构造反例). 一般来说,函数h 至少要满足以下基本要求:设计上足够保守,能够抵抗各种已知攻击;不会暴露某些相关数学“结构”.文献[5]指出,选择h 并不需要太麻烦,一个适当选择(但并不需过分苛求)的hash 函数就是如上h 函数的一个很好的选择.RO 方法论也易于推广到基于对称密码本原的协议/方案研究,如CBC-MAC,虽然没有hash 函数,但把一个恰当选择的分组密码(如DES)视为随机函数.2.2 归约论断和具体安全性归约论断是可证明安全性理论的最基本工具或推理方法,简单说就是把一个复杂的协议安全性问题归结为某一个或几个难题(如大数分解或求解离散对数等).在RO 模型中的归约论断一般表现为:首先形式化定义方案的安全性,假设PPT 敌手能够以不可忽略的概率破坏协议的安全性(如伪造签名);然后模仿者S (就是设计者或分析者)为敌手提供一个与实际环境不可区分的模拟环境(RO 模型),回答敌手的所有Oracle 询问(模拟敌手能得到的所有攻击条件);最后利用敌手的攻击结果(如一个存在性的伪造签名)设法解决基础难题.如果把RO 模型换成现实模型就得到标准安全性证明.RO 归约论断的一个显著优点是能够提供具体安全性结果.具体地说就是,试图显式地得到安全性的数量特征,这一过程称为“具体安全性处理(concrete or exact treatment of security)”,与前面提到的“渐近”观点有明显区别.其处理结果一般表述为如下形式(举例):“如果DES(本原)可以抵抗这样条件的攻击,即敌手至多获得236个明密对,那么我们的协议就可以抵抗一个能执行t 步操作的敌手发动的攻击,t 值如下…”这样,协议设计者就能够确切地知道具体获得了多少安全保证,不必再笼统地说协议是否安全.例1:文献[8]中研究了CBC MAC 的安全特征,结论是:对任意一个运行时间至多为t 、至多见过q 个正确MAC 值的敌手,成功模仿一个新消息的MAC 值的概率至多为ε+(3q 2n 2+l )/2.这里,l 是基础密码的分组长度,n 是明文消息总数,ε是检测到密码偏离随机行为的概率(在O (nql )时间内).具体安全性处理的一个重要目标就是,在把一个基础极微本原转化成相应协议时,尽可能多地保持极微本原的强度.这表现为要求“紧”的归约方法,因为一个“松”的归约意味着要求采用更长的安全参数,从而降低了 效率.2.3 基于RO 模型方法论的代表性研究结果2.3.1 公钥加密方案第1节的概念推广到RO 模型,即可得到RO 模型中的公钥加密方案的定义.公钥加密方案可以通过PPT 生成器g 来规定:以安全参数1k 为输入,输出一对概率算法(E ,D ),分别称为加、解密算法,D 保密,运行时间以g 的运行时间为界.加密:)(x E y R ←,解密:)(y D x R ←.像定义4一样,称该方案在RO 模型中是CPA 多项式安全的,如果对任意的CP-敌手(选择明文敌手)(F ,A 1),满足).(2/1]),,(:)(};1,0{);(),();1(),(;2Pr[1110n b m E A m E b E F m m g D E R R b R R k μαα+≤=←←←←←∞ 这里,R 表示一般的Oracle,是从{0,1}*到{0,1}∞的函数,2∞表示所有Oracle 的集合,“∞”并非真的无限,只是避免提问“足够长是多长”这类问题,μ(n )是可忽略函数.CCA 安全性:这里的敌手A 称为RS-敌手,即有非一致多项式算法A =(F ,A 1),各自获得一个Oracle R 及一个解密Oracle 的黑盒实现D R ;F 的任务就是提出一对明文10,m m ,A 1被随机给予其中一个的密文α,则只要不允许向解密Oracle D R 询问α(因为禁止提出与最终论断等价的询问),A 1就不可能以不可忽略优势猜中是哪一个1748Journal of Software 软件学报 2005,16(10)明文. 称g 在RO 模型中安全抗CCA 攻击,如果对任意RS-敌手(F ,A 1),满足:).(2/1]),,,(:)(};1,0{);(),();1(),(;2Pr[10,1,10n b m m E A m E b E F m m g D E R R RD R b R D R k μαα+≤=←←←←←∞ Bellare 等人在文献[5]中提出了一个在RO 模型中安全抗CCA 攻击的方案,由于归约并不紧,应用意义并不大,但其设计思想很好地体现了RO 方法论的特点.Bellare 等人把以上思想作了进一步改进,在1994年提出了著名的公钥加密填充方案OAEP [9],可证明是抗CCA2攻击安全的,目前该方案已成为新一代RSA 加密标准.其基本组成是:核心组件是一个Padding 函数,即OAEP G ,H (x ,r )=x ⊕G (r )||r ⊕H (x ⊕G (r )).这里,x 是被加密消息,r 是随机输入;加密算法为E G ,H (x )=f (OAEP G ,H (x ,r )).这里,f 是陷门置换(如RSA 函数).基本设想是构造一个具有良好随机性的“遮掩函数”隐蔽明文的统计特性.2.3.2 数字签名方案Bellare 等人在文献[5]中也给出了一种具有可证明安全性的签名方案.该签名方案要求陷门置换f 具有“均匀分布”的特点,而标准RSA 置换不具有这个性质,因此基于RSA 无法设计该类方案.文献[10]中提出了一种基于RSA 的签名方案:概率签名方案PSS,目前有望成为RSA 签名标准.PSS 引入了概率机制,有更好的安全界.该方案不仅可证明其安全性,而且相应的归约是很紧的,一个敌手伪造签名的能力和对RSA 求逆的能力相当.总之,安全性和分解整数的困难性紧密相关.稍作改进,也可以具有消息恢复性质.目前,其他可证明安全性的签名方案大都是基于识别协议的签名方案,这不是偶然的,前面我们提到Fiat 和Shamir 曾经应用RO 假设试图构造一个安全性和因子分解一样困难的签名方案[11],并证明了其与识别协议的等价性.例如,文献[12]中的主要工作是:对基于Fiat-Shamir 识别协议的签名方案[11]作了具体安全性分析,通过交换应答和承诺的顺序改进设计了一类新的Fiat-Shamir 类型签名方案(E-swap 签名方案),具有更好的具体安 全性.其他一些进展可参见文献[13−15]等.文献[15]基于计算Diffie-Hellman(CDH)假设,对一个源于Schnorr 签名的改进方案EDL 给出了归约很紧的安全性证明,使得该签名方案得到了业界的广泛重视.另外,值得特别说明的是,文献[13]对于完善RO 模型方法论具有重大贡献,即提出了以Folklore 引理为代表的一般安全论断,主要适用于许多基于识别协议的签名方案,特别是证明了迄今为止唯一一个ElGamal 变形签名方案MEG 的安全性.基本方法是,Oracle 重放(replay)攻击,即在RO 模型中实施归约化证明时,重放多项式个不同(但有一定联系)的随机Oracle(这相当于为敌手提供多个模拟环境),然后敌手若能以不可忽略概率伪造多个签名,设计者或分析者就能根据其内在关联求解基础难题(如DLP).缺点是归约还不够紧. 3 标准模型中可证明安全性理论研究的一些重要进展文献[3,4]是满足标准安全性证明的早期有代表性的方案.实际上,前面的结果已经包含了许多这方面的内容,如一些基本概念等,这里我们简要介绍一些近年来的结果.文献[16]研究了数字签名方案中的hash 函数设计应用问题,降低了对hash 函数的要求;文献[17]提出了一类基于强RSA 假设的数字签名方案.其共同之处是都不把hash 函数形式化为RO.文献[17]的安全性证明实际上是用满足强计算假设的hash 函数取代了RO.3.1 基于padding 函数的RSA 签名方案克服RSA 签名方案同态缺陷的一种通用解决方案就是先对消息应用padding 函数作用,然后对结果作解密运算(签名).文献[16]中的主要结果是:基于padding 函数、对一组消息的RSA 签名与对多个分组消息的RSA 签名的安全性等价.而且这里并不要求hash 函数为Random Oracle 或具有自由碰撞性质,只是假设存在某个安全的、用于签署固定长度消息的padding 函数μ;利用它就可以构造一个用于签署任意长度消息的安全padding 方案.但该文在一般标准安全论断研究方面并未有多少进展.冯登国:可证明安全性理论与方法研究17493.2 没有随机Oracle 的安全签名方案(Hash -and -Sign 模式) 文献[17]基于强RSA 假设(即对任意的RSA 模*,nZ s n ∈,要在多项式时间内找到一个满足r e =s mod n 的二元组(e ,r )(e >1)是不可能的),提出了一种抵抗适应性选择消息攻击的签名方案,仍属于Hash-and-Sign 结构.密钥和参数说明类似于RSA,注意公钥为*,nZ s pq n ∈=.签名算法本身很简单:e =h (R ,M ),签名σ是s 模n 的e 次根;验证算法略.在安全性论断研究方面,文献[17]不再把hash 函数视为RO,而是把hash 函数视为具有某些特定性质(如整除难处理性等)的随机函数h (R ,M ).这里,R 是随机数.特别之处在于:既充分利用RO 安全论断的优点,又用一个假想的随机性Oracle 取代RO,即假设已知h 的随机输入因素也对解决强RSA 难题毫无帮助.文献[17]希望这种“相对模型方法论”能够替代RO 方法论,但显然其假设过强(虽然文献[17]认为仍是现实的),归约也不紧,更重要的是目前看不到有推广应用的可能,文献[17]也承认这一点.3.3 Cramer -Shoup 加密方案Cramer 和Shoup [18]于1998年提出了第一个比较实际的标准模型下可证明安全的公钥加密方案,该方案的困难假设是判定性Diffie-Hellman 问题.由于其安全性归约是在标准的杂凑函数假设(抗碰撞)下得到的,并不依赖于随机预言模型,所以受到了很大的关注.设G 是有限域*p Z 的阶为q 的子群,p ,q 为素数,且q |p −1,g 1和g 2是G 中两个随机的非单位元的元素.设),(21x x x =,),(21y y y =,),(21z z z =表示在0和q −1之间的数对;),(21g g g =,),(21u u u =表示G 中的元素对;r 是1和q −1之间的随机数,记),(2121x x x g g g =,),(2121rx rx rx g g g =.假设H 是合适的抗碰撞杂凑函数.用户Alice 的私钥是3对随机产生的数x ,y ,z ,其公钥由3个群元素,x g c =,y g d =z g e =组成.加密:为了发送消息m ∈G ,Bob 选择一个随机数r ,令r g u 11=,r g u 22=,m e w r =,然后计算),,(21w u u H h =和rh r d c v =.Bob 把四元组),,,(21v w u u 作为密文发送给Alice.解密:要解密),,,(21v w u u ,Alice 首先计算),,(21w u u H h =,然后利用她的私钥计算,hy x u +这个结果应该等于v (因为rh r rhy rx hy x d c g u ==++).如果它不等于v ,Alice 就拒绝该消息;如果通过这个检验,Alice 继续进行解密:把w 除以u z ,因为r rx z e g u ==,而m e w r =,所以这就是明文m .对于Cramer-Shoup 加密方案,如果存在一个自适应选择密文攻击的敌手能够破坏定义4中给出的安全性,那么就可以构造一个算法来求解判定性Diffie-Hellman 问题.容易看出,Cramer-Shoup 加密方案实际上是ElGamal 公钥加密方案的一个变型,而后者显然是不能抵抗选择密文攻击的.与ElGamal 方案相比,Cramer-Shoup 方案的一个重要设计思想,是增加了密文的合法性检验,即在其密文中增加了冗余v ,解密者通过检查u x +hy =v 来判断密文的合法性.而正是这个密文合法性检验条件,使得解密Oracle 不能帮助敌手来发动有效的攻击,这也是目前所有的抵抗选择密文攻击的加密方案的重要设计思想之一.4 会话密钥分配(SDK )协议的可证明安全性研究通信双方在充满恶意的环境中传送数据,一般需要确保数据的机密性和可认证性.要达到此目的,必须加密和认证被传送的数据,这就需要密钥,而密钥通常需要通过会话密钥分配(SKD)协议来实现.当前最常见的是三方SKD 协议(可信方参与),因此下文的论述以此为重点.最早的、最流行的三方密钥分配系统是1978年提出的NS 系统[19],并且有许多具体候选方案.之后的数年,又有10多个SKD 协议出现.但是,似乎所有这些工作都存在这样的“怪圈”:提出一个协议;然后是不断地试图破译;不断地修补.实际上,Needham 和Schroeder 在一开始就提出了警告:这样开发的协议容易有微妙的弱点,且不易在正常操作中检测到,很有必要研究验证协议正确性的技术.作为对这种警告的证实,文献[20]指出了一种NS 协议的bug,许多相关协议都有类似的缺陷.如此漫长的攻击历史使得人们终于达成这样的共识:要解决会话密钥分配问题,仅仅由作者给出一个协议、并且作者本人找不到可行的攻击手段是远远不够的.Burrows,Abadi 和Needham [21]试图通过使用特定目的的逻辑来解决这个问题,即著名的BAN 逻辑.形式化。
杨波, 《现代密码学(第2版)》02
• 初始状态由用户确定。 • 当第i个移位时钟脉冲到来时,每一级存储器ai都将 其内容向下一级ai-1传递,并计算f(a1,a2,…,an)作为 下一时刻的an。 • 反馈函数f(a1,a2,…,an)是n元布尔函数,即n个变元 a1,a2,…,an可以独立地取0和1这两个可能的值,函数 中的运算有逻辑与、逻辑或、逻辑补等运算,最后 的函数值也为0或1。
例2.3 图2.11是一个5级线性反馈移位寄存器,其 初始状态为(a1,a2,a3,a4,a5)=(1,0,0,1,1),可求出输 出序列为: 1001101001000010101110110001111100110… 周期为31。
图2.11 一个5级线性反馈移位寄存器
n级线性反馈移位寄存器的状态周期小于等于2n-1。 输出序列的周期与状态周期相等,也小于等于2n-1。
又由p(x)A(x)=φ(x)可得p(x)q(x)A(x)=φ(x)q(x)。
所以(xp-1)A(x)=φ(x)q(x)。 由于q(x)的次数为 p-n,φ(x)的次数不超过n-1,
所以(xp-1)A(x)的次数不超过(p-n)+(n-1)=p-1。
将(xp-1)A(x)写成 xp A(x)- A(x),可看出对于任意正整 数i都有ai+p=ai。 设p=kr+t, 0≤t<r,则ai+p=ai+kr+t=ai+t=ai,所以t=0,即 r | p。(证毕)
分组密码与流密码的区别就在于有无记忆性。 流密码的滚动密钥z0=f(k,σ0)由函数f、密钥k和指定 的初态σ0完全确定。 由于输入加密器的明文可能影响加密器中内部记忆 元件的存储状态,σi(i>0)可能依赖于k,σ0,x0, x1,…,xi-1等参数。
杨波,_《现代密码学(第2版)》第五章 5.4-5.5节
5.4.1 随机数的使用
很多密码算法都需使用随机数,例如: 很多密码算法都需使用随机数,例如: • 相互认证。在密钥分配中需使用一次性随机数来 相互认证。 防止重放攻击。 防止重放攻击。 • 会话密钥的产生。 会话密钥的产生。 • 公钥密码算法中密钥的产生,用随机数作为公钥 公钥密码算法中密钥的产生, 密码算法中的密钥, 密码算法中的密钥,或以随机数来产生公钥密码算 法中的密钥。 法中的密钥。 在随机数的上述应用中, 在随机数的上述应用中,都要求随机数序列满 随机性和不可预测性。 足随机性和不可预测性。
一种方法是将高质量的随机数作为随机数库编 一种方法是将高质量的随机数作为随机数库编 辑成书,供用户使用。 辑成书,供用户使用。然而与网络安全对随机数巨 大的需求相比,这种方式提供的随机数数目非常有 大的需求相比,这种方式提供的随机数数目非常有 再者, 限。再者,虽然这时的随机数的确可被证明具有随 机性,但由于敌手也能得到这个随机数源, 机性,但由于敌手也能得到这个随机数源,而难以 保证随机数的不可预测性。 保证随机数的不可预测性。 网络安全中所需的随机数都借助于安全的密码 网络安全中所需的随机数都借助于安全的密码 算法来产生。但由于算法是确定性的, 算法来产生。但由于算法是确定性的,因此产生的 数列不是随机的。然而如果算法设计得好, 数列不是随机的。然而如果算法设计得好,产生的 数列就能通过各种随机性检验,这种数就是伪随机 数列就能通过各种随机性检验,这种数就是伪随机 数。
如果取a=7,其他值不变,则产生的数列为 5, 25, ,其他值不变,则产生的数列为{1, 如果取 29, 17, 21, 9, 13, 1,…},周期增加到 。 ,周期增加到8。 周期尽可能大, 应尽可能大 应尽可能大。 为使随机数数列的周期尽可能大 为使随机数数列的周期尽可能大,m应尽可能大。 普遍原则是选 接近等于计算机能表示的最大整数 接近等于计算机能表示的最大整数, 普遍原则是选m接近等于计算机能表示的最大整数, 如接近或等于2 如接近或等于231。
第九章 可证明安全性理论
定义2 如果一个公钥加密体制在适应性选 择密文攻击下是多项式安全的,我们就说 该体制是安全的。
引理1 一个可展(Malleability)的加密 体制在适应性选择密文攻击下是不安全 的。
证明:假设一个加密体制是可展的,当给 定一个目标密文cb时,我们可以把它修改成 一个相关的密文cb *。这种相关的关系也应 该存在于和mb和mb*。然后敌手利用解密预 言机(解密盒)来获得cb *的明文。最后敌 手根据mb*来恢复mb。
(2)语义安全性
语义安全性与完美安全性类似,只是我们 只允许敌手具有多项式有界的计算能力。 从形式上说,无论敌手在多项式时间内能 从密文中计算出关于明文的什么信息,他 也可以在没有密文的条件下计算出这些信 息。换句话说,拥有密文并不能帮助敌手 找到关于明文的任何有用信息。
(3)多项式安全性
我们很难显示一个加密体制具有语义安全 性,然而,我们却可以比较容易显示一个 加密体制具有多项式安全性。多项式安全 性也称为密文不可区分性。幸运的是,如 果一个加密体制具有多项式安全性,那么 我们可以显示该体制也具有语义安全性。 因此,为了显示一个加密体制是语义安全 的,我们只需要显示该体制是多项式安全 的。
我们假设一个敌手(一个概率算法)能够 以一个不可忽略的概率攻破RSA的某个安 全概念(比方说语义安全性)。对于一个 安全参数(安全参数用于测量密钥长度的大 小,比如在RSA中,安全参数可能是模数n 的比特数)为k的密码体制,如果敌手成功 的概率大于1/p(k),我们就说这个敌手 以一个不可忽略的概率成功,这里的p是一 个以k为变量的多项式。
因此,敌手获得了密文c对应的明文m。
ElGamal的安全性
引理4 如果DDH问题是困难的,那么ElGamal加密 体制在选择明文攻击下是多项式安全的。 证明:为了显示ElGamal是多项式安全的,我们首 先假设存在一个能够攻破ElGamal多项式安全性的 多项式时间算法A,然后我们给出一个使用算法A作 为子程序的算法B来解决DDH问题。
杨波,_《现代密码学(第2版)》第三章 3.1-3.4节
图3.1 分组密码框图
通常取m=n。 。 通常取 若m>n,则为有数据扩展的分组密码; ,则为有数据扩展的分组密码; 若m<n,则为有数据压缩的分组密码。 ,则为有数据压缩的分组密码。
设计的算法应满足下述要求: 设计的算法应满足下述要求: 分组长度n要足够大 要足够大, ① 分组长度 要足够大,使分组代换字母表中的元素 个数2 足够大,防止明文穷举攻击法奏效。 个数 n足够大,防止明文穷举攻击法奏效。 DES、IDEA、FEAL和LOKI等分组密码都采用 、 等分组密码都采用n=64, 、 和 等分组密码都采用 , 在生日攻击下用232组密文成功概率为1/2,同时要求 在生日攻击下用 组密文成功概率为 , 存贮, 232×64b=215MB存贮,故采用穷举攻击是不现实的。 存贮 故采用穷举攻击是不现实的。
• 如将分组 化分为子段,每段长为 、16或者 。 如将分组n化分为子段 每段长为8、 或者 化分为子段, 或者32。 • 软件实现时,应选用简单的运算,使作用于子段上 软件实现时,应选用简单的运算, 的密码运算易于以标准处理器的基本运算,如加、 的密码运算易于以标准处理器的基本运算,如加、 移位等实现, 乘、移位等实现,避免用以软件难于实现的逐比特 置换。 置换。 • 为了便于硬件实现,加密和解密过程之间的差别应 为了便于硬件实现, 仅在于由秘密密钥所生成的密钥表不同而已。这样, 由秘密密钥所生成的密钥表不同而已 仅在于由秘密密钥所生成的密钥表不同而已。这样, 加密和解密就可用同一器件实现。 加密和解密就可用同一器件实现。 • 设计的算法采用规则的模块结构,如多轮迭代等, 设计的算法采用规则的模块结构,如多轮迭代等, 以便于软件和VLSI快速实现。 快速实现。 以便于软件和 快速实现
数据扩展尽可能地小。一般无数据扩展, ⑤ 数据扩展尽可能地小。一般无数据扩展,在采用同 态置换和随机化加密技术时可引入数据扩展。 态置换和随机化加密技术时可引入数据扩展。 差错传播尽可能地小。 ⑥ 差错传播尽可能地小。
杨波,_《现代密码学(第2版)》第四章 4.1节
交换律: ① 交换律: (w+x) mod n=(x+w) mod n (w×x) mod n=(x×w) mod n × × 结合律: ② 结合律: [(w+x)+y] mod n=[w+(x+y)] mod n [(w×x)×y] mod n=[w×(x×y)] mod n × × × × 分配律: × × × ③ 分配律: [w×(x+y)] mod n=[w×x+w×y] mod n 单位元: ④ 单位元: (0+w) mod n=w mod n (1×w) mod n=w mod n × 加法逆元: 存在z∈ 使得w+z≡0 ∈ ⑤ 加法逆元: 对w∈Zn,存在 ∈Zn,使得 mod n,记z = -w。 , 。
整数具有以下性质: 整数具有以下性质: ① a|1,那么a=1。 ,那么 。 ② a|b且b|a,则a=b。 且 , 。 对任一b ③ 对任一 (b≠0),b|0。 , 。 ④ b|g,b|h,则对任意整数 、n有 b|(mg+nh)。 , ,则对任意整数m 有 。 性质④的证明: 性质④的证明: 由b|g,b|h知,存在整数 1、h1, , 知 存在整数g 使得g=bg1, h=bh1所以 使得 mg+nh=mbg1+nbh1=b(mg1+nh1), 因此 因此b|(mg+nh)。 。
例4.1 设Z8={0, 1,…, 7},考虑 8上的模加法和模乘 ,考虑Z 法。
从加法结果可见,对每一 ,都有一y, 从加法结果可见,对每一x,都有一 ,使得 x+y≡0 mod 8。如对 ,有6,使得 。如对2, ,使得2+6≡0 mod 8,称 , 加法逆元。 y为x的负数,也称为加法逆元。 的负数, 为 的负数 也称为加法逆元 对x,若有 ,使得 ×y≡1 mod 8,如3×3≡1 ,若有y,使得x× , × mod 8,则称 为x的倒数,也称为乘法逆元。本例 的倒数, ,则称y为 的倒数 也称为乘法逆元。 可见并非每一 都有乘法逆元。 并非每一x都有乘法逆元 可见并非每一 都有乘法逆元。 一般地,定义 为小于n的所有非负整数集合 的所有非负整数集合, 一般地,定义Zn为小于 的所有非负整数集合, 为模n的同余类集合 的同余类集合。 即Zn={0, 1, …, n-1},称Zn为模 的同余类集合。其 , 上的模运算有以下性质 性质: 上的模运算有以下性质:
现代密码学_清华大学_杨波着+习题答案
现代密码学_清华⼤学_杨波着+习题答案设 A = ' ∞ ,= =≤ ? ≤ ∞ ' ? ≤ ? ≤ ∞ ' ? 可求得 A = '⼀、古典密码(1,2,4)11,23AGENCY ”加密,并使⽤解密变换 D 11,23(c)≡11-1(c-23) (mod 26) 验证你的加密结果。
解:明⽂⽤数字表⽰:M=[19 7 4 13 0 19 8 14 13 0 11 18 4 2 20 17 8 19 24 0 6 4 13 2 24]密⽂ C= E 11,23(M)≡11*M+23 (mod 26)=[24 22 15 10 23 24 7 21 10 23 14 13 15 19 9 2 7 24 1 23 11 15 10 19 1] = YWPKXYHVKXONPTJCHYBXLPKTB∵ 11*19 ≡ 1 mod 26 (说明:求模逆可采⽤第4章的“4.1.6欧⼏⾥得算法”,或者直接穷举1~25)∴解密变换为 D(c)≡19*(c-23)≡19c+5 (mod 26)对密⽂ C 进⾏解密:M ’=D(C)≡19C+5 (mod 26)=[19 7 4 13 0 19 8 14 13 0 11 18 4 2 20 17 8 19 24 0 6 4 13 2 24] = THE NATIONAL SECURITY AGENCY2. 设由仿射变换对⼀个明⽂加密得到的密⽂为 edsgickxhuklzveqzvkxwkzukvcuh ,⼜已知明⽂的前两个字符是“if ”。
对该密⽂解密。
解:设解密变换为 m=D(c)≡a*c+b (mod 26)由题⽬可知密⽂ ed 解密后为 if ,即有:D(e)=i : 8≡4a+b (mod 26) D(d)=f : 5≡3a+b (mod 26)由上述两式,可求得 a=3,b=22。
因此,解密变换为 m=D(c)≡3c+22 (mod 26)密⽂⽤数字表⽰为:c=[4 3 18 6 8 2 10 23 7 20 10 11 25 21 4 16 25 21 10 23 22 10 25 20 10 21 2 20 7]则明⽂为 m=3*c+22 (mod 26)=[8 5 24 14 20 2 0 13 17 4 0 3 19 7 8 18 19 7 0 13 10 0 19 4 0 7 2 4 17] = ifyoucanreadthisthankateahcer4. 设多表代换密码 C i ≡ AM i + B (mod 26) 中,A 是 2×2 矩阵,B 是 0 矩阵,⼜知明⽂“dont ” 被加密为“elni ”,求矩阵 A 。
现代密码学杨波课后习题讲解
1
1
1
1
1
0
0
1
1
1
1
1
….
….
习题
6.已知流密码的密文串1010110110和相应的明文串 0100010001,而且还已知密钥流是使用3级线性反馈移位 寄存器产生的,试破译该密码系统。
解:由已知可得相应的密钥流序列为 1010110110⊕0100010001 =1110100111,又因为是3级线 性反馈移位寄存器,可得以下方程:
Li Ri1 Ri Li1 f (Ri1, Ki )
习题
习题
3. 在 DES 的 ECB 模式中,如果在密文分组中有一个错误,解密后 仅相应的明文分组受到影响。然而在 CBC 模式中,将有错误传播。 例如在图 3-11 中 C1 中的一个错误明显地将影响到 P1和 P2 的结 果。 (1) P2 后的分组是否受到影响? (2) 设加密前的明文分组 P1 中有 1 比特的错误,问这一错误将在 多少个密文分组中传播? 对接收者产生什么影响?
c3c2c1 0101
0
1
101
1 1 0
由此可得密钥流的递推关系为:
ai3 c3ai c1ai2 ai ai2
第三章 分组密码体 制
习题
2. 证明 DES 的解密变换是加密变换的逆。 明文分组、密钥
加密阶段:初始置换、16轮变换、逆初始置换
每轮迭代的结构和Feistel结构一样:
定义2.2 设p(x)是GF(2)上的多项式,使p(x)|(xp-1) 的最小p称为p(x)的周期或阶。 定理2.3 若序列{ai}的特征多项式p(x)定义在GF(2) 上,p是p(x)的周期,则{ai}的周期r | p。
习题
可证明安全k—out—of—n不经意传输方案的安全分析与改进
可证明安全k—out—of—n不经意传输方案的安全分析与改进作者:李璐瑶戴明青龙来源:《计算机应用》2014年第05期摘要:不经意传输是密码学研究的一个重要内容。
对一种可证明安全的k-out-of-n不经意传输方案安全性进行了分析。
该方案的构造方法很新颖,具有很高的计算效率和传输效率。
但是分析发现其存在一个明显漏洞,可以使得接收者能够获得发送者发送的全部信息,从而违背了不经意传输的安全性要求。
详细分析后,通过引入一个随机数对该方案进行了改进,改进后的方案消除了原方案存在的漏洞,并且传输开销和计算开销与原方案相同,方案安全性同样是建立在判断性DiffieHellman (DDH)问题为困难问题的假设之上。
关键词:不经意传输;可证明安全;密码分析;判断性DiffieHellman假设;安全计算中图分类号:TP319文献标志码:A0引言不经意传输(Oblivious Transfer, OT)是密码学研究的一个重要领域,是其他很多密码协议设计的基础。
不经意传输在实践中具有广泛应用,包括网上商品交易、合同签名、隐私信息恢复、不经意多项式估值、隐私保留的审计等[1-4]。
不经意传输这一术语首次由Rabin提出[5]。
文献[5]提出的OT协议是一种双方参与协议,协议实现的是发送者发送一个bit消息给接收者,接收者接收该消息的概率为1/2。
协议要求发送者不能获得接收者是否成功接收到该消息的任何信息。
其后研究人员在文献[1]的基础上提出了很多不同类型的OT协议,包括:1)1outof2 OT (OT12)协议[6]。
该协议实现的是发送者同时发送两个消息给接收者,接收者可以随意选择得到其中一个消息,协议要求接收者不能获得另一个消息的任何信息,同时发送者不能获得接收者选择的任何信息。
2)1outofn OT (OT1n)协议[7-8]。
该协议是OT12的简单推广,实现的是发送者同时发送n个消息给接收者,接收者随意选择得到其中一个消息,协议要求接收者不能获得其余消息的任何信息,同时发送者不能获得接收者选择的任何信息。
可证明安全的可擦除脆弱数字水印
可证明安全的可擦除脆弱数字水印童伟;朱岩【摘要】Aiming at the security problem of fragile watermarking,an erasable fragile watermarking scheme with provable security for image authentication was proposed.This scheme was proved secure from three properties,including maximum likelihood estimation of error detection,unpredictability of hiding signature,and unforgeability against tamper attacks.These researches further improved the security of erasable fragile watermarking from the provable security perspective.Experimental results show that the original digital media can be recovered pixel-by-pixel during the verification process of the proposed scheme without impairing the accuracy authentication of fragile watermarking.%针对图像原始性认证的脆弱数字水印安全性问题,提出一种可擦除脆弱水印构造方案.该方案可被证明具有错误检测的最大似然估计性、签名信息不可预测性、抗篡改攻击的不可伪造性,进一步提高可擦除脆弱数字水印的可证明安全性.实验结果证明,该方案在认证的过程中能够逐个像素地恢复出作品的原貌,不会丢失脆弱水印的精确认证功能.【期刊名称】《计算机工程与设计》【年(卷),期】2018(039)003【总页数】5页(P679-683)【关键词】媒体认证;数字水印;可擦除;脆弱水印;可证明安全【作者】童伟;朱岩【作者单位】青海大学计算机技术与应用系,青海西宁810016;北京科技大学计算机与通信工程学院,北京100083【正文语种】中文【中图分类】TP309+.20 引言数字媒体的无损表示、存储和应用对数字媒体的保护提出了更高的要求。
安全定位协议的UC模型
安全定位协议的UC模型张俊伟,马建峰,杨超【摘要】摘要:研究了基于位置密码学中安全定位协议的可证明安全问题。
在通用可组合安全框架下,提出了安全定位的可证安全模型。
根据安全定位协议的需求,设计了安全定位的理想函数。
同时,作为基于位置密码学的一种前提假设,设计了BRM模型的理想函数。
此外,以1-维空间的安全定位协议为例,证明了该协议在BRM模型下能够实现安全定位的理想函数。
【期刊名称】通信学报【年(卷),期】2013(000)002【总页数】6【关键词】关键词:基于位置密码学;安全定位;UC安全1 引言与传统的密码学不同,基于位置的密码学[1]将用户的物理位置信息作为该用户的唯一一个凭证信息。
典型应用如基于位置的秘密通信、基于位置的认证/签名、基于位置的接入控制等。
目前,针对基于位置密码学的研究主要集中在安全定位方面。
在无线安全领域,定位技术已经有了相当多的研究成果。
定位技术的主要目标是测量并获得某个设备的物理地址。
著名的全球定位系统(GPS)就是一种定位技术,雷达也是一种定位技术。
除此之外,还有很多其他的定位技术,它们进行定位的实际方法是基于消息响应时间的技术。
然而,之前的安全定位协议都不能抵御多个敌手的共谋攻击(collusion attack)。
换句话说,这些定位方法都不是可证明安全的。
文献[1]研究了安全定位中共谋攻击的问题,并在Vanilla Model下提出了一个安全定位协议,但该协议仅仅能够抵御2个敌手的共谋攻击,并不能抵御3个或者更多敌手的共谋攻击。
文献[2]首次在BRM(bounded retrieval model)模型[3]下研究了安全定位和基于位置的密钥交换协议。
设计的2个密钥交换协议中,一个是计算条件下安全的,另一个是信息论安全的。
文献[4]研究了基于位置的量子密码学,利用量子密码学构造了基于位置的安全定位、密钥交换以及认证协议。
然而,这些研究并没有给出基于位置密码协议的组合安全模型,因此,设计的协议无法保证在组合环境下协议的安全性。
杨波《现代密码学第版》
3.5.2 加密过程
如图3.15所示,加密过程由连续的8轮迭代和一个输 出变换组成;
算法将64比特的明文分组分成4个16比特的子段,每 轮迭代以4个16比特的子段作为输入,输出也为4个 16比特的子段;
3. 解密过程
解密过程和加密过程基本相同,但子密钥的选取不 同。解密子密钥U1,U2,…,U52是由加密子密钥 按如下方式得到(将加密过程最后一步的输出变换 当作第9轮):
① 第i(i=1,…,9)轮解密的前4个子密钥由加密过程第 (10-i)轮的前4个子密钥得出:
其中第1和第4个解密子密钥取为相应的第1和第4 个加密子密钥的模216+1乘法逆元,第2和第3个子密钥 的取法为:当轮数i=2,…,8时,取为相应的第3个和第 2个加密子密钥的模216加法逆元。i=1和9时,取为相 应的第2个和第3个加密子密钥的模216加法逆元。
第3章 分组密码体制
• 分组密码概述 • 数据加密标准 • 差分密码分析与线性密码分析 • 分组密码的运行模式 • IDEA • AES算法——Rijndael
3.5 IDEA
• 来学嘉(X. J. Lai)和J. L. Massey提出的第1版 IDEA(International Data Encryption Algorithm, 国际数据加密算法)于1990年公布,当时称为PES (proposed encryption standard,建议加密标准)。
图3.16是IDEA第1轮的结构示意图,以后各轮也都 是这种结构,但所用的子密钥和轮输入不同。从结 构图可见,IDEA不是传统的Feistel密码结构。每轮 开始时有一个变换,该变换的输入是4个子段和4个 子密钥,变换中的运算是两个乘法和两个加法,输 出的4个子段经过异或运算形成了两个16比特的子 段作为MA结构的输入。MA结构也有两个输入的子 密钥,输出是两个16比特的子段。
杨波, 《现代密码学(第2版)》07
图7.1 消息加密产生数字签字的基本方式
(2) 公钥加密 如图7.1(b)所示,发送方A使用自己的秘密钥SKA对 消息M加密后的密文作为对M的数字签字,B使用A 的公开钥PKA对消息解密,由于只有A才拥有加密 密钥SKA,因此可使B相信自己收到的消息的确来自 A。然而由于任何人都可使用A的公开钥解密密文, 所以这种方案不提供保密性。为提供保密性,A可 用B的公开钥再一次加密,如图7.1(c)所示。
True S Sig x M Verx S , M False S Sig x M
算法的安全性在于从M和S难以推出密钥x或伪造一 个消息M′使M′和S可被验证为真。
7.1.3 数字签字的执行方式
数字签字的执行方式有两类: 直接方式和具有仲 裁的方式。 1. 直接方式 指数字签字的执行过程只有通信双方参与,并假定 双方有共享的秘密钥或接收一方知道发方的公开钥。
DSS签字也利用一杂凑函数产生消息的一个杂凑值, 杂凑值连同一随机数k一起作为签字函数的输入, 签字函数还需使用发送方的秘密钥SKA和供所有用 户使用的一族参数,称这一族参数为全局公开钥 PKG。签字函数的两个输出s和r就构成了消息的签 字(s,r)。接收方收到消息后再产生出消息的杂凑 值,将杂凑值与收到的签字一起输入验证函数,验 证函数还需输入全局公开钥PKG和发送方的公开 钥PKA。验证函数的输出如果与收到的签字成分r 相等,则验证了签字是有效的。
7.1 数字签字的基本概念
7.1.1 数字签字应满足的要求 消息认证的作用是保护通信双方以防第三方 的攻击,然而却不能保护通信双方中的一方防止另 一方的欺骗或伪造。通信双方之间也可能有多种形 式的欺骗,例如通信双方A和B(设A为发方,B为 收方)使用图6.1所示的消息认证码的基本方式通 信,则可能发生以下欺骗:
杨波,_《现代密码学(第2版)》第三章 3.6节
构成的字节b看成系数在 看成系数在{0, 将b7b6b5b4b3b2b1b0构成的字节 看成系数在 1} 中的多项式 b7x7+b6x6+b5x5+b4x4+b3x3+b2x2+b1x+b0 例如: 十六进制数‘57’对应的二进制为 例如: 十六进制数‘ 对应的二进制为01010111, , 对应的二进制为 看成一个字节,对应的多项式为x 看成一个字节,对应的多项式为 6+x4+x2+x+1。 。
第3章 分组密码体制 章
• • • • • • 分组密码概述 数据加密标准 差分密码分析与线性密码分析 分组密码的运行模式 IDEA AES算法 算法——Rijndael 算法
3.6 AES算法 算法——Rijndael 算法
• 1997年4月15日,美国 年 月 日 美国ANSI发起征集 发起征集AES 发起征集 (Advanced Encryption Standard)的活动,并为 )的活动, 此成立了AES工作小组。此次活动的目的是确定一 此成立了 工作小组。此次活动的目的是确定一 工作小组 个非保密的、可以公开技术细节的、 个非保密的、可以公开技术细节的、全球免费使用 的分组密码算法,以作为新的数据加密标准。 的分组密码算法,以作为新的数据加密标准。 • 1997年9月12日,美国联邦登记处公布了正式征集 年 月 日 AES候选算法的通告。对AES的基本要求是: 比 候选算法的通告。 的基本要求 候选算法的通告 的基本要求是 三重DES快、至少与三重 一样安全、 三重 快 至少与三重DES一样安全、数据分组 一样安全 长度为128比特、密钥长度为 比特、 比特。 长度为 比特 密钥长度为128/192/256比特。 比特
密码学中的可证明安全性-杨波
科学实验与思维实验
图1-2: 科学实验与思维实验
杨波
Cryptology
语义安全
IBE的背景 IBE的安全性 选择明文安全的IBE方案 选择密文安 IND-CPA 全的IBE方案 IND-CCA IND-CCA2 EUF-CMA 规约
科学实验与思维实验
图1-3: 薛定谔的猫
系统是真空的、 无光的
杨波
杨波
Cryptology
语义安全
IBE的背景 IBE的安全性 选择明文安全的IBE方案 选择密文安 IND-CPA 全的IBE方案 IND-CCA IND-CCA2 EUF-CMA 规约
语义安全
加密方案语义安全的概念由不可区分 性(Indistinguishability) 游戏(简称IND游戏)来刻画, 这种游 戏是一种思维实验, 其中有2个参与者, 一个称为挑战者 (challenger), 另一个是敌手。挑战者建立系统, 敌手对系统 发起挑战, 挑战者接受敌手的挑战。
杨波
Cryptology
语义安全
IBE的背景 IBE的安全性 选择明文安全的IBE方案 选择密文安 IND-CPA 全的IBE方案 IND-CCA IND-CCA2 EUF-CMA 规约
科学实验与思维实验
图1-1: 科学实验与思维实验
杨波
Cryptology
语义安全
IBE的背景 IBE的安全性 选择明文安全的IBE方案 选择密文安 IND-CPA 全的IBE方案 IND-CCA IND-CCA2 EUF-CMA 规约
公钥加密方案在选择明文攻击下的不可区分性
例: ElGamal加密算法
安全性基于Diffie-Hellman判定性问题: 设G是阶为大素 数q 的群, g1 , g2 为G的生成元。没有多项式时间的算法区分 以下2个分布: 随机4元组R = (g1 , g2 , u1 , u2 ) ∈ G4 的分布;