Linux之加密解密基础技术

下文主要介绍了什么是加密解密;为何要用到加密解密技术;加密解密技术能够为我们带来什么样的好处;常见的几种加密解密技术介绍以及Linux中的openssl。

一、什么是加密,解密

加密技术是一种常用的安全保密手段,利用各种技术手段把重要的数据进行加密传送;再用对应的技术手段进行解封,该过程的逆过程就称为解密。这里用一个不太恰当的例子说一下:也就好比你去办一张银行卡,需要你设置一个密码,就可以理解成在为这张银行卡做一个加密的操作;用银行卡到提款机取钱需要你输入密码,这就是一个解密的操作。

二、为什么我们需要用到加密,解密技术?

因为在互联网日益普及的今时今日,产生出大量的个人数据或者企业数据;又或者主机之间进行的通信,数据的传输等等操作都面临着如窃听、通信流量分析,DOS攻击等等;所以我们需要一些手段来面临这些威胁。

三、加密技术的目的:

机密性:也就是数据保密

身份认证:鉴定消息的来源进行身份确认

完整性:接收者能够验证在消息传送过程中是否被更改

四、加密,解密技术介绍:

1.类别:

传统加密方法:使用密码算法,一般是一些数学函数

缺陷:受限制,大家都必须知道加解密算法

现代加密方法:使用密钥来进行数据加密,加密和解密都使用一个密钥,运算都依赖于密钥;数据传输过程中为密文。算法强大:仅知道密文很难破译出明文

2.密钥算法:

(1) 单向加密:计算一段数据的特征值,加密过程不可逆

特点:输入数据有一点点不同,结果会有变化

输入的数据无论多长,输出的结果都是一样长度

目的:数据完整性的校验

算法:

MD5:message digest,128bits

SHA(1)家族:secure hash algorithm 安全的哈希算法,输出结果固定长度160bits;sha224,sha256,sha384,sha512

(2) 对称加密:加密方和解密方都使用同一个密钥,又称单钥加密

优点:安全性高

加密解密速度快

缺点:

随着网络规模的扩大,密钥过多导致管理困难

密钥分发困难,无可靠手段发送至对象

算法:

DES:数据加密标准,使用56bits的密钥长度

AES:高级加密标准,使用128bits、192bits、256bits、384bits密钥

3DES:DES的加强版,对原有数据加密三次,3*56bits密钥长度

Blowfish

Twofish

RC6

IDEA

CAST5

(3) 非对称加密:加密密钥与解密密钥不同

公钥:根据私钥生成,可公开

私钥:工具创建,自己留存

优点:不需要通过安全通道传输密钥

缺点:算法复杂,加密速度慢

用法:

1. 数字签名:发送方以自己用工具生成的密钥进行加密,接收方用发送方密钥对应的公钥进行解密;可以确认发送方的身份。

2. 密钥交换:发送方用接收方公钥加密一个对称密钥,并发送给对方,保证数据保密性、完整性。下面是加密、解密的步骤:

加密(发送方):

第一步:单向加密算出特征码

第二步:用自己的私钥加密特征码

第三步:用双方协定好的算法计算出对称密钥并加密整个数据

第四步:用接收方的公钥进行加密

解密(接收方):

第一步:用自己的私钥解密

第二步:用双方协定好的算法计算出对称密钥并解密

第三步:用发送方的公钥获得特征码

第四步:计算特征码进行比较

以上是对加密解密的一个简单的介绍,在下面的内容中我会继续提到 PKI, SSL, TSL以及OpenSSL

PKI: Public Key Infrastructure公钥基础设施;PKI为电子商务交易提供一套安全基础平台的技术和规范。PKI基础设施采用证书管理公钥,通过CA认证中心把用户的公钥和用户的其它标识信息集合在一起,保证公钥的可靠性传输。PKI把公钥密码和对称密码结合起来,实现密钥的自动管理。

PKI的组成:

证书机构CA:颁发管理证书

注册机构RA:接受用户申请并提交给CA,是CA和用户之间的桥梁

证书吊销机构CRL:提供被吊销的证书列表

数字证书库:存储已签发的证书及公钥,用户可由此获得所需的其他用户的证书及其公钥

PKI的基础协议:X.509,用于定义一个规范的证书格式

用户公钥

版本号

证书序列号

CA标识符

证书有效期

签名算法标识

签发者名称

用户标识

...

SSL:Secure Sockets Layer安全套接层;使用公钥和私钥为网络通信提供安全性及数据完整性的一种安全协议。广泛适用于Internet上的身份认证与Web服务器和客户端浏览器之间的数据安全通信;如:http+ssl=https

版本:v3.0

特性:

1.机密性:在握手协议中定义了绘画密钥后,所有的消息都被加密

2.可靠性:服务器和客户端都会被认证

3.完整性:SSL协议会对传送的数据进行完整性检查

位置:介于应用层和TCP层之间;也就是说应用层数据不再直接传递给传输层,而是传递给SSL层,SSL层对从应用层收到的数据进行加密,并加上自己的SSL头。

4.SSL会话流程

TLS:Transport Layer Security安全传输层协议;用于在两个通信应用程序之间提供保密性和数据完整性。TLS的主要目标是使SSL更安全,并使协议的规范更精确和完善。

版本:1.3

实现于:OpenSSL

OpenSSL:OpenSSL是一个强大的安全套接字层密码库,包括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议。

OpenSSL工具使用:

1.对称加密算法、命令:

算法:AES、DES3、Blowfish、CAST、TDEA、RC2

命令:openssl enc

示例:用DES3算法加密文件Mageedu.txt并将结果输出到log.txt

加密后的结果:

2.非对称加密算法、命令:

加密解密:

算法:RSA

命令:openssl rsautl

数字签名:

算法:RSA,DSA

命令:openssl genrsa | gendsa

密钥交换:

算法:DH

命令:openssl dhparam

示例:

一、DSA应用例子

1. 生成1024位DSA参数集,输出到文件dsatest.pem

2. 使用参数文件dsatest.pem生成DSA私钥并用des3加密后输出到dsakey.pem

3. 使用私钥dsakey.pem生成公钥,输出到dsapulic.pem

4. 读取dsakey.pem公钥

二、RSA应用例子:

1. 创建1024位的RSA私钥

2. 提出公钥输出到rsapulic.pem

3. 用公钥加密test.txt文件并输出到rsatest.txt

4. 使用私钥对rsatest.txt文件解密并输出到文test1.txt

3.信息摘要算法、命令:

算法:MD5、SHA系列

命令:openssl dgst

示例:

1. 用MD5计算test.txt文件的值并输出(默认为输出至标准输出)

2. 用SHA1计算test1.txt文件的值并输出至log.txt文件

4.密钥和证书管理命令:

提供产生公开密钥对和对称密钥的方法,以及建立私有CA,管理CA的功能

下面我用一个建立私有CA的示例来简单介绍下相关的命令:

第一步:生成私钥放在/etc/pki/CA/private/xxx 目录下

第二步:生成自签证书

选项:

-new:生成新的自签证书请求

-x509:生成新的自签证书格式

-key:生成自签证书需要的私钥路径

-out:输出路径

-days:证书有效期指定

第三步:为CA创建相关目录和文件

客户端申请证书步骤:

第一步:创建目录,生成私钥

第二步:生成自签署证书请求

与CA服务端配置格式一样

第三步:将证书请求发送给CA服务端

在这里我用scp命令从服务端直接复制过来:

第四步:在CA服务端签署证书

查看生成的证书:

以上就是创建私有CA的全过程

时间: 2024-10-25 00:35:36

Linux之加密解密基础技术的相关文章

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

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

linux CA 加密解密技术

一.基础知识 对称加密: 加密和解密方使用同一个密钥,用来解决数据机密性,但是密钥通过何种方式传递给对方不容易实现: 公钥加密: 密钥是成对出现的,分别为Secret key(密钥)和Public key(公钥)公钥加密必须使用与其相对应的 私钥进行解密并且公钥是从私钥中提取出来的,有私钥可以知道公钥是什么,但是知道公钥是不能知 道私钥的,公钥是公开的,而私钥是不公开的,但是公钥加密比对称加密慢3个数量级(1000倍), 加密速度相当的慢,所以单独用此加密方式也比较困难:公钥加密功能: 单向加密

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

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

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

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

加密解密基础

现代网络通信中网络安全是至关重要,安全的最基本的当然就是加密与解密了,今天跟大家分享一下加密与解密的基础. 安全的目标: 保密性:confidentiality 完整性:integrity 可用性:availability 攻击类型: 威胁保密性的攻击:窃听.通信量分析: 威胁完整性的攻击:更改.伪装.重放.否认: 威胁可用性的攻击:拒绝服务(DoS): 解决方案: 技术方面:加密和解密: 传统加密方法:替代加密方法.置换加密方法 现代加密方法:现代块加密方法 服务方面:用于抵御攻击的服务,也即

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

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

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

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

linux关于加密解密技术基础、KPI及创建私有CA

linux加密和解密技术基础.KPI及创建私有CA 一.加密方式分为:1.对称加密:加密和解密使用同一个密钥:      对称加密:采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,在对称加密算法中常用的算法有:DES. 3DES.TDEA.AES.    Blowfish.Twofish          IDE.ARC6.CAST5等.    特性:      1.加密.解密使用同一个密钥:      2.强原始数据分割成固定大小的块,逐个进行加密

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

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