0


密码学基本理论

一、密码学概况

密码学:是一门研究信息安全保护的科学,以实现信息的保密性、完整性、可用性及抗抵赖性

密码学组成:主要由密码编码和密码分析两个部分组成

  • 密码编码学:研究信息的变换处理以实现信息的安全保护(研究加密)
  • 密码分析学:研究通过密文获取对应的明文信息(研究解密)

目前,密码成为网络与信息安全的核心技术和基础支撑

  • 2005.4.1:实施《中华人民共和国电子签名法》
  • 2006:我国公布了自己的商用密码算法,成为我国密码发展史上一件大事
  • 2020.1.1:正式发布《中华人民共和国密码法》

1.1 密码学相关概念

明文:需要采用密码技术进行保护的消息

密文:是指用密码技术处理过明文的结果,通常称为加密消息

加密:将明文变换成密文的过程

解密:由密文恢复出原明文的过程

加密算法:加密过程所使用的一组操作运算规则

解密算法:解密过程所使用的一组操作运算规则

加密和解密算法的操作通常都是在密钥控制下进行的,分别称为加密密钥和解密密钥

1.2 密码学概况-攻击密码的类型

根据密码分析者在破译时已具备的前提条件,可将攻击密码的类型分为以下五种:

  1. 唯密文攻击:密码分析者只拥有一个或多个用同一个密钥加密的密文,没有其他可利用信息
  2. 已知明文攻击:密码分析者根据已经知道的某些明文-密文对来破译密码,一个密码仅当它能经得起已知明文攻击时才是可取的
  3. 选择明文攻击:指密码分析者能够选择明文并获得相应的密文,这是对密码分析者十分有利的情况
  4. 密文验证攻击:密码分析者对于任何选定的密文,能够得到该密文“是否合法”的判断
  5. 选择密文攻击:指密码分析者能够选择密文并获得相应的明文,这也是对密码分析者十分有利的情况。这种攻击主要攻击公开密钥密码体制,特别是攻击其数字签名

二、密码体制分类

2.1 私钥(对称)密码体制

特点:加密和解密使用相同的密钥,当用户应用这种体制时,消息的收发双方必须事先通过安全渠道交换密钥

**缺点 **

  • 密钥分配问题
  • 密钥管理问题
  • 无法认证源

常见对称密钥加密算法

  • DES:替换+移位、56位密钥、64位数据块、速度快,密钥易产生

  • 3DES:三重DES,两个56位密钥K1、K2

  • AES:是美国联邦政府采用的一种区块加密标准,这个标准用来替代原先的DES。对其的要求是“至少像3DES-样安全”

  • RC-5:RSA数据安全公司的很多产品都使用了RC-5

  • IDEA:128位密钥,64位数据块,比DES的加密性好,对计算机功能要求相对低。

    ** 扩展:**

  • DES(数据加密标准,Data Encryption Standard):是一种使用密钥加密的块算法

  • DEA( 数据加密算法,Data Encryption Algorithm):作为算法的DES

  • 3DES(Triple DES):是三重数据加密算法(TDEA)块密码的通称。它相当于是对每个数据块应用三次DES加密算法,由于计算机运算能力的增强,原版DES密码的密钥长度变得容易被暴力破解;3DES即是设计用来提供一种相对简单的方法,即通过增加DES的密钥长度来避免类似的攻击,而不是设计一种全新的块密码算法** **

  • AES(高级加密标准,Advanced Encryption Standard):又称Rijndael加密法

  • RC-5:是一种对称密码算法,使用可变参数的分组迭代密码体制,其中可变参数为分组长(为2倍字长w位)、密钥长(按字节数计b)和迭代轮数(以RC-5-w/r/b)

  • IDEA:全称“International Data Encryption Algorithm”,中文名就是国际数据加密算法

2.2 公钥(非对称)密码体制

特点:数据的加密和解密使用的密钥是不同的

优点:密钥分发方便、密钥保管量少、支持数字签名

缺点:加密速度慢(密钥有1024位,计算量大,不适合加密大数据)

技术原理:发送方甲和接收方乙都分别有各自的公钥和私钥,一方的公钥加密只能该方的私钥解密,双方的公钥可以共享,但私钥只能自己保密,此时,若甲方要传输数据给乙方,明显应该使用乙方的公钥来加密,这样,只有使用乙方的私钥才能解密,而乙方的私钥只有乙方才有,保证了数据的保密性,也不用分发解密的密钥(公私钥互相加解密)

常见的非对称加密算法

RSA:512位(或1024位)密钥,计算机量极大,难破解
Elgamal、ECC (椭圆曲线算法)、背包算法、Rabin、 D-H等

2.3 混合密码体制

发送方用对称密钥加密需要发送的消息,再用接收方的公钥加密对称密钥,然后一起发送给接收方,接收方先用自己的私钥解密得到对称密钥,然后用对称密钥解密得到明文

三、常见密码算法

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

3DES (TDEA) :工作机制是使用DES对明文进行“加密-解密-加密”操作,如下
** 加密:** K1 加密->K2解密->K3加密。
解密: K3解密->K2加密->K1解密
一般,K1和K3是相同的密钥

IDEA:是一个分组加密算法,其明文和密文分组都是64比特,密钥长度为128比特

** **设计思想:混合使用来自不同代数群中的运算

AES算法满足的要求

  • 算法是没有密级的
  • 算法的全部描述必须公开披露
  • 算法必须可以在世界范围内免费使用
  • 密码系统支持至少128比特长的分组
  • 密码支持的密钥长度至少为128/192和256比特

3.1 RSA算法

1. 数学基础

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

  • 对于一个素数n,可知φ(n)=n-1
  • 两个素数p和q,它们的乘积满足n=pq,则可知φ(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,记作a≡b (mod m),即a mod m≡b mod m,表示a与b对模m同余。例如: 26≡2 (mod 12)

2. RSA算法结构

一种基于大合数因子分解困难性的公开密钥密码,简称为RSA密码,既可以用于加密,
又可以用于数字签名,是目前应用最广泛的公开密钥算法

基本的RSA密码体制:参数、加密算法、解密算法

1.参数定义和密钥生成
①随机地选择两个大素数p和q,而且保密
②计算n=pq,将n公开
③计算φ(n)=(p-1) (q-1), 对φ(n)保密
④随机地选取一个正整数e,1<e<φ(n)且gcd(e,φ(n))=1,将e公开(公钥)
⑤根据e
d=1 mod φ(n)时,求出d,并对d保密(私钥)

2.加密: C=M^{e}\; mod \; n

**3.解密: **M=C^{d}\; mod\; n

3. RSA算法实例

1.参数定义和密钥生成

①选取素数p=47,q=71,p和q保密
②计算n=4771=3337,n公开
③计算φ (n) = 46
70=3220,φ (n)保密
④随机的选取e=79,满足1<79<3220,且gcd (79, 3220)=1,e公开
⑤根据79*d =1 mod 3220,求出d=1019,d保密
2.加密: 设明文M=688 232 687 966 668 3,进行分组,M1=688, M2=232, M3=687,M4=966,M5=668,M6=003。 M1的密文C1=688^79 mod 3337=1570, 继续进行类似计算,可得最终密文C=1570 2756 2091 2276 2423 158
3.解密:计算M1=1570^1019 mod 3337=688,类似地可解密还原出其他明文

私钥d求法:乘法逆元求法

: 5*d=1 mod 64,求d

本质是5d mod 64 = 1 mod 64,假设5d除以64的商为x,就有5d = 64x + 1 mod 64,即d = (64*x + 1) / 5,从x=1开始依次取值,直至能被整除,发现x=1时,65/5=13可以整除,因此d=13

通用公式

ad=b mod m,已知a,b,m,求d,根据原始定义,本质上就是b mod m = ab mod m,可以假设ad除以m的商为x,余数是b mod m,依据乘除法公式有:ad = m*x +b mod m

因此:私钥d= (m*x + b mod m) / a,其中,只有x是未知数,可从1开始代入,直到右边能整除为止

4. RSA密码的安全性

因子分解攻击:小合数的因子分解是容易的,大合数的因子分解却是十分困难的。要应用RSA密码,应当采用足够大的整数n。只要合理地选择参数,正确地使用,RSA就是安全的

为了确保RSA密码的安全,必须认真选择RSA的密码参数,各个参数选择如下:

  • 一般加密密钥和认证密钥选n为1024位,而平台根密钥和存储根密钥则选n为2048位
  • p和q要足够大并且p和q应为强素数
  • 为了使加密速度快,e的二进制表示中应当含有尽量少的1
  • 为了使解密速度快,d应尽可能小,但也不能太小,当d小于n的1/4 时,已有求出d的攻击方法
  • 不要许多用户共用一个模数n

3.2 国产密码算法

是指由国家密码研究相关机构自主研发,具有相关知识产权的商用密码算法,目前已经公布的国产密码算法如下:
算法名称算法特性描述备注SM1对称加密,分组长度和密钥长度都为128 比特SM2非对称加密,用于公钥加密算法、密钥交换协议、数字签名算法国家标准推荐使用素数域256位椭圆曲线SM3杂凑算法,杂凑值长度为256比特(哈希算法)SM4对称加密,分组长度和密钥长度都为128比特SM9标识密码算法

四、Hash函数与数字签名

4.1 hash(杂凑/散列)函数

它能够将任意长度的信息转换成固定长度的哈希值(又称数字摘要或信息摘要),并且任意不同消息或文件所生成的哈希值是不一样的

hash函数满足的条件

令h表示hash函数,则h满足下列条件:

  • h的输入可以是任意长度的消息或文件M
  • h的输出的长度是固定的
  • 给定h和M,计算h (M)是容易的
  • 给定h的描述,找两个不同的消息M1和M2,使得h (M1)=h (M2)在计算上是不可行的
  • 根据信息摘要无法还原明文

常见的Hash算法

  • MD5算法:以512位数据块为单位来处理输入,产生128位的信息摘要
  • SHA算法:以512位数据块为单位处理输入,产生160位的哈希值,具有比MD5更强的安全性
  • SM3国产算法:2010年公布,该算法消息分组长度为512比特,输出256比特信息摘要。采用了Merkle-Damgard (M-D结构) 结构

4.2 数字签名

数字签名

指签名者使用私钥对待签名数据的杂凑值(信息摘要)做密码运算得到的结果。该结果只能用签名者的公钥进行验证,用于确认待签名数据的完整性、签名者身份的真实性和签名行为的抗抵赖性

完善的签名应满足三个条件

  1. 非否认:签名者事后不能抵赖自己的签名
  2. 真实性:接收者能验证签名,而任何其他人不能伪造签名
  3. 可鉴别性:如果当事的双方关于签名的真伪发生争执,能够在公正的仲裁者面前通过验证签名来确认其真伪

数字签名方案组成

  • 签名算法:密钥是秘密的,只有签名的人掌握(加密过程)

  • 验证算法:密钥是公开的,以便他人验证(解密过程)

    典型的数字签名方案有RSA、Rabin、EIGamal 签名体制和DSS标准
    

签名和加密很相似,一般是签名者利用私钥对需签名的数据进行加密,验证方利用签名者的公钥对签名数据做解密运算。签名与加密的不同之处在于目的不同签名是为了保证不可抵赖性和完整
性,加密是为了保证机密性,数字签名一般和信息摘要联合使用

五、密钥管理与数字证书

5.1 密钥管理

密码系统的安全性依赖于密码管理

密码管理主要内容

  • 密钥管理:主要围绕密钥的生命周期进行,包括密钥生成、密钥存储、密钥分发、密钥使用、密钥更新、密钥撤销、密钥备份、密钥恢复、密钥销毁、密钥审计
  • 密钥管理政策:
  1. 《商用密码管理条例》:主要有商用密码的科研生产管理、销售管理、使用、安全保密管理
  2. 《中华人民共和国密码法》:密码分为核心密码、普通密码和商用密码,实行分类管理。核心密码、普通密码用于保护国家秘密信息,属于国家秘密,由密码管理部门依法实行严格统一管理。 商用密码用于保护不属于国家秘密的信息,公民、法人和其他组织均可依法适用商用密码保护网络与信息安全
  • 密码测评:指对相关密码产品及系统进行安全性、合规性评估,以确保相关对象的密码安全有效,保障密码系统的安全运行。目前,国家设立了商用密码检测中心

5.2 数字(公钥)证书

是由证书认证机构(CA,Certification Authority)签名的包含公开密钥拥有者信息、公开密钥、签发者信息(CA信息)、有效期以及扩展信息的一种数据结构(用来保证通信双方都是安全合法的)

基本信息域:版本号、序列号、签名算法、颁发者、有效日期、主体、主体公钥信息、颁发者唯一标识符、主体唯一标识符、扩展项

数字证书分类

  • 按类别:可分为个人证书、机构证书和设备证书
  • 按用途:可分为签名证书和加密证书
  1. 签名证书:用于证明签名公钥的数字证书
  2. 加密证书:用于证明加密公钥的数字证书

CA:是证书的签发机构,一般是基于PKI(公钥基础设施,Public Key Infrastructure)技术建立的数字证书认证系统,用来更好的管理数字证书,CA提供数字证书的申请、审核、签发、查询、发布以及证书吊销等全生命周期的管理服务

数字证书认证系统构成:包括目录服务器、0CSP服务器、注册服务器、签发服务器等

六、安全协议

6.1 Diffie-HeIIman密钥交换协议

基于求解离散对数问题的困难性,即对于等式:C^{d}\; = \; M\; mod\; P,在已知C和P的前提下,由d求M很容易,只相当于进行一次指数运算。而再由M反过来求d,则需要指数级次计算。随着P取得足够大,就能实现足够的安全强度

当A和B在一个不安全的信道上交换密钥时,其操作步骤如下:

6.2 SSH协议

SSH(安全外壳,Secure Shell):它是基于公钥的安全应用协议

SSH协议组成

  • SSH传输层协议:提供算法协商和密钥交换,并实现服务器的认证,最终形成一个加密的安全连接,该安全连接提供完整性、保密性和压缩选项服务

  • SSH用户认证协议:利用传输层的服务来建立连接,使用传统的口令认证、公钥认证、主机认证等多种机制认证用户

  • SSH连接协议:在前面两个协议的基础上,利用已建立的认证连接,并将其分解为多种不同的并发逻辑通道,支持注册会话隧道和TCP转发,而且能为这些通道提供流控服务以及通道参数协商机制

    各协议分工合作,实现加密、认证、完整性检查等多种安全服务

SSH的工作流程

共分7个步骤:

步骤[4]中用户认证服务器公钥真实性方法

  1. 用户直接随身携带含有服务器公钥的拷贝,在进行密钥交换协议前,读入客户计算机
  2. 从公开信道下载服务器的公钥和它对应的指纹(hash、信息摘要)后,先通过电话验证服务器的公钥指纹的真实性,然后用HASH软件生成服务器的公钥新指纹,比较下载的指纹和新生成的指纹,若相同,则公钥是真实的,否则为虚假
  3. 通过PKI技术来验证服务器

在实际应用中,SSH在端口转发技术的基础上,能够支持远程登录、rsh、rlogin、文件传输等多种安全服务。Linux系统一般提供SSH服务,端口号一般为22,虽然SSH是一个安全协议,但是也有可能受到中间人攻击和拒绝服务攻击

七、密码学网络安全应用

7.1 密码技术常见应用场景类型

场景类型安全措施网络用户安全
1.基于公钥密码学技术,把用户实体信息与密码数据绑定,形成数字证书,标识网络用户身份,并提供身份鉴别服务

2.使用加密技术,保护网络用户的个人敏感信息
物理和环境安全
1.对物理区域访问者的身份进行鉴别,保证来访人员的身份真实性2.保护电子门禁系统进出记录的存储完整性和机密性

3.保证视频监控音像记录的存储完整性和机密性
网络和通信安全
1.对通信实体进行双向身份鉴别,保证通信实体身份的真实性

2.使用数字签名保证通信过程中数据的完整性

3.对通信过程中进出的敏感字段或通信报文进行加密

4.使用密码安全认证协议对网络设备进行接入认证,确保接入的设备身份的真实性
设备和计算安全
1.使用密码安全认证协议对登录设备用户的身份进行鉴别

2.使用Hash函数及密码算法建立可信的计算环境

3.使用数字签名验证重要可执行程序来源的真实性

4.使用加密措施保护设备的重要信息资源,如口令文件

5.用SSH及SSL等密码技术,建立设备远程管理安全信息传输通道
应用和数据安全
1.使用安全协议及数字证书对登录用户进行身份鉴别,保证应用系统用户身份的真实性

2.加密应用系统访问控制信息

3.应用SSH及SSL等密码技术,传输重要数据,保护重要数据的机密性和完整性

4.加密存储重要数据,防止敏感数据泄密

5.使用Hash 函数、数字签名等密码技术,保护应用系统的完整性,防止黑客攻击改
业务应用创新
1.利用数字证书和数字签名等密码技术,构建网络发票

2.使用Hash函数等密码技术,构建区块链

3.利用密码技术,建立电子证照

7.2 路由器安全应用参考

1. 路由器口令管理

为了路由器口令的安全存储,路由器先用MD5对管理员口令信息进行Hash计算,然后再保存到路由器配置文件中

2. 远程安全访问路由器

远程访问路由器常用Telnet,但Telnet容易泄露敏感的口令信息,因此,管理员为增强路由器的安全管理,使用SSH替换Telnet

3. 路由信息交换认证

路由器之间需要进行路由信息的交换,以保证网络路由正常进行,因此需要路由器之间发送路由更新包。为了防止路由欺诈,路由器之间对路由更新包都进行完整性检查,以保证路由完整性。目前,路由器常用MDS-HMAC来实现。如果路由信息在传输过程中被篡改了,接收路由器通过重新计算收到路由信息的Hash值,然后与发送路由器的路由信息的Hash值进行比较,如果两个Hash值不相同,则接收路由器拒绝路由更新包

路由器信息交换认证示意图如下

7.3 Web网站安全应用参考

Web网站是网络应用的重要组成部分,许多重要的网络应用业务如网络银行、新闻发布、电子商务等都基于Web服务开展,其安全性变得日益重要,Web网站已成为黑客攻击的重点目标

web网站安全威胁:信息泄露、非授权访问、网站假冒、拒绝服务等

密码学在Web方面的安全应用:Web用户身份认证、Web 服务信息加密处理以及Web信息完整性检查等

防护措施:目前,重要信息网站通过数字证书和SSL共同保护Web服务的安全。利用SSL和数字证
书,可以防止浏览器和Web服务器间的通信信息泄密或被篡改和伪造

7.4 电子邮件安全应用参考

普通的电子邮件:明文传递,电子邮件的保密性难以得到保证,同时其完整性也存在安全问题

防护措施:利用PGP(Pretty Good Privacy)来保护电子邮件的安全。PGP是一种加密软件,它能够防止非授权者阅读邮件,并能对用户的邮件加上数字签名,从而使收信人可以确信发信人的身份。PGP应用的密码技术:密钥管理算法选用RSA、数据加密算法IDEA、完整性检测和数字签名算法,采用了MD5和RSA以及随机数生成器,PGP 将这些密码技术有机集成在一起,利用对称和非对称加密算法的各自优点,实现了一个比较完善的密码系统

友情链接:http://xqnav.top/

标签: 网络 web安全 安全

本文转载自: https://blog.csdn.net/qq_43874317/article/details/126436141
版权归原作者 learning-striving 所有, 如有侵权,请联系我们删除。

“密码学基本理论”的评论:

还没有评论