加密解密基础

现代网络通信中网络安全是至关重要,安全的最基本的当然就是加密与解密了,今天跟大家分享一下加密与解密的基础。

安全的目标:

保密性:confidentiality

完整性:integrity

可用性:availability

攻击类型:

威胁保密性的攻击:窃听、通信量分析;

威胁完整性的攻击:更改、伪装、重放、否认;

威胁可用性的攻击:拒绝服务(DoS);

解决方案:

技术方面:加密和解密;

传统加密方法:替代加密方法、置换加密方法

现代加密方法:现代块加密方法

服务方面:用于抵御攻击的服务,也即是为了上述安全目标而特地设计的安全服务;

认证机制

访问控制机制

加密算法和协议:

1、单向加密:即提出数据指纹;

特性:定长输出、有雪崩效应;

功能:完整性验证;

缺陷:只能加密,不能解密;

常用算法:MD5(128bits)、sha1(160bits)、sha224、sha256、sha384、sha512...

2、对称加密:加密和解密使用同一个密钥;

特性:(1)加密和解密使用同一个密钥;(2)将原始数据分割成为固定大小的块,逐个进行加密;

功能:加密性好,加密速度快;

缺陷:(1)密钥过多;(2)密钥分发困难;

常用算法:3DES(Triple DES)、AES(128bits, 192bits, 256bits, 384bits)、Blowfish、RC6...

3、公钥加密:密钥分为公钥与私钥;

私钥:secret key,通过工具创建,使用者自己留存,必须保证其私密性;

公钥:pubkey,从私钥中提取产生,可公开给所有人;

特性:用公钥加密的数据,只能使用与之配对儿的私钥解密;反之亦然;

功能:

数字签名:主要在于让接收方确认发送方的身份;

密钥交换:发送方用对方公钥加密一个对称密钥,并发送给对方;

数据加密:不常用,比对称加密要慢3个数量级;

常用算法:RSA(即可签名,也可加解密)、DSA(只能签名,不可加解密)、ELGamal...

介绍了以上三种加密算法,下面来具体说一下加密和解密的过程:

加密过程:

1、数字签名:

(1)发送者使用单向加密技术,提取原数据特征码;

(2)发送者使用自己私钥加密特征码,并附加于原数据后方;

2、密钥交换:

(1)发送者使用对称加密技术对附有数字签名的数据进行加密,并生成一个临时对称密钥;

(2)发送者使用接收者的公钥加密生成的临时对称密钥,并附加于加了密的数据后方;

解密过程:

1、密钥交换:

(1)接收者用自己私钥解密加了密的对称密钥,得到临时密钥;

(2)接收者使用得到的临时对称密钥,解密数据,得到附有数字签名的数据;

2、身份认证:接收者使用发送者的公钥解密数字签名,验证发送者身份,并得到原特征码;

3、数据完整性验证:接收者用单向加密技术,提取数据特征码,并与原特征码比较,验证数据完整性

这种加密和解密的过程即能保证数据的安全性与完整性,也能保证通信双方身份的认证。但由于公钥是所有人可以拿到的,所有这样的安全机制还是有安全隐患,即中间人欺骗。不过别担心,有CA机构可以解决此问题,CA机构将在后面再做详细介绍。下面我们继续介绍最后一种加密协议:密钥交换。

4、密钥交换:IKE:Internet Key Exchange

实现方法有两种:

(1)公钥加密,在讲公钥加密与加密、解密过程已说到过,不再多说;

(2)DH:Deffie-Hellman

通信双方无需在网络上传送公钥,通过协商生成随机数并在网络上传送随机数,

通过计算随机数生成密钥。下面举例说明:

(1)A和B为通信双方,双方先协商生成两个随机数m和n,并在网络上传送;

现在状态:A和B同时拥有两个随机数m和n;

(2)A和B再各自生成一个私有的随机数,不在网络上传送,只有自己知道自己私有随机数;

比如:A生成x随机数,B生成y随机数,且只有自己知道自己的私有随机数;

现在状态:A拥有3个随机数:m、n、x,其中x只有自己知道,m和n和B共享;

B拥有3个随机数:m、n、y,其中y只有自己知道,m和n和B共享;

(3)计算随机数,并将结果发送对方。

A: --> m^x%n ==> B

B: --> m^y%n ==> A

(4)收到对方的结果,再用自己私有的随机数和结果计算,得到相同的密钥;

A: (m^y%n)^x = m^xy%n

B: (m^x%n)^y = m^xy%n

m^xy%n即为双方协商后计算出的密钥,提高了安全性,即使别人获取了m和n两个数值,

也无法计算出x和y的数值。

接下来我们再介绍一下防止中间人欺骗CA机构,CA机构是一个第三方可信机构,为通信方颁发证书,可让通信方可靠获取对方公钥的基础保证机制。他是由PKI一套架构体系来完成的。

PKI:Public Key Infrastructure

公钥基础设施,以CA为核心生成的一套架构体系,提供证书服务,保证证书的合法性。组成部分如下:

签证机构:CA

注册机构:RA

证书吊销列表:CRL

证书存取库:CB

通过X.509v3定义了证书的结构以及认证协议标准,结构及标准如下:

版本号

序列号

签名算法ID

发行者名称

有效期限

主体名称

主体公钥

发行者的惟一标识

主体的惟一标识

扩展

发行者的签名

那么CA是如何来保证通信双方证书的合法性及通信双方可靠获取对方公钥的呢?CA工作过各如下:

1、自签证书:CA先给自己颁发一个证书,证书内容如X.509v3所规定,并将证书发送给有需要的通信方。取得通信方对CA的信任,通信方并可从证书中获取CA的公钥;

2、CA颁发证书:通信方向CA申请注册证书,CA将签署好证书并在证书后方加数字签名,再将证书颁给申请方;

3、通信方获取并验证证书:

(1)通信方获取自己证书或获取对方证书后,可用CA公钥解密证书后方数字签名,确认证书确实是自己所信任的CA所颁发;

(2)用同样的单向加密算法计算证书特征码,对比原特征码,验证证书完整性;

(3)检查证书有效期,看证书是否在有效期内;

(4)验证证书内主体名称,是否是通信对方的名称;

(5)检查证书是否被吊销;

至此我们再来总结一下通信双方通信过程:

1、通信方获取CA证书,并申请取得自己证书;

2、通信双方协商各加密算法;

3、通信双方协商获取对方公钥并验证证书;

4、发送方加密数据,并发送;

5、接收方接收数据,并解密验证;

具体过程以上都介绍过,此处不再详细说明了。

至此有关安全加密解密基础的内容就结束了。只是个人总结,希望相互学习!

时间: 2024-10-16 19:50:43

加密解密基础的相关文章

加密解密基础及openssl构建私有CA初步

方今社会,互联网的普及给我们的生活带来了极大的便利,但任何事物都有其两面性:窗户打开了,阳光和新鲜的空气进来了,苍蝇也进来了.如何在利用互联网带来便利的同时,又尽量规避其风险,保护自己网络通信中信息的安全及私密,成为了一个热门话题,下面本文将主要探讨两个方面的问题,不当之处还请各位前辈不吝斧正. (一)加密解密基础 首先要搞清楚的一个问题是,我们平时的网络通信存在哪些风险呢?目前互联网上常见的攻击方式有两种:主动攻击和被动攻击.主动攻击包括报文伪装.重复.消息篡改.拒绝服务等:被动攻击主要是监听

Linux之加密解密基础、openssl及CA基础应用

加密解密基础简介 数据在网络中传输过程中要保证三个要点: (1)数据的完整性:防止数据在传输过程中遭到未授权用户的破坏或篡改 (2)数据的机密性:防止文件数据泄漏给未授权用户从而让其利 (3)数据的可用性:保证授权用户能按需访问存取文件数据 因此加密技术是最常用的安全保密手段,利用技术手段把重要的数据变为乱码(加密)传送,到达目的地后再用相同或不同的手段还原(解密).加密技术包括两个元素:算法和密钥.算法是将普通的信息或者可以理解的信息与一串数字(密钥)结合,产生不可理解的密文的步骤,密钥是用来

加密解密基础及私有CA的实现-2015092801

1. 加密解密简述 2.加密算法 3.加密解密步骤 4.使用openssl自建私有CA 加密解密基础: 由于互联网的数据传输基本上都是明文的(如ftp.http.telnet等),而往往有些数据在互联网传输对于传输方来讲,确实涉及隐私或是一些敏感的内容不想让互联网上其他人看到,因此,引入了加密的机制. 最早起的加密,采用移位的方式对数据进行加密,如数据数"abcd",其对应的在互联网上传输的内容是"efgh".后来的加密方式是采用"密码对照本",

密码学——Java 加密解密基础

Java  加密解密基础 密码学是研究编制密码和破译密码的技术科学.研究密码变化的客观规律,应用于编制密码以保守通信秘密的,称为编码学:应用于破译密码以获取通信情报的,称为破译学,总称密码学. 密码学常用术语 明文: 待加密数据. 密文: 明文经过加密后数据. 加密: 将明文转换为密文的过程. 加密算法: 将明文转换为密文的转换算法. 加密密钥: 通过加密算法进行加密操作的密钥. 解密: 将密文转换为铭文的过程. 解密算法: 将密文转换为明文的转换算法. 解密密钥: 通过解密短发进行解密操作的密

linux加密解密基础、PKI及SSL、创建私有CA

1.加密解密基础:          数据在网络中传输过程中要保证三个要点: (1)数据的完整性:防止数据在传输过程中遭到未授权用户的破坏或篡改.          (2)数据的机密性:防止文件数据泄漏给未授权用户从而让其利用          (3)数据的可用性:保证授权用户能按需访问存取文件数据 2.常见的加密技术: 对称加密  公钥加密  单向加密          (1)对称加密:加密解密使用同一个密钥,将原始数据分割成固定大小的块,逐个进行加密 加密算法:               

Linux之加密解密基础技术

下文主要介绍了什么是加密解密:为何要用到加密解密技术:加密解密技术能够为我们带来什么样的好处:常见的几种加密解密技术介绍以及Linux中的openssl. 一.什么是加密,解密 加密技术是一种常用的安全保密手段,利用各种技术手段把重要的数据进行加密传送:再用对应的技术手段进行解封,该过程的逆过程就称为解密.这里用一个不太恰当的例子说一下:也就好比你去办一张银行卡,需要你设置一个密码,就可以理解成在为这张银行卡做一个加密的操作:用银行卡到提款机取钱需要你输入密码,这就是一个解密的操作. 二.为什么

马哥linux学习笔记:加密,解密基础

在计算机网络建设的初期,由于能使用到计算机的人少之又少,并没有考虑到有数据加密需求,随着社会的发展,互联网已俨然成为我们生活中不可或缺的一部分,人们不管是交流,购物,还是工作都已经离不开互联网.在电脑,手机,各种电子设备构建的互联网中,数据的安全问题已经成为人们很是关注一个重要环节. 现在,我们就来了解一下linux下是如何实现数据加密及解密的. 对于确保数据的安全性,我们要达成的目标有三个: 保密性,完整性,可用性. 现今蛇龙混杂的互联网,总是有很多拥有强烈好奇心的不安分的人想尽办法要获知其他

SSL加密解密基础

SSL简介: SSL是Secure Socket Layer(安全套接字层)的简写,显而易见,它是为了数据传输安全而发明的一种安全协议,并且是在传输层进行网络加密的一种协议. 信息安全的目标有: 保密性 完整性 可用性 为实现这三个目标的手段有: 技术层面:加密解密 服务层面:用于抵制攻击的服务. 加密解密技术: 1.对称加密:将数据分隔成固定大小的块来分别加密,并且加密和解密使用同一个秘钥的加密技术. 用途:加密大数据文件 常用的对称加密算法有: DES:Data Encryption Sta

加密解密基础问题:字节数组和字符串的相互转换

在加密时,一般加密算法和hash算法,它们操作的都是字节数组,对字节数组按照加密算法进行各种变换,运算,得到的结果也是字节数组.而我们一般是要求对字符串进行加密,所以就涉及到字符串String到 byte[] 的转换,这个很简单.同时在解密时,也涉及到字节数组byte[] 到 String 的转换.另外在对用户的密码进行hash加密之后,最终是要保存在数据库中,所以加密得到 byte[] 也要转换到 String. 1. String 到 byte[] 的转换很简单,因为String类有直接的函