SCAU:密码学知识点总结

此文章主要是根据华南农业大学2021的密码学考试大纲做出的知识整理,仅作参考。

第一章

1.密码学的概念以及分类
基本概念:
  密码学的概念:对信息进行编码实现隐蔽信息的一门学问。
  明文:没有加密的信息
  密文:加密后的信息
  加密变换:从明文到密文的变换
  解密变换:从密文到明文的变换
  密钥:加密、解密是在密钥控制下进行的
  密码分析:截收者试图通过分析从截获的密文推断出原来的明文或密钥
  被动攻击:对一个保密系统采取截获密文进行分析的攻击
  主动攻击:非法入侵者、攻击者或黑客主动向系统窜扰,采用删除、增添、重放、伪造等篡改手段向系统注入假消息,达到利己害人的目的。

密码学体制分类:
  ①非对称密码(采用两个相关密钥将加密和解密能力分开,公开密钥用于加密,秘密密钥用于解密,算法有RSA、椭圆曲线等)/双钥/公钥
  ②对称密码(分组密码、流密码;代换、置换)/单钥(加密解密由同一个密钥控制,算法有DES)/私钥:系统的保密性主要取决于密钥的安全性。

2.安全目标与攻击类型
安全目标:保密性、完整性、可用性。
攻击类型:唯密文攻击(最难攻击)、已知明文攻击、选择明文攻击、选择密文攻击。

3.信息安全基本要求
(1)信息的保密性:保证信息不泄露给未经授权的人。
(2)信息的完整性:防止信息被未经授权的篡改或破坏。
(3)可控性:防止对网络资源的非授权访问。
(4)可用性:确保授权用户或实体对信息及资源的正常使用不会被异常拒绝,允许其可靠而及时地访问信息及资源。
(5)不可否认性:防止通信双方中的某一方对所传输信息的否认。

4.典型的古典密码:单表代换密码和多表代换密码
凯撒密码:(单表代换密码)密文字母表示通过将明文字母表向左或向右移动一个固定数目的位置。(即是单表代换中的移位变换的一个特例。)

如移位变换的加解密为:(k为加解密密钥,即移位位数)
      c=E(m)=m+k(mod 26),0≤m,k≤25
      m=D( c )=c-k(mod 26),0≤c,k≤25

则凯撒密码的加解密为:
      c=E(m)=m+3(mod 26),0≤m≤25
        m=D( c )=c-3(mod 26),0≤c≤25

维吉尼亚密码:(多表代换密码,代替频率分析攻击)是使用一系列凯撒密码组成密码字母表的加密算法。

为了生成密码,需要使用表格法。这一表格包括了26行字母表,每一行都由前一行向左偏移一位得到。
在这里插入图片描述

加密过程:
    假设明文为:ATTACKATDAWN
    选择某一关键词并重复而得到密钥
    如关键词为LEMON时,密钥为:LEMONLEMONLE
    
    对于明文的第一个字母A,对应密钥的第一个字母L,于是使用表格中L行字母表进行加密,得到密文第一个字母L。类似地,明文第二个字母为T,在表格中使用对应的E行进行加密,得到密文第二个字母X。以此类推,可以得到:密文:LXFOPVEFRNHR
      
解密过程:
    根据密钥第一个字母L所对应的L行字母表,发现密文第一个字母L位于A列,因而明文第一个字母为A。密钥第二个字母E对应E行字母表,而密文第二个字母X位于此行T列,因而明文第二个字母为T。以此类推便可得到明文。

5.Kerckhoffs原则
即使密码系统的任何细节已为人悉知,只要密钥未泄露,它也应是安全的。

6.代换密码(单表、多表)与置换密码的基本概念

代换密码:是明文中的每一个字符根据替换表被替换成密文中的另一个字符。接收者对密文做反向替换就可以恢复出明文。

多表代换密码:以一系列(两个以上)代换表依次对明文消息的字母进行代换的加密方法。

置换密码(换位密码):加密过程中明文的字母保持相同,但顺序被打乱了。

7.频率分析攻击
英文字母E是出现频率最高的。26个英文字母的出现频率在大量单词中具有统计规律,如果用简单的代换方式进行加密,那么加密后的密文仍保留着字母的频率统计特点,用查频率表的方式,即可知字母的对应关系。

单表代换密码无法抵抗频率分析攻击。
对抗频率分析的办法:多名或同音代替密码、多表代替密码、多字母代替密码

8.我国的商用密码标准算法有哪些
SM1、SM2(椭圆曲线公钥算法)、SM3(哈希算法)、SM4(分组加密算法)、SM7、SM9、祖冲之密码

第二章
1.完善保密性的基本概念
拿到密文得到的信息量和拿到密文之前得到的信息量是一样的。

2.熵的定义与基本性质
定义:熵可以看作是对信息或不确定性的数学度量,是通过一个概率分布的函数来计算的。
性质:密钥量越小,密文中可确定的明文信息越大,即密钥熵应足够大。

3.一次一密本加密(One-Time Pad Encryption)
(1)Vernam加密法也称一次一密(One-Time-Pad),指在流密码当中使用与消息长度等长的随机密钥,密钥本身只使用一次。(非周期多表代换密码)
(2)原消息明文的长度=密钥长度=输出密文的长度

实现方法:首先选择一个随机位串作为密钥,然后将明文转变成一个位串。将这两串逐位进行异或。得到密文。

优点:
     ①密钥随机产生,仅使用一次;
     ②使用与消息等长的随机密钥, 产生与原文没有任何统计关系的随机输出,因此无条件安全;
     ③加密和解密为加法运算,效率较高。
     
缺点:密钥长度至少与明文长度一样长,密钥共享困难,不太实用。

4.流密码的基本概念(什么是流密码)、常见流密码算法有哪些

流密码(序列密码):明文消息按字符(如二元数字)逐位地加密。
常见流密码算法:RC4
流密码体制:①使用(伪)随机数序列做加密密钥流
      ②加密密钥流与明文流按比特异或

特点:流密码不需要对消息填充,而且运行是实时的;流密码具有密文和明文一样长这一性质。

第三章
1.分组密码体制的基本概念、基本方法(扩散、混淆)

分组密码概念:将明文消息分组(含有多个字符),逐组地进行加密。

基本方法:
   扩散:将明文的统计特性散布到密文中去,实现方式是使得密文中每一位由明文中多位产生。使明文和密文之间的统计关系尽可能复杂。
   混乱:使密文和密钥之间的统计关系尽可能复杂,以使敌手无法得到密钥。

概述:将明文消息编码表示后的数字(简称明文数字)序列,划分为长度为n的组,每组分别在密钥的控制下变换成等长的输出数字(简称密文数字)序列。

2.Feistel密码结构的特点
Feistel 密码结构是用于分组密码中的一种对称结构。
加密和解密操作非常相似。
在这里插入图片描述

3.常见分组密码算法(DES、AES等)
DES算法全称为 Data Encryption Standard,即数据加密算法,是分组长度为64比特的分组密码算法,密钥长度也是64比特,其中每8比特有一位奇偶校验位,因此有效密钥长度为56比特。
DES算法是公开的,其安全性依赖于密钥的保密程度。
DES加密算法为:将64比特明文数据用初始置换IP置换,得到一个乱序的64比特明文分组,然后分成左右等长的32比特,分别记为L0,R0,进行16轮完全类似的迭代运算后,将所得左右长度相等的两个L16,R16交换得到64比特数据R16,L16,最后再用初始逆置换IP-1进行置换,产生密文数据组。

AES,Advanced Encryption Standard,高级加密标准,是一个迭代分组密码,其分组长度和密钥长度都可以改变。分组长度和密钥长度可以独立地设定为128比特、192比特或者256比特。

4.分组密码的运行模式及主要特点

模式描述特点
电码本(ECB)模式每个明文组独立地以同一密钥加密。若同一明文分组在消息中重复出现,则产生的密文分组也相同。
密码分组链接(CBC)模式加密算法的输入是当前明文组与前一密文组的异或。让重复的明文分组产生不同的密文分组。
密码反馈(CFB)模式每次只处理输入的j比特,将上一次的密文用作加密算法的输入以产生伪随机输出,该输出再与当前明文异或以产生当前密文。分组转变为流密码模式,可加密小于分组数据。
输出反馈(OFB)模式与CFB类似,不同之处是本次加密算法的输入为前一次加密算法的输出。传输过程中的比特错误不会被传播;比CFB模式更易受到对消息流的篡改攻击。

第四章
1.对称密码与公钥密码各自的优缺点

优点缺点
对称密码运算速度快,使用长密钥时的难破解性,安全性高密钥分配麻烦,缺乏自动检测密钥泄露的能力
公钥密码密钥分配容易 ,拥有数字签名的功能运算速度慢,算法复杂

2.公钥密码体制的基本概念、基本原理
基本原理:采用两个相关密钥将加密和解密能力分开,其中一个密钥是公开的,称为公开密钥,用于加密;另一个为用户专用,称为秘密密钥,用于解密。已知密码算法和加密密钥,求解密密钥在计算上是不可行的。

公钥体制加密:在这里插入图片描述
公钥体制认证:
用户A用自己的秘密钥SKA对m加密,将c发往B,B用A的公开钥PKA对c解密。在这里插入图片描述

3.RSA加密算法及其安全性分析
算法描述:
(1)密钥的产生
    ①选两个保密的大素数p、q
    ②计算n=p×q, φ(n) = (p - 1)(q - 1),其中φ(n)是n的欧拉函数值。
    ③选一整数e,满足1<e< φ(n),且gcd( φ(n),e)=1.(gcd表示取最大公约数。)(即φ(n)与e互素)
    ④计算d,满足d·e≡1 mod φ(n),即d是e在模φ(n)下的乘法逆元,因e与φ(n)互素,由模运算可知,它的乘法逆元一定存在。
    ⑤以{e,n}为公开钥,{d,n}为秘密钥。
    
(2)加密
   ①首先将明文比特串分组,使得每个分组对应的十进制数小于n,即分组长度小于log2n。
   ②对每个明文分组作加密运算: c≡m^(e) mod n
(3)解密
   对密文分组的解密运算为:m≡c^(d) mod n

安全性分析:
  RSA的安全性是基于分解大整数的困难性假定。
     (n=pxq,知道n,很难求出p和q)

     
4.椭圆曲线密码的优点
(1)安全性高。对椭圆曲线上的离散对数问题不是有效的。
(2)密钥量少。实现相同的安全性能,椭圆曲线密码体制比公钥体制的密钥量小。
(3)灵活性好。通过变换曲线参数,可以形成不同的循环群。

5.El Gamal加密算法
①密钥产生过程:选择一个素数p以及两个小于p的随机数g和x,计算y≡g^(x) mod p。以(y,g,p)作为公开密钥,x作为秘密密钥。

②加密过程:设欲加密明文消息M,随机选一与p-1互素的整数k,计算:
     C1≡g^(k) mod p  
     C2≡y^(k)*M mod p  
    密文为(C1,C2)

③解密过程:M=C2/C1 mod p

其安全性依赖于求有限域下离散对数的困难性。

第五章
1.对称密码体制的密钥分配基本方法
两个用户(主机、进程、应用程序)在用单钥密码体制进行保密通信时,首先必须有一个共享的秘密密钥,而且为防止攻击者得到密钥,还必须时常更新密钥。

两个用户A和B获得共享密钥的方法包括:
    ①密钥由A选取并通过物理手段发送给B
    ②密钥由第三方选取并通过物理手段发送给A和B
    ③如果A、B事先已有一密钥,则其中一方选取新密钥后,用已有的密钥加密新密钥并发送给另一方。
    ④如果A和B与第三方C分别有一保密信道,则C为A、B选取密钥后,分别在两个保密信道上发送给A、B。

2.公钥密码体制的密钥分配基本方法
公钥分配:
     ①公开发布:指用户将自己的公钥发给每一其他用户,或向某一团体广播。
     ②公用目录表:公用目录表指一个公用的公钥动态目录表,其建立、维护以及公钥的分布由某个可信的实体或组织承担,称这个实体或组织为公用目录的管理员。
     ③公钥管理机构:这里假定有一个公钥管理机构来为各用户建立、维护动态的公钥目录,但同时对系统提出
以下要求,即:每个用户都可靠地知道管理机构的公钥,而只有管理机构自己知道相应的秘钥。
     ④公钥证书:用户通过公钥证书来互相交换自己的公钥而无须与公钥管理机构联系。

用公钥加密分配单钥密码体制的密钥:
1.简单分配:
2.具有保密性和认证性的密钥分配。
在这里插入图片描述

3.Diffie-Hellman密码交换协议
①算法的安全性基于求离散对数的困难性。因为XA,XB是保密的,敌手只能得到p、a、YA、YB,要想得到K,则必须得到XA、XB中的一个,这意味着要求离散对数。因此敌手求K是不可行的。
②该算法的唯一目的是使得两个用户能够安全地交换密钥,得到一个共享的会话密钥,算法本身不能用于加解密。
③密钥交换过程:
  用户A选择一个保密的随机整数XA,并将YA=a^(XA) mod p发送给用户B。
  用户B选择一个保密的随机整数XB,并将YB=a^(XB) mod p发送给用户A。
  A由K=(YB)^(XA) mod p,
  B由K=(YA)^(XB) mod p,计算的K为共享密钥。

4.数字证书的主要内容及其作用
概念:
    数字证书是一种权威性的电子文件,由权威公正的第三方机构,即CA中心签发的证书。它以数字证书为核心的加密技术可以对网络上传输的信息进行加密和解密、数字签名和签名验证,确保网上传递信息的机密性、完整性。
(数字证书 = 证书内容 + 证书内容Hash值的签名。)

证书内容如下:
    ①公钥内容。(网站自定义的公钥,用来与网站作交互)
    ②签发者ID----谁签发的证书(CA的ID)
    ③ Subject----也就是这个证书签发给谁。这里subject和签发者ID相同。(网站的ID)
    ④有效期
    ⑤网站的URL
    ⑥其他信息(不同的数字证书会有不同的情况)

作用:
  ①身份认证  ②数据完整性  ③数据保密性  ④不可否认性
    
第六章
1.消息认证码的基本定义及使用方式
基本定义:消息认证码是指消息被一个密钥控制的公开函数作用后产生的、用作认证符的、固定长度的数值,也称为密码校验和。

使用方式:a.消息认证 
     b.认证性和保密性:对明文认证
     c.认证性和保密性:对密文认证

2.消息认证码的构造方法
  MAC算法可以由其他加密原语构建,例如加密散列函数(如HMAC的情况)或来自分组密码算法(OMAC,CBC-MAC和PMAC)。
①基于分组密码的构造方法----数据认证算法。
②基于密码哈希函数的构造方法----HMAC。

3.散列函数(哈希函数)的定义及使用方式、安全性要求
基本定义:哈希函数H是一公开函数,用于将任意长的消息M映射为较短的、固定长度的一个值H(M),作为认证符,称函数值H(M)为哈希值或哈希码或消息摘要。

使用方式:
①消息与哈希码链接后用单钥加密算法加密。
②用单钥加密算法仅对哈希码加密。
③用公钥加密算法和发方的秘密钥仅加密哈希码。
④消息的哈希值用公钥加密算法和发方的秘密钥加密后与消息链接,再对链接后的结果用单钥加密算法加密。
⑤秘密值链接后哈希,跟明文消息链接直接发送。
⑥ 秘密值链接后再哈希,跟明文消息链接加密发送。

安全性:
哈希函数的目的是为需认证的数据产生一个“指纹”。为了能够实现对数据的认证哈希函数应满足的条件:
    ①函数的输入可以是任意长的
    ②函数的输出是固定长的
    ③ 已知x,求H(x)是容易的,可用硬件或者软件实现
    前三个是哈希函数能用于消息认证的基本要求。
    ④已知h,使得H(x)=h的x在计算上是不可行的,这一性质称为函数的单向性,称H(x)为单向哈希函数。
    对使用秘密值的认证技术极为重要;假设哈希函数不具有单向性,则敌手可以根据H(M||S)求出 M||S,从而得到秘密值S。
   ⑤已知x,找出y(y≠x)使得H(y)=H(x)在计算上是不可行的,称为弱单向哈希函数。
    这个条件使得敌手无法在已知某个消息时,找到与该消息具有相同哈希值的另一消息。这一性质用于哈希值被加密情况时,防止敌手的伪造。
   ⑥找出任意两个不同的输入x、y,使得H(y)=H(x)在计算上是不可行的。称为强单向哈希函数。用于抵抗生日攻击。

4.生日攻击
第I类生日攻击:
    已知一哈希函数H有n个可能的输出,H(x)是一个特定的输出,如果对H随机取k个输入,则至少有一个输入y使得H(y)=H(x)的概率为0.5时,k有多大?
    称对哈希函数H寻找上述y的攻击为第一类生日攻击。
    ①n个输出下:k = n / 2
    ②特别的:m比特输出下,即 n = 2 ^m :k = 2^(m - 1) (n = 2^m)

第||类生日攻击:
  寻找哈希函数H的具有相同输出的两个任意输入的攻击方式为第||类生日攻击,即寻找碰撞。
  在这里插入图片描述

5.常见的散列函数(MD5、SHA、SM3等)
MD5:(MD5信息摘要算法)
一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。
   ①对消息填充
   ②附加消息的长度
   ③对MD缓冲区初始化
   ④分组为单位进行Hmd5(压缩函数) 的处理
   ⑤输出,最后一个Hmd5的输出,即产生最终的128比特的消息摘要

SHA:(安全散列算法)
能计算出一个数字消息所对应到的,长度固定的字符串(又称消息摘要)的算法。
   ①对消息填充
   ②附加消息的长度
   ③对MD缓冲区初始化
   ④以分组为单位对信息进行处理。
   ⑤输出。消息的L个分组都被处理完后,最后一个分组的输出即为160比特的消息摘要。

SM3:(国产哈希算法、SM3密码杂凑算法)
是对不定长的输入产生定长输出的一种特殊函数。
   ①填充并附加消息的长度。
   ②迭代压缩。
   ③消息扩展。
   ④压缩函数。
   ⑤输出哈希值。

第七章
1.数字签名的基本概念、产生方式及主要用途
基本概念:
    数字签名(又称公钥数字签名)是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。

应具有以下性质:
    ① 能够验证签名产生者的身份,以及产生签名的日期和时间。
    ② 能用于证实被签消息的内容。
    ③数字签名可由第三方验证,从而能够解决通信双方的争议。

应满足以下要求:
    ①签名的产生必须使用发方独有的一些信息以防伪造和否认。
    ②签名的产生应较为容易。
    ③ 签名的识别和验证应较为容易。
    ④ 对已知的数字签名构造一新的消息或对已知的消息构造一假冒的数字签名在计算上是不可行的。

产生方式:
①由加密算法产生数字签名:利用加密算法产生数字签名是指将消息或消息的摘要加密后的密文作为对该消息的数字签名。
②由签名算法产生数字签名
算法的安全性在于从M和𝝈难以推出密钥x或伪造一个消息M′使M′和𝝈可被验证为真。

主要用途:
①防冒充、②可鉴别身份、③防篡改、④防重放、⑤防抵赖、⑥保密性、⑦身份认证,数据完整性,不可否认性及匿名性

2.RSA签名(公钥加密,私钥解密;私钥签名,公钥验签)
   采用RSA签名时,将消息输入到一个哈希函数以产生一个固定长度的安全哈希值,再用发方的秘密钥加密哈希值就形成了对消息的签名。消息及其签名被一起发给收方,收方得到消息后再产生出消息的哈希值,且使用发方的公开钥对收到的签名解密。这样收方就得了两个哈希值,如果两个哈希值是一样的,则认为收到的签名是有效的。
① 体制参数。
   选两个保密的大素数𝒑和𝒒,计算𝒏=𝒑×𝒒,𝝋(𝒏)=(𝒑−𝟏)(𝒒−𝟏);选一整数e,满足𝟏 < 𝒆 < 𝝋(𝒏),且𝒈𝒄𝒅⁡(𝝋(𝒏), 𝒆)=𝟏;计算𝒅,满足𝒅·𝒆≡𝟏 𝒎𝒐𝒅 𝝋(𝒏);以𝒑𝒌={𝒆, 𝒏}为公开钥, 𝒔𝒌={𝒅, 𝒏}为秘密钥。
② 签名过程。
   设消息为M,对其签名为𝝈 ≡ 𝑴𝒅 𝒎𝒐𝒅 𝒏
③ 验证过程。
   接收方在收到消息M和签名S后,验证𝑴≡┴? 𝝈^𝒆 𝐦𝐨𝐝⁡𝒏是否成立,若成立,则发送方的签名有效。
   
实际应用时,数字签名是对消息摘要加密产生,而不是直接对消息加密产生。

3.DSA数字签名标准
安全性基于求离散对数的困难性。
算法描述如下:
(1) 全局公开钥
  𝒑:满足𝟐^(𝑳−𝟏)< 𝒑 <𝟐^𝑳的大素数,其中𝟓𝟏𝟐 ≤ 𝑳 ≤ 𝟏𝟎𝟐𝟒且𝑳是64的倍数。
  𝒒:𝒑−𝟏的素因子,满足𝟐𝟏𝟓𝟗 < 𝒒 < 𝟐𝟏𝟔𝟎 ,即𝒒 长为160比特。
  𝒈:𝒈≡𝒉^((𝒑−𝟏)/𝒒) 𝒎𝒐𝒅 𝒑,其中𝒉是满足𝟏 < 𝒉 < 𝒑−𝟏且使得𝒉^((𝒑−𝟏)/𝒒) 𝒎𝒐𝒅 𝒑 > 𝟏的任一整数。
(2) 用户秘密钥𝒙:𝒙是满足𝟎 < 𝒙 < 𝒒的随机数或伪随机数。
(3) 用户的公开钥𝒚:𝒚≡𝒈𝒙 𝒎𝒐𝒅 𝒑。
(4) 用户为待签消息选取的秘密数k,𝒌是满足𝟎<𝒌<𝒒的随机数或伪随机数。
(5) 签名过程
  用户对消息𝑴的签名为(𝒓, 𝒔),其中𝒓≡(𝒈𝒌 𝒎𝒐𝒅 𝒑) 𝒎𝒐𝒅 𝒒, 𝒔≡[𝒌^(−𝟏) (𝑯(𝑴)+𝒙𝒓)] 𝒎𝒐𝒅 𝒒,𝑯(𝑴)是由SHA求出的哈希值。
(6) 验证过程

第八章
1.掷币协议的基本概念
在某些密码协议中,要求通信双方在无第三方协助的情况下产生一个随机序列。因为A、B之间可能存在不信任关系,因此随机序列不能由一方产生再通过电话或网络告诉另一方。这一问题可通过掷硬币协议来实现。

2.承诺协议的基本概念
数学承诺协议是指发送方暂时以隐藏的方式向接收方承诺一个值,承诺后不能再对该值做出任何修改。

3.不经意传输协议的基本概念
设A有一个秘密,想以1/2的概率传递给B,即B有50%的机会收到这个秘密,另外50%的机会什么也没有收到,协议执行完毕,B知道自己是否收到了这个秘密,但A却不知B是否收到了这个秘密。这种协议就称为不经意传输协议。

4.零知识证明协议的基本概念
证明者向验证者证明并使其相信自己知道或拥有某一消息,但证明过程不能向验证者泄漏任何关于被证明消息的信息,即向外泄露的消息为0。称为零知识证明。
5.安全多方计算的基本概念
安全多方计算(英文:Secure Multi-Party Computation)的研究主要是针对无可信第三方的情况下,如何安全地计算一个约定函数的问题。

  • 4
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值