密码(Cryptographie) 这一节内容较多,是法国老师教的重点。于是为了整理,选取了课件中一些关键点,借助 络,整理如下:
密码学
一、介绍
关键字:隐藏,书写。
定义:密码学是研究编制密码和破译密码的技术科学。
隐写术(Stéganographie):一门关于信息隐藏的技巧与科学,讲一条信息隐藏在另一条信息中,表面上看起来是A,其实隐藏着信息B。
术语(Terminologie):
Chiffrer / Déchiffrer
Message clair ? Message chiffré (Cryptogramme) Cryptosystème
Décrypter
Secret : clé
密钥:分为加密密钥和解密密钥。 明文:没有进行加密,能够直接代表原文含义的信息。 密文:经过加密处理处理之后,隐藏原文含义的信息。 加密:将明文转换成密文的实施过程。 解密:将密文转换成明文的实施过程。 密码算法:密码系统采用的加密方法和解密方法,随着基于数学密码技术的发展,加密方法一般称为加密算法,解密方法一般称为解密算法。 目的:(主要)保密,完整性,验证;(次要)匿名,隐藏证据等。 历史:
Transmission de messages secrets 秘密信息传递
Remonte à l’antiquité 可以追溯到古代
Lutte cryptographie/cryptanalyse 战争中加密信息及密码分析
Progression lors de conflits 在冲突中发展
Manuelle – utilise les lettres 手册:字母的使用
Automatique – utilise des bits Méthodes secrètes 自动 – 使用秘密位方法
Méthodes publiques à clé secrète 密钥的公共方法
【可以了解一下:中西方古代各有什么加密方法
二、主要算法
1. Scytale (转置法)
公元前4世纪 加密方法:通过将一条写有字母的带子缠绕在一个柱状物上,横向读。
这种方法的密钥是指定直径的柱状物。也就是说,如果直径不同,读出的信息也不同。
缺点:机密性不足。
2. Chiffre de César 凯撒密码(偏移法,1对1单字母替代)
ps:这图有点晃瞎眼,但是这些颜色对于看出维吉尼亚字母排序有一定的帮助。
人们在单一恺撒密码的基础上扩展出多表密码,多重偏移,多字母替代。
维吉尼亚密码引入了“密钥”的概念,即根据密钥来决定用哪一行的密表来进行替换,以此来对抗字频统计。密钥是单词或者句子。
方法:Chiffré[i] = (Clair[i] + Clé[i]) mod taille alphabet
此法中,收信人和发信人须使用相同的表格和密钥。
假如以上面第一行代表明文字母,左面第一列代表密钥字母,对如下明文加密:
TO BE OR NOT TO BE THAT IS THE QUESTION 当选定 RELATIONS 作为密钥时,加密过程是:明文一个字母为T,第一个密钥字母为R,因此可以找到在 R行中代替T的为K,依此类推,得出对应关系如下: 密钥:RELAT IONSR ELATI ONSRE LATIO NSREL (密钥relations循环使用) 明文:TOBEO RNOTT OBETH ATIST HEQUE STION 密文:KSMEH ZBBLK SMEMP OGAJX SEJCS FLZSY
很多年以来,维吉尼亚(Vigenère)密码都被认为是不可破解的,但一位英国富人巴贝奇(Babbage)通过寻找重复的字母段破解了这个密码系统。关于这段解析,不理解的同学们可以参考 百度百科 https://baike.baidu.com/item/维吉尼亚密码
公元1863年,普鲁士少校卡西斯基(Kasiski)提出了Kasiski测试法,此方法从密钥的长度着手破解Vigenere密码。思想与巴贝奇相同。
4. Chiffre de Vernam (1917) 又叫 Masque jetable (一次性密码本)。
一次性密码本(one-time pad,缩写为OTP)是古典密码学中的一种加密算法。是以随机的密钥(key)组成明文,且只使用一次。
加密方法
首先手上要有一本一次性密码本用以加密文件,接着将一次性密码本里的字母,与被加密文件的字母给依序按某个事先约定的规定一一相混,其中一个相混的作法是将字母指定数字(如在英语中,将A至Z依序指定为0至25)然后将一次性密码文本上的字母所代表的数字和被加密文件上相对应的数字给相加,再除以该语言的字母数后取得其余数,假设字母数是 n(如英语为26),若就此得出来的某个数字小于零,则将该小于零的数给加上n,如此便完成加密。
举个例子,若要加密讯息“This is an example”,而用以加密的一次性密码本如下所示:
MASKL NSFLD FKJPQ
则利用指定数字的方法,可分别将两者给做以下的转换:
- 这是一个例子→19 7 8 18 8 18 0 13 4 23 0 12 15 11 4
- MASKL NSFLD FKJPQ→12 0 18 10 11 13 18 5 11 3 5 10 9 15 16
两者依序相加后得到的讯息如下:
- 31 7 26 28 19 31 18 18 15 26 5 22 24 26 20
将以上得到的讯息模26(除以26后取余数)可得:
- 5 7 0 2 19 5 18 18 11 0 5 22 24 0 20
它也就变成了
- FHACTFSSLAFWYAU
而若要解密以上讯息,反向操作即可。
安全性
在理论上,此种密码具有完善保密性,是牢不可破的。它的安全性已由克劳德·艾尔伍德·香农所证明。
虽然它在理论上的安全性无庸置疑,但在实际操作上却有着以下的问题:
- 用以加密的文本,也就是一次性密码本,必须确实是随机产生的。 aléatoire
- 它至少必须和被加密的文件等长。 au moins aussi longue de le message
- 用以加密的文本只能用一次,且必须对非关系人小心保密,不再使用时,用以加密的文本应当要销毁,以防重复使用。usage unique
5. Enigma 恩尼格玛密码机
弗里德曼试验 – 重合指数
其中,观察概率为
其中,c是指字母表的长度(英文为26),N指文本的长度,n1到nc是指密文的字母频率,为整数。
此方法只是一种估计,会随着文本长度的增加而更为精确。在实践中,会尝试接近此估计的多个密钥长度。[7] 一种更好的方法是将密文写成矩阵形式,其中列数与假定的密钥长度一致,将每一列的重合指数单独计算,并求得平均重合指数。对于所有可能的密钥长度,平均重合指数最高的最有可能是真正的密钥长度。[8] 这样的试验可以作为卡西斯基试验的补充。
频率分析
一旦能够确定密钥的长度,密文就能重新写成多列,列数与密钥长度对应。这样每一列其实就是一个凯撒密码,而此密码的密钥(偏移量)则对应于维吉尼亚密码密钥的相应字母。与破译凯撒密码类似的方法,就能将密文破译。
柯克霍夫方法作为卡西斯基试验的改进,由奥古斯特·柯克霍夫(Auguste Kerckhoffs)提出。它将每一列的字母频率与转换后的明文频率相对应而得出每一列的密钥字母。一旦密钥中每一个字母都能确定,就能很简单地破译密文,从而得到明文。如果维吉尼亚字母表表格本身是杂乱而非按通常字母表顺序的话,那柯克霍夫方法就会无效,但卡西斯基试验和重复指数对于决定密钥长度仍旧是有效的。
现代密码学
计算机加密/解密, 二进制数字,bit大小, 络传输,数学应用。
三、对称加密
对称加密 – 私钥密码术
缓慢的算法
Exemple : RSA, El Gamal, ECC. . .
加密时 | 验证时 | |
公钥 | 加密 | 解密 |
私钥 | 解密 | 加密 |
(比如用自己的私钥加密自己的签名,用对方的公钥读取对方的签名)
对比【对称加密&非对称加密】
对称加密 | 非对称加密 | |
密钥数量 | 1 | 2对 |
常用的密钥大小 | 100bits(128bits) | 2048bits(3072bits)-RSA/EI Gamal 200bis(256bits)-ECC |
速度 | 快 | 慢 |
专用设备 | 是 | 很少 |
可靠性 | 弱 | 强 |
RSA 算法
RSA算法是第一个能同时用于加密和数字签名的算法,它是第一个既能用于数据加密也能用于数字签名的算法。由于大数分解计算量大,运算速度慢,
核心思想:对极大整数做因式分解,décomposition en facteurs premiers N。
ECC 椭圆加密算法
其数学基础是利用椭圆曲线上的有理点构成Abel加法群上椭圆离散对数的计算困难性。
优点
安全性高
- 有研究表示160位的椭圆密钥与1024位的RSA密钥安全性相同。
处理速度快
- 在私钥的加密解密速度上,ecc算法比RSA、DSA速度更快。
- 存储空间占用小。
- 带宽要求低。
五、哈希算法 hachage cryptographique
主要特征:不可逆,无冲突
典型算法:MD5, SHA
应用:身份验证,完整性验证。
典型算法:MD5
Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以确保信息完整一致,提供消息的完整性保护。MD5的作用是让大容量信息在用数字签名软件签署私人密钥前被”压缩”成一种保密的格式(就是把一个任意长度的字节串变换成一定长的十六进制数字串)。
原理
对MD5算法简要的叙述可以为:MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。(反推是非常困难的) 方法 MD5典型应用是对一段信息(Message)产生信息摘要(Message-Digest),以防止被篡改。比如,很多软件在下载的时候都有一个文件名相同,文件扩展名为.md5的文件,在这个文件中通常只有一行文本,大致结构如: MD5 (tanajiya.tar.gz) = 38b8c2c1093dd0fec383a9d9ac940515 用户下载完该文件后,用我这个算法重新计算下载文件的MD5值,通过比较这两个值是否相同,就能判断下载的文件是否出错,或者说下载的文件是否被篡改了。 应用 1、一致性验证 2、数字签名 3、安全访问认证 多用于软件下载站、论坛数据库、系统文件安全等方面。 特点 1、压缩性:任意长度的数据,算出的MD5值长度都是固定的。 2、容易计算:从原数据计算出MD5值很容易。 3、抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。 4、强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。 典型算法2:SHA 安全散列算法(英语:Secure Hash Algorithm,缩写为SHA)是一个密码散列函数家族,是FIPS所认证的安全散列算法。能计算出一个数字消息所对应到的,长度固定的字符串(又称消息摘要)的算法。 MD5 与SHA-1 的比较
由于MD5 与SHA-1均是从MD4 发展而来,它们的结构和强度等特性有很多相似之处,表(1)是对MD5 与SHA-1 的结构比较。SHA-1与MD5 的最大区别在于其摘要比MD5 摘要长 32 比特。对于强行攻击,产生任何一个 文使之摘要等于给定 文摘要的难度:MD5 是2128 数量级的操作,SHA-1 是2160 数量级的操作。产生具有相同摘要的两个 文的难度:MD5是 264 是数量级的操作,SHA-1 是280 数量级的操作。因而,SHA-1 对强行攻击的强度更大。但由于SHA-1 的循环步骤比MD5 多(80:64)且要处理的缓存大(160 比特:128 比特),SHA-1 的运行速度比MD5 慢。
六、对称加密+哈希
Message Authentication Code(MAC) 消息认证码(带密钥的Hash函数):密码学中,通信实体双方使用的一种验证机制,保证消息 数据完整性,验证发送方身份的一种工具。构造方法由M.Bellare提出,安全性 依赖于Hash函数,故也称带密钥的Hash函数。 消息认证码是基于密钥和消息摘要所获得的一个值,可用于数据源发认证和完整性校验。
- Alice 和 Bob 通信, 双方都知道 p 和 g;
- Alice 根据公式计算出A(幂为自己知道的a),Bob根据公式计算出B(幂为自己知道的b);
- 双方交换 A 和 B 的值;
- 然后Alice用收到的B值再幂a次,Bob用收到的A值再幂b次(相当于g都幂次了a*b次,再mod p);
- 于是,Alice 和 Bob 都得到了双方相等的公共密钥。
这样,即使有中间人监听,也无法得到密钥,因为他无法知道a,b值。若想由A,B值推出幂次指数a或b是非常困难的。
九、证书
背景问题:
解决方案 —— 证书
数字证书是一个经证书授权中心进行数字签名的包含公开密钥拥有者信息以及公开密钥的文件。最简单的证书包含一个公开密钥、名称以及证书授权中心的数字签名。数字证书还有一个重要的特征就是只在特定的时间段内有效。
数字证书是一种权威性的电子文档,可以由权威公正的第三方机构,即CA(例如中国各地方的CA公司)中心签发的证书,也可以由企业级CA系统进行签发。
证书包括:公钥(验证,完整性检验,保密)+ 身份证
证书拥有者的公钥 |
![]() |
加密系统 | |
证书名/证书域名 | |
证书拥有者的名字和地址 | |
证书有效期 | |
证书发放者的名字 | |
证书发放者的数字签名 | |
证书编 |
应用
数字证书可用于:发送安全电子邮件、访问安全站点、 上证券交易、 上招标采购、 上办公、 上保险、 上税务、 上签约和 上银行等安全电子事务处理和安全电子交易活动。
数字证书的类型
CA认证
电子商务认证授权机构(CA, Certificate Authority),也称为电子商务认证中心,是负责发放和管理数字证书的权威机构,并作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任。
相关资源:经典刻录软件尼禄Nero6.6.1.4中文安装版及序列 -其它工具类资源…
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!