第2章-密码学基础(8课时)_第1页
第2章-密码学基础(8课时)_第2页
第2章-密码学基础(8课时)_第3页
第2章-密码学基础(8课时)_第4页
第2章-密码学基础(8课时)_第5页
已阅读5页,还剩219页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 第2章 密码学基础电子商务安全2022/7/192第2章 密码学基础问题的提出国内第一起电子邮件侵权案2022/7/193第2章 密码学基础 如果电子邮件的发送附加了数字签名,也许本案就不会发生了。 第2章 密码学基础 2.1 密码学概述 2.2 传统对称密码体制 2.3 公钥密码体制 2.4 量子密码体制 电子商务安全2022/7/195第2章 密码学基础2.1 密码学概述 2.1.1 密码学起源与发展2.1.2 什么是密码学2.1.3 密码体制分类2.1.4 密码系统设计的基本原则2.1.5 密码系统攻击及分析2022/7/196第2章 密码学基础2.1.1 密码学起源与发展密码学的雏形

2、始于古希腊人在战场上加密写有“战争机密”的信件2022/7/197第2章 密码学基础2.1.1 密码学起源与发展1.古典密码学 1949年之前,密码学是一门艺术2.近代密码学 19491975年:密码学成为科学3.现代密码学 1976年以后:密码学的新方向公钥密码学2022/7/198第2章 密码学基础隐写术(steganography): 通过隐藏消息的存在来保护消息.隐形墨水字符格式的变化图象图像 2.1.1 密码学起源与发展2022/7/199第2章 密码学基础象形文字的修改(Modified Hieroglyphics) c. 1900 B.C. 密码学的第一个例子是对标准书写符号的修

3、改我去君留十载中 爱无南北与西东 万株松树青山上 洁白孤高生不同 2022/7/1910第2章 密码学基础example-ii2022/7/1911第2章 密码学基础2.1.1 密码学起源与发展传说,古时候有一对夫妻,男的名叫李石匠,女的叫张小花。李石匠靠手艺赚钱,张小花在家纺纱织布。一年,李石匠参加修建石桥,因工程紧张,十一个月也没回家一次。张小花独自在家只有纺车做伴。一天石匠工地回来一个工友路过她家,她托这个工友给丈夫带去一封书信。 2022/7/1912第2章 密码学基础公元前400年斯巴达人使用密码棍(scytale)2022/7/1913第2章 密码学基础2.1.1 密码学起源与发展

4、加密: 将要传递的信息隐藏例如:清末大儒纪晓岚赠送的对联鳳遊禾蔭鳥飛去馬走蘆邊草不生禾下加鳳去掉鳥字得禿字馬置蘆邊去掉草頭得驢字 2022/7/1914第2章 密码学基础Phaistos(范斯特)圆盘,一种直径约为160mm的粘土圆盘,始于公元前17世纪。表面有明显字间空格的字母,至今还没有破解2022/7/1915第2章 密码学基础转轮密码机ENIGMA,1944年装备德国海军2022/7/1916第2章 密码学基础20世纪早期密码机2022/7/1917第2章 密码学基础2.1.1 密码学起源与发展这样的数字毫无意义么?2022/7/1918第2章 密码学基础16世纪意大利数学家卡尔达诺发

5、明的一种保密通信方法,史称“卡尔达诺漏格板”漏格板是一张用硬质材料(如硬纸、羊皮、金属等)做成的板,上面挖了一些长方形的孔,即漏格2.1.1 密码学起源与发展2022/7/1919第2章 密码学基础2.1.1 密码学起源与发展大约在1793年,当时的美国总统托马斯杰斐逊发明了一种轮子密码机。2022/7/1920第2章 密码学基础2.1.1 密码学起源与发展以二战时期真实历史为背景的,关于电报密文窃听和密码破解的故事2022/7/1921第2章 密码学基础2.1.2 什么是密码学 1.密码学概念2.密码系统构成 3.密码系统数学模型 2022/7/1922第2章 密码学基础1. 密码学概念密码

6、学(Cryptology) :是研究如何保护信息安全性的一门科学。它包含两个分支:密码编码学和密码分析学。密码编码学(Cryptography) :主要研究密码方案的设计,即寻找对信息编码的方法从而实现隐藏信息的一门学问。密码分析学(Cryptanalytics), :主要是从攻击者的角度来看问题,研究如何破解被隐藏信息的一门学问。 两个分支:是既相互对立,又相互依存的科学。2022/7/1923第2章 密码学基础2. 密码系统构成 密码系统主要包括以下几个基本要素:明文(Plain Text),指的是希望得到保密的原始信息。通常用P或M表示。用某种方法伪装信息以隐藏它的内容的过程称为加密(E

7、ncryption)经过加密处理后得到的隐藏信息称为密文(Cipher Text),通常用C表示。 而把密文转变为明文的过程称为解密(Decryption)。2022/7/1924第2章 密码学基础2022/7/1925第2章 密码学基础加密算法(Encryption Algorithm)。通常用E表示。是指通过一系列的变换、替代或其他各种方式将明文信息转化为密文的方法。解密算法(Decryption Algorithm)。通常用D表示。指通过一系列的变换、替代或其他各种方法将密文恢复为明文的方法。2022/7/1926第2章 密码学基础举例说明上述概念商人贾某要给他儿子发一份密码电报,电文四

8、个字:“抛售布匹”(原文)。按照电报码手册,这四个汉字对应:2141 0786 1580 0572,然后把每个四位数都加上100(加密密钥),四个四位数就变成了:2241 0886 1680 0672,此刻这四个电报码对应变为:“抡噌庙叵”(密文)。儿子收到电报“抡噌庙叵”后,根据相应的电报码手册得到: 2241 0886 1680 0672,按照事先的约定,分别减去100(解密密钥),就得到“抛售布匹”的信息。2022/7/1927第2章 密码学基础2. 密码系统构成 加解密算法通常都是在一组密钥的控制下进行的,分别称为加密密钥和解密密钥。加密和解密过程如下图所示。明文明文密文加密算法解密算

9、法加密密钥解密密钥2022/7/1928第2章 密码学基础3. 密码系统数学模型 以五元组(M,C,K,E,D)表示密码系统,其中M是明文信息空间,C是密文信息空间,K是密钥信息空间,E是加密算法,D是解密算法。各元素之间有如下的关系:E:M K - C,表示E是M与K 到C的一个映射;D:C K - M,表示D是C与K到 M的一个映射。2022/7/1929第2章 密码学基础3. 密码系统数学模型 在最早的恺撒密码体制中明文信息空间是26个英文字母集合,即M = a,b,c,d z, A,BZ;密文信息空间也是26个英文字母集合,即C= a,b,c,d .z, A,B.Z密钥信息空间是正整数

10、集合,即 K= N | N=1,2.;因此Ek = (M+K) mod 26;与之对应的解密算法是Dk ,Dk =(C-K)mod 26。2022/7/1930第2章 密码学基础3. 密码系统数学模型 例如:恺撒密码体制解密算法:(C-K) mod 262022/7/1931第2章 密码学基础3. 密码系统数学模型 发送信息的一方使用密钥K加密明文M,通过加密算法得到密文C,即C = EK(M);接收信息的一方使用密钥K解密密文C,通过解密算法得到明文M,即M = DK ( C );。K与K可能相等,也可能不等,具体取决于所采用的密码体制。 2022/7/1932第2章 密码学基础3. 密码系

11、统数学模型 明文m加密算法:密文c=Ek1(m)加密密钥源解密密钥源解密算法:m=Dk2(c) 明文mmmk1k2cc2022/7/1933第2章 密码学基础2.1.3 密码体制分类 按不同的划分标准或者方式,密码体制可以分为多种形式。我们主要从加密方式、所采用的密钥方式以及保密程度来划分。 2022/7/1934第2章 密码学基础1. 按加密方式划分 (1)流密码体制。也称为序列密码,它是将明文信息一次加密一个比特形成密文字符串,典型的流密码体制是一次一密密码体制,其密钥长度与明文长度相等。 (2)分组密码体制。 也称为块密码体制,分组密码则是将明文信息分成各组或者说各块,每组具有固定的长度

12、,然后将一个分组作为整体通过加密算法产生对应密文的处理方式。2022/7/1935第2章 密码学基础1. 按加密方式划分 流密码 明文m写成连续的符号m=m1m2, 密钥流k=k1k2 第i个元素ki对明文中的第i个元素mi进行加密, 加密后的密文c=Ek(m)= Ek1(m1) Ek2(m2)Eki(mi)。 解密后:m=Dk(c)=Dk1(Ek1(m1)Dk2(Ek2(m2)=m1m2。2022/7/1936第2章 密码学基础1. 按加密方式划分 流密码加密算法E解密算法D明文mi密文ci=Eki(mi)明文mi=Dki(ci )密钥ki密钥ki2022/7/1937第2章 密码学基础 分

13、组密码2022/7/1938第2章 密码学基础2. 按使用的密钥方式划分 (1)单密钥体制。也称为对称密码机制,在该体制下,密码系统只有一个密钥,加密算法和解密算法使用统一的一个密钥,拥有密钥的用户既可以加密信息也可以解密信息。(2)双密钥体制。也称为非对称密码体制或者公钥密码体制,在该体制下,密码系统有两个密钥,分别是公开密钥和私有密钥,公开密钥是对外公开的,即所有的人都可知,私有密钥是只有特定的用户方能拥有。2022/7/1939第2章 密码学基础3. 按保密程度划分 (1)实际上保密的密码体制。是指在理论上可破解,但是在现有的客观条件下以及有限的时间内,无法通过计算从密文破译出明文或者密

14、钥的密码体制。(2)绝对保密的密码体制。是指无论在理论上还是实际上,都不可破解的密码体制。 2022/7/1940第2章 密码学基础2.1.4 密码系统设计的基本原则 (1)简单实用原则。(2)抗攻击性原则 。(3)算法公开化原则 。2022/7/1941第2章 密码学基础2.1.5 密码系统攻击及分析 对密码系统的攻击分为被动攻击和主动攻击被动攻击是指通过窃取密文试图了解明文或者密钥的内容;主动攻击是指篡改和伪造密文,以达到修改或者伪造明文的目的。被动攻击的主要方法有:通过窃听通信信道上传输的密文,对其进行分析破译出明文为或者密钥; 主动攻击的主要方法有:攻击者截取通信信道上传输的密文,然后

15、对其篡改(如添加、删除某些内容)再发送2022/7/1942第2章 密码学基础2.2 传统对称密码体制 在公钥密码体制出现以前,无论是古典密码还是近现代密码都属于对称密码体制,也就是说加密和解密使用同一个密钥。2.2.1 加解密的基本原理 2.2.2 数据加密标准DES 2.2.3 高级加密标准AES 2022/7/1943第2章 密码学基础2.2.1 加解密的基本原理基于对明文信息的“置换”和“替代”完成的,或者是通过对两者的组合运用即乘积的方式完成。 2022/7/1944第2章 密码学基础1. 置 换 置换又称“换位”方法,是指变换明文中各元素的相对位置,但保持其内容不变的方法,即通过对

16、明文元素重新排列组合来达到隐藏明文原始内容所表达含义的加密方法。最典型的置换密码体制是栅栏密码技术。2022/7/1945第2章 密码学基础1. 置 换 栅栏加密算法步骤如下:将明文的元素按照两行的方式书写,并按照从上到下,从左到右的方式排列;按从上到下的顺序依次读出每一行的元素所得到的组合就是密文。 2022/7/1946第2章 密码学基础1. 置 换 栅栏解密算法步骤如下:将接收到的密文按照从左到右的顺序写为两行,如果密文元素的个数为偶数n,则每一行写n/2个元素;如果密文元素个数为奇数,则第一行排列n+1/2个元素,第二行排列n-1/2个元素;按照加密算法的规则,依次从上到下,从左到右的

17、规则读取各元素,所得到的字母序列即获得所需要的明文。2022/7/1947第2章 密码学基础1. 置 换 2022/7/1948第2章 密码学基础1. 置 换 一种改进的方案是将明文元素以矩阵的方式排列,假设明文可以写成nm的n行m阶的矩阵,矩阵法:按照nm的矩阵格式从左到右依次写出明文元素;根据密钥的内容指示,读出相应各列的明文元素;所有读出的元素按一行的顺序排列,得到的结果即为密文。 2022/7/1949第2章 密码学基础1. 置 换 例如:2022/7/1950第2章 密码学基础1. 置 换 矩阵法解密算法是:根据密钥长度将密文写成矩阵形式,但书写的格式是按照逐列写,各列之间的排列顺序

18、参照密钥内容的编号;依次读取排列好的矩阵逐行元素,得到的结果就是明文。 2022/7/1951第2章 密码学基础1. 置 换 2022/7/1952第2章 密码学基础1. 置 换置换法破译: 通过字母的使用频率破译2022/7/1953第2章 密码学基础2. 替 代 替代方法是将明文各元素的内容用新的符号或者符号组合代替,替换之后形成的新的元素符号集合便是密文。 A B C D E F G H V W X Y ZF G H I J K L M A B C D E 2022/7/1954第2章 密码学基础2. 替代密码分析给定加密信息:PHHW PH DIWHU WKH SDUWB由于:加密算法

19、已知 可能尝试的密钥只有26个通过强力攻击得到明文:Meet me after the party替代法容易受到攻击!2022/7/1955第2章 密码学基础2.2.1 加解密的基本原理将置换和替换两者交替使用的密码编码方法称为乘积密码Feistel密码结构就是乘积密码Feistel密码结构经过多轮循环的置换与替代操作现在普遍使用的分组密码体制设计原理几乎都遵循Feistel密码结构,如经典的数据加密标准DES。 2022/7/1956第2章 密码学基础2.2.2 数据加密标准DES 2022/7/1957第2章 密码学基础1. DES的产生 1972年,美国标准局NBS(现在的NIST)公开

20、征求用于计算机通信数据保密的方案,其要求为:算法必须提供高度的安全性;算法必须有详细的说明,并易于理解;算法的安全性取决于密钥,不依赖于算法;算法适用于所有用户;算法适用于不同应用场合;算法必须高效、经济;算法必须能被证实有效;算法必须可出口。2022/7/1958第2章 密码学基础1. DES的产生IBM公司的W.Tuchman和C.Meyers等研究人员提交了一个数据加密算法Lucifer该算法被美国标准局采用,在经过一系列的研究讨论和简单的修改于1977年正式批为数据加密标准DES。2022/7/1959第2章 密码学基础2. DES算法基本原理 DES属于典型的分组密码体制。DES将明

21、文信息按64比特大小分组,密钥长度也是64比特,但是实际使用过程中密钥长度是56比特,另外8比特用作奇偶校验位(即每个字节的最后一位用作奇偶校验)。64比特的明文分组在密钥的作用下经过多次的置换和替代组合操作,最终形成攻击者难以破译的64比特密文。 2022/7/1960第2章 密码学基础2. DES算法基本原理 置换和替代的多次组合过程多轮循环加密来扰乱和扩散明文信息 2022/7/1961第2章 密码学基础2. DES算法基本原理 DES算法加密的基本原理: 加密过程中输入64比特的明文,首先经过初始矩阵IP置换; 在56比特的输入密钥控制下,进行16轮迭代加密处理过程; 通过简单的换位和

22、逆置换算法,得到64比特的输出密文。2022/7/1962第2章 密码学基础2. DES算法基本原理 DES算法加密的基本原理:2022/7/1963第2章 密码学基础2. DES算法基本原理 DES算法解密的基本原理:解密处理过程与加密处理过程顺序完全一样加密过程:K1 = K16解密过程:K1 = K16 2022/7/1964第2章 密码学基础3. 算法加密具体过程DES加密算法主要由4个元素组成:初始置换矩阵IP、加密函数F、 S-盒子、逆初始置换矩阵IP-1。 2022/7/1965第2章 密码学基础3. 算法加密具体过程初始置换:初始置换矩阵IP 2022/7/1966第2章 密码

23、学基础3. 算法加密具体过程初始置换:由置换矩阵可知置换规则:将原先处在第58位置的比特置换后放在第1个位置,第50位置的比特置换后放在第2个位置,第7个位置的比特置换后放在第64个位置。如果明文M分组是序列m1 m2 m3 .m64,则经过IP置换后变成序列m58 m50 m42 .m7。 2022/7/1967第2章 密码学基础3. 算法加密具体过程初始置换:举例,假设64比特明文M是: 按照初始置换矩阵IP的变换规则,将M变换为M1,M1序列是: 2022/7/1968第2章 密码学基础3. 算法加密具体过程M写成88的矩阵,如表2-7所示。初始置换后如表2-8所示 2022/7/196

24、9第2章 密码学基础3. 算法加密具体过程通过比较表2-7与表2-8,可以发现,M由置换矩阵IP变换到M1遵循一定的规律:矩阵M1的第1行是矩阵M的第2列的倒置,第2行是矩阵M的第4列倒置,第5行是矩阵M的第1列的倒置。概括的说,置换后的矩阵M1前4行是明文矩阵M各偶数列的倒置,后4行是明文矩阵M各奇数列的倒置。2022/7/1970第2章 密码学基础3. 算法加密具体过程再次对照逆初始矩阵IP-1(如表2-6所示)可发现,将M1前4行各行的倒置作为新矩阵M2的偶数列,后4行各行的倒置作为新矩阵M2的奇数列,会得到结果M=M2。也就是说将任何明文M经过初始矩阵IP置换,然后再经过逆初始矩阵IP

25、-1的置换,M的值保持不变 2022/7/1971第2章 密码学基础3. 算法加密具体过程每轮迭代加密处理过程: DES算法加密过程需要16轮迭代处理,每一轮迭代的处理步骤是一样的,只是输入的信息和控制密钥不同,第i轮加密处理过程如图2-3所示。 2022/7/1972第2章 密码学基础3. 算法加密具体过程2022/7/1973第2章 密码学基础3. 算法加密具体过程F函数是DES算法的精髓,它是多个置换函数和替代函数的组合函数,该函数以密钥和上一轮加密得到的部分结果作为输入,通过多次扩展、置换和替代达到真正“扰乱”明文信息的目的。F函数分为扩展、异或运算、S盒替代以及置换四个步骤。 202

26、2/7/1974第2章 密码学基础3. 算法加密具体过程 扩展 F函数首先将32比特的数据Ri-1 预扩展为48比特,其方法是:将Ri-1 从左到右分成8块,每块4比特,然后将每块从4比特扩展到6比特。扩展的规则是:每一块向左扩展一位,同时向右扩展一位,也就是说,第n块向左扩展一位,与第n-1块未扩展前的最后一位相同,同时向右扩展一位,与第n+1块未扩展前的最后一位相同;2022/7/1975第2章 密码学基础3. 算法加密具体过程例如由表2-8 所知的序列M1,得到加密时的L0和R0 分别是: 首先将R0 分为8块,得到数据:1001 0111 0101 0110 1011 100 1110

27、 0000,如图2-4所示, 2022/7/1976第2章 密码学基础3. 算法加密具体过程2022/7/1977第2章 密码学基础3. 算法加密具体过程异或运算:由图2-3所示,经过扩展后的48比特Ri-1 将与第i轮加密密钥Ki 进行异或运算,密钥Ki 也是48位,由原始密钥经过循环左移以及置换排列的方式产生,具体的生成过程后面将详细描述。 48位的Ki 同Ri-1 一样,也分成8块,每块6比特,然后与扩展后的Ri-1 对应的各块做异或运算后,同样生成8个6位比特块,其输出是S盒子的输入。 2022/7/1978第2章 密码学基础3. 算法加密具体过程假设密钥Ki的第1块6比特数据为:11

28、0111,图2-4所示的第一块扩展比特是010010,则两者异或的结果是100101 2022/7/1979第2章 密码学基础3. 算法加密具体过程 S盒替代 DES算法中的S盒子由8个子盒S1、S2 、S3 、S4 、S5 、S6 、S7 、S8 组成,每个盒子构成4行16阶的4 16 矩阵,表2-9列出了其中一个子盒S1的定义。 2022/7/1980第2章 密码学基础3. 算法加密具体过程2022/7/1981第2章 密码学基础3. 算法加密具体过程S盒子的输入是上述所讲的由Ri-1与Ki 两者异或运算得到的结果,其中第j个子盒Sj的输入是第j块异或运算的结果,输出是根据Sj盒子定义得到

29、的4比特数据。 2022/7/1982第2章 密码学基础3. 算法加密具体过程对于每个盒子Sj (j=1,2.8)其输入与输出之间的映射关系是:将Sj输入的第一位与最后一位两个二进制组合起来,得到某个十进制数m,m用来选择矩阵Sj的行;Sj输入的中间四比特数据组合,得到十进制数n,n用来选择矩阵Sj的列。已知行m与列n,查找已经定义好的矩阵Sj 的m行n列对应的值,该值就是Sj的输出。 2022/7/1983第2章 密码学基础3. 算法加密具体过程对应前面叙述的例子,S1 盒子的输入是F函数第二步异或运算所得结果,为数据100101,S1盒子的输出通过表2-9确定,具体的方法是:将输入的第1位

30、“1”与第6位“1”构成二进制数“11”,“11”表示十进制数3,即要选择矩阵S1的第3行,输入的中间四位二进制数“0010”,表示十进制数2,即要选择矩阵S1的第2列,在表2-4中,第3行第2列对应的二进制数是1000 2022/7/1984第2章 密码学基础3. 算法加密具体过程 置换 F函数的最后一步是对S盒子输出的32比特数据进行置换,目的是使得S盒的输出对下一轮多个Si子盒产生影响,以增强DES的安全性。F函数的输出结果与上一轮加密处理的左半部分数据Li-1异或,得到第i轮加密处理的右半部分32位数据Ri。然后Li与Ri又作为第i+1轮加密处理时的输入数据,这样,经过16轮迭代加密处

31、理之后,得到L16 与R16。 2022/7/1985第2章 密码学基础3. 算法加密具体过程将R16 与L16 左右换位,即将R16的32比特数据移到左边,L16的32比特数据移到右边。换位之后,再次经过逆初始矩阵IP-1置换,最终得到的结果就是密文。2022/7/1986第2章 密码学基础4. DES算法解密过程 DES的解密算法与加密算法除了在每一轮循环迭代时所使用的控制密钥不同之外,其他的完全一样。并且,输出的64比特密文经过解密处理过程,所得结果就是所需的明文。 2022/7/1987第2章 密码学基础5. 密钥的生成 DES算法定义的分组长度是64比特,其主密钥长度与明文分组长度一

32、样,也是64比特,不过在实际使用中,只用到56比特,还有8比特用作奇偶校验位。 每轮迭代所使用的密钥Ki (i=1,2 .16)都是从主密钥生成的,Ki 的长度是48比特。密钥的具体生成方法如图2-5所示:2022/7/1988第2章 密码学基础5. 密钥的生成 2022/7/1989第2章 密码学基础6. DES算法安全性分析 关于DES算法的安全性,在最初公布的时候,曾受到很多人的置疑。攻击者会很容易的破译DES算法密钥更多的人担心保密设计的S盒子的安全性很多用户担心S盒子存在隐藏的弱点2022/7/1990第2章 密码学基础6. DES算法安全性分析 DES算法为什么需要16次循环迭代?

33、而不是15次或者更多的20次呢?不能一味的为了防止攻击者破译密码,不断增加循环迭代次数,否则算法的效率与性能将会受到影响较少的迭代次数又会导致攻击者容易分析密码算法,从而破译出密钥。2022/7/1991第2章 密码学基础6. DES算法安全性分析 DES算法使用56位密钥是否安全?上世纪70年代,DES被广泛使用在安全级别要求不高的场合。但是20世纪90年代以来,从计算上讲,56位密钥的DES不能再认为是安全的。 2022/7/1992第2章 密码学基础2.2.3 高级加密标准AES 1. AES的起源2. AES的设计原则2022/7/1993第2章 密码学基础1. AES的起源1997年

34、9月,NIST征集AES方案,以替代DES。1999年8月,以下5个方案成为最终候选方案:MARS, RC6, Rijndael, Serpent, Twofish。2000年10月,由比利时的Joan Daemen和Vincent Rijmen提出的算法最终胜出。( Rijndael 读成Rain Doll。)2000年12月,美国国家标准局NIST正式确认新一代数据加密标准是高级加密标准AES(Advanced Encryption Standard) 。2022/7/1994第2章 密码学基础2. AES的设计原则能抵抗所有已知的攻击;在各种平台上易于实现,速度快;设计简单,是一种分组密

35、码体制,加密和解密使用相同的密钥,属于对称密码体制;与DES分组密码体制不同的是,AES中明文或密文分组长度以及密钥长度不是固定的,而是可变的,它们可以是128比特、192比特、256比特。2022/7/1995第2章 密码学基础2.3 公钥密码体制 2.3.1 公钥密码体制的基本原理2.3.2 RSA算法2.3.3 有限域上椭圆曲线密码算法ECC 2.3.4 公钥密码体制的应用 2022/7/1996第2章 密码学基础古老的密码学问题 很久以前,分别有两个国家的公主和王子,公主要通过一位信使送给王子一样不愿被别人看见的信物,所以公主用加锁的箱子放信物。这位信使只愿意跑一趟,而且在这段路程中,

36、只要一有机会(钥匙)就会偷看信物。 问题:公主如何才能把信物安全的送到王子的手中?2022/7/1997第2章 密码学基础解决办法:让两个国家的每一个人都具有两副锁和钥匙,每幅各有一把锁和一把钥匙。每一把锁和它不配套的钥匙放在一起,这样每个人就有两副不配套的钥匙和锁了。将其中的一幅秘密留在家里(秘密锁钥);另一幅拿到锁厂,复制60亿副,让国家人人都能从市场上买到它(公开锁钥)。2022/7/1998第2章 密码学基础首先假设:公主的秘密锁钥(Ab),公开锁钥(Ba) 王子的秘密锁钥(Cd),公开锁钥(Dc)公主:送的箱子上共锁着两把锁(DA)王子:( Ba )(A) ( Cd )(D)2022

37、/7/1999第2章 密码学基础2.3.1 公钥密码体制的基本原理1976年,狄菲和海尔曼提出了密码体制的新概念公钥密码。使用两个密钥:公密钥、私密钥加解密的非对称性,是对对称密码的重要补充利用数论与其他数学难题的方法2022/7/19100第2章 密码学基础2.3.1 公钥密码体制的基本原理重要特点仅根据加密算法和加密密钥来确定解密密钥在计算上不可行两个密钥中的任何一个都可用来加密,另一个用来解密。六个组成部分:明文、密文;公钥、私钥;加密、解密算法2022/7/19101第2章 密码学基础序号对称密码公钥密码1 加密和解密使用相同的密钥 加密和解密使用不同密钥2 密钥必须保密存放 私钥保密

38、存放,公钥公开存放3 通信前,收发双方必须实现密钥共享 通信前,收发双方无需实现密钥共享 4 应用于数据加解密、可以实现数据保密性、认证等安全服务 应用于数据加解密、数字签名、密钥交换等方面,实现数据保密、认证、数据完整性、不可否认性等安全服务 2022/7/19102第2章 密码学基础2.3.1 公钥密码体制的基本原理1.公钥密码体制依赖的基础2.公钥密码系统的特征 3.公钥密码体制加解密过程 2022/7/19103第2章 密码学基础1. 公钥密码体制依赖的基础经典的公钥密码算法RSA、椭圆曲线密码算法ECC等都是依赖某类数学问题的,它们共同的特点是基于某个单向陷门函数。2022/7/19

39、104第2章 密码学基础单向陷门函数 y=fk(x) 是指同时满足下列条件的一类可逆函数: 函数是一一映射关系,一个y对应唯一的一个x; 给定x与关键参数k,函数y=fk(x)很容易计算;2022/7/19105第2章 密码学基础1. 公钥密码体制依赖的基础 给定y,存在某个关键参数k,在未知k时,逆函数x=f-1(y) 的计算相当复杂,实际上是不可行的;在已知k时,则逆函数x=f-1k(y)很容易计算; 给定y和参数k,无法从函数y=fk(x)推导出影响其逆函数f-1的关键参数k。2022/7/19106第2章 密码学基础2. 公钥密码系统的特征 根据密码系统的组成以及公钥密码体制自身的特点

40、,一个公钥密码系统可以表示为:加密算法E、解密算法D、公钥/私钥(PK/SK)对、明文M、密文C六个元素,且各元素必须要满足以下条件: 2022/7/19107第2章 密码学基础2. 公钥密码系统的特征 密钥要满足三点要求:公钥/私钥(PK/SK)对容易产生,且私钥除了生成密钥的用户自己知道之外,其他任何人都不可知;PK和SK中的任何一个都可以用于加密,相应的另一个用于解密;从公开密钥PK无法通过计算得到私有密钥SK 。 2022/7/19108第2章 密码学基础2. 公钥密码系统的特征 加密算法E要满足两点要求:已知公钥PK,对任何明文M,由E计算出密文C非常容易,即C = EPK(M) 易

41、计算已知私钥SK,对任何信息M,由E计算数字签名也非常容易,即C = ESK(M) 易计算。2022/7/19109第2章 密码学基础2. 公钥密码系统的特征 解密算法D要求: 仅知道解密算法以及加密密钥,推导明文和解密 密钥都是计算不可行的。 2022/7/19110第2章 密码学基础3. 公钥密码体制加解密过程 假设网络上的两个用户Alice和Bob需要进行秘密通信,为了防止攻击者Eve窃听信息,Alice和Bob选择使用公钥密码体制加密传输的信息。Alice是信息的发送方;Bob是信息的接收方。 Alice与Bob产生公钥/私钥对:PKA/SKA,PKB/SKB。2022/7/19111

42、第2章 密码学基础3. 公钥密码体制加解密过程 Alice与Bob通过某种机制公布各自的公钥PKA与PKB,例如将公钥放到一个公共的服务器,供其他用户查询。2022/7/19112第2章 密码学基础3. 公钥密码体制加解密过程 Alice通过查询公共服务器获得Bob的公钥PKB。如果Alice欲给Bob发送报文M,他就用Bob的公钥PKB加密报文。已知待加密的明文M以及Bob的公钥PKB,Alice很容易通过加密算法E计算出密文,即 C = EPKB(M)。2022/7/19113第2章 密码学基础3. 公钥密码体制加解密过程 接收方Bob收到Alice发送的信息之后,使用自己的私钥SKB解密

43、报文。已知密文C私钥SKB,Bob很容易通过解密算法计算出明文M,即 M=DSKB(C)。2022/7/19114第2章 密码学基础如果反过来呢?Bob发送给Alice信息该如何加密信息呢?2022/7/19115第2章 密码学基础用公钥进行加密2 Alice产生一对密钥,用于加密和解密3 Alice将一个密钥公开,另一个密钥私有BobAlice1 Bob要发送消息给Alice4 Bob用Alice的公钥对消息加密,发送给Alice。只有Alice能解密2022/7/19116第2章 密码学基础2.3.2 RSA算法 1.RSA算法依赖的数学问题2.RSA算法密钥产生过程3.RSA算法加解密过

44、程 4.RSA算法安全性及性能分析 2022/7/19117第2章 密码学基础RSA算法由MIT的 Rivest, Shamir & Adleman 在 1977 提出最著名的且被广泛应用的公钥加密体制 明文、密文是0到n-1之间的整数,通常n的大小为1024位二进制或309位十进制数2022/7/19118第2章 密码学基础2022/7/19119第2章 密码学基础1. RSA算法依赖的数学问题 模运算的性质:正整数n是素数,集合Zn = 0,1,2.,(n-1) 表示小于n的所有非负整数集合,则对于集合Zn 中的每一个整数wZn,均存在一个z,满足公式w z = 1 mod n,我们称z是

45、w的乘法逆元,且n是它们的模。 2022/7/19120第2章 密码学基础1. RSA算法依赖的数学问题 费马定理:如果p是素数,a是不能整除p的正整数,则: ap-1 1 mod p例如:P=7, a=2,则27-1=26 =64,64mod7=12022/7/19121第2章 密码学基础1. RSA算法依赖的数学问题 欧拉函数:正整数n的欧拉函数是指小于n且与n互素的正整数个数,通常记为(n)。对于任一素数p,显然有:(p) p 1,例如:设p=3,小于3且与3互素的正整数为1,2,因此(3) = 2;类似地,当p=7时,小于7且与7互素的正整数为1,2,3,4,5,6,因此(7) = 6

46、 2022/7/19122第2章 密码学基础1. RSA算法依赖的数学问题假定有两个不同的素数p和q,n是p与q之积,即 n = p q,则有如下公式关系:(n)=(pq)= (p)(q)=(p-1)(q-1) 例如:取n=21,(21) = (3) (7) = (3-1) (7-1) = 2 6 = 12,其中这12个整数是1,2,4,5,8,10,11,13,16,17,19,20 2022/7/19123第2章 密码学基础1. RSA算法依赖的数学问题 欧拉定理:任何两个互素的整数a和n,有如下关系: a(n) = 1 mod n 例如:a = 3;n=8;由(3)欧拉函数的定义,(8)

47、 = 4;则a(n) = 34 = 81 =108 +1 1 mod 8 1 mod n 2022/7/19124第2章 密码学基础1. RSA算法依赖的数学问题欧几里德(Elucid)算法:该算法主要的思想是:用一个简单的方法确定两个正整数的最大公因子,并且如果这两个整数互素,通过扩展该算法能确定它们各自的逆元 2022/7/19125第2章 密码学基础2. RSA算法密钥产生过程 (1) 随机选择两个大素数 p与q,且p q = n。 建议p与q长度应该只差几个数字,且p与q应该 位于区间1075 .10100内(2) 计算n的欧拉函数值: (n) = (p-1) (q-1) (3) 随机

48、选择一个大的正整数e,e满足小于n且与 (n)互素的条件,即e与(n)的最大公因子是12022/7/19126第2章 密码学基础2. RSA算法密钥产生过程 (4) 根据e,(n),计算另外一个值d,d是e的乘法逆元,且(n)是它们的模,由模运算的及乘法逆元的性质,d e = 1 mod (n)则两个二元组(e,n)、(d,n) 构成RSA的密钥对,选择其中任意一个二元组作为公钥,则另外一个就为私钥,在此,我们定义(e,n)为公钥,(d,n)为私钥。2022/7/19127第2章 密码学基础2. RSA算法密钥产生过程 例如:1) 令p = 7,q=11,则n=77;2) 计算n的欧拉函数值(

49、n) = (7-1) (11-1) = 60;3) 选择e = 17,e符合小于77,且于欧拉函数值(n)((n)=60)的最大公因子是1的条件;4)计算e的逆元d,因为 53 17 = 15 60 +1 1 mod 60,所以当e=17时,d=53。 因此(17,77)/(53,77)构成一个RSA的公钥/私钥对。 2022/7/19128第2章 密码学基础3. RSA算法加解密过程 RSA算法属于分组加密方案,也就是说明文以分组为单位加密分组的大小取决于所选的模n的值,明文块每个分组的长度可以相同也可以不同,但是,各分组大小必须小于或等于log2(n)的值。2022/7/19129第2章

50、密码学基础已知明文的某块分组报文M,公钥(e,n),私钥(d,n),则加密过程如下:对M的e次方幂指数运算结果再做模n运算,所得结果即为密文C,即由M计算C用公式表示为: C = EpK(M) = Me mod n (公式2.1) 2022/7/19130第2章 密码学基础3. RSA算法加解密过程 RSA算法加密和解密过程是等价的,解密过程如下:对C的d次方幂运算结果再做模n运算,所得结果即为明文M,即由C推导M可用公式表示为: M = DSK(M) = Cd mod n (公式2.2) 2022/7/19131第2章 密码学基础4. RSA算法安全性及性能分析 RSA算法的安全性基于大整数

51、因子分解的困难性,即给定大整数n,将n分解为两个素数因子p与q,在数学上已证明是难题,至今没有有效的方法予以解决。RSA密码方案的优点在于原理简单,易于使用 2022/7/19132第2章 密码学基础4. RSA算法安全性及性能分析 缺点:RSA的性能比较低。 硬件实现的效率是DES的1/1000,软件实现的效率是DES的1/100,2022/7/19133第2章 密码学基础RSA与DESRSA不适用于对长的明文信息加密它常常与对称密码体制结合使用RSA用来加密通信双方的会话密钥对称密码体制如DES用来加密传输的报文2022/7/19134第2章 密码学基础4. RSA算法安全性及性能分析 为

52、了安全起见,RSA方案中要求模数n越来越大RSA密钥长度要求大于1024比特才有安全保障密钥长度的增加提高了安全性,但是进一步影响了算法的性能在选择RSA密钥时,在系统的安全性和性能之间需要找到一个平衡点2022/7/19135第2章 密码学基础2.3.3 有限域上椭圆曲线密码算法ECC 1985年Neal Kobiltz和Victor miller提出椭圆曲线密码算法ECC(Elliptic Curve Cryptosystem) 1. ECC算法依赖的数学问题2. ECC算法密钥的选择 3. ECC算法的加解密过程 4. ECC算法的安全性分析 2022/7/19136第2章 密码学基础1

53、. ECC算法依赖的数学问题 椭圆曲线定义:设K表示一个域,椭圆曲线E(K)用二元方程表示:y2 + axy + by = x3 + cx2 + dx +e 其中 a,b,c,d,e 均属于K域。在实际的密码学研究中,主要应用的是基于有限域上的椭圆曲线。具有q个元素的有限域上的椭圆曲线满足下列方程关系: y2 = x3 + ax +b 2022/7/19137第2章 密码学基础1. ECC算法依赖的数学问题 椭圆曲线上的点加运算:设P、Q是E上任意两点,R是连接P,Q的直线L与E相交点,R关于X轴的对称节点是R,如图2-6所示。根据椭圆曲线的对称性,R必定在椭圆曲线E上定义:R = P +Q,

54、R就是P与Q点加的和 2022/7/19138第2章 密码学基础1. ECC算法依赖的数学问题2022/7/19139第2章 密码学基础1. ECC算法依赖的数学问题如果P和Q相同,即P与Q是椭圆曲线的某一点,如图2-7所示,则过P做椭圆的切线,该切线同E相交点为M,M关于X轴的对称点M就是P+P的点加和,即M=P +P,我们将P + P记做M = 2 P,以此类推,n个P相加 P + P + P .+P 记做 nP ,nP 也称为倍乘。根据椭圆曲线的性质,2P、3P.nP都是E上的点。 2022/7/19140第2章 密码学基础1. ECC算法依赖的数学问题2022/7/19141第2章 密

55、码学基础1. ECC算法依赖的数学问题 椭圆曲线离散对数问题给定椭圆曲线E及该椭圆曲线上的一点P,kP 表示k个P相加,k为某整数,如果椭圆曲线上存在一点Q,能够满足方程 Q = kP,那么椭圆曲线离散对数问题就是给定点P和点Q,求解k的问题,在数学上该问题是同时涉及整数因式分解和离散对数的难题。2022/7/19142第2章 密码学基础1. ECC算法依赖的数学问题ECC算法就是基于“椭圆曲线离散对数问题”难以求解而设计的给定P和k容易通过方程Q = kP计算Q;但是反过来,给定Q和P,求k在计算上是不可行的,因此我们可以设定k为私钥。 2022/7/19143第2章 密码学基础2. ECC

56、算法密钥的选择 基于椭圆曲线密码体制的ECC算法在加解密之前,首先要给出椭圆曲线域的一些参数,如基点P,阶n ,以确定具体的椭圆曲线。 ECC算法密钥的产生是都是建立在某个有限域的椭圆曲线上,设给定一个具有q个元素有限域的椭圆曲线E,E 的基点是P,P的阶为n。 2022/7/19144第2章 密码学基础2. ECC算法密钥的选择 (1) 密钥的产生者在区间2,n-1随机选取某整数k;(2) 计算Q = kP。 则Q就是公钥,私钥是k。 2022/7/19145第2章 密码学基础3. ECC算法的加解密过程 假设网络上的用户Alice和Bob要进行保密通信,它们选择ECC算法加密通信的报文。A

57、lice与Bob知道同一条椭圆曲线E,并已分别产生公钥/私钥对kA/QA,kB/QB,Alice欲发送明文m送给Bob,并且已获知Bob的公钥QB。 2022/7/19146第2章 密码学基础3. ECC算法的加解密过程 Alice加密过程如下:(1)首先要将明文m编码成椭圆曲线上的点Pm,Pm为(Xm,Ym );(2)Alice随机选择整数k2,n-1;(3)计算 kP = R1 (X1,Y1),( kQB = R2 (X2,Y2);如果X2 =0;则返回到(2); 则密文C由 R1,Pm +R2 组成; 2022/7/19147第2章 密码学基础3. ECC算法的加解密过程 Bob收到密文

58、C后,解密过程如下:(1)计算kBR1 = kBkP = k kBP = kQB(2)Bob利用密文C的第二点的值R2 + Pm 减去由(1)计算得到的结果kQB,即 Pm + R2 kQB = Pm + kQB kQB = Pm;(3)Bob得到椭圆曲线上点Pm ,然后按照某种解码方法从点Pm获取明文m。 2022/7/19148第2章 密码学基础4. ECC算法的安全性分析 ECC算法的安全性依赖于椭圆曲线离散对数问题计算的困难性,如果离散对数问题容易计算,从用户的公钥能够推导出私钥,那么整个密码体制就会坍塌。 2022/7/19149第2章 密码学基础4. ECC算法的安全性分析 相对于

59、RSA,ECC具有一定的优势:安全性高 解决椭圆曲线上的离散对数问题,其时间复杂度是完全指数阶的,而RSA所依赖的大整数因子分解问题,其时间复杂度是子指数阶的,因此攻击ECC的复杂度比RSA要高得多;2022/7/19150第2章 密码学基础4. ECC算法的安全性分析 相对于RSA,ECC具有一定的优势:密钥短 ECC算法中所使用的密钥长度比RSA中要短很多,一般加解密时使用160位长度密钥,据统计,160位密钥ECC与1024位RSA安全强度相同性能高 ECC算法的性能比RSA算法要高,其加解密速度比RSA要快得多。2022/7/19151第2章 密码学基础4. ECC算法的安全性分析 2

60、022/7/19152第2章 密码学基础4. ECC算法的安全性分析 RSA算法因为原理简单被广泛使用ECC算法在实际应用中相对比较少ECC算法理论不断完善,会被应用到实际系统中 2022/7/19153第2章 密码学基础2.3.4 公钥密码体制的应用 1.用于加解密信息 2.用于数字签名 2022/7/19154第2章 密码学基础2.4 量子密码体制 2.4.1 概述2.4.2 量子密码原理 2.4.3 量子密钥分配2.4.4 量子密钥分配协议BB84 2.4.5 量子密码体制的发展与现状 2.4.6 三大密码体制的比较 2022/7/19155第2章 密码学基础2.4.1 概述 对称密码体

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论