第九章 可证明安全性理论

合集下载

可证明安全性理论与方法研究

可证明安全性理论与方法研究

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 逻辑.形式化。

密码学假设

密码学假设

可证明安全性理论信息安全是信息社会赖以生存的根基,现代密码学是信息安全技术的核心,它建立在保证合法用户算法的有效性和敌手恢复被保护信息的不可行性之间的鸿沟之上,引入了计算复杂度理论,将攻破的“不可能性”转化为“不可行性”,因此也有人称之为复杂度理论密码学。

可证明安全性正是基于计算“不可行性”构建起来的理论,它将密码学方案的安全性归约为公认的计算难题,不仅是一种证明方法,也是一种设计协议的方法。

它使密码学从一门艺术变成为一门科学,并且也成为现代密码学领域中理论工作的主线。

特别是人们对国际密码标准进行大量分析之后,越来越意识到可证明安全性的重要性,可证明安全性也已成为任何一个密码协议的基本要求。

它对密码学的影响重大,并且对密码学实践也有重要的意义。

目前多数密码体制的设计采取的做法是:提出一种方案后,基于某种假设对方案做出具体的安全性分析,然后给出其安全性论断,如果该方案在较长时间内不能被破解,大家就广泛接受其安全性论断;如果在一段时间后发现安全漏洞,就对方案再作必要的修改,然后继续使用。

这种做法让人们对方案的安全性增加了不可靠感,而且从根本上难以避免受到新技术的分析和攻击.可证明安全性理论就是针对上述问题而提出的一种解决方案,可证明安全可理解为密码方案或协议的安全性可以被证明,换一句说,可证明安全理论的目的是要构建一种可以被证明是安全的体制,它能防止一些未知攻击。

安全性是可以证明的思想最初是由Goldwasser和Micali提出,他们将概率引入了密码学,强调多项式时间和可忽略的成功概率等。

随着对可证明安全性的进一步研究,密码学界意识到它不但对密码学的理论影响重大,且对密码学实践也有重要的意义,目前已成为了国内外密码学界最为关注的问题之一,同时可证明安全性也己成为了设计密码协议的公认要求。

可证明安全性理论是一种归约方法,它通过定义适当的安全目标(一般地,加密方案的安全目标是保密性,签名方案的安全目标是不可伪造性),然后在一定的敌手模型下证明方案或协议能够达到既定的安全目标。

第8章可证明安全性理论PPT课件

第8章可证明安全性理论PPT课件
② 积极攻击 积极攻击中最强的攻击是适应性选择消息攻击, 即敌手可以访问一个签名预言机,它能够产生合 法的签名。敌手的目标是产生一个消息的签名, 当然这个消息不能是已经询问过签名预言机的消 息。
定义3 如果一个数字签名体制在适应性选 择消息攻击下能够抵抗存在性伪造,我们 就说该体制是安全的。
3.随机预言模型
在上面给出的多项式安全性的攻击游戏中,选择 密文攻击允许敌手在寻找阶段询问解密盒,但是 在猜测阶段不能询问解密盒。
③ 适应性选择密文攻击
适应性选择密文攻击是一种非常强的攻击 模型。除了目标密文外,敌手可以选择任 何密文对解密盒进行询问。目前普遍认为, 任何新提出的公钥加密算法都应该在适应 性选择密文攻击下达到多项式安全性。
(2)语义安全性
语义安全性与完美安全性类似,只是我们 只允许敌手具有多项式有界的计算能力。 从形式上说,无论敌手在多项式时间内能 从密文中计算出关于明文的什么信息,他 也可以在没有密文的条件下计算出这些信 息。换句话说,拥有密文并不能帮助敌手 找到关于明文的任何有用信息。
(3)多项式安全性
我们很难显示一个加密体制具有语义安全 性,然而,我们却可以比较容易显示一个 加密体制具有多项式安全性。多项式安全 性也称为密文不可区分性。幸运的是,如 果一个加密体制具有多项式安全性,那么 我们可以显示该体制也具有语义安全性。 因此,为了显示一个加密体制是语义安全 的,我们只需要显示该体制是多项式安全 的。
如果没有一个敌手能以大于一半的概率赢得以下游戏,我们就称这个加密体制具有密文不可区分性, 或具有多项式安全性。这个敌手A被告知某个公钥y及其相应的加密函数fy。敌手A进行以下两个阶 段:
寻找阶段:敌手A选择两个明文m0和m1。 猜测阶段:敌手A被告知其中一个明文mb的加密结果,这里的b是保密的。敌手A的目标是以大于一

现代密码学_第三讲 密码学基本知识

现代密码学_第三讲 密码学基本知识

Pr[ p]Pr[c | p] { k : p d ( c )} Pr[ p | c] Pr[k ]Pr[ p d k (c)] Pr[c] { k :cC ( k )}
k
Pr[ p ]

Pr[ k ]
密 钥
Pr[c | p ]
解密算法
{k : p d k ( c )}
Pr( y
j 1
m
j
) 1
16
密码体制组成部分熵的基本关系
设(P,C,K,E,D)是一个密码体制,那么,
H(K|C)=H(K)+H(P)-H(C) 证明:首先,有H(K,P,C)=H(C|K,P)+H(K,P)。因为密钥和明 文唯一决定密文,所以,H(C|K,P)=0。又K和P是统计独立的,
所以,H(K,P)=H(P)+H(K)。 可得, H(K,P,C)=H(K,P)=H(P)+H(K) 。 同样,密钥和密文唯一决定明文,得H(P|K,C)=0,因此有
H(K,P,C)=H(K,C)。 所以,H(K|C)=H(K,C)-H(C) =H(K,P,C)-H(C) =H(K)+H(P)-H(C)
可得, H(K|C)= H(K)+ H(P) - H(C) ≈ 0.46
18
相关性(举例)
猜字母。假设收到便条“I lo_e you”,请问残缺的字母应 该是什么?在英语中符合lo_e结构的所有单词,其部分如下:
lobe lode loge lone lope lore lose love
17
举例说明(续)
根据题意,易得:
假设P={a,b}满足Pr[a]=1/4,Pr[b]=3/4。设 K={k1,k2,k3} 满足Pr[k1]=1/2, Pr[k2]=1/4, Pr[k3]=1/4。设C={1,2,3,4},加密函数定义 为ek1(a)=1, ek1(b)=2, ek2(a)=2, ek2(b)=3, ek3(a)=3, ek3(b)=4。

公钥密码体制的介绍

公钥密码体制的介绍
2012,Hanaoka等人[44]在CT-RSA会议上给出了一个更强的代理重加密安全模型,并给出了一个通用方法用于构造CCA安全的单向代理重加密方案。Sun等人[45]提出了第一个CCA安全的单向广播代理重加密(Broadcast PRE,BPRE),该方案在标准模型下满足自适应选择密文安全。
在AsiaCCS 2009会议上,Weng等人[33]第一次介绍了条件代理重加密(C-PRE)的概念,当且仅当密文满足委托者设置的条件时。
相对于对称体制中的密钥必须保密,非对称密钥体制有一个可公开的公钥为其最大特征,因此也叫公钥密码体制。在非对称密码体制中,不再有加密密钥和解密密钥之分。可以使用公钥加密,而用私钥解密,这多用于保护数据的机密性;也可以用私钥加密而公钥解密,这多用于保护信息的完整性和不可否认性。1976年,公钥密码体制(Public Key Cryptography,PKC)的概念被Diffie和Hellman[2]首次提出。PKC在整个密码学发展历史中具有里程碑式的意义。随后出现了一些经典的公钥密码体制,比如RSA[3]Rabin算法[4]ElGamal[5]密码体制和椭圆曲线密码体制[6][7][8]等。公钥密码体制的安全性依赖于不同的计算问题,其中RSA密码体制基于大整数分解的困难性,而ElGamal密码体制则基于离散对数问题的困难性。
第三阶段:伴随着相关理论的完善,以及由集成电路和因特网推动的信息化工业浪潮,密码学进入了一个全新爆发的时代:研究文献和成果层出不穷,研究的方向也不断拓展,并成为了一个数学、计算机科学、通信工程学等各学科密切相关的交叉学科,同时各种密码产品也走进了寻常百姓家,从原来局限的特殊领域进入了人民群众的生产、生活之中。
数据接收者需要先利用其自身私钥解密出对称密钥,接着再使用得到的对称密钥解密出共享数据。

2022年职业考证-软考-信息安全工程师考试全真模拟易错、难点剖析AB卷(带答案)试题号:87

2022年职业考证-软考-信息安全工程师考试全真模拟易错、难点剖析AB卷(带答案)试题号:87

2022年职业考证-软考-信息安全工程师考试全真模拟易错、难点剖析AB卷(带答案)一.综合题(共15题)1.单选题智能卡的片内操作系统COS一般由通信管理模块、安全管理模块、应用管理模块和文件管理模块四个部分组成。

其中数据单元或记录的存储属于()。

问题1选项A.通信管理模块B.安全管理模块C.应用管理模块D.文件管理模块【答案】D【解析】本题考查智能卡片内操作系统COS。

通信管理模块:该模块是COS与外界的半双工通信通道,接收读写器命令,并对接收信息进行正确性判断,有误则请求重发或添加标记,无误则将命令发送至安全管理模块。

安全管理模块:安全机制可按对象分为针对动态信息的安全性传输控制和针对卡内静态信息的内部安全控制管理两部分。

安全管理模块是COS极重要组成部分,该模块提供高安全性保证。

应用管理模块:该模块主要是对接受命令进行可执行性判断。

因智能卡的特性,它常常融于安全管理和文件管理之中。

文件管理模块:COS通过给每种应用建立对应文件的办法,实现对各项应用的存储及管理。

用户通常不能创建或删除文件,但可酌情修改文件内容,对文件的记录和数据单元进行增加或删除。

官方教材(第一版)P504 。

故本题选D。

点播:智能卡是一种带有存储器和微处理器的集成电路卡,能够安全存储认证信息,并具有一定的计算能力。

智能卡的片内操作系统(COS)一般由四部分组成:通信管理模块和安全管理模块、应用管理模块和文件管理模块。

2.单选题网络系统中针对海量数据的加密,通常不采用()方式。

问题1选项A.会话加密B.公钥加密C.链路加密D.端对端加密【答案】B【解析】本题考查公钥体制相关知识。

公钥加密加密算法复杂且加解密效率低,需要较大的计算量,一般只适用于少量数据的加密。

故本题选B。

3.单选题基于MD4和MD5设计的S/Key口令是一种一次性口令生成方案,它可以对访问者的身份与设备进行综合验证,该方案可以对抗()。

问题1选项A.网络钓鱼B.数学分析攻击C.重放攻击D.穷举攻击【答案】C【解析】本题考查Hash算法中的MD4、MD5算法。

互联网安全密码学中的可证明安全性理论

互联网安全密码学中的可证明安全性理论

互联网安全密码学中的可证明安全性理论互联网的快速发展和普及给我们的生活带来了巨大的便利与机遇,但与此同时,也面临着各种安全风险。

密码学作为一门研究信息安全的学科,以其独特的方式帮助我们保障数据的机密性和完整性。

而在密码学中的一个重要概念就是可证明安全性理论。

本文将深入探讨互联网安全密码学中可证明安全性理论的基本概念、应用及其重要性。

一、可证明安全性理论的基本概念可证明安全性理论是密码学中的一个重要分支,其目标是通过数学方法来证明密码系统和协议的安全性。

可证明安全性理论主要涉及到密码学的基础问题,如公钥密码学、数字签名和认证协议等。

在可证明安全性理论中,安全性是通过构造攻击者模型,并通过纳什均衡理论、信息论、生成函数等数学工具来证明密码系统的安全性。

这种证明是建立在严格的数学原理和算法推导上的,因此具有较高的可靠性。

二、可证明安全性理论的应用可证明安全性理论在互联网安全领域有着广泛的应用。

下面将介绍几个典型的应用案例。

1. 公钥密码学公钥密码学是一种基于不对称加密算法的密码系统,可证明安全性理论帮助我们证明了一些公钥加密算法的安全性,如RSA算法、椭圆曲线密码算法等。

这些算法的安全性是建立在数学难题的困难性上的,攻击者只有在解决这些数学难题的前提下才能破解密码。

2. 数字签名数字签名是保证数据完整性和身份认证的一种方式,可证明安全性理论提供了数学上的证明,证明数字签名算法是在合理的安全假设下是不可伪造的。

常用的数字签名算法有RSA数字签名算法和DSA数字签名算法。

3. 安全协议在互联网通信中,各种通信协议在保证安全性方面起着重要作用。

可证明安全性理论可以用来分析和证明各种安全协议的安全性,如安全的密钥交换协议、零知识证明协议等。

三、可证明安全性理论的重要性可证明安全性理论在互联网安全领域的重要性不可忽视。

以下是几个重要的原因。

1. 提供安全性保障可证明安全性理论通过严谨的数学证明,确保了密码系统和协议的安全性。

信息安全考试题库(附答案)

信息安全考试题库(附答案)

考试内容: 信息安全的要素、威胁、Hash函数的相关概念、计算机病毒特性及理解方面的要点1,信息安全的基本概念(安全的定义信息技术安全概述网络攻击的形式等 )2,信息保密技术(古典加密对称加密非对称加密 RAS划重点两种密码体制和其代表方法)3,信息认证技术(信息摘要函数,数字签名,身份认证技术 )4,密钥管理技术(概念基础密钥管理知识密钥管理系统)5,访问控制技术(模型、基本要素、相关要素实现机制) 访问级别审计之类的不考6,网络攻击和防范(主要网络攻击技术:计算机病毒技术) 防火墙之类的不考考试形式:闭卷考试1,判断(讲过的知识点的灵活运用)10分2,填空(关键知识点)20分3,简答(基本,核心的部分言简意赅的说清楚就好)40分4,计算(要求详细过程,主要是实验内容对实验之外的内容也要关注)30分信息保密注意实验和平时作业习题:Q1、常见信息安全威胁(至少列出十种)信息破坏、破坏信息完整性、拒绝服务、非法使用(非授权访问)、窃听、业务流分析、假冒、旁路控制、授权侵犯、特洛伊木马、陷阱门、抵赖、重放、计算机病毒、人员不慎、媒体废弃、物理入侵、窃取、业务欺骗Q2、衡量密码体制安全性的方法?1、计算安全性:度量破译密码体制所需计算上的努力2、可证明安全性:通过规约的方式为密码安全性提供证据,如果使用某种具体方法破译一个密码体制,就有可能有效的解决一个公认困难的数学问题类比: NP完全问题的规约3 无条件安全性:假设攻击者具有无限的计算资源和计算能力时,密码体制仍然安全Q3、以p=5,q=7为例,简述RSA算法的加密和解密过程 // 自选密钥Eg:n=p*q=35f(n)=(p-1)(q-1)=24若gcd(e,f(n))=1 则取 e=5由d=e-1modf(n) 可取d=5加密:若明文为Z,m值为26,则m e=265=11881376,密文c=m e mod n=31 解密:密文为31,则c d=315=28629151 解密m=c d mod n=26 即ZQ4:满足什么条件的Hash函数是安全的?如果对于原像问题、第二原像问题、碰撞问题这三个问题都是难解的,则认为该Hash函数是安全的。

第九章 可证明安全性理论

第九章  可证明安全性理论


定义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问题。

《安全学原理》课程笔记

《安全学原理》课程笔记

《安全学原理》课程笔记第一章绪论1.1 安全问题的产生和认识过程1. 安全问题的起源- 早期人类社会:人类面临的主要安全问题是自然灾害和野兽的威胁。

随着火的利用和工具的发明,人类开始有能力抵御这些威胁。

- 农业社会:农业生产带来了新的安全问题,如农作物的病虫害、农业机械的伤害等。

- 工业社会:工业革命带来了生产力的巨大提升,但同时也带来了工业事故、职业病的增加。

2. 安全问题的认识过程- 经验阶段:早期人类对安全的认识主要基于经验,通过事故发生后总结教训,形成一些简单的安全规则。

- 科学阶段:19世纪末至20世纪初,随着科学技术的进步,人们开始运用科学方法研究事故原因,提出预防措施。

- 系统管理阶段:20世纪中后期,安全科学逐渐形成,人们开始从系统管理的角度预防和控制事故。

1.2 安全的概念1. 安全的定义- 安全是指在一定的时间和空间范围内,通过合理的措施,保障人的生命、财产、环境不受损害或威胁的状态。

2. 安全与危险的关系- 安全与危险是相互对立的概念。

危险是指可能导致人员伤害、财产损失、环境破坏的因素或状态。

- 安全工作的目标是识别和控制危险,降低事故发生的概率和损失。

1.3 安全的基本特征1. 预防性- 安全工作必须具有前瞻性,通过风险评估和预防措施,提前消除或减少潜在的危险。

2. 全局性- 安全问题涉及社会生活的各个方面,包括生产、生活、环境等,需要全方位考虑。

3. 系统性- 安全工作是一个系统工程,涉及政策、管理、技术、教育等多个环节,需要系统化运作。

4. 持续性- 安全工作不是一次性的活动,而是一个持续的过程,需要不断检查、评估和改进。

1.4 安全科学及其发展1.4.1 安全科学的概念与研究对象1. 安全科学的概念- 安全科学是一门跨学科的综合性科学,它研究人与环境、机器、物质等相互作用中的安全与健康问题。

2. 安全科学的研究对象- 事故现象:研究事故的发生机理、规律和影响因素。

- 风险管理:研究如何识别、评估和控制风险。

信息安全综述_沈昌祥

信息安全综述_沈昌祥

中国科学 E 辑: 信息科学 2007年 第37卷 第2期: 129~150收稿日期: 2006-12-19; 接受日期: 2007-01-04国家自然科学基金资助项目(批准号: 60373087, 60673071, 60572155)* 本文的引言和可信计算部分由张焕国撰写, 密码学部分由曹珍富撰写, 网络安全部分由冯登国撰写, 信息隐藏部分由黄继武撰写, 并由沈昌祥定稿.** 联系人, E-mail: liss@《中国科学》杂志社SCIENCE IN CHINA PRESS 信息安全综述*沈昌祥1 张焕国2** 冯登国3 曹珍富4 黄继武5(1. 海军计算技术研究所, 北京100841; 2. 武汉大学计算机学院, 武汉430072; 3. 中国科学院软件研究所, 北京100080; 4. 上海交通大学计算机学院, 上海200031; 5. 中山大学信息技术学院, 广州510275)摘要 21世纪是信息的时代. 信息成为一种重要的战略资源, 信息的获取、处理和安全保障能力成为一个国家综合国力的重要组成部分. 信息安全事关国家安全、事关社会稳定. 因此, 必须采取措施确保我国的信息安全. 近年来, 信息安全领域的发展十分迅速, 取得了许多新的重要成果. 信息安全理论与技术的内容十分广泛, 但由于篇幅所限, 这里主要介绍密码学、可信计算、网络安全和信息隐藏等方面的研究和发展.关键词 信息安全 密码学 可信计算 网络安全 信息隐藏1 引言21世纪是信息的时代. 一方面, 信息技术和产业高速发展, 呈现出空前繁荣的景象. 另一方面, 危害信息安全的事件不断发生, 形势是严峻的. 信息安全事关国家安全和社会稳定, 因此, 必须采取措施确保我国的信息安全[1].信息安全主要包括以下4个侧面: 信息设备安全、数据安全、内容安全和行为安全. 信息系统硬件结构的安全和操作系统的安全是信息系统安全的基础, 密码、网络安全等技术是关键技术. 只有从信息系统的硬件和软件的底层采取安全措施, 从整体上采取措施, 才能比较有效地确保信息系统的安全[2].为什么信息安全的问题如此严重呢?从技术角度来看, 主要有以下一些原因:1. 微机的安全结构过于简单. 20世纪70年代, 由于集成电路技术的发展, 产生了微机. 微机被称为个人计算机(personal computer). 由于是个人使用的计算机, 不是公用的计算机, 一是为了降低成本, 二是认为许多安全机制不再必要, 所以就去掉了许多成熟的安全机制, 如存储器的隔离保护机制、程序安全保护机制等. 于是, 程序的执行可以不经过认证, 程序可以被随意修改, 系统区域的数据可以随意修改. 这样, 病毒、蠕虫、木马等恶意程序就乘机泛滥了[3].130中国科学E辑信息科学第37卷2. 信息技术的发展使微机又成为公用计算机. 在应用上, 微机已不再是单纯的个人计算机, 而变成了办公室或家庭的公用计算机. 可是由于微机去掉了许多成熟的安全机制, 面对现在的公用环境, 微机的安全防御能力就显得弱了.3. 网络把计算机变成网络中的一个组成部分. 网络的发展把计算机变成网络中的一个组成部分, 在连接上突破了机房的地理隔离, 信息的交互扩大到了整个网络. 由于Internet网络缺少足够的安全设计, 于是置于网络世界中的计算机, 便危机四伏. 难怪人们说: “如果上网, 你所受到的安全威胁将增大几倍. 而如果不上网, 则你所得到的服务将减少几倍”. 又由于网络协议的复杂性, 使得网络协议的安全证明和验证十分困难. 目前人们只能证明和验证一些简单的网络协议, 所以, 无法避免在网络协议中存在安全缺陷. 反言之, 即使网络协议是正确的, 也不能确保百分之百安全. 正确的协议也可被利用进行攻击. 攻击者完全可以根据哲学上“量变到质变”的原理, 发起大量的正常访问, 耗尽计算机或网络的资源, 从而使计算机瘫痪. 著名的DoS攻击就是明证[4].4. 操作系统存在安全缺陷. 操作系统是计算机最主要的系统软件, 是信息安全的基础之一. 然而, 因为操作系统太庞大(如, Windows 操作系统就有上千万行程序), 致使操作系统都不可能做到完全正确. 操作系统的缺陷所造成的功能故障, 往往可以忽略. 如, 当Windows出现死机时, 人们按一下复位键重新启动就可以了. 但是, 如果操作系统的缺陷被攻击者利用, 则造成的安全后果却不能忽略[5].2密码学的研究与发展信息安全离不开密码学. 作为信息安全的关键技术, 密码学可以提供信息的保密性、完整性、可用性以及抗抵赖性. 密码学主要由密码编码学和密码分析学两部分组成, 其中密码编码学的主要任务是研究对信息进行编码以实现信息隐蔽, 而密码分析学主要研究通过密文获取对应的明文信息. 密码编码学与密码分析学相互对立, 又相互依存, 从而推动了密码学自身的快速发展[6,7]. 当前, 密码学的研究主要是基于数学的密码理论与技术. 现代密码学的研究可大致分为3类: Hash函数、对称密码(又称为私钥密码)和非对称密钥(又称为公钥密码)[8,9]. 下面, 我们将分别介绍这3类密码体制的研究现状和发展趋势.2.1 Hash函数的研究密码学Hash函数(也称为杂凑函数)将任意长的输入消息串变化成为固定长度的输出串, 这个输出串称为该消息的Hash值(也称为杂凑值). 这里, 我们设y=h(x)为一个Hash函数, 它需要满足以下条件: (1) 输入的x的长度是任意的, 输出的y的长度是固定的; (2) 对于给定的输入x, 计算输出的Hash值y容易; 反过来, 对于给定的Hash值y, 找出输入x, 使得y=h(x)在计算上不可行; (3)找出两个不同的输入x和x′, 即x ≠x′, 使得h(x) = h(x′)在计算上不可行; 给定一个输入x, 找出另一个不同的输入x′, 即x ≠x′, 使得h(x)= h(x′)在计算上不可行.Hash函数的主要用途在于提供数据的完整性校验和提高数字签名的有效性, 目前国际上已提出了许多Hash函数的设计方案. 这些Hash函数的构造方法主要可分为以下3类: (1) 基于某些数学难题如整数分解、离散对数问题的Hash函数设计; (2) 基于某些对称密码体制如DES等的Hash函数设计; (3) 不基于任何假设和密码体制直接构造的Hash函数[8]. 其中第3类Hash函数有著名的SHA-1, SHA-256, SHA-384, SHA-512, MD4, MD5, RIPEMD和HA V AL 等等.第2期沈昌祥等:信息安全综述131在2004年的美国密码会议上, 山东大学王小云教授发表的题为《对MD4, MD5, HA-V AL-128, RIPEMD等Hash函数的碰撞攻击》的学术报告是密码学Hash函数研究方向上的一个里程碑[10]. 这份报告对一些国际上通行的Hash函数给出了快速寻找碰撞攻击的方法. 之后, 在2005年欧洲密码和美国密码会议上, 王小云进一步发表了他们对Hash函数研究的新进展[11—14]. 今天, 研究和设计更安全的Hash函数已经成为国内外密码学家的热点课题.2.2私钥密码的研究对于一个密码体制来讲, 如果使用的加密密钥和解密密钥相同, 或者虽然不相同, 但是可以由其中的任意一个很容易地推导出另外一个, 那么这个密码体制称为单密钥的对称密码, 又称为私钥密码.分组密码是一种典型的私钥密码. 如, 美国数据加密标准DES, IDEA算法, Skipjack算法, Rijndael算法等等. 分组密码设计的关键在于如何寻找一种算法, 使得在密钥的控制下可以从一个足够大且足够“好”的置换子集合中, 简单而又快速地挑选出一个置换. 根据一个好的分组密码应当是既难破译又容易实现的, 这需要满足以下两个条件: (1) 加密函数E k(.)和解密函数D k(.)要求容易计算; (2) 如果y为x经过密钥k作用生成的密文, 即y= E k(x), 那么从方程y= E k(x)或者x= D k(y)中求出密钥k是计算上不可行的.随着分组密码设计的研究不断深入, 分组密码的分析技术也得到了快速的发展. 到目前为止, 已经有多种分组密码分析技术被讨论. 这些分析技术主要包括强力攻击、差分密码分析、差分密码分析的推广、线性密码分析、线性密码分析的推广、差分-线性密码分析等等. 在国际上, 美国国家标准技术研究所在2001年11月26日正式公布了新的数据加密标准(AES)[15]. 在美国之后欧洲启动了NESSIE(new European schemes for signatures, integrity, and encryption)计划和ECRYPT (European network of excellence for cryptology)计划, 制定了一系列的密码算法, 促进了密码的研究和应用. 在国内, 国家“八六三”计划也将制定密码的标准化问题列入了议程.目前, 分组密码的重点研究方向为新型密码的设计、密码体制的软件优化、硬件实现和专用密码芯片的设计等.张焕国、覃中平将密码学与演化计算结合起来, 借鉴生物进化的思想, 提出了演化密码的概念和用演化计算设计密码的方法. 并在分组密码S盒、Bent函数、Hash函数、随机序列的演化设计方面进行了有意义的研究[16—18].除分组密码之外, 流密码也是一种重要的私钥密码. “一次一密”密码在理论上是绝对安全的这一结论使人们感到, 如果能以某种方式仿效“一次一密”密码, 则将得到保密性很高的密码. 长期以来, 人们以流密码仿效“一次一密”密码, 从而促进了流密码的研究和发展. 与分组密码相比, 流密码的理论与技术相对比较成熟. 流密码是世界各国重要领域的主流密码, 对信息安全发挥了极大的作用. 在流密码的设计方面, 除了移位寄存器序列、非线性组合序列、非线性过滤序列和钟控序列等方法外, 近年来人们将混沌序列引入流密码, 并取得了可喜的研究成果[19]. 国内的丁存生、肖国镇等教授在流密码研究领域做出了突出的贡献[20].2.3公钥密码的研究对于一个密码体制来讲, 如果加密和解密的能力是分开的, 即加密和解密分别使用两个132中国科学E辑信息科学第37卷不同的密钥实现, 并且不可能由加密密钥(公钥)推导出对应的解密密钥(私钥), 那么这个密码体制称为非对称密码, 又称为公钥密码.自从1976年公钥密码的思想提出以来[21], 国内外密码学家设计了许多优秀的公钥密码体制, 其中著名的体制包括: 1978年Rivest等提出的RSA公钥体制[22]; 1978年Merkle与Hellman 提出的基于背包问题的MH背包体制[23], 1979年Rabin提出的Rabin体制[24], 1985年ElGamal 提出的ElGamal公钥体制[25], 1987年Koblitz和Miller提出椭圆曲线密码公钥体制[26], 以及基于代理编码理论的MeEliece体制[27]和基于有限自动机理论的公钥密码体制[28]等等. 公钥密码除了公钥密码体制之外, 还包括数字签名技术[29]. 著名的数字签名有RSA签名、Rabin签名、ElGamal签名、Schnorr签名[30]和美国国家数字签名标准DSS[31]. 由于数字签名可以提供信息的鉴别性、完整性和不可否认性, 因此, 随着实际应用的需要, 特殊的数字签名也被广泛的提出. 主要包括: 代理签名[32]、盲签名[33]、可验证的加密签名[34]、不可否认签名[35]、前向安全签名[36]、密钥隔离签名[37]、在线/离线签名[38]、门限签名[39]、聚合签名[34]、环签名[40]、指定验证者签名[41]、确认者签名[42], 以及它们各种变型签名等等[43].公钥密码虽然具有许多优点, 但是公钥密码的公钥认证和证书管理相当复杂. 例如目前流行的基于目录的公钥认证框架X.509证书框架的建立和维护异常复杂, 且成本昂贵[44]. 1984年, Shamir为了简化证书管理, 绕开了基于目录的公钥认证框架的束缚, 建设性地提出了基于身份的公钥密码系统的思想[45]. 在这种公钥密码体制的密钥生成过程中, 公钥直接为实体的身份信息, 例如唯一的身份证号码、电子邮件地址等等, 因此基于身份的公钥密码体制可以很自然地解决公钥与实体的绑定问题. 在Shamir提出基于身份的签名方案后, 基于身份的加密方案却在很长时间内没有被提出. 直到2001年, Boneh和Franklin基于双线性配对技术提出第一个实用的基于身份的公钥密码体制[46]. 此后, 双线性配对技术成为构造基于身份密码体制和基于身份数字签名方案的主流, 出现了许多优秀的成果[47].虽然基于身份的密码简化了CA公钥证书的管理, 但是由于它需要一个可信的私钥生成器(PKG)为所有用户生成私钥, 一旦PKG的安全性出现问题, 那么整个基于身份的密码系统将会处于瘫痪状态. 因此, 研究PKG的安全性以解决密钥托管问题是基于身份密码中的一个亟待解决的问题. 目前, 为了保证PKG的安全性, 通过门限密码技术提出了分布式PKG密钥生成[48]; 为了解决密钥托管问题, 无证书的密码体制也在2003年正式提了出来, 并在近几年得到了广泛的研究[49]. 南湘浩教授提出的组合公钥(CPK)方案[50]具有一定的优势, 已经得到广泛的关注.公钥密码学是一种复杂的系统, 其工作环境充满了敌意, 很容易遭受来自外部、内部的各种攻击. 然而在公钥密码的初期, 人们对于各种攻击方式缺乏理性的认识, 使得人们对于公钥密码体制的安全性的认识受到了很大的局限. 例如, 人们最初考虑的攻击都带有典型的“教科书式”的形式. 之后, 人们逐渐意识到了通过形式化的方法去设计和分析公钥密码的重要性. 当前, 研究可证安全的公钥密码方案已经成为现代密码学的一个主流课题[7, 9].2.4可证明安全的研究可证明安全性(主要从计算复杂性理论的角度来考虑密码方案的安全性)是近年来公钥密码学领域里的一个研究热点. 简单地说, 可证明安全其实是一种“归约”的方法, 它首先确定密码方案所需要达到的安全目标, 然后根据攻击者的能力去定义一个攻击者模型, 并指出这个第2期沈昌祥等:信息安全综述133攻击者模型与密码方案安全性之间的归约关系. 比如某个密码方案是基于RSA问题假设的, 那么可以通过攻击者模型去分析方案的安全性: 如果攻击者可以在多项式时间里以一个不可忽略的概率去攻击密码方案, 那么通过归约推导, 可以构造出另外一个攻击者以另外一个不可忽略的概率去解决RSA问题. 由于RSA问题在选取一定安全参数条件下是安全的, 因此我们可以从归约矛盾中反推出这个密码方案是安全的. 可证明安全性目前主要涉及公钥密码体制、数字签名以及密钥协商协议三方面.对于公钥密码体制来讲, 攻击者模型中攻击者的攻击目标主要有以下几种: 我们最容易想到的是公钥密码体制的单向性安全, 即仅知道一些公开信息, 攻击者不能对一个给定的密文c恢复其对应的明文m. 然而在很多应用场合, 仅仅考虑密码体制的单向性是不够的, 我们需要对密码体制的安全性提出更高的要求. 1982年Goldwasser和Micali在这方面做出了开创性工作, 将概率引入了密码学, 提出了“语义安全”的定义[51]. 语义安全又称多项式时间不可区分安全性, 它主要基于以下场景: 考虑一个二阶段的攻击者A=(A1, A2), 刚开始的时候A1在明文空间里挑选出长度相等的两个消息m0和m1. 之后, 通过随机抛币得到比特b∈{0,1}, 加密其中的消息m b, 并将加密的密文c交于A2. A2猜测密文c所对应的明文消息并返回比特b的猜测结果b′. 通过定义Adv(A)=2Pr[b′=b]−1为任何多项式时间攻击者A的猜测优势, 如果Adv(A)是可忽略的, 那么密码体制为语义安全的. 除语义安全之外, 1991年Dolev等提出另外一个安全性概念——非延展安全性[52]. 对于这种安全性的攻击是指, 当给定一个密文c时, 攻击者试图构造出一个新的密文c′使得密文c和c′所对应的明文m和m′是意义相关的. 非延展安全性无疑是重要的. 然而, 由于非延展问题的计算本质, 对它们进行形式化处理非常困难. 另外, 在攻击者模型中, 根据攻击者在攻击过程中所获取的不同有用信息, 攻击者的攻击方式可分为选择明文攻击、有效性检验攻击、明文检验攻击、选择密文攻击等[53].对于数字签名方案来讲, 在攻击者模型中, 攻击者根据实际应用的场合主要考虑3种攻击目标: (1)完全攻击. 攻击者经过攻击之后可以获得签名者的私钥, 显然, 这种攻击最为严重, 危害最大; (2)通用性伪造. 攻击者经过攻击之后可以构造出一个有效的算法以很高的成功概率对消息进行伪造签名; (3)存在性伪造. 攻击者经过攻击之后可以提供一个新的消息-签名对[54]. 存在性伪造所对应的安全级别称为存在性不可伪造. 虽然在大多数场合下, 由于输出的消息很有可能是没有任何意义的, 存在性伪造似乎看起来并不显得那么危险. 然而, 一个数字签名方案如果是存在性可以伪造的, 那么它本身就不可以保证签名者的真实身份. 2002年, 更高要求的强存在性不可伪造概念被提出[55]. 另一方面, 在攻击者模型中, 对于一个攻击者来讲, 他可以利用尽可能多的信息资源去进行签名伪造, 因此, 根据攻击者所掌握的信息不同, 攻击者的攻击方式有: 已知公钥攻击、已知消息攻击和适应性选择消息攻击[53].对于密钥协商协议来讲, 攻击者模型中定义的攻击者可以通过预先定义的一些预言机询问以控制所有的通信, 其中Execute预言机询问用于建模被动攻击; Send预言机询问用于建模主动攻击; Reveal预言机询问建模已知会话密钥攻击; Corrupt预言机询问建模前向安全和密钥泄露伪造攻击. 最后, 通过Test询问建模密码协商的语义安全性. 协议的安全性模型BR93最初由Bellare和Rogaway在1993年提出[56]. 随后, 其他的安全性模型, 包括BR95[57], BPR2000[58]和CK2001[59]等. 在亚洲密码2005会议上, Choo对这些模型之间的关系进行了深入的研究[60]. 关于可证安全的协议可参见文献[61].在当前公钥密码学可证安全性研究领域里, 最为流行的证明方法为在随机预言机模型下134中国科学E辑信息科学第37卷的安全性证明. 随机预言机模型是由Bellare和Rogaway[62]在1993年基于Fiat和Shamir建议[63]的基础上提出的, 它是一种非标准化的计算模型. 在这个模型中, Hash函数作为随机函数, 对于每一个新的查询, 将得到一个均匀随机的应答. 随机预言机模型在构建可证安全密码方案时, 系统中的各个角色共享随机预言机完成操作. 当体制设计完成之后, 再用实际的Hash 函数将此随机预言机替换. 虽然随机预言机模型下的安全性证明非常有效, 但是随机预言模型证明的有效性还存在争议. 比如, 1998年Canetti等[64]给出了一个在随机预言机模型下证明是安全的数字签名方案, 但在随机预言机的实例中却并不安全, 因此, 当前的可证安全性证明研究一方面继续基于随机预言模型进行证明, 另一方面也追求在不基于随机预言机条件下的标准模型下的证明. 1998年, Cramer和Shoup[65]设计了第一个在标准模型下可证明安全的实际有效的公钥密码体制. 2004年开始, 其他基于双线性配对技术在标准模型下可证安全的公钥密码体制[66,67]被不断地深入研究与发展.除了现在广泛使用的基于数学的密码外, 人们还向非数学密码领域进行探索, 如量子密码[68]和DNA密码[69]等. 目前国内外在量子密钥分配实验方面的通信距离已突破100公里.2006年我国政府公布了自己的商用密码算法, 这是我国密码发展史上的一件大事. 这必将促进我国商用密码科学研究和应用的繁荣.3可信计算的研究与发展在信息安全的实践中, 人们逐渐认识到, 大多数安全隐患来自于微机终端, 因此必须确保源头微机的信息安全. 而这必须从微机的芯片、硬件结构和操作系统等方面综合采取措施. 由此产生出可信计算的基本思想.3.1可信计算的发展3.1.1 可信计算的出现(1) 彩虹系列. 1983年美国国防部制定了世界上第一个《可信计算机系统评价准则》TCSEC (trusted computer system evaluation criteria)[70]. 在TCSEC中第一次提出可信计算机(trusted computer)和可信计算基TCB (trusted computing base)的概念, 并把TCB作为系统安全的基础.1984年美国国防部在推出了TCSEC之后, 作为补充又相继推出了可信数据库解释TDI (trusted database interpretation)[71]和可信网络解释TNI (trusted network interpretation)[72].这些文件形成了彩虹系列信息系统安全指导文件.(2) 彩虹系列的意义和局限. 在彩虹系列中第一次提出可信计算机和可信计算基的概念. 多年来彩虹系列一直成为评价计算机系统安全的主要准则, 至今对计算机系统安全有重要的指导意义.然而由于历史的原因, 随着信息科学技术的发展, 彩虹系列也呈现出如下的局限性:(a) 主要强调了信息的秘密性, 而对完整性、真实性考虑较少;(b) 强调了系统安全性的评价, 却没有给出达到这种安全性的系统结构和技术路线.3.1.2 可信计算的高潮(1) TCPA和TCG的出现. 1999年, IBM, HP, Intel和微软等著名IT企业发起成立了可信计第2期沈昌祥等:信息安全综述135算平台联盟TCPA (trusted computing platform alliance). TCPA的成立, 标志着可信计算高潮阶段的出现. 2003年TCPA改组为可信计算组织TCG (trusted computing group), 标志着可信计算技术和应用领域的进一步扩大. TCPA和TCG的出现形成了可信计算的新高潮. TCPA和TCG 已经制定了关于可信计算平台、可信存储和可信网络连接等一系列技术规范[73].(2) TCG可信计算的意义.(a) 首次提出可信计算机平台的概念, 并把这一概念具体化到服务器、微机、PDA和手机, 而且具体给出了可信计算平台的体系结构和技术路线.(b) 不仅考虑信息的秘密性, 更强调了信息的真实性和完整性.(c)更加产业化和更具广泛性. 目前国际上(包括中国)已有200多家IT行业著名公司加入了TCG. IBM, HP, DELL, NEC, GATEWAY, TOSHIBA, FUJITSU, SONY等公司都研制出自己的可信PC机(台式机或笔记本机). ATMEL, INFINEON, BROADCOM, NATIONAL SEMI-CONDUCTOR等公司都研制出自己的可信平台模块(TPM)芯片.(3) 欧洲的可信计算. 欧洲于2006年1月启动了名为“开放式可信计算(open trusted computing)”的可信计算研究计划[74],有23个科研机构和工业组织参加研究.(4) 可信计算的其他流派. 目前, 除了TCG的可信计算外, 还有另外两个可信计算流派.①微软流派. 尽管微软是TCG的发起单位, 但是微软却又独立提出了代号为Palladium 的可信计算计划[75]. 微软用的是Trustworthy computing, 而没有使用Trusted computing. Intel 对微软的Palladium计划给予支持, 宣布了支持Palladium计划的LaGrande硬件技术, 并计划推出采用LaGrande技术的新一代奔腾处理器[76]. 后来, 微软又将这一计划改名为NGSCB (next generation secure computing base).微软将推出新一代操作系统VISTA. VISTA支持可信计算机制, 这将掀起可信计算的新高潮.②容错流派. 容错计算是计算机领域中一个重要的分支. 1995年法国Jean-Claude Laprie 和美国Algirdas Avizienis 提出可信计算(dependable computing)的概念. 容错专家们自1999年将容错计算会议改名为可信计算会议(PRDC)后, 便致力于可信计算的研究. 他们的可信计算更强调计算系统的可靠性、可用性和可维性, 而且强调可信的可论证性[77].我们认为在可信计算发展过程中, 不同的团体和学者从不同的角度来研究问题, 是很正常的事情, 是学术研究繁荣的表现. 随着可信计算技术的发展, 不同学派将会逐渐融合趋同.3.2中国的可信计算事业我国在可信计算领域起步不晚, 水平不低, 成果可喜[78].2000年6月武汉瑞达公司和武汉大学合作, 开始研制安全计算机, 2004年10月通过国家密码管理局主持的技术鉴定. 鉴定指出: 这“是我国第一款自主研制的可信计算平台”. 它在系统结构和主要技术路线方面与TCG的规范是一致的, 在有些方面有所创新, 在有些方面也有差异. 这一成果获得2006年国家密码科技进步二等奖. 这一产品被国家科技部等四部委联合认定为“国家级重点新产品”. 目前, 已在我国政府、银行、军队等领域得到实际应用[79,80].2004年6月在武汉召开了中国首届TCP论坛. 2004年10月在解放军密码管理委员会办公室和中国计算机学会容错专业委员会的支持下, 在武汉大学召开了第一届中国可信计算与信息安全学术会议. 2006年10月, 在河北大学召开了第二届中国可信计算与信息安全学术会议.。

1.4-香农理论简介

1.4-香农理论简介

第四节Shannon理论简介密码体制安全性标准计算安全性(computational security) 可证明安全性(provable security)无条件安全性(unconditional security)计算安全性这种度量涉及到攻击密码体制所作的计算上的努力。

如果使用最好的算法攻破一个密码体制需要至少N次操作,这里的N是一个特定的非常大的数字,我们可以定义这个密码体制是计算安全的。

可证明安全性另外一种途径是将密码体制的安全性归结为某个经过深入研究的数学难题。

例如,可以证明这样一类命题:如果给定的整数是不可分解的,那么给定的密码体制是不可破解的。

我们称这种类型的密码体制是可证明安全的。

注: 这种途径只是说明了安全性和另一个问题是相关的,并没有完全证明是安全的。

无条件安全性这种度量考虑的是对攻击者的计算量没有限制的时候的安全性。

即使提供了无穷的计算资源,也是无法被攻破的,我们定义这种密码体制是无条件安全的。

问题:计算安全性、可证明安全性、无条件安全性中哪种安全标准更实用?在上面三种安全标准的判定中,只有无条件安全性和信息论有关,即通过信息论来证明传递过程中无信息泄露。

下面来建立密码学中的信息论模型。

密码学中的信息论模型密码系统的保密性能及破译一个密码系统都和信息论密切相关。

我们知道,信息的传输是由通信系统完成的,而信息的保密则是由密码系统来完成。

在通信过程中发送方发出的信息在信道中进行传输时往往受到各种干扰,使m出错而变成m′,一般m′≠m。

合法接收者要从m′恢复m,必须识别m′中哪些信息是出错的。

为此他要求发送方对m进行适当编码,即按一定的规则增加部分码字,使合法接收者通过译码器把m′中的错误纠正过来。

对消息m进行加密的作用类似于对m进行干扰,密文c相当于被干扰的信息m′,破译者相当于在有干扰的信道下的接收者, 他要设法去掉这种“干扰”恢复原明文。

密码系统图示信源M加密器解密器信宿M信道m c c m密钥k破译者c这样便出现了如下问题: 密码设计者在设计密码体制时, 要尽可能地使破译者从密文c中少获得原明文信息, 而破译者则要从密文c中尽可能多地获得原明文信息。

最新网络安全基础教程课后答案

最新网络安全基础教程课后答案

1.分析计算机及网络系统中各自存在的主要安全威胁和隐患答:安全威胁:计算机病毒,木马,恶意软件(计算家面临的主要威胁)网络系统面临的主要威胁:系统漏洞,人为因素隐患:1.黑客攻击带来的机密信息泄漏2.由于病毒带来的损坏或损失3.重要邮件或文件的非法访问4.未经关键部门授权的非法访问或者敏感信息泄漏5.备份数据或者存储媒介的损坏和丢失等*什么是P2DR和PDRR?P3DR是一种常用的网络安全模型,也是一种动态的自适应网络安全模型基本描述为:安全=风险分析+执行策略+系统实施+漏洞检测+实施响应3.什么是网络边界,网络边界作用是什么?网络边界是指在单一的安全策略下通过网络链接起来的计算机及其网络设备的集合作用:是防止外来攻击,也可以用来对付某些恶意的内部攻击4.请阐述对称密码技术和非对称密码技术的基本原理对称密码技术的加密和解密的双方拥有相同的密钥,采用的解密算法是加密算法的逆运算。

非对称加密和解密的双方拥有不同的密钥,使用的是数学函数,采用公开密钥密码的思想。

5.请阐述密钥分配的基本方案1.集中式密钥分配方案:是指有密钥分配中心组成层次结构负责密钥的产生并分配给通信双方。

2.分布式密钥分配方案:是指网络通信中通信方双方具有相同的地位,他们之间的密钥分配取决与他们之间的协商,不受任何其他限制。

6.DSA和DES加密过程DSA:加密的首先将明文的比特串分组,使得每个分组对应的十进制数小于n,即分组长度小于log2n,然后对每组明文分组,作加密运算:C=memodnDES:第一阶段微初始置换ZP第二阶段微计算16次迭代变换第三阶段微逆置换7.信息隐藏技术与密码技术有何一同?两技术都是为了保障信息的使用和信息传输的安全,但二者在保护中存在明显区别。

1.加密技术通过密钥孔子和信息的使用权。

而信息隐藏则不同,他作为信息加密的补充方法,主要目的是确保宿主信息中隐藏的秘密信息不被改变或者删除,从而在必要时提供有效的证明信息。

信息安全考试题库(附答案)

信息安全考试题库(附答案)

信息安全考试题库(附答案)考试内容: 信息安全的要素、威胁、Hash函数的相关概念、计算机病毒特性及理解方面的要点1,信息安全的基本概念(安全的定义信息技术安全概述网络攻击的形式等 )2,信息保密技术(古典加密对称加密非对称加密RAS划重点两种密码体制和其代表方法)3,信息认证技术(信息摘要函数,数字签名,身份认证技术 )4,密钥管理技术(概念基础密钥管理知识密钥管理系统)5,访问控制技术(模型、基本要素、相关要素实现机制) 访问级别审计之类的不考6,网络攻击和防范(主要网络攻击技术:计算机病毒技术) 防火墙之类的不考考试形式:闭卷考试1,判断(讲过的知识点的灵活运用)10分2,填空(关键知识点)20分3,简答(基本,核心的部分言简意赅的说清楚就好)40分4,计算(要求详细过程,主要是实验内容对实验之外的内容也要关注)30分信息保密注意实验和平时作业习题:Q1、常见信息安全威胁(至少列出十种)信息破坏、破坏信息完整性、拒绝服务、非法使用(非授权访问)、窃听、业务流分析、假冒、旁路控制、授权侵犯、特洛伊木马、陷阱门、抵赖、重放、计算机病毒、人员不慎、媒体废弃、物理入侵、窃取、业务欺骗Q2、衡量密码体制安全性的方法?1、计算安全性:度量破译密码体制所需计算上的努力2、可证明安全性:通过规约的方式为密码安全性提供证据,如果使用某种具体方法破译一个密码体制,就有可能有效的解决一个公认困难的数学问题类比: NP完全问题的规约3 无条件安全性:假设攻击者具有无限的计算资源和计算能力时,密码体制仍然安全Q3、以p=5,q=7为例,简述RSA算法的加密和解密过程 // 自选密钥Eg:n=p*q=35f(n)=(p-1)(q-1)=24若gcd(e,f(n))=1 则取 e=5由d=e-1modf(n) 可取d=5加密:若明文为Z,m值为26,则m e=265=11881376,密文c=m e mod n=31 解密:密文为31,则c d=315=28629151 解密m=c d mod n=26 即ZQ4:满足什么条件的Hash函数是安全的?如果对于原像问题、第二原像问题、碰撞问题这三个问题都是难解的,则认为该Hash函数是安全的。

可证明安全k—out—of—n不经意传输方案的安全分析与改进

可证明安全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个消息给接收者,接收者随意选择得到其中一个消息,协议要求接收者不能获得其余消息的任何信息,同时发送者不能获得接收者选择的任何信息。

密码学笔记

密码学笔记

要传递的确切的消息就是明文。
被加密之后的消息就称为Байду номын сангаас文。
将明文变为密文的过程就称为加密。
将密文变成明文的过程就叫解密。
而加密或者解密的方法(算法)就称为加密算法或者解密算法。
明文 :伪装前的原始数据
密文 :伪装后的数据
密钥 :参与密码变换的参数
加密 :伪装的过程
加密算法:用于对数据加密的一组数学变换
c. 图形图像
古典密码:
-代替密码(substitution cipher)
-置换密码(permutation cipher),又称换位密码(transposition cipher)
古典密码的破译:
单表替换密码的破译:通过字母的使用频率破译、
移位密码的破译:移位密码分析
通常明文用P表示,密文用C表示。加密函数E作用于P得到密文C,可以表示为:
(2)从密文计算出明文部分信息应该是难的。
(3)从密文探测出简单却有用的事实应该是难的,
从攻击效果看,敌手可能达到以下结果:
(1)完全攻破。敌手找到了相应的密钥,从而可以恢复任意的密文。
(2)部分攻破。敌手没有找到相应的密钥,但对于给定的密文,敌手能够获得明文的特定信息。
(3)密文识别。如对于两个给定的不同明文及其中一个明文的密文,敌手能够识别出该密文对应于哪个明文,或者能够识别出给定明文的密文和随机字符串。
对称密钥密码又可分为:
分组密码(也称块密码)(每次对一块数据加密、多数网络加密应用、DES,IDEA,RC6,Rijndael)
流密码(序列密码)(每次对一位或一字节加密)
密码学的起源:
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

RSA的安全性
定义4 给定m1和m2的加密,如果能在不知 道m1或m2的条件下确定m1m2的加密结果, 我们就说该加密体制具有同态性质 (homomorphic property)。 根据以下方程知,RSA具有同态性质:

(m1m2 ) mod n (m mod n)(m2 mod n)mod n

定义2 如果一个公钥加密体制在适应性选 择密文攻击下是多项式安全的,我们就说 该体制是安全的。
引理1 一个可展(Malleability)的加密 体制在适应性选择密文攻击下是不安全 的。

证明:假设一个加密体制是可展的,当给 定一个目标密文cb时,我们可以把它修改成 一个相关的密文cb *。这种相关的关系也应 该存在于和mb和mb*。然后敌手利用解密预 言机(解密盒)来获得cb *的明文。最后敌 手根据mb*来恢复mb。


如果没有一个敌手能以大于一半的概率赢得以下 游戏,我们就称这个加密体制具有密文不可区分 性,或具有多项式安全性。这个敌手A被告知某个 公钥y及其相应的加密函数fy。敌手A进行以下两个 阶段: 寻找阶段:敌手A选择两个明文m0和m1。 猜测阶段:敌手A被告知其中一个明文mb的加密结 果,这里的b是保密的。敌手A的目标是以大于一 半的概率猜对b的值。

(1)完美安全性

如果一个具有无限计算能力的敌手从给定的 密文中不能获取明文的任何有用信息,我们 就说这个加密体制具有完美安全性或信息论 安全性。根据Shannon理论知道,要达到完 美安全性,密钥必须和明文一样长并且相同 的密钥不能使用两次。然而,在公钥密码体 制中,我们假设加密密钥可以用来加密很多 消息并且通常是很短的。因此,完美安全性 对于公钥密码体制来说是不现实的。
第8章 可证明安全 性理论
可证明安全性(Provable security)

可证明安全性是指这样一种“归约”方法:首 先确定密码体制的安全目标,例如,加密体制 的安全目标是信息的机密性,签名体制的安全 目标是签名的不可伪造性;然后根据敌手的能 力构建一个形式化的安全模型,最后指出如果 敌手能成功攻破密码体制,则存在一种算法在 多项式时间内解决一个公认的数学困难问题。
可证明安全的思想





可证明安全的思想就是给定一个算法A,我们提出一 个新算法BA,BA把A作为子程序。输入给BA的是我 们希望解决的困难问题,输入给A的是某个密码算法。 然而,如果A是一个积极攻击敌手,即A可以对输入 的公钥进行解密预言询问或签名预言询问。算法BA 要想使用A作为子程序,就需对A的询问提供回答。 算法BA需要应对以下几个问题: 它的回答应该看起来是合法的。因为加密应该能够 解密,签名应该能够被验证,否则,算法A就知道它 的预言机在撒谎。算法BA就不能再确保算法A是以一 个不可忽略的概率成功。 它的回答应该与如果预言机是真正的解密/加密预言 机时A期望的回答具有相同的概率分布。 自始至终,预言机的回答应该是一致的。 算法BA需要在不知道私钥的情况下提供这些回答。
(2)语义安全性

语义安全性与完美安全性类似,只是我们 只允许敌手具有多项式有界的计算能力。 从形式上说,无论敌手在多项式时间内能 从密文中计算出关于明文的什么信息,他 也可以在没有密文的条件下计算出这些信 息。换句话说,拥有密文并不能帮助敌手 找到关于明文的任何有用信息。
(3)多项式安全性

我们很难显示一个加密体制具有语义安全 性,然而,我们却可以比较容易显示一个 加密体制具有多项式安全性。多项式安全 性也称为密文不可区分性。幸运的是,如 果一个加密体制具有多项式安全性,那么 我们可以显示该体制也具有语义安全性。 因此,为了显示一个加密体制是语义安全 的,我们只需要显示该体制是多项式安全 的。
2.数字签名体制的安全性概念
对于数字签名体制,存在以下几种伪造类 型: (1)完全攻破:敌手能够产生与私钥持有者 相同的签名,这相当于恢复出了私钥。 (2)选择性伪造:敌手能够伪造一个他选择 的消息的签名。 (3)存在性伪造:敌手能够伪造一个消息的 签名,这个消息可能仅仅是一个随机比特 串


从这个游戏可以看出,一个具有多项式安全性的 加密体制一定是一个概率性加密体制。否则,敌 手A在猜测阶段就可以计算: c1=fy(m1) 并测试是否有c1=cb成立。如果成立,敌手A就可 以成功推断b =1,否则b=0。既然敌手A总能简单 地猜测b的值,敌手A的优势定义为:
1 Adv A Pr( A(cb , y, m0 , m1 ) b) 2

攻击模型
① 被动攻击 在被动攻击中,敌手被告知一个公钥,要求产 生一个选择性伪造或存在性伪造。这是一种比 较弱的攻击模型。 ② 积极攻击 积极攻击中最强的攻击是适应性选择消息攻击 (adaptive chosen messages attacks),即 敌手可以访问一个签名预言机,它能够产生合 法的签名。敌手的目标是产生一个消息的签名, 当然这个消息不能是已经询问过签名预言机的 消息。


定义3 如果一个数字签名体制在适应性选 择消息攻击下能够抵抗存在性伪造,我们 就说该体制是安全的。
3.随机预言模型

显示一个密码协议安全的现代方法是可证 明安全性。可证明安全性的目的在于证明: 如果一个敌手能够攻破一个密码体制的某 个安全概念,那么我们就可以利用该敌手 做一些认为不可能的事情。
ElGamal的安全性
引理5 ElGamal加密体制是可展的。 证明:给定密文: (c1, c2)=(gk, mhk) 敌手可以在不知道m、随机数k、私钥x的情 况下产生消息2m的合法密文: (c1, 2c2)=(gk, 2mhk)
8.1 可证明安全性理论的基本概念
公钥加密体制的安全性概念 数字签名体制的安全性概念 随机预言模型

1.公钥加密体制的安全性概念
(1)完美安全性(perfect security) (2)语义安全性(Semantic security) (3)多项式安全性(polynomial security)
e e 1 e
RSA的安全性

引理3 RSA不是CCA2安全的。 证明:假设敌手想解密 c me mod n : 敌手首先生成一个相关的密文 c 2e c 并询问解密 预言机。敌手得到c的明文m。然后敌手计算:
m cd (2e c)d 2ed cd 2m m 2 2 2 2 2

我们假设一个敌手(一个概率算法)能够 以一个不可忽略的概率攻破RSA的某个安 全概念(比方说语义安全性)。对于一个 安全参数(安全参数用于测量密钥长度的大 小,比如在RSA中,安全参数可能是模数n 的比特数)为k的密码体制,如果敌手成功 的概率大于1/p(k),我们就说这个敌手 以一个不可忽略的概率成功,这里的p是一 个以k为变量的多项式。
随机预言模型

我们必须让BA在不知道私钥的情况下能够 解密或者签名,但既然我们的体制是安全 的,这一点意味着是不可能的。
随机预言模型



为了回避这的Hash函数。对于每一个新 的询问,随机预言产生一个随机值作为回答,如 果进行两次相同的询问,回答一定相同。在随机 预言模型中,我们假设敌手并不使用密码算法中 定义的那个Hash函数,也就是说,即使我们将随 机预言换成真实的Hash函数时,敌手A也是成功 的。 对于A的解密预言询问和签名预言询问,算法BA 是通过欺骗随机预言的回答来适合自己的需要的。
我们首先来回忆多项式安全性的攻击游戏: 在寻找阶段,输入一个公钥,输出两个消息和一些状态信息。 在猜测阶段,输入一个挑战密文、一个公钥、两个消息和一 些状态信息,猜测挑战密文对应的明文是哪个消息。

ElGamal的安全性
ElGamal密文为:
(gk, mhk) 其中k是一个随机整数,h是公钥。 给定gx、gy和gz,解决DDH问题的算法B执行如下步骤: ①令h=gx。 ②(m0, m1, s)=A(寻找阶段, h)。 ③设置c1=gy。 ④从{0,1}中随机选择一个数b。 ⑤设置c2=mbgz。 ⑥b=A(猜测阶段, (c1, c2), h, m0, m1, s)。 ⑦如果b = b,输出“TRUE”,否则输出“FALSE”。

因此,敌手获得了密文c对应的明文m。
ElGamal的安全性

引理4 如果DDH问题是困难的,那么ElGamal加密 体制在选择明文攻击下是多项式安全的。 证明:为了显示ElGamal是多项式安全的,我们首 先假设存在一个能够攻破ElGamal多项式安全性的 多项式时间算法A,然后我们给出一个使用算法A作 为子程序的算法B来解决DDH问题。
8.2 可证明安全的公钥密码体制
RSA的安全性

引理2 RSA不是多项式安全的。 证明:假设敌手知道用户只加密了m1和m2中的一 个消息。敌手还知道用户的公钥,即e和n。当敌 手被告知一个密文c,要求判断c对应的明文m是 m1还是m2时,敌手只需要计算:
c m1e mod n

如果 c c ,则敌手知道m = m1。否则敌手知道m = m2。 除了以上的攻击外,RSA在适应性选择密文攻击 下也是不安全的,这主要是因为RSA具有同态性 质。

我们假设敌手A是一个被动攻击敌手,即对 于RSA加密,他不进行解密询问。我们现 在希望能够构造一个新算法BA,它能够在 输入一个整数n和调用多项式次敌手A的情 况下,以一个不可忽略的概率输出n的因子。 算法BA说明了如果存在敌手A,就存在一个 多项式时间因子分解算法,能够以一个不 可忽略的概率解决因子分解问题。既然我 们目前并不相信存在这样的因子分解算法, 我们也可以断定这样的敌手A是不存在的。

如果: Adv ≤ 1 p (k ) 我们就称这个加密体制是多项式安全的,其中p(k) 是一个多项式函数,k是一个足够大的安全参数。
相关文档
最新文档