【MOOC】现代密码学(成电)(1)概述

授课老师:聂旭云

密码学的基本概念

信息安全的基本属性

  • 机密性 (Confidentiality)
    保证信息为授权者使用而不泄漏给未经授权者
    别人“看不到”或“看不懂”
  • 认证(Authentication)
    消息认证,保证消息来源的真实性
    身份认证,确保通信实体的真实性
    证明“你就是你”
  • 完整性 (Integrity)
    数据完整性,未被未授权篡改或者损坏
    系统完整性,系统未被非授权操纵,按既定的功能运行
    信息没有被“动过”
  • 不可否认性(Non-repudiation )
    要求无论发送方还是接收方都不能抵赖所进行的传输

密码算法

• 明文 M:要处理的数据
• 密文 C:处理后的数据
• 密钥 k:秘密参数
• 加密函数: C = E(k,M)
• 解密函数:M = D(k,C)
• 需求1:可逆——算法的使用者可以将密文恢复成明文
• 需求2:不可逆——敌手无法将密文恢复成明文(秘钥)

保密通信系统模型

在这里插入图片描述

密码算法的分类

按功能:

  • 加密算法:用于机密性解决方案
  • 杂凑函数:用于完整性解决方案
  • 数字签名:用于认证和不可否认性

按密钥类型:

  • 对称密钥密码 : 加密密钥与解密密钥相同 如:分组密码,流密码
  • 非对称密钥密码体制:加密密钥与解密密钥不同 如:公钥加密,数字签名

中国古代密码艺术

民间:会意诗、藏头诗、叠痕法、漏格板加密法
军事:阴符、阴书、反切码

外国古代密码艺术

代替密码: 棋盘密码、兽栏法、跳舞的小人、摩尔斯密码、恺撒密码(右移三位,1593年, 推广为Vigenère密码——分组加法密码)
换位密码: 报文倒置、Scytale密码(天书,缠棍子)、几何图形密码
密码机: 杰弗逊轮盘密码、Enigma 密码机

密码学发展简史

在这里插入图片描述

  • 古典密码阶段
    1949年之前:古典密码,密码学还不是科学,而是艺术,出现一些密码算法和加密设备,出现密码算法设计的基本手段(代替法 & 置换法),数据的保密基于加密算法的保密
  • 古典密码和现代密码的分界线之一:密码算法的安全性仅依赖于对密钥的保密
  • 现代密码 I 阶段
    1949年-1976年:Shannon发表“The Communication Theory of Secret Systems”(“保密系统的信息理论”),定义理论安全性,提出扩散和混淆原则。保密性:数据的安全基于密钥而不是算法的保密。
  • 现代密码 II 阶段
    1976年-1994年:1976 年 Diffie & Hellman 的 “ New Directions in Cryptography”提出了公钥密码的概念,1977年Rivest, Shamir & Adleman提出了RSA公钥算法,1977年,DES(Data Encrytion Standard数据加密标准,对应DEA算法)成为了第一代公开的、完全说明细节的商业级密码标准,90年代逐步出现椭圆曲线等其他公钥算法。公钥密码部分解决了对称密钥密码算法密钥共享和密钥管理困难的问题!以Hash算法为代表的解决数据完整性的数据摘要算法也开始出现。
  • 现代密码 III 阶段
    1994年至未来:1994年,Shor提出量子计算机模型下分解大整数和求解离散对数的多项式时间算法。AES(Advanced Encrytion Standard高级加密标准)正式取代DES成为了新的加密标准。后量子密码学国际研讨会召开。
  • 未来趋势:后量子密码
    基于编码的公钥密码
    基于格的公钥密码
    基于HASH的公钥密码
    多变量公钥密码

密码分析学

密码分析学的前提

Kerckhoffs假设:假定密码分析者和敌手知道所使用的密码系统。 即密码体制的安全性仅依赖于对密钥的保密,而不应依赖于算法的保密。

密码分析学的目标

• 恢复合法密文相应的明文 • 恢复密钥

密码分析方法的分类

密码体制的攻击:
(1)穷举攻击:通过试遍所有的密钥来进行破译。—— 对抗:可增大密钥的数量。
(2)统计分析攻击:通过分析密文和明文的统计规律来破译。 —— 对抗:设法使明文和密文的统计规律不一样。
(3)解密变换攻击:针对加密变换的数学基础,通过数学求解设法找到解密变换。—— 对抗:选用具有坚实的数学基础和足够复杂的加密算法。

  • 唯密文攻击(Ciphertext Olny Attack):
    密码分析者仅知道一些密文。一般是穷搜索,对截获密文用所有可能密钥去试。惟密文攻击敌手知道的信息量最少,最易抵抗。只要有足够的计算时间和存储容量,原则上可成功,但在实际上一种能保证安全要求的实用密码算法,都会设计得这一方法 在实际上不可行。
  • 已知明文攻击(Known Plaintext Attack):
    密码分析者知道一些明文和相应的密文。敌手也许能从已知的明文被变换成密文的方式得到密钥。
  • 选择明文攻击(Chosen Plaintext Attack):
    密码分析者可以选择一些明文,并得到相应的密文。攻击者能在加密系统中插入自己选择的明文消息,则通过该明文消息对应的密文有可能确定出密钥的结构。
  • 选择密文攻击(Chosen Ciphertext Attack):
    密码分析者可以选择一些密文,并得到相应的明文。 攻击者利用解密算法,对自己所选的密文解密出相应的明文,有可能确定出密钥信息。

无条件安全与计算上安全

无条件安全:无论截获多少密文,都没有足够信息来唯一确定明文,则该密码是无条件安全的(不可破译)。
计算上安全的:使用有效资源对一个密码系统进行分析而未能破译,则该密码是强的或计算上安全的。

密码算法要满足的准则

密码算法只要满足以下两条准则之一就行:
(1) 破译密文的代价超过被加密信息的价值。
(2)破译密文所花的时间超过信息的有用期。

古典密码算法

置换密码

对明文字符或字符组进行位置移动的密码,明文的字母顺序被打乱了,但明文字母本身不变。

代替密码

代替(Substitution)密码构造一个或多个密文字母表,然后用密文字母表中的字母或者字母组来代替明文字母或字母组,各字母或字母组的相对位置不变,但其本身的值改变了
代替密码分为单表代替密码和多表代替密码
首先将26个字母与 十进制数字中的0~25一一对应。而这里的数的加法和乘法都定义为模26的加法和乘法。

单表代替密码
  • 加法密码 (凯撒密码):左/右移k位
    y = x + k (mod26)
  • 乘法密码
    加密:y = k x (mod26)
    解密:y = k-1x
  • 仿射密码:仿射密码是乘法密码和加法密码的结合。
    加密:y = a x + b (mod26),条件(a,26)=1
    解密:y = a-1 (x-b)
  • 如何计算k-1?
    要满足k·k-1(mod26) == 1
多表代替密码

在这里插入图片描述
将明文分组,每组n个,mod26后写成列矩阵x,A矩阵用于计算Ax(乘法),再加一个列矩阵B(加法),形成密文。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值