《密码编码学与网络安全》复习总结
软院田园老师的课,虽然上课没听(我觉得他讲得不好),自己看书也差不多看懂了七七八八,以下是看书过程中列出的部分重点
数论
- 欧几里得算法三形式,思路
- 欧拉定理、费马定理证明
- 中国剩余定理 计算 可能和低幂次RSA攻击结合
- 二次剩余 和概率性素数判断
代数
见下文
公钥密码学
- RSA算法,计算、加密解密过程
数字签名
- ElGamal 和 Schnorr 签名方案
- 签名方案和加密方案结合的应用
加密协议
- AES和DES,不直接考,要从协议分析题中能认出哪种对称加密
Hash函数
需要了解的几个基本知识点:
d 整除a记作:
d∣a
整除是d作分母
如果d∣a
且d∣b
,那么d∣(ax+by)
c=gcd(a,b)
,表示a和b的最大公因子,也表明c|a
,c|b
,且a和b的任何公因子都是c的因子。定义gcd(0,0)=0
,gcd(0,a)=|a|
(因为0被任何非零整数整除)
因为最大公因子是正数,所以gcd(a,b) = gcd(|a|,|b|)
算术基本定理:任意大于1的整数N,都有图示成立
可以通过这个简单地判断一个数是否是素数,也可以对合数作质因子分解
素数(也叫质数),指在大于1的自然数中,除了1和该数自身外,无法被其他自然数整除的数。大于1的自然数若不是素数,则称之为合数(如果n是一个合数,则在小于等于√n的数中必定有一个数a整除合数n)
任意两个质数互质,且唯一的正整数公因子是1。p是大于1的整数,则p和p−1构成互质关系;p是大于1的奇数,则p和p−2构成互质关系
素数p与1到p−1的任意整数均互质。并且阶乘(p−1)!
与p互质欧几里得定理:存在无穷个素数。也用来容易地求两个整数的最大公因子
对于整数a和b,用b除a得a = q1b+r1
,可证明d=gcd(a,b)=gcd(b,r1)=gcd(ri,ri+1)=gcd(rn,0)=rn
,也就是下图给出的
改进版的欧几里得定理公式:
d=gcd(a,b)=gcd(b,a mod b)
,下面的算法就是这样的
//欧几里德算法迭代实现public static int getGCD(int a,int b) {if (a<b) {//保证a>=breturn getGCD(b, a);}if (b>=1) {//保证b>=1int temp = 0;while(b>0) {temp = a%b;a = b;b = temp;}return a;}else {return -1;}}
看到一个证明 gcd(n,k)=gcd(n,n+k)挺有趣的,通过gcd的定义来证:
同理也可以证明gcd(a,n)=gcd(n,n-a)等等
模运算和同余:
a≡b(mod n)
表示a mod n = b mod n
同余。a mod n
是a除以n的余数,n|a可以表示为a≡0(mod n)
还有啥负数对整数求模时,比如-11 mod 7 = 3 = -2*7+3
模运算性质:
若n|(a-b)
,则a≡b(mod n)
同余方程:
上图的
ax ≡ c(mod m)
也称线性同余方程,线性是指方程的未知数是一次的,方程有解当且仅当gcd(a,m)|c
,且恰有d=gcd(a,m)
个解(在模 m 的完全剩余系 {0,1,…,m-1} 中)**模反元素:**指正整数a和m互质,一定可以找到整数b,使得
m|ab-1
**裴蜀定理:**关于线性方程ax+by=d有解,当且仅当gcd(a,b)|d
扩展的欧里几德定理,求同余方程解、RSA中也用来求私钥中的d
费马定理:
如果p是素数,且a是不被p整除的正整数,则 $ a^{p-1} mod : p=1 , 即 ,即 ,即 a^{p-1}=1(mod : p) $
舍去a不被p整除的条件,则$ a^{p-1}=a(mod : p) $
证明:
{a mod p,2a mod p,...,(p-1)a mod p}是{1,2,...,p-1}的置换形 所以,{a×2a×...×(p-1)a}≡(1×2×...×(p-1))(mod p)≡(p-1)!(mod p) 化简,(p-1)!a^(p-1)≡(p-1)!(mod p) 因为p为质数,且p和1到p-1中整数都互质,所以可消去(p-1)!,得a^(p-1)≡1(mod p)
欧拉函数ϕ(m),表示1到m-1中与m互质的整数个数。因此有两个结论:
欧拉定理
如果
gcd(a,m)=1
(a,m互质),则$ a^{ϕ(m)}=1(mod : m) $同上但a,m不互质,则$ a^{ϕ(m)}=a(mod : m) $
证明:
考虑集合 R = { x 1 , x 2 , . . . , x ϕ ( m ) } R=\left \{ x_{1} ,x_{2},...,x_{ϕ(m)} \right \} R={x1,x2,...,xϕ(m)}, S = { a x 1   m o d   m , a x 2   m o d   m , . . . , a x ϕ ( m )   m o d   m } S=\left \{ ax_{1} \: mod \: m ,ax_{2}\: mod \: m,...,ax_{ϕ(m)} \: mod \: m \right \} S={ax1modm,ax2modm,...,axϕ(m)modm},每一个元素 x i x_i xi都与m互质,且 x i ≠ x j x_i \neq x_j xi̸=xj,则 a x i   m o d   m ≠ a x j   m o d   m ax_{i} \: mod \: m \neq ax_{j} \: mod \: m aximodm̸=axjmodm(即S中不含重复元素)
所以S也是R的一个置换形
所以
a ϕ ( m ) ∗ x 1 ∗ x 2 ∗ . . . ∗ x ϕ ( m )   m o d   m = ( a x 1 ) ∗ ( a x 2 ) ∗ . . . ∗ ( a x ϕ ( m ) )   m o d   m = ( ( a x 1   m o d   m ) ∗ ( a x 2   m o d   m ) ∗ . . . ∗ ( a x ϕ ( m )   m o d   m ) )   m o d   m = x 1 ∗ x 2 ∗ . . . ∗ x ϕ ( m )   m o d   m 因 为 x i 与 m 互 质 , 所 以 两 边 可 以 消 去 x 1 ∗ x 2 ∗ . . . ∗ x ϕ ( m ) 得 : a ϕ ( m )   m o d   m = 1 即 a ϕ ( m ) ≡ 1 ( m o d   m ) a^{ϕ(m)}*x_1*x_2*...*x_{ϕ(m)}\: mod \: m\\ = (ax_1)*(ax_2)*...*(ax_{ϕ(m)})\: mod\:m \\ =((ax_{1} \: mod \: m)*(ax_{2} \: mod \: m)*...*(ax_{ϕ(m)} \: mod \: m))\:mod\:m \\ =x_1*x_2*...*x_{ϕ(m)}\: mod \: m\\ 因为x_i与m互质,所以两边可以消去x_1*x_2*...*x_{ϕ(m)} 得:\\ a^{ϕ(m)}\:mod\:m = 1\\ 即a^{ϕ(m)}\equiv 1(mod \:m) aϕ(m)∗x1∗x2∗...∗xϕ(m)modm=(ax1)∗(ax2)∗...∗(axϕ(m))modm=((ax1modm)∗(ax2modm)∗...∗(axϕ(m)modm))modm=x1∗x2∗...∗xϕ(m)modm因为xi与m互质,所以两边可以消去x1∗x2∗...∗xϕ(m)得:aϕ(m)modm=1即aϕ(m)≡1(modm)
进一步可以证明费马定理,因为素数p的欧拉函数 ϕ ( p ) = p − 1 ϕ(p)=p-1 ϕ(p)=p−1,所以 a ϕ ( p ) = a p − 1 ≡ 1 ( m o d   p ) a^{ϕ(p)}=a^{p-1}\equiv 1(mod \: p) aϕ(p)=ap−1≡1(modp)记住一条消去律: a c ≡ b c ( m o d   n ) ac \equiv bc(mod \: n) ac≡bc(modn),当gcd(c,n)=1时,可消去c得 a ≡ b ( m o d   m ) a\equiv b(mod\:m) a≡b(modm)
中国剩余定理(CRT)
对称加密体制之DES、双重DES、三重DES和AES加密算法
非对称加密体制之RSA算法
PKCS(Public Key Cryptographic System)公钥加密体系
- Diffie-Hellman 密钥交换(最简单的PKCS)
使用户安全地交换秘钥,以便后续通信时使用该密钥加密信息,一般简写DH算法
AB双方共享一个素数q和其本原根α,AB各选取一个随机整数 X a 、 X b X_a、X_b Xa、Xb(都小于q),并分别计算 Y a = α X a   m o d   q Y_a=α^{X_a}\:mod \:q Ya=αXamodq、 Y b = α X b   m o d   q Y_b=α^{X_b}\:mod \:q Yb=αXbmodq 。保持 X a / X b X_a/X_b Xa/Xb私有,而 Y a / Y b Y_a/Y_b Ya/Yb对对方公开。当A收到对方的 Y b Y_b Yb时,可计算密钥 K = Y a X b   m o d   q K=Y_a^{X_b}\:mod\:q K=YaXbmodq,同理B也能得到密钥 K = Y b X a   m o d   q K=Y_b^{X_a}\:mod\:q K=YbXamodq
**q、α、 Y a Y_a Ya、 Y b Y_b Yb**都是公开的
K = Y a X b   m o d   q = ( α X a   m o d   q ) X b   m o d   q      根 据 模 运 算 规 律 = α X a X b    m o d   q = Y b X a   m o d   q K=Y_a^{X_b}\:mod\:q\\ =(α^{X_a}\:mod\:q)^{X_b}\:mod\:q \:\:\:\:根据模运算规律\\ =α^{X_aX_b}\;mod\:q\\ =Y_b^{X_a}\:mod\:q K=YaXbmodq=(αXamodq)Xbmodq根据模运算规律=αXaXbmodq=YbXamodq无法防范中间人攻击
- ElGamal 密码体制
用于数字签名标准(DSS)中
用 户 A : 选 择 一 个 素 数 q , α 是 q 的 素 根 ( α < q )    【 公 开 的 】 随 机 选 择 一 个 小 于 q 的 整 数 作 为 私 钥 X a 计 算 Y a = α X a   m o d   q , 以 ( q , α , Y a ) 为 公 钥    【 公 开 的 】 用 户 B ( 用 A 的 公 钥 加 密 ) : 明 文 M , ( M < q ) 随 机 选 取 整 数 k ( k < q ) 计 算 一 次 性 密 钥 K = Y a k   m o d   q 计 算 密 文 对 ( C 1 , C 2 ) : C 1 = α k   m o d   q , C 2 = M K   m o d   q 用 户 A ( 用 自 己 的 私 钥 解 密 ) : 计 算 K = C 1 X a   m o d   q 明 文 M = C 2 K − 1   m o d   q 用户A:\\ 选择一个素数q,α是q的素根(α<q)\:\:【公开的】\\ 随机选择一个小于q的整数作为私钥X_a\\ 计算Y_a=α^{X_a}\:mod\:q,以 (q,α,Y_a)为公钥\:\: 【公开的】\\ 用户B(用A的公钥加密):\\ 明文M,(M<q)\\ 随机选取整数k(k<q)\\ 计算一次性密钥K=Y_a^{k}\:mod\:q\\ 计算密文对(C1,C2):C1=α^k\:mod\:q,C2=MK\:mod\:q 用户A(用自己的私钥解密):\\ 计算K=C1^{X_a}\:mod\:q\\ 明文M=C2K^{-1}\:mod\:q 用户A:选择一个素数q,α是q的素根(α<q)【公开的】随机选择一个小于q的整数作为私钥Xa计算Ya=αXamodq,以(q,α,Ya)为公钥【公开的】用户B(用A的公钥加密):明文M,(M<q)随机选取整数k(k<q)计算一次性密钥K=Yakmodq计算密文对(C1,C2):C1=αkmodq,C2=MKmodq用户A(用自己的私钥解密):计算K=C1Xamodq明文M=C2K−1modq
K − 1   m o d   q K^{-1}\:mod\:q K−1modq怎么算?7*11=77≡1(mod 19),所以7^(-1) mod 19 = 11ElGamal也用在数字签名,求ElGamal数字签名和验证计算
知 q 、 a 、 私 钥 X a 、 m ( 消 息 M 的 哈 希 值 ) 选 取 随 机 证 书 K , g c d ( K , q − 1 ) = 1 , 且 0 < K < q 计 算 S 1 = α K   m o d   ( q − 1 ) 由 m = ( X a ∗ S 1 + K ∗ S 2 )   m o d   ( q − 1 ) 得 到 S 2 则 数 字 签 名 ( S 1 , S 2 ) 验 证 签 名 : V 1 = α m   m o d   q V 2 = Y a S 1 S 1 S 2   m o d   ( q − 1 ) 如 果 V 1 = = V 2 , 则 签 名 合 法 知q、a、私钥X_a、m(消息M的哈希值)\\ 选取随机证书K,gcd(K,q-1)=1,且0<K<q\\ 计算S_1=α^K\:mod\:(q-1)\\ 由m=(X_a*S_1+K*S_2)\:mod\:(q-1) 得到S_2\\ 则数字签名(S_1,S_2)\\ 验证签名:\\ V_1=α^m\:mod\:q\\ V_2=Y_a^{S_1}S_1^{S_2}\:mod\:(q-1)\\ 如果V_1==V_2,则签名合法 知q、a、私钥Xa、m(消息M的哈希值)选取随机证书K,gcd(K,q−1)=1,且0<K<q计算S1=αKmod(q−1)由m=(Xa∗S1+K∗S2)mod(q−1)得到S2则数字签名(S1,S2)验证签名:V1=αmmodqV2=YaS1S1S2mod(q−1)如果V1==V2,则签名合法
密钥分发
密钥系统的强度取决于密钥分发技术,明显密钥交换得越频繁越安全
一般有四种方式,
1、A选择一个密钥后以物理的方式传递给B
2、第三方选择密钥后物理地传给A和B(1、2涉及人工交付,适合一对一连接设备,不适合网络通信)
3、如果A和B先前或最近使用过一个密钥,则一方可以将 新密钥用旧密钥发送给另一方(一旦攻击者获得一个密钥,则后序所有密钥便都不再安全)
4、如果A和B到第三方C有加密连接,则C可以在加密连接上发送密钥给A、B
多采用第四种通过一个密钥分发中心(KDC),负责为用户分发密钥,用户和分发中心共享唯一的密钥。而密钥分发中心是基于密钥层次体系的,最少两个密钥层
- 基于对称加密的对称密钥分发
如图,步骤1到3是密钥分发,步骤3到5是认证
N1、N2是临时交互号可以用来判断原始信息在对方收到前是否被修改过。还有A是收到了两个加密的密文,其中用Ka加密的密文自己可以解密获得Ks和验证N1
相关应用书上提到了透明密钥控制方案的TCP协议,通过一个叫SSM(会话安全模快)的完成端到端的加密功能和代表主机、终端获取会话密钥的功能
分布式的密钥控制方案
n个终端相互通信,每个终端都起到KDC的作用,所以需要主密钥n*(n-1)/2个 【上面的方案只需要n个主密钥】
步骤2,B返回的是共享密钥Km加密的信息,包括B选择的会话密钥Ks、IDA、IDB、f(N1)、N2
控制密钥的使用
这里提出了一种控制向量和密钥关联的做法,控制变量是明文形式的,且和会话密钥保持关联(加密解密中用
h(CV)⊕Ks
作为密钥,h是hash函数,CV是控制变量)
- 基于非对称加密的对称密钥分发
之前提过公钥加密效率低,所以不会用在大数据块上加密,通常用来密钥的加密分发,像KDC中主密钥的分发
如下是一个简单的密钥分发例子:
A用到了自己的公私钥对(PUa、PRa),A可以解密得到Ks,通信完后Ks会被废弃的。存在的问题就是中间人攻击,大体过程同Diffie-Hellman算法一样
确保保密性和身份认证的密钥分发方案
其实也很好理解,对称密钥体系的作用之一,身份认证,确保只有对方才能解密加密的信息。步骤2中N1和步骤3中的N2都是来确认收到的信息正确来自对方的
混合方案
和上面不一样在于,仍旧用到KDC,公钥方案用来分发主密钥,主密钥用来分发会话密钥
- 公钥分发方案
上面都是在介绍对称密钥的分发,这里讨论非对称密钥
公开发布
公开可访问目录
公钥授权
公钥证书
公开发布:公钥是公开的,所以有一缺点是任何人都可以伪造公钥并发布
公开可访问的目录:由可信的实体或组织维护一个动态可访问的公钥目录,有一定的安全性。目录项记录着每个通信方的身份和公钥。每个通信方必须通过安全的认证通信注册或更换自己的公钥以及访问其他用户的公钥。
缺点:目录管理员的私钥泄漏,攻击者可以假冒其他通信方窃取发送给该通信方的信息。攻击者也可以修改目录管理员保存的记录
公钥授权:
缺点:用户间通信必须向管理员请求对方的公钥,一来管理员就成为系统的瓶颈,二来管理员维护的目录也会被篡改
公钥证书:
通信双方使用证书(CA)来交换密钥。证书包含公钥和公钥拥有者的标志,整个数据块由可信第三方进行签名,证书也有时效性。可信第三方也是证书管理员,用户通过安全方式将公钥交给管理员,从而获取一个证书,而且只有管理员可以更新证书。用户公开该证书,任何其他想获取该用户公钥的都可以获取该证书,从证书中附带的可信签名来验证证书有效性。传递证书也就是传递公钥
如图,证书CA=E(KRauth,[Time1,IDa,KUa])。A可以把该证书传给其他用户,用户可以用KUauth解密CA(验证证书确实是来自管理员)来获取IDa、KUa、Time1
Time1是管理者授权时的时间戳,如果A私钥泄漏,但及时申请了新的证书,则旧证书的时间戳失效(旧证书也失效)
《密码编码学与网络安全》复习总结相关推荐
- HEU《数据库原理》期末复习总结
文章目录 一.绪论 数据库系统概述 数据模型 概念模型 物理模型(常被称为数据模型) 数据库系统的结构 数据库系统的组成 易错 二.关系数据库 关系数据结构及形式化定义 关系的完整性 关系代数 三.S ...
- 南京工程学院 数据库复习(数据库系统概论复习 及 数据库原理与应用样题)
一.数据库系统概论 1.1 百度文库 复习文档(需下载券) <数据库系统概论>(王珊.第五版) ★第一章 绪论 v 本章内容:数据库系统概述.数据模型.数据库系统结构 v 本章主要考点 ...
- 中南大学 oracle试卷,数据库原理期末复习(中南大学)数据库原理、技术及应用2.ppt...
2014 春季 信息11,12 DB P,T&A-张祖平 数据库原理.技术及应用 张祖平/Zhang Zuping 电子信息工程系 School of Information Science ...
- 数据库原理及应用期末复习汇总(附某高校期末真题试卷)
文章目录 <数据库原理及应用>试题1 一.选择题 二.填空 三.简答题 四.T-SQL综合题 五.综合应用题 <数据库原理及应用>试题2 一.选择题 二.填空 三.简答题 四. ...
- 数据库原理-SQL Server版(期末复习)
数据库的基本概念 1.数据(Data) 数据是用来记录信息的可识别的符号,是信息的具体表现形式. 2.数据库(DataBase,DB) 长期存储在计算机内,有组织的.可共享.具有逻辑关系和确定意义的数 ...
- 数据库原理归档——对于数据库原理最全的总结
恭喜你来到新天地! 以下的笔记是我复习了三次总结出来的,属于一个归档.目前还在对以往的知识做一个更加详细地总结,所以仍在更新中.这份笔记对于新手入门数据库来说十分友好,语言通俗易懂.在数据库中,还涉及 ...
- 数据库原理与技术(专升本)-含答案
<数据库原理与技术>课程复习资料 一.名词解释: 数据管理 DB DBMS DBS RDBMS DBA ORDBMS SQL 关系 关系模型 关系系统 完整性控制 属性 2NF 候选码 二 ...
- 《数据库原理与应用》实验一
题目来源学校课后作业,禁商业用途,仅用于课业学习 <数据库原理与应用>实验一 一.实验目的及要求 1.掌握MySQL系统的数据库创建方式. 2.掌握MySQL系统的数据表的创建方式. 3. ...
- 《数据库原理与应用》实验二
题目来源学校课后作业,禁商业用途,仅用于课业学习 <数据库原理与应用>实验二 一.实验目的及要求 1.掌握SQL查询语言的使用. 2.掌握SQL流程控制语句的使用. 3.要求独立完成,并记 ...
- 《数据库原理实验指导书》
<数据库原理实验指导书> 河南科技大学软件学院 目录 实验规则 基本实验方法 实验环境 实验一 数据定义 实验二 数据更新 实验三 数据查询-简单查询和连接查询 实验四 数据查询-分组查询 ...
最新文章
- 【视频】测试经理必修课
- 题目11 数值的整数次方
- silverlight中数据绑定讲解
- 前端node 和vue开发之环境搭建
- 《利用Python》进行数据分析:Numpy基础1 数组对象ndarray
- CCF CSP202006-1 线性分类器
- 设计模式的征途—4.抽象工厂(Abstract Factory)模式
- c语言中数字符的知识点,2019年全国计算机二级C语言必背知识点总结
- layabox 位移动画旋转动画
- 电源保护——TVS管
- xp系统远程桌面关闭计算机,系统是xp在本机开启远程桌面后,别人使用远程桌面连接我的电脑,我的电脑就会出现蓝屏停止代码是0x0000007f...
- 神经网络实战网盘资源,神经网络实战项目
- 透视全球AI治理十大事件:站在创新十字路口,人工智能会失控吗?
- 5700: 还钱问题
- C# .net 集合-并发处理之文件读写处理
- 端午送粽子祝福微信小程序源码下载支持打赏模式带背景音乐
- 原生table 边框重叠 粗细不一样等问题,秒懂,只需几秒就能完成
- SCA可达性分析基础知识普及
- OpenPose(一):根据关键点生成置信图(Confidence Map)
- 2019年的反弹牛市总结