密码学理论基础Foundations of Cryptography
密码学理论基础Foundations of Cryptography

Definition
Def: Ensembles X & Y are (唬遍天下) (唬遍天下) indistinguishable in poly-time polyif ∀ poly-time 猜 ∀ P( ) poly|Pr[猜(Xn)=1] - Pr[猜(Yn)=1] | < 1/P(n) Pr[猜 Pr[猜 Def: statistical closeness X & Y are statistically close if ∆(n) = Σα|Pr[ Xn=α] - Pr[ Yn=α] | is negligible for large n.
Definition
Def: Probability ensemble: X={Xn} n∈N, where Xn∈{0,1}n n∈
Ensemble: 合奏 任何一個X 皆為長度n 任何一個Xn皆為長度n的string 在討論 pseudorandom generator 時, 都使用 ensemble 的概念, 很少使用一個bit. 的概念, 很少使用一個bit.
Behavioristic in nature
Behavioristic in nature: Xn is “random” if any efficient observer cannot random” distinguish it from Un. 分不出來 ≡ 相等 用客觀的角度來看, 用客觀的角度來看, 觀察者分不清楚即為 random.
Define 破f
3.For i = 1, 2…n compute xi = the majority of xiJ = bJ ⊕猜h(f(x), rJ⊕ei) over all nonempty J ⊆ {1,…,l} {1,…,l 4.Output x1x2x3…xn
密码学概览

for(int i=0;i<5;i++){ for(int j=0;j<5;j++){ mp.insert(pair<char,WordPos>{keys[i][j],WordPos{i,j}}); }
} mp.insert(pair<char,WordPos>{'J',mp['I']}); }
密码学(Cryptography)
密码编码学
是在第三方存在的情况下进行安全通信的实践和研究
更一般地说,它是一个构建和分析以消除敌方影响,并多方面保护信息安全的协议,例:
保密性 真实性 权威性 防抵赖
典型的密码学
通常用于机密使用
A和B共享同一个秘密信息,以保证他们的通话
现代密码
涉及到更多的安全服务 保密性 真实性 权威性 防抵赖
} string ErrorTextCipher_Encode(const string& p, const string& k,const char matrix[26][26]) {
string key = ""; string res = ""; ErrorTextCipher_KeyExpand(key, k, p.size()); for (int j = 0; j < p.size(); j++) {
}
for(int i=0;i<group.size();i+=2){ char p_1=group[i]; char p_2=group[i+1]; WordPos pos_1=mp[p_1]; WordPos pos_2=mp[p_2]; char c_1,c_2; if(pos_1.x==pos_2.x){ pos_1.x=(pos_1.x+1)%5; pos_2.x=(pos_2.x+1)%5; }else if(pos_1.y==pos_2.y){ pos_1.y=(pos_1.y+1)%5; pos_2.y=(pos_2.y+1)%5; }else{ swap(pos_1.x,pos_2.x); } c_1=PlayfairCipher_GetKeyChar(keys,pos_1); c_2=PlayfairCipher_GetKeyChar(keys,pos_2); res+=c_1; res+=c_2;
[课件]第2讲 密码学的基本概念和理论基础PPT
![[课件]第2讲 密码学的基本概念和理论基础PPT](https://img.taocdn.com/s3/m/c96e9c1b376baf1ffc4fadc0.png)
20
(3)公元前50年,著名的恺撒大帝发明了一种密码叫做恺 撒密码。在恺撒密码中,每个字母都与其后第三位的字母 对应,然后进行替换。如果到了字母表的末尾,就回到开 始,如此形成一个循环。当时罗马的军队就用恺撒密码进 行通信。 恺撒密码明文字母表:A B C D E F G … X Y Z 恺撒密码密文字母表:D E F G H I J …A BC 26个字符代表字母表的26个字母,从一般意义上说,也可 以使用其它字符表,一一对应的数字也不一定要是3,可 以选其它数字。
3. 密码系统
一个好的密码系统应满足: 系统理论上安全,或计算上安全(从截获的密文或已知 的明文-密文对,要确定密钥或任意明文在计算上不可行 ); 系统的保密性是依赖于密钥的,而不是依赖于对加密体 制或算法的保密; 加密和解密算法适用于密钥空间中的所有元素; 系统既易于实现又便于使用。
第2阶段:常规现代密码学,从1949年到1975年。
标志:1949年Shannon发表的《保密系统的信
息理论》一文。信息论为对称密码系统建立了理 论基础,从此密码学成为一门科学。
以及《破译者》的出版和美国数据加密标准DES
的实施,标志着密码学的理论与技术的划时代的 革命性变革,宣布了近代密码学的开始。
明文X 加密机 密文Y
原来的明文X
解密机
单钥密码的加密、解密过程
8
双密钥系统又称为非对称密码系统或公开密钥系统。双密钥 系统有两个密钥,一个是公开的,用K1表示,谁都可以使 用;另一个是私人密钥,用K2表示。
K1 明文X 加密算法 密文Y K2 解密算法
原来的明文X
双钥密码的加密、解密过程
双密钥系统的主要特点是将加密和解密密钥分开。即用公 开的密钥K1加密消息,发送给持有相应私人密钥K2的人, 只有持私人密钥K2的人才能解密;而用私人密钥K2加密的 消息,任何人都可以用公开的密钥K1解密,此时说明消息 来自持有私人密钥的人。前者可以实现公共网络的保密通 信,后者则可以实现对消息进行数字签名。
密码学基本介绍

密码学基本介绍转自:鹏越网络空间安全研究院密码系统原理及数学背景下图是一个典型的密码系统,展示了密码技术的应用场景:明文:P 密文:C 加密密钥:K1 解密密钥:K2 加密方法:E 解密方法:D加密与解密的关系可以用公式简洁地表示:C = EK1(P)表示用加密密钥K1通过加密方法E对明文P进行加密得到密文C。
P = DK2(C)表示用解密密钥K2通过解密方法D对密文C进行解密得到明文P。
DK2(EK1(P))=P 由上面两个式子可以得到这个式子。
由此可见,实际上,密码算法E和D都是数学函数。
关于密码学,有两个基本原则:1) 消息必须包含一定的冗余度。
2) 必须采取措施对抗重放攻击。
另外,关于密码系统的设计,还有一个原则叫做Kerckhoff原则:“密码算法必须公开,只有密钥需要保密。
”这个原则体现了一个思想:让入侵者知道密码算法没有关系,所有的秘密都隐藏在密钥中。
对密码算法保密是不明智的,因为密码算法的设计很困难,一旦算法原理泄露了,必须得花费大量精力重新设计。
但密钥可以随时更换。
每个密码算法,都有其数学背景,依赖某一种数学理论。
下面是一些常见密码算法的数学理论依据:1)信息论由香农(Claude Elmwood Shannon)于1948年创立的现代信息论为安全的密码系统定义了一个精确的数学模型。
2)复杂性理论复杂性理论提供了分析密码算法的“计算复杂性”的方法。
它通过对密码算法进行比较,来确定一个密码算法的安全性。
密码算法的“计算复杂性”通常用时间复杂度和空间复杂度两个变量来度量。
3)数论数论中的模运算、素数、最大公因子、求模逆元、费尔马定理、中国剩余定理、迦罗瓦域理论等等,是很多密码学算法的数学基础。
4)因子分解对一个数进行因子分解就是找出它的素数因子。
因子分解是数论中最古老的问题,分解一个数很简单,却是一个耗时的过程。
一些经典的因子分解算法有:数域筛选法、二次筛选法、椭圆曲线法等。
5)计算有限域中的离散对数计算离散对数是数学中公认的难题。
公钥密码学的理论基础

公钥密码学的理论基础公钥密码学的理论基础—单向函数1976年,Diffie W.和Hellman M.E.在他们的《密码学的新方向》一文中提出了公钥密码的概念。
随后,在1978年,Rivest R.L.,Shamir A.和Adleman L.M.在其文《实现数字签名和公钥密码体制的一种方法》中最先提出了一种可行的实现方法,这就是我们现在广泛使用的RSA 体制。
RSA体制的提出真正使得互不相识的通信双方在一个不安全的信道上进行安全通信最终成为可能,也是我们今天CA服务的源泉。
然而,人们很少关心当前幸福生活的背后有一位默默的奉献者—单向函数。
单向和陷门单向函数的概念是公钥密码学的核心,可以说公钥密码体制的设计就是陷门单向函数的设计。
那么什么是单向函数?什么是陷门单向函数?他们的密码学意义何在?本文试图作一个初浅的介绍。
1 单向函数给定任意两个集合X和Y。
函数f:X Y 称为单向的,如果对每一个x属于X,很容易计算出函数f(x)的值,而对大多数y属于Y,要确定满足y=f(x)的x是计算上困难的(假设至少有这样一个x存在)。
注意,不能将单向函数的概念与数学意义上的不可逆函数的概念混同,因为单向函数可能是一个数学意义上可逆或者一对一的函数,而一个不可逆函数却不一定是单向函数。
目前,还没有人能够从理论上证明单向函数是存在的。
单向函数存在性的证明将意味着计算机科学中一个最具挑战性的猜想P=NP,即NP完全问题的解决,而关于NP完全性的理论却不足以证明单向函数的存在。
有幸的是,现实中却存在几个单向函数的“候选”。
说他们是“候选”,是因为他们表现出了单向函数的性质,但还没有办法从理论上证明它们一定是单向函数。
一个最简单的、大家熟知的“侯选”单向函数就是整数相乘。
众所周知,不管给定两个多大的整数,我们很容易计算出它们的乘积,而对于一个300位左右的十进制整数,即使已知它是两个大小差不多(150位左右的十进制数)的素数之积,用世界上计算能力最强的计算机,也没有办法在一个合理的时间内分解出构成这个整数的两个素数因子来。
《密码学基础》课程教学大纲

《密码学基础》课程教学大纲(Fundamentals of Cryptography)课程编号: 1223527课程性质:专业课适用专业:计算机科学与技术先修课程:线性代数、概率论与数理统计、离散数学后续课程:总学分:2学分一、教学目的与要求1. 教学目的密码学包含两个密切相关的方面,其一是密码编码学,研究编写出好的密码系统的方法;其二是密码分析学,研究攻破一个密码系统的途径,恢复被隐蔽信息的本来面目。
通过本课程的学习使学生初步掌握密码编码学的知识、了解密码分析学的基本概念和方法。
2. 教学要求通过本课程的学习,要求学生能初步掌握密码学的主要内容,包括:公钥密码,分组密码,伪随机序列发生器,序列密码,数字签名等等。
要求重点掌握各种密码算法和密码协议及其设计原理,掌握密钥管理、数字签名、身份认证、散列函数等核心技术。
二、课时安排三、教学内容1. 密码学的基本概念(2学时)(1)教学基本要求了解:信息安全模型;信息安全与密码学的关系;密码学的发展方向。
理解:密码学的发展与分类;密码学的基本概念;现代密码学的理论基础。
(2)教学内容①对安全威胁的被动攻击(截获)与主动攻击(中断、篡改、伪造);②信息安全的三个特性(保密性Confidentiality、完整性Integrity、可用性Availability);③密码学的分类(密码编码学、密码分析学、密码密钥学);④密码编码学的分类(对称密码与非对称密码);⑤密码分析及对密码系统攻击能力等级。
2. 分组密码(4学时)(1)教学基本要求了解:DES;对DES的攻击方法;分组密码设计的一般原理;IDEA;Double-DES,Triple-DES;AES的产生背景。
理解:DES算法;分组密码(DES)的使用模式;IDEA的总体结构;AES算法;逆元的计算;分组密码的工作模式。
(2)教学内容①DES算法的整体结构(重点);②初始置换、逆初始置换、乘积变换、16轮迭代、函数f、S-盒、P置换;③子密钥的生成及DES的解密过程;④DES的雪崩效应、DES的弱密钥及半弱密钥、对DES的攻击;⑤Double-DES与Triple-DES;⑥分组密码设计的一般原理及分组密码的工作模式(ECB、CBC、CFB、OFB);⑦IDEA的总体结构,8轮迭代、输出变换、密钥调度、乘积运算;⑧逆元的计算;⑨DES,Double-DES,Triple-DES,IDEA的安全性;⑩AES分组密码算法(轮变换、加轮密钥、密钥调度、密钥扩展等)。
密码学理论基础25页PPT文档

Classic
Classic : information theory based
目標 : perfect security, 使竊聽者絕對無法猜到 plain text, 其描述為 : eavesdropper所能猜到的最 好情況, 使 eavesdropper竊聽到 ciphertext之前和 之後皆是相同情況.
Illustration
Alice要送一封信給Bob,但是Carol想要偷看, 如何防止被偷看或偷聽則是1970年代之前, 密碼學的重要課題.
Sender : Alice
Receiver : Bob
Key (K)
Key (K)
Ciphertext (M*)
Plain
Plain
text (M)
Encryption
還要強
Fault-tolerant protocol
Fault-tolerant protocol有三個問題可以討論
Coin toss over phone (兩人在電話中,如何丟一公 正錢幣)
Simultaneous exchange of secrets (兩人如何能同時 交換所持有的秘密,當一方反悔時,雙方皆無法成 功取得對方的資料)
Example : RSA, base on 因數分解是很難的
Part III : Three basic tools
Basic tools
Three basic tools :
One way function (OWF) –chapter 2 Pseudorandom generator (PRG) –chapter 3 Zero knowledge proof –chapter 4
密码学基础ppt课件

2019
29
对称密码算法 vs.非对称密码算法
对称密码算法(Symmetric cipher):加密密钥和解 密密钥相同,或实质上等同,即从一个易于推出另一 个。又称传统密码算法(Conventional cipher)、秘密密 钥算法或单密钥算法。
DES、3DES、IDEA、AES
16
密码学
密码学(Cryptology)
• 研究信息系统安全保密的科学。由两个 相互对立、相互斗争,而且又相辅相成 、相互促进的分支科学所组成的,分别 称为密码编码学(Cryptography)和密码 分析学(Cryptanalysis)。
2019
17
密码编码学 Vs. 密码分析学
密码编码学(Cryptography) • 主要研究对信息进行编码,实现对信息的隐 蔽。 密码分析学( Cryptanalysis ) • 主要研究加密消息的破译或消息的伪造。
加密和解密算法的操作通常都是在一组密钥的控制下进 行的,分别称为加密密钥(Encryption Key) 和解密密钥 (Decryption Key)。
2019 23
密码算法
密码算法(Cryptography Algorithm):用于加密 和解密操作的数学函数。 加密算法(Encryption Algorithm):发送者对明 文进行加密操作时所采用的一组规则。 解密算法(Decryption Algorithm):接收者对密 文进行解密操作时所采用的一组规则。
90年代,逐步出现椭圆曲线等其他公钥算法。
公钥密码使得发送端和接收端无密钥传输的保密通 信成为可能!
2019 14
什么是密码学
密码学基本概念 密码体制分类 密钥管理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Two trivial inverting algorithm
明牌 “破f = 明牌” (每次都猜相同的號碼) 明牌” 每次都猜相同的號碼)
中獎機率: 中獎機率: Pr [ f ( 牌 (f(Un),1n) ) = f (Un) ] = Pr [ f (0n) = f (Un) ] ≥ (1/2n )
n
Version 2 & 3
為了改進Version 1的問題,因此推出Version 為了改進Version 1的問題,因此推出Version 2 Pr [ 破f inverts f(Un) ] = Pr [ 破f (f(Un),1n) = Un ] 但是真正使用的為Version 3,如下: 但是真正使用的為Version 3,如下: Pr [ 破f inverts f(Un) ] = Pr [ f ( 破f (f(Un),1n) ) = f (U? 電腦選號和明牌法哪一個中獎機率高?
若 m = n, 則 (1/2m ) = (1/2n ) 若 m ≥ n, 則 (1/2m ) ≤ (1/2n ) 若 m ≤ n, 則 (1/2m ) ≥ (1/2n )
Ask more about f
Can we ask more about f for the def of OWF?
Observable
Observable 1:
g( ) is length-regular, because |g(x)|=1+P(|x|) length-
Observable 2:
If |x|=|x’| and g(x)=g(x’) then f(x)=f(x’). |x|=|x’ g(x)=g(x’ f(x)=f(x’ 因為g(x)和g(x’ 相等,為了對齊string中的1,則將觀 因為g(x)和g(x’)相等,為了對齊string中的1,則將觀 察出 f(x)=f(x’). f(x)=f(x’
Proof lemma
Q1: g is easy to evaluate?
Yes! Because f is easy to evaluate.
Q2:g-1 is hard to evaluate? (Is it hard to invert g?)
Yes! Because f is hard to invent. Proof way: f -1 ∉ BPP → g -1 ∉ BPP
Length regular
If |x|=|x’|, then |f(x)|=|f(x’)| |x|=|x’ |f(x)|=|f(x’
Length preserving
|f(x)|=|x|, ∀ x
Defined only for some length
f(x) is defined only if |x| ∈ I ⊆ N
OWF definition
For any 1. prob. poly-time algorithm “破f” poly2. polynomial P( ) 3. sufficiently large n, we have Pr [ 破f inverts f (Un) ] < 1/P(n) PS. Un是長度為n的任意字串 Un是長度為n
Version 1
Pr [ 破f inverts f(Un) ] 等號前後的 Un是同一個 = Pr [ 破f (f(Un)) = Un ] = Σx ∈{0,1} (1/2n) Pr [ 破f (f(x)) = x ] 上式有一個很大的問題, 上式有一個很大的問題,那即是很容易依此 公式造出OWF,但是並不是因為很困難而無 公式造出OWF,但是並不是因為很困難而無 法解,而是沒時間解, 法解,而是沒時間解,讓 |f(x)| = O ( log|x| ) ∀ x ∈ {0,1}* ,可以滿足上式所要求的條件,但 ,可以滿足上式所要求的條件, 這樣的function並不難,而且與OWF所要求之 這樣的function並不難,而且與OWF所要求之 prob. poly-time algorithm 的條件1不合. poly的條件1不合.
白話: 上面的三個對OWF的要求, 白話: 上面的三個對OWF的要求,並不會影響 OWF的一般性. OWF的一般性.
Lemma
Lemma: If there exists an OWF f, then there exists a length-regular OWF g. length白話: OWF多要求 length白話: 對OWF多要求 length-regular 的性質,並 性質, 不會讓 OWF 的存在更困難. 的存在更困難. Proof: since f is one-way, there exists a onepolynomial P( ), such that |f(x)| ≤ P(|x|), ∀ x, let g: {0,1}*→ {0,1}* be as follow P(|x|)g(x) = f(x)10P(|x|)-|f(x)|
Two trivial inverting algorithm
電腦選號 “破f = 瞎猜” (每次號碼皆不同) 瞎猜” 每次號碼皆不同)
中獎機率: 中獎機率: Pr [ f ( 猜 (f(Un),1n) ) = f (Un) ] = Pr [ f (Un’) = f (Un) ] = Σ y ∈{0,1}m Pr [f (Un)=y ]* Pr [f (Un’)=y ] = Σ y ∈{0,1}m ( Pr [f (Un)=y ] )² ≥ (1/2m ) m = max |f(x)|, x ∈{0,1}n Σ i=1 ~ 2m ai = 1, Σ i=1 ~ 2m (ai) ² ≥ (1/2m )
Q: success prob. ≥ ⅔的條件會不會要求太低?? 的條件會不會要求太低?? Ans : No!! 因為若成功機率為1/n,則失敗機 因為若成功機率為1/n,則失敗機 率為(1-(1/n)),且(1率為(1-(1/n)),且(1-(1/n))n < 1/e ∀ n ≥ 1,所以 1/e 1,所以 只要經過2n的時間,則失敗機率會小於(1/e 只要經過2n的時間,則失敗機率會小於(1/e)² < ⅓,因此此要求並不會太低. ⅓,因此此要求並不會太低.
Strongly OWF = weakly OWF?
Lemma: If there is a weak/strong OWF f, then there is a weak OWF g that is not strongly oneoneway. Strongly OWF ≠ weakly OWF Example: g is not strong, but a weak. g(px)= px if the log2|x|-bit prefix of p |x|is not all zero. pf(x) otherwise
OWF definition
OWF definition: A function f is (strongly) oneoneway if ( f: {0,1}*→ {0,1}* ) 1. f ∈P [easy to evaluate] 2. ≈ f-1 ∉ BPP [hard to invert] 白話: 白話: Any probabilistic poly-time algorithm for polyinverting f has negligible success probability.
P(|x|)Step 1: 算出 g(x) = f(x)10P(|x|)-|f(x)| Step 2: call 破g (g(x), 1n), return the output of 破g
所以g 所以g -1 ∉ BPP.
By Obs2, 若 g(x)=g(x’) 則 f(x)=f(x’) 所以可知 Pr [f (破f (f(Un),1n ) )= f(Un)] (破 ≥ Pr [g (破g (g(Un),1n ) )= g(Un)] (破 因為f 因為f -1 ∉ BPP
Conclusion: If there exists an OWF f, then there exists a length-regular OWF g. length-
Proof Q2
Assume there is an invert algorithm 破g for g ≡ Pr [g (破g (g(Un),1n ) )= g(Un)] 夠大 (破 Def: 破f (f(x), 1n)
密碼學理論基礎 Foundations of Cryptography
呂學一 (中央研究院 資訊科學所) 資訊科學所) .tw/~hil/
Today
One way function
Last time OWF definition Three versions Two trivial inverting algorithm Ask more about f
Weakly OWF
Part I : One way function
Last time
One way function
f:
EASY f(x) ∈ P
x
HARD f -1 ∉ BPP
f(x)
OWF
考慮OWF的條件: 考慮OWF的條件: “f -1 ∉ BPP” BPP” BPP:
Polynomial time Success prob. ≥ ⅔
Part II : Weakly OWF
Weakly OWF
Weakly OWF definition: A function f is weakly oneone-way if ( f: {0,1}*→ {0,1}* ) 1. f ∈P [easy to evaluate] 2. ≈ f-1 ∉ BPP [slightly hard to invert] ∃ a poly P( ), s.t. ∀ 1. prob. poly-time algorithm “破f” poly2. sufficiently large n, we have Pr [ 破f inverts f (Un) ] < 1- (1/P(n)) 1-