第三章公开密钥体制
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
保密系统模型
搭线信道 非 法 接入者 信 源 M m 加密器 c=Ek1(m) k1 密钥源 k1 搭线信道 密码分析员 m' (窃听者) 接收者
(主动攻击) (被动攻击) c' c 信道 解密器 m m=D k2(c)
k2 密钥源 密钥信道 k2
图
保密系统模型
保密系统模型
保密系统(Secrecy Sysetem):(M, C, K1, K2, Ek1, Dk2 ): 1. 明文消息空间 M 2. 密文消息空间 C 3. 密钥空间K1和K2:在单钥体制下K1=K2=K,此时密钥 k K 需经安全的密钥信道由发方传给收方。 4. 加密变换: Ek1 E, mc=Ek1(m),其中k1K1, mM, cC 由加密器完成。 5. 解密变换:Dk2D,cm= Dk2(c),其中k2K2, mM, cC, 由解密器实现。
2 公钥密码学
1976年,Whitfield Diffie和 Martin Hellman 发表了的“New directions in cryptography” 。这篇划时代的文章奠定了公钥密码系统的基础。同时 R. Merkle也独立提出了这一体制。可用于保密通信,也可用于数字签字。 这一体制的出现在密码学史上是划时代的事件,它为解决计算机信息网 中的安全提供了新的理论和技术基础。自从公钥密码的概念被提出以来, 相继提出了许多公钥密码方案,如RSA、背包体制、McEliece、ElGamal 体制等。在不断的研究和实践中,有些方案被攻破了,有些方案不太实 用。关于最初十年的公钥密码技术的研究和发展,可参见文献[W. Diffie. The first ten years of public-key cryptography. Proceeding of the IEEE, 76(5), 1988, 560-577.]。目前只有两种类型的公钥系统是安全实用的,即基于大 整数分解困难问题的密码体制与基于离散对数困难问题的密码体制。还 有一些新的密码体制正在被研究,如基于辫群的密码体制、NTRU 、量 子密码体制等。
公Байду номын сангаас密码学原理
1. 基本概念 在公钥密码系统中,首先要求加密函数具有单向性,即求逆的困难性。 因此,设计双钥体制的关键是先要寻求一个合适的单向函数。 (1)单向函数 定义:一个可逆函数f:AB,若它满足: 1o 对所有xA,易于计算f(x)。 2o 对“几乎所有xA”由f(x)求x“极为困难”,以至于实际上不可能做到, 则称f为一单向(One-way)函数。
密码学的历史
现代密码学(Modern Cryptography) (1976年以后)
1976 : Public-Key Cryptography (Diffie, Hellman) 1977 : Data Encryption Standard, DES (NIST) 1978 : RSA (Rivest, Shamir, Adleman) 1982/85 : Goldwasser presented 2 paradigms for firm foundations of cryptography. “Indistinguishability” and “Simulatability” 1998 : DES被破译 2000: AES( 2000年10月2日确定了以Rijdeal作为AES的标准 算法)
Diffie-Hellman密钥交换
Input (p,g), p is a prime, g is a generator of Fp* Output a shared element of Fp*.
Alice sends A=gx mod p to B. Bob sends B=gy mod p to A. The shared key is : Key=gx y mod p
(3) 用于构造双钥密码的陷门单向函数
1976年Diffie和Hellman发表的文章中虽未给出陷门单向函 数,但大大推动了这方面的研究工作。双钥密码体制的研究 在于给出这种函数的构造方法以及它们的安全性。 陷门单向函数的定义并没有给出这类函数是否存在。但 他们指出“一个单钥密码体制,如果能抗击选择明文攻击, 就可规定一个陷门单向函数”。以其密钥作为陷门信息,则 相应的加密函数就是这类函数。这是构造双钥体制的途径。 下面给出一些目前多数双钥体制所用的单向函数的例子。
明文 加密器 Ek 密文
单钥体制
解密器 Dk k 解密后明文
k 密 钥 密钥信道 产生器
图 分类: 流密码(Stream cipher) 分组密码(Block cipher)
单钥保密体制
单钥体制不仅可用于数据加密,也可用于消息的认证。
密码体制分类 双钥体制
受保护的 用户 A m 搭线信道 图 双钥保密体制 D 'k EkB1 c D kB2 m m' 用户 B
公钥密码学研究与进展
主要内容
引论 基本概念 公钥密码学: 基本原理 公钥加密体制: RSA、ElGamal、ECC 数字签名及其应用 研究动态与热点
1 基本概念
保密学(Cryptology):研究信息系统安全保密的科学。 它包含两个分支:
密码学(Cryptography),对信息进行编码实现隐蔽信息 的一门学科。 密码分析学(Cryptanalytics),研究分析破译密码的学问。
双钥体制加、解密: m=DkB2(c)=DkB2(EkB1(m)) 安全保障:从公开钥 kB1 和密文 c 要推出明文 m 或解密钥 kB2 在计算上是不可 行的。 由于任一用户都可用用户 B 的公开钥 kB1 向他发送机密消息,因而密文 c 不具 有认证性。
密码体制分类 双钥认证体制
大整数分解。 判断一个大奇数n是否为素数的有效算法,大约需要的 计算量是lb n4,当n为256或512位的二元数时,用当前计算机做可在 10分钟内完成。若已知二大素数p和q,求n=pq只需一次乘法,但若由 n,求p和q,则是几千年来数论专家的攻关对象。 离散对数。给定一大素数p,p-1含另一大素数因子q。可构造一乘群 Zp*,它是一个p-1阶循环群。其生成元为整数g,1<g<p-1。已知x, 求 y=gx mod p 容 易 , 只 需 lb x - 1 次 乘 法 。 如 x=15=11112 , g15=(((1· g)2· g)2· g)2· g mod p,要用3+4-1=6次乘法。若已知y, g, p, 求x=logg y mod p为离散对数问题。最快求解法运算次数渐近值为
定义: 陷门单向函数是一类满足下述条件的单向函数:
fz:AzBz,zZ,Z是陷门信息集。
(1) 对所有zZ,在给定z下容易找到一对算法 Ez和Dz使对所有 xA,易于计算fz及其逆,即 fz(x)=Ez(x) ;Dz(fz(x))=x (2) 对 “ 几 乎 ” 所 有 zZ , 当 只 给 定 Ez 和 fz 时 , 对 “ 几 乎 所 有”xAz,“很难”意即“实际上不可能”从y=fz(x)算出x。 (3) 对任一z,集Az必须是保密系统中明文集中的一个“方便” 集,即便于实现明文到它的映射。 (Diffie和Hellman定义的陷门 函数中,Az=A,对所有Z成立。而实际中的Az取决于Z)。
定义中的“极为困难”是对现有的计算资源和算法而言。Massey称此为 视 在困难性(apparent difficulty),相应函数称之为视在单向函数。以此来和本 质上(Essentially)的困难性相区分 [Massey 1985]。
(2)陷门单向函数
单向函数是求逆困难的函数,而单向陷门函数 (Trapdoor one-way function),是在不知陷门信息下求逆困难的函数,当知道陷门信息后,求 逆是易于实现的。这是Diffie和Hellmam[1976]引入的有用概念。 但如何给陷门单向函数下定义则很棘手,因为 (1) 陷门函数其实就不是单向函数,因为单向函数是在任何条件下求逆 都是困难的; (2) 陷门可能不止一个,通过试验,一个个陷门就可容易地找到逆。如果 陷门信息的保密性不强,求逆也就不难。
Disadvantage:Man in the middle attack
K = gXaXo K’ = gXbXo
A
O
B
PKC Schemes
RSA scheme (78) : R.L.Rivest, A.Shamir, L.Adleman McEliecescheme (78) Rabin scheme (79) Knapsack scheme (79): Merkle-Hellman, Chor-Rivest Williams scheme (80) ElGamal scheme (85) Elliptic Curve based scheme(85): Koblitz, Miller Hidden Field Equations(95): C*,Patarin Lattice Cryptography(97): Ajtai (AD, DDH, NTRU) Non abelian group Cryptography(2000): Braid Subgroup Cryptography: GH (99);LUC(94);XTR(2000)
受保护的 DkA2 m D 'k m' 图 c' 搭线信道
用户 A
c
E kA1 m
用户 B
双钥认证体制
双钥认证体制: 用户A以自己的秘密钥kA2对消息m进行A的专用变换DkA2,A计 算密文 c=DkA2(m)送给用户B,B验证 m=EkA1(c)=EkA1(DkA2(m)) 是否成立? 安全性:由于kA2是保密的,其他人都不可能伪造密文c,可用A的公开钥解密时 得到有意义的消息m。因此可以验证消息 m 来自A而不是其他人,而实现了对A所 发消息的认证。
两者相互对立,而又互相促进地向前发展。
密码学的历史
古典密码(Classic Cryptography)(1976年以前)
BC 487 : 置换密码Transposition Cipher, “Scytale” BC 300 : 隐匿术(Steganography):希腊人用奴隶传递信息 BC 100–BC 44 : 代换密码Substitution Cipher, “Caesar Cipher” 1883 : Kerckhoffs’ Assumption WW II : Turing Machine for Cryptanalysis (Breaking the Enigma) 1949 : Perfect Secrecy (C.E.Shannon) “Confusion”混淆 and “Diffusion”扩散
密码体制分类
密码体制有2大类:
单钥体制(One-key system):加密密钥和解密密钥相同。
双钥体制(Two-key system):加密密钥和解密密钥不同。
单钥体制主要研究问题:
密钥产生(Key generation)
密钥管理(Key management)
密码体制分类
保密系统应当满足下述要求
系统即使达不到理论上是不可破的,即pr{m’=m}=0,也 应当为实际上不可破的。就是说,从截获的密文或某些 已知明文密文对,要决定密钥或任意明文在计算上是不 可行的。 系统的保密性不依赖于对加密体制或算法的保密,而依 赖于密钥。这是著名的Kerckhoff原则。 加密和解密算法适用于所有密钥空间中的元素。 系统便于实现和使用方便。
基本概念
加密( Encryption) 算法: 密码员对明文进行加密时所采用的一组规则。 接收者(Receiver):传送消息的预定对象。 解密 ( Decryption) 算法:接收者对密文进行解密时所采用的一组规则。 密钥(Key):控制加密和解密算法操作的数据处理,分别称作加密密钥和解密 密钥。 截收者(Eavesdropper):在信息传输和处理系统中的非受权者,通过搭线窃听 、电磁窃听、声音窃听等来窃取机密信息。 密码分析(Cryptanalysis):截收者试图通过分析从截获的密文推断出原来的明 文或密钥。 密码分析员(Cryptanalyst):从事密码分析的人。 被动攻击(Passive attack):对一个保密系统采取截获密文进行分析的攻击。 主动攻击(Active attack):非法入侵者(Tamper)、攻击者(Attacker) 或黑客 (Hacker) 主动向系统窜扰,采用删除、增添、重放、伪造等窜改手段向系统 注入假消息,达到利已害人的目的。