E-mail: hjbin@infosec.pku.edu.cn 密码学基础(1) 胡建斌 北京大学网络与信息安全研究室 E-mail: hjbin@infosec.pku.edu.cn http://infosec.pku.edu.cn/~hjbin.

Slides:



Advertisements
Similar presentations
2.8 函数的微分 1 微分的定义 2 微分的几何意义 3 微分公式与微分运算法则 4 微分在近似计算中的应用.
Advertisements

第三章 對稱式金鑰密碼系統 - 資料加密標準.  1970 年代 Horst Feistel 為美國 IBM 電腦公司研發出 “Lucifer” 系統。  美國國家標準局 (NBS, 現為 NIST) 在 1973 年徵求構想 書,希望能訂定國際加密標準。  DES 最後在 1997 年 1.
§3.4 空间直线的方程.
智能信息安全 Intelligent Information Security
第3章 对称密码体制.
第一章 绪论 本科生必修课《现代密码学》 主讲教师:董庆宽 副教授 研究方向:密码学与信息安全
网络安全协议 Network Security Protocols
06資訊安全-加解密.
计算机网络安全 第五章.
密码学基础 电子科技大学•计算机学院.
計算機概論 蘇俊銘 (Jun Ming Su) 資料加密技術簡介 計算機概論 蘇俊銘 (Jun Ming Su)
第十六章 计算机密码学.
2-7、函数的微分 教学要求 教学要点.
C++中的声音处理 在传统Turbo C环境中,如果想用C语言控制电脑发声,可以用Sound函数。在VC6.6环境中如果想控制电脑发声则采用Beep函数。原型为: Beep(频率,持续时间) , 单位毫秒 暂停程序执行使用Sleep函数 Sleep(持续时间), 单位毫秒 引用这两个函数时,必须包含头文件
全国计算机等级考试 二级基础知识 第二章 程序设计基础.
方贤进 利用重合指数法破解Virginia加密 方贤进
密碼學簡介與簡單生活應用 Introduction to Cryptography & Simple Applications in Life 2010 Spring ADSP 05/07.
第十讲公钥加密算法 (续) 公钥密码(续) RSA \ ElGamal algorithms.
Kvm异步缺页中断 浙江大学计算机体系结构实验室 徐浩.
第三章 公钥基础设施PKI 本章学习重点掌握内容: 密码学基本术语 密码体制分类 私钥密码体制的主要特点 公钥密码体制的主要特点
网络与系统安全实验 一 传统加密技术 古典密码技术.
Cryptography and Network Security - 2
Module 2:電子商務之安全.
CH19資訊安全 認識資訊安全與其重要性 了解傳統與公開金鑰密碼系統, 以及基本的安全性觀念 了解訊息鑑別與雜湊函數 了解數位簽章法
中国科学技术大学 肖 明 军 《网络信息安全》 中国科学技术大学 肖 明 军
第二讲:密码学与计算机安全 -----密码学历史
存储系统.
管理信息结构SMI.
Online job scheduling in Distributed Machine Learning Clusters
现代密码学理论与实践 第9章 公钥密码学与RSA
3.4 概率公钥系统 虽然可以通过在明文后面附上随机生成指定长度的字符串挫败上述攻击,但是要付出时空代价。
多媒体技术 中南大学信息科学与工程学院 黄东军.
第3章 信息与信息系统 陈恭和.
第一章 函数与极限.
第二章 经典密码学 加密通信的模型 Oscar x x y Alice 加密机 解密机 Bob k 安全信道 密钥源.
计算机安全与保密 古典密码 张 旻 杭 州 电 子 科 技 大 学.
分组密码的工作模式 为克服分组密码自身所具有的缺陷,在具体的分组密码系统设计中必须对其基本的工作模式(电码本模式Electronic Codebook, ECB)进行改进。 密码分组链接模式(Cipher Block Chaining ,CBC) 密码反馈模式(Cipher Feed back ,CFB)
C语言程序设计 主讲教师:陆幼利.
学习目标 1、什么是字符集 2、字符集四个级别 3、如何选择字符集.
概 率 统 计 主讲教师 叶宏 山东大学数学院.
线 性 代 数 厦门大学线性代数教学组 2019年4月24日6时8分 / 45.
主要内容: 无线局域网的定义 无线传输介质 无线传输的技术 WLAN的架构 无线网络搭建与配置 无线网络加密配置
复习.
IT 安全 第 11节 加密控制.
第4章 Excel电子表格制作软件 4.4 函数(一).
实验三 16位算术逻辑运算实验 不带进位控制的算术运算 置AR=1: 设置开关CN 1 不带进位 0 带进位运算;
iSIGHT 基本培训 使用 Excel的栅栏问题
长春理工大学 电工电子实验教学中心 数字电路实验 数字电路实验室.
§6.7 子空间的直和 一、直和的定义 二、直和的判定 三、多个子空间的直和.
计算机问题求解 – 论题4-4 - 密码算法 2017年04月05日.
第三章 函数的微分学 第二节 导数的四则运算法则 一、导数的四则运算 二、偏导数的求法.
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
魏新宇 MATLAB/Simulink 与控制系统仿真 魏新宇
第七、八次实验要求.
2.2矩阵的代数运算.
第15讲 特征值与特征向量的性质 主要内容:特征值与特征向量的性质.
2019/5/21 实验一 离散傅立叶变换的性质及应用 实验报告上传到“作业提交”。 11:21:44.
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
§2 方阵的特征值与特征向量.
基于列存储的RDF数据管理 朱敏
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
第四节 向量的乘积 一、两向量的数量积 二、两向量的向量积.
第三节 数量积 向量积 混合积 一、向量的数量积 二、向量的向量积 三、向量的混合积 四、小结 思考题.
第十七讲 密码执行(1).
第十二讲 密码执行(上).
Computer Security and Cryptography
入侵检测技术 大连理工大学软件学院 毕玲.
Website: 第1章 密码学概论 Website: 年10月27日.
§2 自由代数 定义19.7:设X是集合,G是一个T-代数,为X到G的函数,若对每个T-代数A和X到A的函数,都存在唯一的G到A的同态映射,使得=,则称G(更严格的说是(G,))是生成集X上的自由T-代数。X中的元素称为生成元。 A变, 变 变, 也变 对给定的 和A,是唯一的.
学习目标 1、什么是列类型 2、列类型之数值类型.
Presentation transcript:

E-mail: hjbin@infosec.pku.edu.cn 密码学基础(1) 胡建斌 北京大学网络与信息安全研究室 E-mail: hjbin@infosec.pku.edu.cn http://infosec.pku.edu.cn/~hjbin

目 录 密码学的起源、发展和现状 密码学基本概念 常规加密的现代技术

密码学发展阶段 1949年之前 密码学是一门艺术 1949~1975年 密码学成为科学 1976年以后 密码学的新方向——公钥密码学

第1阶段-古典密码 密码学还不是科学,而是艺术 出现一些密码算法和加密设备 密码算法的基本手段出现,针对的是字符 简单的密码分析手段出现 主要特点:数据的安全基于算法的保密

第1阶段-古典密码 Phaistos圆盘,一种直径约为160mm的Cretan-Mnoan粘土圆盘,始于公元前17世纪。表面有明显字间空格的字母,至今还没有破解。

20世纪早期密码机

第1阶段-古典密码 1883年Kerchoffs第一次明确提出了编码的原则:加密算法应建立在算法的公开不影响明文和密钥的安全。 这一原则已得到普遍承认,成为判定密码强度的衡量标准,实际上也成为传统密码和现代密码的分界线。

第2阶段 1949~1975 计算机使得基于复杂计算的密码成为可能 相关技术的发展 第2阶段 1949~1975 计算机使得基于复杂计算的密码成为可能 相关技术的发展 1949年Shannon的“The Communication Theory of Secret Systems” 1967年David Kahn的《The Codebreakers》 1971-73年IBM Watson实验室的Horst Feistel等几篇技术报告 主要特点:数据的安全基于密钥而不是算法的保密

第3阶段 1976~ 1976年:Diffie & Hellman 的 “New Directions in Cryptography” 提出了不对称密钥密 1977年Rivest,Shamir & Adleman提出了RSA公钥算法 90年代逐步出现椭圆曲线等其他公钥算法 主要特点:公钥密码使得发送端和接收端无密钥传输的保密通信成为可能

第3阶段 1976~ 1977年DES正式成为标准 80年代出现“过渡性”的“Post DES”算法,如IDEA,RCx,CAST等 第3阶段 1976~ 1977年DES正式成为标准 80年代出现“过渡性”的“Post DES”算法,如IDEA,RCx,CAST等 90年代对称密钥密码进一步成熟 Rijndael,RC6, MARS, Twofish, Serpent等出现 2001年Rijndael成为DES的替代者

目 录 密码学的起源、发展和现状 密码学基本概念 常规加密的现代技术

信息传递的一般问题 信源、信道、信宿 攻击的种类: 角色:通信双方、可信第三方、不可信第三方 介质:软件、硬件、数据 中断(Interruption)(干扰) 截取(Interception) (侦听) 修改(Modification) 伪造(Fabrication) 角色:通信双方、可信第三方、不可信第三方 介质:软件、硬件、数据

数据的性质 Availability Interruption -- Interception -- Modification -- Fabrication -- Availability Confidentiality Integrity Authenticity

攻击分类 主动攻击 中断 修改 伪造 破坏可用性 破坏完整性 破坏真实性 被动攻击 窃听 获取消息内容 流量分析

基本概念 密码学(Cryptology): 是研究信息系统安全保密的科学. 密码编码学(Cryptography): 主要研究对信息进行编码,实现对信息的隐蔽. 密码分析学(Cryptanalytics):主要研究加密消息的破译或消息的伪造.

基本概念 明文(Plaintext):消息的初始形式; 密文(CypherText):加密后的形式 记: 明文记为P且P为字符序列, P=[P1,P2,…,Pn] 密文记为C, C=[C1,C2,…,Cn] 明文和密文之间的变换记为 C=E(P)及P=D(C) 其中 C表示密文,E为加密算法;P为明文,D为解密算法 我们要求密码系统满足:P=D(E(P))

基本概念 需要密钥的加密算法,记为:C=E(K,P),即密文消息同时依赖于初始明文和密钥的值。实际上,E是一组加密算法,而密钥则用于选择其中特定的一个算法。 加密与解密的密钥相同,即:P=D(K,E(K,P)) 加密与解密的密钥不同,则:P=D(KD,E(KE,P))

常规加密简化模型

常规加密的安全性 加密算法足够强大:仅知密文很难破译出明文 基于密钥的安全性,而不是基于算法的安全性:基于密文和加/解密算法很难破译出明文 算法开放性:开放算法,便于实现

常规加密系统的模型

密码体系形式化描述 密码体系是一个五元组(P,C,K,E,D)满足条件: (1)P是可能明文的有限集;(明文空间) (4)任意k∈ K,有一个加密算法 和相应的解密算法 ,使得 和 分别为加密解密函数, 满足dk(ek(x))=x ,这里 x ∈P。

密码编码系统分类 保密内容 密钥数量 明文处理的方式

保密内容 受限制的(restricted)算法 算法的保密性基于保持算法的秘密 基于密钥(key-based)的算法 算法的保密性基于对密钥的保密

密钥数量 对称密码算法(symmetric cipher) 非对称密钥算法(asymmetric cipher) 加密密钥和解密密钥相同,或实质上等同,即从一个易于推出另一个 又称秘密密钥算法或单密钥算法 非对称密钥算法(asymmetric cipher) 加密密钥和解密密钥不相同,从一个很难推出另一个 又称公开密钥算法(public-key cipher) 公开密钥算法用一个密钥进行加密, 而用另一个进行解密 其中的加密密钥可以公开,又称公开密钥(public key),简称公钥。解密密钥必须保密,又称私人密钥(private key)私钥,简称私钥

明文处理方式 分组密码(block cipher) 将明文分成固定长度的组,用同一密钥和算法对每一块加密,输出也是固定长度的密文。 流密码(stream cipher) 又称序列密码。序列密码每次加密一位或一字节的明文。

密码分析 试图破译单条消息 试图识别加密的消息格式,以便借助直接的解密算法破译后续的消息 试图找到加密算法中的普遍缺陷(无须截取任何消息)

密码分析的条件与工具 已知加密算法 截取到明文、密文中已知或推测的数据项 数学或统计工具和技术 语言特性 计算机 技巧与运气

密码分析类型

加密方案的安全性 无条件安全:无论提供的密文有多少,如果由一个加密方案产生的密文中包含的信息不足以唯一地决定对应的明文 除了一次一密的方案外,没有无条件安全的算法 安全性体现在: 破译的成本超过加密信息的价值 破译的时间超过该信息有用的生命周期

攻击的复杂性分析 数据复杂性(data complexity)用作攻击输入所需要的数据 处理复杂性(processing complexity)完成攻击所需要的时间 存储需求(storage requirement)进行攻击所需要的数据量

密钥搜索所需平均时间

经典加密技术 替代 置换 转子机

替代 明文的字母由其它字母或数字或符号代替 若该明文被视为一个比特序列,则替代涉及到用密文比特模式代替明文比特模式

恺撒密码 wuhdwb lpsrvvleoh TREATY IMPOSSIBLE 破译以下密文: 加密算法: Ci=E(Pi)=Pi+3 字母表:(密码本) ABCDEFGHIJKLMNOPQRSTUVWXYZ defghijklmnopqrstuvwxyzabc

恺撒密码的特点 单字母密码(简单替换技术) 简单,便于记忆 缺点:结构过于简单,密码分析员只使用很少的信息就可预言加密的整个结构

恺撒密码的改进 已知加密与解密算法 25个可能的密钥k,适用Brute-Force Cryptanalysis 明文的语言是已知的且易于识别 C=E(p)=(p+k)mod(26) p=D(C)=(C-k)mod(26) 25个可能的密钥k,适用Brute-Force Cryptanalysis 明文的语言是已知的且易于识别

其它单字母替换 使用密钥 ABCDEFGHIJKLMNOPQRSTUVWXYZ keyabcdfghijlmnopqrstuvwxz spectacular spectaulrbdfghijkmnoqvwxyz 泄露给破译者的信息更少

其它单字母替换 对字母进行无规则的重新排列 E(i)=3*i mod 26 ABCDEFGHIJKLMNOPQRSTUVWXYZ adgjmpsvybehknqtwzcfilorux

单字母变换 任意替换:26!>4x1026 可能的key,大于56位DES的密钥空间。 基于语言统计规律仍可破译

例: UZQSOVUOHXMOPVGPOZPEVSGZWSZOPFPESXUDBMETSXAIZ VUEPHZHMDZSHZOWSFPAPPDTSVPQUZWYMXUZUHSX EPYEPOPDZSZUFPOMBZWPFUPZHMDJUDTMOHMQ

多字母替换密码--平稳分布 单字母替换E1和E2 ,分别用于明文信息中奇数和偶数位置的字符,从而打乱密文中的字母分布频率特性(通常E2应为的E1补充) 例1:E1(T)=a, E2(T)=b E1(X)=b, E2(X)=a E1(a)=(3*a)mod26 E2(a)=((5*a)+13)mod 26) TREAT YIMPO SSIBL E fumnf dyvtf czysh h

多字母替换密码--平稳分布 例2: E1(a)=a E2(a)=25-a ABCDEFGHIJKLMNOPQRSTUVWXYZ zyxwvutsrqponmlkjihgfedcba It was the best of times, it was the worst of times… Ig wzs ghv bvsg ou trmvs rt dah tse doisg ou trmvs

对多字母替换的攻击 借助于计算机程序和足够数量的密文,经验丰富的密码分析员能在一小时内攻破这样的密码。 克思斯基方法:用于确定什么时候加密模式的结构重复出现 复合指数方法:用于预测替换所使用的字母数目

有关多字母密码的结论要点 1、使用克思斯基方法预测加密字母可能的数目。若数据无 规律性,则加密不可能简单地为多字母替换; 2、计算重合指数验证第一步中得出的预测; 3、若步1和步2指示一个预定值,则将密文分成适当的子集 合,并独立地计算每个子集合的重合指数。

“完美”的替换密码 使用非重复的加密字母序列加密会使密码分析至今能使用的任何工具失效。 一次性密钥(One Time Pad) 打印、分发、保存与使用问题 长随机数序列(对OTP的近似实现) ri+1=ri*c+b mod w c和b为常数,w为计算机能表示的最大整数

总结 替换是密码学中有效的加密方法。本世纪上半叶用于外交通信 破译威胁来自 频率分布 重合指数 考虑最可能的字母及可能出现的单词 重复结构分析及克思斯基方法 持久性、组织性、创造性和运气

置换 通过执行对明文字母的置换,取得一种类型完全不同的映射,即置换密码。 若该明文被视为一个比特序列,则置换涉及到用密文比特模式代替明文比特模式

K是一个m*m矩阵,在Z/(26)上可逆,即存在K-1使得: KK-1 = I (在Z/(26)) 对每一个k∈ K, 定义ek(x)=xK (mod 26) 和 dk(y)=yK-1 (mod 26) 注: 明文与密文都是 m元的向量(x1, x2 …, xm );(y1, y2,…,ym),Z/(26)为同余类环 在这个环上的可逆矩阵Amxm,是指行列式detAmxm的值∈ Z*/(26),它为Z/(26)中全体可逆元的集合。 Z*/(26)= {a ∈Z/(26)|(a,26)=1},Z*/(26)={1,3,5,7,9,11,15,17,19,21,23,25}

设m为固定的正整数,P=C=(Z/(26))m, K是由{1,2,..,m}的所有置换构成,对一个密钥π∈K,定义 e π(x1, x2,.., xm)=(xπ(1),,..,xπ(m)) 和 d π(y1, y2,.., ym)=(yπ(1),,..,yπ(m)) 这里π-1为π的逆置换 注:这里的加密与解密仅仅用了置换,无代数运算 例子: 设m=6,取密钥 而

若给定的明文是:cryptography 首先找分成6个字母长的明文组:crypto|graphy 求得的密文是:YTCOPRAHGYPR

对上面例子决定的置换π 对应:

转子机 通过多个加密阶段的组合,能使密码分析变得极为困难 对置换和替代都适合

具有连线的三转子机器(用编号的触点表示)

目 录 密码学的起源、发展和现状 密码学基本概念 常规加密的现代技术

安全密码的特性 Shannon特性(1949) 所需的保密程度决定了用于加密和解密过程的相应的工作量 密钥的组或加密算法应该不受其复杂性的影响 处理的实现应尽可能简单 编码中的错误不应传播及影响后面的消息 加密后正文的尺寸不应大于明文的尺寸

Feistel加密过程 输入: 长为2w比特的明文分组 密钥k 输出: 长为2w比特的密文分组

Feistel网络的特点 明文分组分为:L0,R0,数据的这两部分通过n次循环处理后,再结合起来生成密文分组 每i次循环都以上一循环产生的Li-1和Ri-1和K产生的子密钥Ki作为输入。一般说来,子密钥Ki与K不同,相互之间也不同,它是用子密钥生成算法从密钥生成的

Feistel网络的特点 所有循环的结构都相同,置换在数据的左半部分进行,其方法是先对数据的右半部分应用循环函数F,然后对函数输出结果和数据的左半部分取异或(XOR) 循环函数对每次循环都有相同的通用结构,但由循环子密钥Ki来区分 在置换之后,执行由数据两部分互换构成的交换

Feistel网络的特点 解密过程与加密过程基本相同。规则如下:用密文作为算法的输入,但以相反顺序使用子密钥Ki 意味着加密和解密不需要用两种不同的方法。

Feistel结构定义 加密: Li = Ri-1; Ri = Li-1F(Ri-1,Ki) 解密: Ri-1 = Li Li-1 = RiF(Ri-1,Ki) = RiF(Li,Ki)

Feistel网络的设计特点 分组大小:较大的分组意味着较强的安全性,但会降低加密解密速度。64位的分组大小是合理的折中,几乎所有的分组设计中都使用它 密钥大小:较大的密钥意味着较强的安全性,但会降低加密解密速度。现代算法中最常用的是128位密钥 循环次数:本质是单一循环的不足,多重循环能够加强安全性。典型的循环次数为16 子密钥生成算法:较大的复杂性会增大密钥分析的难度 循环函数:较大的复杂性意味着给密码分析带来更大的难度

Feistel网络的实现 快速软件加/解密:常将加密嵌入到应用程序中,以预防硬件实现的方式,因此速度很重要 分析的简易性:算法表示简洁清晰,则易于分析算法中加密技术的缺陷

安全密码的特性 Shannon特性(1949) 所需的保密程度决定了用于加密和解密过程的相应的工作量 密钥的组或加密算法应该不受其复杂性的影响 处理的实现应尽可能简单 编码中的错误不应传播及影响后面的消息 加密后正文的尺寸不应大于明文的尺寸。

安全密码的特性 混乱与扩散 信息的理论测试 单一距离

分组密码的一般设计原理 分组密码是将明文消息编码表示后的数字(简称明文数字)序列,划分成长度为n的组(可看成长度为n的矢量),每组分别在密钥的控制下变换成等长的输出数字(简称密文数字)序列

两个基本设计方法 Shannon称之为理想密码系统中,密文的所有统计特性都与所使用的密钥独立 扩散(Diffusion):明文的统计结构被扩散消失到密文的长程统计特性 ,使得明文和密文之间的统计关系尽量复杂 混乱(confusion):使得密文的统计特性与密钥的取值之间的关系尽量复杂

软件实现的设计原则 使用子块和简单的运算 密码运算在子块上进行,要求子块的长度能自然地适应软件编程,如8、16、32比特等。 应尽量避免按比特置换,在子块上所进行的密码运算尽量采用易于软件实现的运算。 最好是用处理器的基本运算,如加法、乘法、移位等。

硬件实现的设计原则 加密和解密的相似性,即加密和解密过程的不同应仅仅在密钥使用方式上,以便采用同样的器件来实现加密和解密,以节省费用和体积。 尽量采用标准的组件结构,以便能适应于在超大规模集成电路中实现。

简化的DES Simplified DES方案,简称S-DES方案。 加密算法涉及五个函数: (1) 初始置换IP(initial permutation) (2) 复合函数fk1,它是由密钥K确定的,具有置换和替代的运算。 (3) 转换函数SW (4) 复合函数fk2 (5) 初始置换IP的逆置换IP-1

加密算法的数学表示 加密算法的数学表示 IP-1*fk2*SW*fk1*IP 也可写为 密文=IP-1(fk2(SW(fk1(IP(明文))))) 其中 K1=P8(移位(P10(密钥K))) K2=P8(移位(移位(P10(密钥K)))) 解密算法的数学表示 明文=IP-1(fk1(SW(fk2(IP(密文)))))

S-DES的密钥生成 设10bit的密钥为(k1,k2,k3,k4,k5,k6,k7, k8,k9,k10) 置换P10是这样定义的 P10(k1,k2,…,k10)=(k3,k5,k2,k7,k4,k10,k1,k9,k8,k6) 相当于 P10= LS-1为循环左移,在这里实现左移2位 P8=

S-DES的密钥生成 按照上述条件,若K选为(1010000010), 产生的两个子密钥分别为 K1=(1 0 1 0 0 1 0 0)

S-DES的密钥生成

S-DES的加密运算 IP-1= 1 2 3 4 5 6 7 8 初始置换用IP函数: IP= 1 2 3 4 5 6 7 8 4 1 3 5 7 2 8 6 易见 IP-1(IP(X))=X