密码(Cryptographie) 这一节内容较多,是法国老师教的重点。因而为了整理,选取了课件中一些关键点,借助网络,整理以下:算法
密码学数据库
关键字:隐藏,书写。缓存
定义:密码学是研究编制密码和破译密码的技术科学。安全
隐写术(Stéganographie):一门关于信息隐藏的技巧与科学,讲一条信息隐藏在另外一条信息中,表面上看起来是A,其实隐藏着信息B。服务器
术语(Terminologie):网络
Chiffrer / Déchiffrer
Message clair ⇒ Message chiffré (Cryptogramme) Cryptosystème
Décrypter
Secret : clé并发
Transmission de messages secrets 秘密信息传递app
Remonte à l’antiquité 能够追溯到古代ide
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单字母替代)
公元前1世纪
凯撒密码是前者最经典的替代法,据传由古罗马帝国的皇帝凯撒所发明,用在与远方将领的通讯上。
每一个字母被日后位移n格字母所取代。 n 为偏移值。
密文 =(明文+偏移量n)mod 字母总数
3. Chiffre de Vigenère 维吉尼亚加密法
公元16世纪晚期,法国外交官维吉尼亚(Vigenere)提出著名的维吉尼亚方阵密表和维吉尼亚密码(Vigenerecypher),这是一种多表加密的替代密码。Vigenere密码的出现,使得先前对单表置换用的简单频率分析方法失效。
ps:这图有点晃瞎眼,可是这些颜色对于看出维吉尼亚字母排序有必定的帮助。
人们在单一恺撒密码的基础上扩展出多表密码,多重偏移,多字母替代。
维吉尼亚密码引入了“密钥”的概念,即根据密钥来决定用哪一行的密表来进行替换,以此来对抗字频统计。密钥是单词或者句子。
方法:Chiffré[i] = (Clair[i] + Clé[i]) mod taille alphabet
此法中,收信人和发信人须使用相同的表格和密钥。
假如以上面第一行表明明文字母,左面第一列表明密钥字母,对以下明文加密:
不少年以来,维吉尼亚(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
则利用指定数字的方法,可分别将二者给作如下的转换:
二者依序相加后获得的讯息以下:
将以上获得的讯息模26(除以26后取余数)可得:
它也就变成了
而若要解密以上讯息,反向操做便可。
安全性
在理论上,此种密码具备完善保密性,是牢不可破的。它的安全性已由克劳德·艾尔伍德·香农所证实。
虽然它在理论上的安全性无庸置疑,但在实际操做上却有着如下的问题:
5. Enigma 恩尼格玛密码机
【小结·补充】
Substitution mono-alphabétique 单字母替代法
A1 → A2
分析解密方法:静态分析,频率统计
Substitution poly-alphabétique 多字母替代法
一些列替代规则(而非一个替代规则,几乎每一个字母对应的替代方式都不一样)
分析解密方法:找出密钥长度,Kasiski 测试,频率统计
Kasiski测试 http://tieba.baidu.com/p/776474651
1、背景
公元16世纪晚期,法国外交官维吉尼亚(Vigenere)提出著名的维吉尼亚方阵密表和维吉尼亚密码(Vigenerecypher),这是一种多表加密的替代密码。Vigenere密码的出现,使得先前对单表置换用的简单频率分析方法失效。
公元1863年,普鲁士少校卡西斯基(Kasiski)提出了Kasiski法,此方法从密钥的长度着手破解Vigenere密码。
2、基本思想
一般,用Vigenere密码加密,明文中的相同字母在密文中不会对应相同的字母。可是,若是两个相同字母序列间距正好是密钥长度的倍数时,也可能产生相同的密文序列。寻找重复出现的字母序列,并求其长度的过程被称为Kasiski试验,即Kasiski法。
Kasiski法在解密Vigenere密码时,利用的是多表体系的弱点:相同的明文字母组,在明文序列中间隔的字母数为d(d是密钥的长度)的倍数时,则明文字母组对应的密文字母组也必相同。反之则不必定,但相同的几率很大。若是将密文中相同字母组找出来,并对其间隔的距离进行研究,找出它们的最大公因子,则该因子是密钥长度的几率是较大的。
3、基本原理
基于Kasiski法的基本思想,Kasiski法测试过程以下:首先对密文中任意两个紧邻字符的出现位置进行统计,而后记下它们各次间出现的间隔。而后写出这些间隔对应数字的因数,最后对这些因数进行统计,通常来讲,次数出现最多的几个因数极有可能就是密钥字符串的长度。其依据是,对于两个连续出现的字符在此次与下次出现的间隔极有多是采用相同密钥加密造成的,从而这之间的间隔也极有可能就是密钥长度的倍数。
通常在使用Kasiski法测试密钥长度时,先搜索长度至少为3的相同的密文段,记录这些相同密文段到起始点之间的距离;假如获得以下几个距离X1,X2,…,猜想密钥长度m为这些Xi的最大公因子的因子。
4、应用步骤
一、在密文中标出重复的三个或多个字符结构;
二、对每个字符结构,记下结构的起始位置;
三、计算相邻的起始点的距离;
四、对每一个距离求出全部因数;
五、若使用多字母替换密码,则密钥的长度为步骤4种出现的某一因数;
5、应用举例
明文:we are discovered save yourself
密钥:deceptive
加密算法:Vigenere算法
密文:ZICVTWQNGRZGVTWAVZHCQYGLMGJ
测试过程:
一、在密文中标出重复的字符结构——VTW;
二、两个字符结构的起始位置分别为4和13;
三、两个起始点的距离是9;
四、9的因数有3和9;
五、根据步骤4出现的因数,肯定密钥的可能长度是3位或9位。
下面这个例子看的更清楚,经过多组重复出现的字段一块儿分析,找到公因子,即可肯定密钥长度:
弗里德曼试验 - 重合指数
弗里德曼试验由威廉·F·弗里德曼(William F. Friedman)于1920年代发明。他使用了重合指数(index of coincidence)来描述密文字母频率的不匀性,从而破译密码。指目标语言中两个任意字母相同的几率(英文中为0.067),指字母表中这种状况出现的几率(英文中为1/26=0.0385),从而密钥长度能够估计为:
其中,观察几率为
其中,c是指字母表的长度(英文为26),N指文本的长度,n1到nc是指密文的字母频率,为整数。
此方法只是一种估计,会随着文本长度的增长而更为精确。在实践中,会尝试接近此估计的多个密钥长度。[7] 一种更好的方法是将密文写成矩阵形式,其中列数与假定的密钥长度一致,将每一列的重合指数单独计算,并求得平均重合指数。对于全部可能的密钥长度,平均重合指数最高的最有多是真正的密钥长度。[8] 这样的试验能够做为卡西斯基试验的补充。
频率分析
一旦可以肯定密钥的长度,密文就能从新写成多列,列数与密钥长度对应。这样每一列其实就是一个凯撒密码,而此密码的密钥(偏移量)则对应于维吉尼亚密码密钥的相应字母。与破译凯撒密码相似的方法,就能将密文破译。
柯克霍夫方法做为卡西斯基试验的改进,由奥古斯特·柯克霍夫(Auguste Kerckhoffs)提出。它将每一列的字母频率与转换后的明文频率相对应而得出每一列的密钥字母。一旦密钥中每个字母都能肯定,就能很简单地破译密文,从而获得明文。若是维吉尼亚字母表表格自己是杂乱而非按一般字母表顺序的话,那柯克霍夫方法就会无效,但卡西斯基试验和重复指数对于决定密钥长度仍旧是有效的。
现代密码学
计算机加密/解密, 二进制数字,bit大小,网络传输,数学应用。
对称加密 - 私钥密码术
只有一把密钥,加密解密用这同一把。
已知的加密/解密算法
明文的特征: | 两个策略: |
1.大小 | 1.按bloc块加密 |
2.是所有仍是局部 | 2.按flot流加密 |
序列(流)密码是对单个明文位(bit-by-bit)变换(transposition)的操做。
分组(块)密码是对一个大的明文块(block-by-block)进行固定变换的操做。
2对密钥:公钥,私钥
缓慢的算法
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加法群上椭圆离散对数的计算困难性。
优势
主要特征:不可逆,无冲突
典型算法:MD5, SHA
应用:身份验证,完整性验证。
典型算法:MD5
Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域普遍使用的一种散列函数,用以确保信息完整一致,提供消息的完整性保护。MD5的做用是让大容量信息在用数字签名软件签署私人密钥前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成必定长的十六进制数字串)。
原理
因为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 慢。
过程简述:
发送方 (拥有共享密钥K)
输入:信息,共享密钥K;
过程:信息+密钥K经过MAC 算法生成 MAC信息认证码1
发送:信息+MAC信息认证码
接收方(拥有共享密钥K)
收到:信息+MAC信息认证码,
核验过程:信息+密钥K经过MAC 算法生成 MAC信息认证码2
比较:本身生成的MAC2 和 收到的MAC1比较,若是同样,则经过验证。
【小结】对称加密+哈希:
目的:保密/ 身份验证/ 完整性验证
目的:身份验证,完整性检测,不可撤销,不可重用。
基础:非对称加密,哈希。
常见算法:
DSA, ElGamal, ECDSA, RSASSA-PSS...
下面介绍的方法,不只具有:保密,验证,完整性检测,还具有持久保密的特性。
彻底正向保密(perfect forward secrecy)
这是信息安全中提出的观点。要求一个密钥只能访问由它所保护的数据;用来产生密钥的元素一次一换,不能再产生其余的密钥;一个密钥被破解,并不影响其余密钥的安全性。设计旨在长期使用密钥不能确保起安全性的状况下而不影响过去会话的保密性。
Diffie-Hellman密钥交换协议
迪菲-赫尔曼密钥交换(Diffie–Hellman key exchange,简称“D–H”) 是一种安全协议。它可让双方在彻底没有对方任何预先信息的条件下经过不安全信道创建起一个密钥。这个密钥能够在后续的通信中做为对称密钥来加密通信内容。
建立会话中密钥的过程:
这样,即便有中间人监听,也没法获得密钥,由于他没法知道a,b值。若想由A,B值推出幂次指数a或b是很是困难的。
背景问题:
解决方案 —— 证书
数字证书是一个经证书受权中心进行数字签名的包含公开密钥拥有者信息以及公开密钥的文件。最简单的证书包含一个公开密钥、名称以及证书受权中心的数字签名。数字证书还有一个重要的特征就是只在特定的时间段内有效。
数字证书是一种权威性的电子文档,能够由权威公正的第三方机构,即CA(例如中国各地方的CA公司)中心签发的证书,也能够由企业级CA系统进行签发。
证书包括:公钥(验证,完整性检验,保密)+ 身份证
证书拥有者的公钥 | |
加密系统 | |
证书名/证书域名 | |
证书拥有者的名字和地址 | |
证书有效期 | |
证书发放者的名字 | |
证书发放者的数字签名 | |
证书编号 |
应用
数字证书可用于:发送安全电子邮件、访问安全站点、网上证券交易、网上招标采购、网上办公、网上保险、网上税务、网上签约和网上银行等安全电子事务处理和安全电子交易活动。
数字证书的类型
电子商务认证受权机构(CA, Certificate Authority),也称为电子商务认证中心,是负责发放和管理数字证书的权威机构,并做为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任。