公钥密码体制属于什么密码体制,简述公钥加密体制的两种基本模式

首页 > 经验 > 作者:YD1662024-02-29 19:49:48

3.1.1 密码学发展简况

密码学是一门研究信息安全保护的科学,以实现信息的保密性、完整性、可用性及抗抵赖性。密码学主要由密码编码(加密)和密码分析(解密)两个部分组成。

1949 年,香农发表了著名的论文《保密系统的通信理论》,提出交替使用换位和置换以抵御统计分析,增加了混乱(Confusion)和扩散(Diffusion)的密码技术新方法。

3.1.2 密码学基本概念

  密码学的主要目的是保持明文的秘密以防止攻击者获知,而密码分析学则是在不知道密钥的情况下,识别出明文的科学。明文是指需要采用密码技术进行保护的消息。密文是指用密码技术处理过明文的结果。

3.1.3 密码安全性分析

  1. 唯密文攻击。密码分析者只拥有一个或多个用同一个密钥加密的密文,没有其他可以利用的信息。
  2. 已知明文攻击。密码分析者仅知道当前密钥下的一些明文及所对应的密文。
  3. 选择明文攻击。密码分析者能够得到当前密钥下自己选定的明文所对应的密文。(适用于攻击计算机文件系统和数据库系统)
  4. 密文验证攻击。密码分析者对于任何选定的密文,能够得到该密文“是否合法”的判断。
  5. 选择密文攻击。除了挑战密文外,密码分析者能够得到任何选定的密文所对应的明文。(主要攻击公开密钥密码体制,特别是数字签名)

3.2 密码体制分类

  根据密钥的特点,密码体制分为私钥和公钥密码体制两种,而介于私钥和公钥之间的密码体制称为混合密码体制。

3.2.1 私钥密码体制

私钥密码体制又称为对称密码体制,该体制的特点是加密和解密使用相同的密钥

私钥密码体制的缺陷可以归结为三点:密钥分配问题、密钥管理问题以及无法认证源。

目前,私钥密码典型算法有DES、IDEA、AES等,其中 DES 是美国早期数据加密标准,现在已经被 AES 取代。

3.2.2 公钥密码体制

公钥密码体制又称为非对称密码体制,其基本原理是在加密和解密的过程中使用不同的密钥处理方式,其中,加密密钥可以公开,而只需要把解密密钥安全存放即可。密码算法即使公开,由加密密钥推知解密密钥也是计算不可行的。

与私钥密码体制相比较,公钥密码体制有以下优点

1. 密钥分发方便,能以公开方式分配加密密钥。

2. 密钥保管量少。网络中的消息发送方可以共用一个公开加密密钥,从而减少密钥数量,只要接收方的解密密钥保密,就能实现消息的安全性。

3. 支持数字签名。

目前,有三种公钥密码体制类型被证明是安全和有效的,即RSA体制、ELGamal体制及椭圆曲线密码体制。

3.2.3 混合密码体制

混合密码体制利用公钥密码体制分配私钥密码体制的密钥,消息的收发双方共用这个密钥,然后按照私钥密码体制的方式,进行加密和解密运算。

公钥密码体制属于什么密码体制,简述公钥加密体制的两种基本模式(1)

1、消息发送者Harden用对称密钥把需要发送的消息加密

2、Harden用James的公钥对称密钥加密,形成数字信封

3、Harden将加密消息和数字信封一起传送给James

4、James收到Harden的加密消息和数字信封后,先用自己的私钥将数字信封解开获取对称密钥

5、James使用对称密钥把加密消息解开

3.3 常见密码算法

3.3.1 DES

DES 是一个分组加密算法,能够支持64比特的明文块加密,其密钥长度为56比特。

NIST于1999年10月25日采用三重DES(Triple Data Encryption Algorithm,TDEA)作为过渡期间的国家标准,以增强DES的安全性,并开始征集AES算法。

其中,TDEA算法的工作机制是使用DES对明文进行“加密-解密-加密”操作,即对DES加密后的密文进行解密再加密,而解密则相反。(3DES K1=K3,密钥长度112位,K1,K2,K3不同则密钥长度168位)

3.2.2 IDEA

  IDEA (International Data Encryption Algorithm) 是国际数据加密算法的简记,是一个分组加密处理算法,其明文和密文分组都是 64 比特,密钥长度为 128 比特。

3.3.3 AES

3.3.4 RSA

RSA算法是非对称算法。在RSA加密算法中,公钥和私钥都可以用于加密消息,用于加密消息的密钥与用于解密消息的密钥相反。RSA算法提供了一种保护网络通信和数据存储的机密性、完整性、真实性和不可否认性的方法。目前,SSH、OpenPGP、S/MIME和SSL/TLS都依赖于RSA进行加密和数字签名功能。RSA算法在浏览器中使用,能够在不可信任的互联网中建立安全连接。
  RSA算法基于大整数因子分解的困难性。

相关数学基础

欧拉函数:对于一个正整数n,小于n且与n互素的正整数的个数,记为φ(n)。

对于一个素数n,可知φ(n) = n-1

对于两个素数p和q,它们的乘积满足n = p * q,则可知φ(n) = (p-1) * (q-1)

欧几里得算法:gcd(a,b)表示a和b的最大公约数

gcd(a,b) = 1,表示a,b最大公约数为1,说明a和b互质

同余:

两个整数a,b,若它们除以整数m所得的余数相等,则称a与b对于模m同余,或a同余b模m

RSA密码体制参数的定义:

1、 随机选择两个大素数p和q (保密)

2、 计算n = p * q (n公开)

3、 计算φ(n) = (p-1) * (q-1) (φ(n)保密)

4、 随机选取一个正整数e,且满足1 < e < φ(n),并且gcd(e,φ(n)) = 1 (e公开)

5、 根据e * d = 1 mod φ(n),求出d (d保密)

加密运算:C = Me mod n

解密运算:M = Cd mod n

RSA密码公开的加密钥=<n,e>,保密的解密钥=<p,q,d,φ(n)>

3.3.5 国产密码算法

国产密码算法是指由国家密码研究相关机构自主研发,具有相关知识产权的商用密码算法。目前,已经公布的国产密码算法主要有SM1分组密码算法、SM2椭圆曲线公钥密码算法、SM3密码杂凑算法、SM4分组算法、SM9标识密码算法。

公钥密码体制属于什么密码体制,简述公钥加密体制的两种基本模式(2)

其中,SM1 算法是一种对称加密算法,分组长度为 128 比特,密钥长度为 128 比特。

SM2算法基于椭圆曲线,应用于公钥密码系统。

SM3杂凑算法杂凑值输出长度为 256 比特。

SM4 密码算法是一个分组算法。该算法的分组长度为 128 比特,密钥长度为 128 比特。

SM9 是标识密码算法。SM9 可支持实现公钥加密、密钥交换、数字签名等安全功能。

3.4 Hash函数与数字签名

3.4.1 Hash函数 (不可逆,无碰撞性、雪崩效应)

杂凑函数简称 Hash 函数,它能够将任意长度的信息转换成固定长度的哈希值(又称数字摘要或消息摘要),并且任意不同消息或文件所生成的哈希值是不一样的。令 h 表示函数,则 h 满足下列条件:

1. h的输入可以是任意长度的消息或文件M;

2. h的输出的长度是固定的;

3. 给定 h 和 M ,计算 h(M) 是容易的;

4. 给定 h 的描述,找两个不同的消息 M1和M2,使得h(M1)=h(M2)是计算上不可行的。

3.4.2 Hash算法

常见的Hash算法有MD5、SHA、SM3。

  1. MD5算法
      MD5以512位数据块为单位来处理输入,产生128位的消息摘要,即MD5能产生128比特长度的哈希值。
  2. SHA算法

SHA同样也以512位数据块为单位来处理输入,产生160位的哈希值,具有比MD5更强的安全性。SHA算法的安全性不断改进,已发布的版本有SHA-2、SHA-3。SHA算法产生的哈希值长度有SHA-224、SHA-256、SHA-384、SHA-512等。

  1. SM3国产算法

  SM3是国家密码管理局于2010年公布的商用密码杂凑算法标准。该算法消息分组长度为512比特,输出杂凑长度为256比特,采用Merkle-Damgard结构。

3.4.3 数字签名

数字签名(Digital Signature)是指签名者使用私钥对待签名数据的杂凑值做密码运算得到的结果。该结果只能用签名者的公钥进行验证,用于确认待签名数据的完整性、签名者身份的真实性和签名行为的抗抵赖性。数字签名具有与手写签名一样的特点,是可信的、不可伪造的、不可重用的、不可抵赖的以及不可修改的。数字签名至少应满足以下三个条件:

1. 非否认。签名者事后不能否认自己的签名。

2. 真实性。接收者能验证签名,而任何其他人都不能伪造签名。

3. 可鉴别性。当双方关于签名的真伪发生争执时,第三方能解决双方之间发生的争执。

一个数字签名方案一般由签名算法和验证算法组成。签名算法密钥是秘密的,只有签名的人掌握;而验证算法则是公开的,以便他人验证。典型的数字签名方案有RSA签名体制、Rabin签名体制、ElGamal签名体制和DSS标准。

3.5 密码管理与数字证书

3.5.1 密码管理

  密码系统的安全性依赖于密码管理。密码管理主要可以分成三个方面的内容,即密钥管理、密码管理政策、密码测评。

  1. 密钥管理
    1. 密钥生成。
    2. 密钥存储。
    3. 密钥分发。
    4. 密钥使用。
    5. 密钥更新。
    6. 密钥撤销。
    7. 密钥备份。
    8. 密钥恢复。
    9. 密钥销毁。
    10. 密钥审计。
  2. 密码管理政策

密码分为核心密码、普通密码和商用密码。核心密码和普通密码用于保护国家秘密信息,属于国家密码。商用密码用于保护不属于国家秘密的信息。

  1. 密码测评

3.5.2 数字证书

数字证书也称公钥证书,是由证书认证机构(CA)签名的包含公开密钥拥有者信息、公开密钥、签发者信息,有效期以及扩展信息的一种数据结构。

数字证书按类别可分为个人证书、机构证书和设备证书,按用途可分为签名证书和加密证书。其中,签名证书是用于证明签名公钥的的数字证书。加密证书是用于证明加密公钥的数字证书。

当前,为更好地管理数字证书,一般是基于PKI技术建立数字证书认证系统(简称为CA)。CA提供数字证书的申请、审核、签发、查询、发布以及证书吊销等全生命周期的管理服务。数字证书认证系统的构成及部署,主要有目录服务器、OCSP服务器、注册服务器、签发服务器等。

3.6 安全协议

  3.6.1 Diffie-Hellman 密钥交换协议

  Diffie-Hellman密钥交换协议基于求解离散对数问题的困难性。

3.6.2 SSH

SSH是Secure Shell的缩写,即“安全外壳”,它是基于公钥的安全应用协议,由SSH传输层协议、SSH用户认证协议和SSH连接协议三个子协议组成,各协议分工合作,实现加密、认证、完整性检查等多种安全服务。

SSH传输层协议提供算法协商和密钥交换,并实现服务器的认证。SSH用户认证协议利用传输层的服务来建立连接,使用传统的口令认证、公钥认证、主机认证等多种机制认证用户。

SSH的工作机制共分 7 个步骤:

客户获取服务器的证书(C)

SSH连接请求(C)

初始化连接请求(S)

客户验证服务器公钥(S)

建立DH密钥(双向)

认证用户(双向)

使用SSH Tunnel(双向)

  目前,用户为了认证服务器的公钥真实性,有三种方法来实现。第一种,用户直接随身携带含有服务器公钥的拷贝,在进行密钥交换协议前,读入客户计算机;第二种,从公开信道下载服务器的公钥和它对应的指纹后,先通过电话验证服务器的公钥指纹的真实性,然后用HASH软件生成服务器的公钥新指纹,比较下载的指纹和新生成的指纹,若比较结果相同,则表明服务器的公钥是真实的,否则服务器的公钥是虚假的;第三种,通过PKI技术来验证服务器。

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.