加密技术06-加密总结

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了加密技术06-加密总结相关的知识,希望对你有一定的参考价值。

参考技术A

对称密码是一种用相同的密钥进行加密和解密的技术,用于确保消息的机密性。在对称密码的算法方面,目前主要使用的是 AES。尽管对称密码能够确保消息的机密性,但需要解决将解密密钥配送给接受者的密钥配送问题。

主要算法

DES

数据加密标准(英语:Data Encryption Standard,缩写为 DES)是一种对称密钥加密块密码算法,1976年被美国联邦政府的国家标准局确定为联邦资料处理标准(FIPS),随后在国际上广泛流传开来。它基于使用56位密钥的对称算法。

DES现在已经不是一种安全的加密方法,主要因为它使用的56位密钥过短。

原理请参考: 加密技术01-对称加密-DES原理

3DES

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

注意:有3个独立密钥的3DES的密钥安全性为168位,但由于中途相遇攻击(知道明文和密文),它的有效安全性仅为112位。

3DES使用“密钥包”,其包含3个DES密钥,K1,K2和K3,均为56位(除去奇偶校验位)。

密文 = E k3 (D k2 (E k1 (明文)))

而解密则为其反过程:

明文 = D k3 (E k2 (D k1 (密文)))

AES

AES 全称 Advanced Encryption Standard(高级加密标准)。它的出现主要是为了取代 DES 加密算法的,因为 DES 算法的密钥长度是 56 位,因此算法的理论安全强度是 56 位。于是 1997 年 1 月 2 号,美国国家标准技术研究所宣布希望征集高级加密标准,用以取代 DES。AES 也得到了全世界很多密码工作者的响应,先后有很多人提交了自己设计的算法。最终有5个候选算法进入最后一轮:Rijndael,Serpent,Twofish,RC6 和 MARS。最终经过安全性分析、软硬件性能评估等严格的步骤,Rijndael 算法获胜。

AES 密码与分组密码 Rijndael 基本上完全一致,Rijndael 分组大小和密钥大小都可以为 128 位、192 位和 256 位。然而 AES 只要求分组大小为 128 位,因此只有分组长度为 128 位的 Rijndael 才称为 AES 算法。

本文 AES 默认是分组长度为 128 位的 Rijndael 算法

原理请参考: 加密技术02-对称加密-AES原理

算法对比

公钥密码是一种用不同的密钥进行加密和解密的技术,和对称密码一样用于确保消息的机密性。使用最广泛的一种公钥密码算法是 RAS。和对称密码相比,公钥密码的速度非常慢,因此一般都会和对称密码一起组成混合密码系统来使用。公钥密码能够解决对称密码中的密钥交换问题,但存在通过中间人攻击被伪装的风险,因此需要对带有数字签名的公钥进行认证。

公钥密码学的概念是为了解决对称密码学中最困难的两个问题而提出

应用场景

几个误解

主要算法

Diffie–Hellman 密钥交换

迪菲-赫尔曼密钥交换(英语:Diffie–Hellman key exchange,缩写为D-H) 是一种安全协议。它可以让双方在完全没有对方任何预先信息的条件下通过不安全信道创建起一个密钥。这个密钥可以在后续的通讯中作为对称密钥来加密通讯内容。公钥交换的概念最早由瑞夫·墨克(Ralph C. Merkle)提出,而这个密钥交换方法,由惠特菲尔德·迪菲(Bailey Whitfield Diffie)和马丁·赫尔曼(Martin Edward Hellman)在1976年发表,也是在公开文献中发布的第一个非对称方案。

Diffie–Hellman 算法的有效性是建立在计算离散对数很困难的基础上。简单地说,我们可如下定义离散对数。首先定义素数 p 的本原跟。素数 p 的本原根是一个整数,且其幂可以产生 1 到 p-1 之间所有整数,也就是说若 a 是素数 p 的本原根,则

a mod p, a 2 mod p,..., a p-1 mod p 各不相同,它是整数 1 到 p-1 的一个置换。

对任意整数 b 和素数 p 的本原跟 a,我们可以找到唯一的指数 i 使得

b ≡ a i (mod p) 其中 0 <= i <= p-1

其中 a, b, p 这些是公开的,i 是私有的,破解难度就是计算 i 的难度。

Elgamal

1985年,T.Elgamal 提出了一种基于离散对数的公开密钥体制,一种与 Diffie-Hellman 密钥分配体制密切相关。Elgamal 密码体系应用于一些技术标准中,如数字签名标准(DSS) 和 S/MIME 电子邮件标准。

基本原理就是利用 Diffie–Hellman 进行密钥交换,假设交换的密钥为 K,然后用 K 对要发送的消息 M,进行加密处理。

所以 Elgamal 的安全系数取决于 Diffie–Hellman 密钥交换。

另外 Elgamal 加密后消息发送的长度会增加一倍。

RSA

MIT 的罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)在 1977 年提出并于 1978 年首次发表的算法。RSA 是最早满足要求的公钥算法之一,自诞生日起就成为被广泛接受且被实现的通用的公钥加密方法。

RSA 算法的有效性主要依据是大数因式分解是很困难的。

原理请参考: 加密技术03-非对称加密-RSA原理

ECC

大多数使用公钥密码学进行加密和数字签名的产品和标准都使用 RSA 算法。我们知道,为了保证 RSA 使用的安全性,最近这些年来密钥的位数一直在增加,这对使用 RSA 的应用是很重的负担,对进行大量安全交易的电子商务更是如此。近来,出现的一种具有强大竞争力的椭圆曲线密码学(ECC)对 RSA 提出了挑战。在标准化过程中,如关于公钥密码学的 IEEE P1363 标准中,人们也已考虑了 ECC。

与 RSA 相比,ECC 的主要诱人之处在于,它可以使用比 RSA 短得多的密钥得到相同安全性,因此可以减少处理负荷。

ECC 比 RSA 或 Diffie-Hellman 原理复杂很多,本文就不多阐述了。

算法对比

公钥密码体制的应用

密码分析所需计算量( NIST SP-800-57 )

注:L=公钥的大小,N=私钥的大小

散列函数是一种将长消息转换为短散列值的技术,用于确保消息的完整性。在散列算法方面,SHA-1 曾被广泛使用,但由于人们已经发现了一些针对该算法理论上可行的攻击方式,因此该算法不应再被用于新的用途。今后我们应该主要使用的算法包括目前已经在广泛使用的 SHA-2,以及具有全新结构的 SHA-3 算法。散列函数可以单独使用,也可以作为消息认证、数字签名以及伪随机数生成器等技术的组成元素来使用。

主要应用

主要算法

MD5

MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个 128 位( 16 字节,被表示为 32 位十六进制数字)的散列值(hash value),用于确保信息传输完整一致。MD5 由美国密码学家罗纳德·李维斯特(Ronald Linn Rivest)设计,于 1992 年公开,用以取代 MD4 算法。这套算法的程序在 RFC 1321 中被加以规范。

2009年,中国科学院的谢涛和冯登国仅用了 2 20.96 的碰撞算法复杂度,破解了MD5的碰撞抵抗,该攻击在普通计算机上运行只需要数秒钟。2011年,RFC 6151 禁止MD5用作密钥散列消息认证码。

原理请参考: 加密技术04-哈希算法-MD5原理

SHA-1

SHA-1(英语:Secure Hash Algorithm 1,中文名:安全散列算法1)是一种密码散列函数,美国国家安全局设计,并由美国国家标准技术研究所(NIST)发布为联邦资料处理标准(FIPS)。SHA-1可以生成一个被称为消息摘要的160位(20字节)散列值,散列值通常的呈现形式为40个十六进制数。

2005年,密码分析人员发现了对SHA-1的有效攻击方法,这表明该算法可能不够安全,不能继续使用,自2010年以来,许多组织建议用SHA-2或SHA-3来替换SHA-1。Microsoft、Google以及Mozilla都宣布,它们旗下的浏览器将在2017年停止接受使用SHA-1算法签名的SSL证书。

2017年2月23日,CWI Amsterdam与Google宣布了一个成功的SHA-1碰撞攻击,发布了两份内容不同但SHA-1散列值相同的PDF文件作为概念证明。

2020年,针对SHA-1的选择前缀冲突攻击已经实际可行。建议尽可能用SHA-2或SHA-3取代SHA-1。

原理请参考: 加密技术05-哈希算法-SHA系列原理

SHA-2

SHA-2,名称来自于安全散列算法2(英语:Secure Hash Algorithm 2)的缩写,一种密码散列函数算法标准,由美国国家安全局研发,由美国国家标准与技术研究院(NIST)在2001年发布。属于SHA算法之一,是SHA-1的后继者。其下又可再分为六个不同的算法标准,包括了:SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224、SHA-512/256。

SHA-2 系列的算法主要思路和 SHA-1 基本一致

原理请参考: 加密技术05-哈希算法-SHA系列原理

SHA-3

SHA-3 第三代安全散列算法(Secure Hash Algorithm 3),之前名为 Keccak 算法。

Keccak 是一个加密散列算法,由 Guido Bertoni,Joan Daemen,Michaël Peeters,以及 Gilles Van Assche 在 RadioGatún 上设计。

2012年10月2日,Keccak 被选为 NIST 散列函数竞赛的胜利者。SHA-2 目前没有出现明显的弱点。由于对 MD5、SHA-0 和 SHA-1 出现成功的破解,NIST 感觉需要一个与之前算法不同的,可替换的加密散列算法,也就是现在的 SHA-3。

SHA-3 在2015年8月5日由 NIST 通过 FIPS 202 正式发表。

原理请参考: 加密技术05-哈希算法-SHA系列原理

算法对比

软考(软件设计师)考点总结 -- 信息安全分析与设计

信息安全

信息系统安全属性:
在这里插入图片描述

对称加密技术: (共享密钥加密算法)
在这里插入图片描述
非对称加密技术: 公开密钥加密算法,主要具有数字签名和验签的功能,计算量大效率低,不适合长数据
在这里插入图片描述
对称的加密算法适合加密大信息量的内容,非对称加密算法适合加密小信息量的内容安全性高,使得对称密钥可以只有传输对方才能收到。

信息摘要:

信息摘要算法只能用来生成消息摘要,无法进行数字签名,不能加密数据,包括:MD5(128位) 、SHA等
目的: 防止信息篡改,摘要保留了原始信息的一部分内容,不能还原。
在这里插入图片描述

报文摘要是指单向哈希算法将任意长度的输入报文经计算得出固定位得输出。报文摘要保证数据完整性。传输得数据一旦被修改,计算得摘要将不同,只要对比两次摘要,就可以确定报文有没有被修改过。

公钥与私钥:

每个人都有自己的公私钥,用公钥加密,需要用对应的私钥解密。比如:甲要给乙发送信息,需要用乙的公钥加密。一般对称和非对称结合使用,用对称技术传输大的文件,用非对称解决对称密钥分发的安全性问题。

数字签名(digital signature):

非对称加密算法的典型应用:数据源发送放使用自己的私钥对数据校验和其它数据内容有关的变量进行加密处理,完成对数据的合法签名,数据接收方则利用对方的公钥来解读收到的数字签名,并将解读结果用于数据完整性的检验,已确认数字签名的合法性。
功能: 保证信息传输的完整性,发送者的身份认证、防止交易中抵赖发生。

在这里插入图片描述

数字信封与PGP:
在这里插入图片描述

数字证书:
由权威机构–CA证书授权中心发行的,能提供在Internet上进行身份验证的一种权威性电子文档,人们可以在因特网交往中用它来证明自己的身份和识别对方的身份。
数字证书包含版本号、序列号、签名算法标识符、签发人姓名,用户获取网站的数字证书后通过CA的公钥验证CA签名,从而确认数字签名的有效性,然后验证网站的真伪。

网络安全

各个网络层次的安全保障:

在这里插入图片描述

安全措施:
物理安全措施:设备安全
网络安全措施:入侵检测、流量控制
系统安全措施:漏洞发现、补丁管理
应用安全措施:数据库安全

入侵检测技术: 专家系统、模型检测、简单匹配

PGP: 用于信息加密、验证的应用程序,可用于加密电子邮件内容。
HTTPS安全超文本传输协议 : 它是一个安全通信通道,基于HTTP开发,用于在客户计算机和服务器之间交换信息。HTTPS采用安全套接字层(SSL)进行信息交换。

网络威胁与攻击:

主动攻击(通过一系列方法,主动向被攻击对象实施破坏的攻击方式): 例如重放攻击、IP地址欺骗、拒绝服务攻击、分布式拒绝服务( DDos )、信息篡改、资源使用等。

被动攻击: 流量分析、系统干涉

在这里插入图片描述在这里插入图片描述

防火墙技术:
在这里插入图片描述
防火墙是一种放置在网络边界上,用于保护内部网络安全的网络设备,主要由服务访问规则、验证工具、包过滤、应用网关4部分组成。通过对流经数据流进行分析和检查,可实现对数据包的过滤、保存用户访问网络记录和服务器代理功能。

防火墙的性能及特点由一下两方面决定:
工作层次:决定防火墙效率及安全的主要因素。一般来所,工作层次越低,则工作效率越高,安全性越高。
采用的机制:采用代理机制,防火墙具有内部信息隐藏的特点,相对而言,安全性越高,效率低。采用过滤机制,则效率高,安全性降低(对应用与用户是透明的)。屏蔽子网是防止内部攻击的防火墙,是安全性最高的。

通过防火墙将网络划分为三个区域:内网、DMZ区域、外网,DMZ中放给用户提供服务的服务器。

病毒防护

木马程序: 木马(Trojan) , 是指通过特定的程序(木马程序)来控制另一 台计算机。 木马程序一般分为服务端(Server)和客户端(Client),服务端是攻击者传到目标机器上的部分,用来监听等待客户端连接过来。客户端用来控制目标机器,放在攻击者的机器上。木马常被伪装成工具程序或游戏,当你连接到互联网时,这个程序就会通知黑客用户的P地址及被预先设定的端口。黑客收到这些资料后,再利用潜伏其中的程序就可以任意修改用户的计算机设定、复制任何文件、窥视用户整个磁盘资料等,从而达到控制用户计算机的目的。

常见的木马程序:
国外:Back Office、NetBus
国内:Netspy、YAI、SubSeven、冰河、“场外女生”、灰鸽子等。

Sniffer: 中文可以翻译为嗅探器, 是一 种基于被动侦听原理的网络分析软件。使用这种软件,可以监视网络的状态、数据流动情况以及网络上传输的信息。其不属于木马程序。

病毒(Virus): 编制或者在计算机程序中插入的破坏计算机功能或者破坏数据,影响 计算机使用并且能够自我复制的一组计算机指令或者程序代码。包括:系统病毒、蠕虫病毒、脚本病毒、宏病毒、病毒种植者程序、破坏性程序病毒等。
病毒的特性: 繁殖性、破坏性、传染性、潜伏性、隐蔽性、可触发性。
蠕虫病毒: 利用网络进行复制和传播,传染途径是通过网络、移动存储设备和电子邮件。常见的蠕虫病毒有:红色代码、爱虫病毒、熊猫烧香、Nimda病毒、爱丽兹病毒、震网病毒等

软考历年真题及B站相关视频课件:
链接:https://pan.baidu.com/s/1e4d1-HGOzcEVHSK8Q0j_xA
提取码:acij

以上是关于加密技术06-加密总结的主要内容,如果未能解决你的问题,请参考以下文章

加密技术对称与非对称加密简介

AES加密技术

技术共享微软的EFS加密 终于可以解密了~

干货|golang实现非对称加密技术实践

记录-JavaScript常规加密技术

PHP 加密:AES & RSA