Ⅰ 加密和签名的区别是什么
数字签名和验证:发送报文时,发送方用一个hash算法从报文中产生固定长度的报文摘要,然后利用自己的私钥对这个摘要进行加密,这个过程就叫签名。这个加密后的摘要作为报文的数字签名和报文一起发送给接收方,接收方用发送方的公钥解密被加密的摘要(报文附加的数字签名)得到结果A,然后用于发送方一样的hash算法从接收到的原始报文中算出报文摘要B。最后,把A和B作比较。如果相同,那么接收方就能确认该数字签名是发送方的。加密和解密:发送方利用接收方的公钥对要发送的明文进行加密,接受方利用自己的私钥进行解密,其中公钥和私钥匙相对的,任何一个作为公钥,则另一个就为私钥。
2、数字签名的功能:
a) 对签名者进行身份认证;
b) 保证信息的完整性(在交易过程中,没有被篡改)
c) 防止交易中的抵赖发生(签名者无法否认信息是由自己发出的)
加密的功能:
a) 重点在于“数据的安全性”,可以防止数据被监听攻击。
Ⅱ 谁知道怎么给文件加密啊
用这个软件,非常简单
文件加密解密系统 V2.2
下载地址
http://www.skycn.com/soft/7060.html
Ⅲ 加密技术
对称加密就是指,加密和解密使用同一个密钥的加密方式。需要用到的有加密算法和加密秘钥。例如加密算法可以类似这样的加密规则(a ->b,b->w,c->a)
发送方使用密钥将明文数据加密成密文,然后发送出去,接收方收到密文后,使用同一个密钥将密文解密成明文读取。
优点:加密计算量小、速度快,效率高,适合对大量数据进行加密的场景。
缺点:(1)密钥不适合在网上传输(容易被截取),(2)密钥维护麻烦
DES 、3DES、Blowfish、IDEA、RC4、RC5、RC6和AES。
数据加密标准DES属于常规密钥密码体制,是一种分组密码。加密前,先对整个明文进行分组,每一组长为64位,然后对每一个64位二进制数据进行加密处理,产生一组64位密文数据。最后将各组密文串接起来,即得出整个的密文。使用的密钥为64位(实际密钥长度为56位,有8位用于奇偶检验)
DES的保密性取决于密钥的保密,而算法是公开的。尽管人们在破译DES方面取得了许多进展,但至今仍未能找到比穷举搜索密钥更有效的方法。DES是世界上第一个公认的实用密码算法标准,它曾对密码学的发展做出了重大贡献。目前较为严重的问题是DES的密钥长度,现在已经设计出搜索DES密钥的专用芯片。
DES算法安全性取决于密钥长度,56位密钥破解需要3.5到21分钟,128位密钥破解需要5.4 * 10^18次方年
注意的是:这里是没有密钥的情况下,直接穷举密钥尝试破解。如果密钥在传送过程中被人截取了,就相当于直接知道加密规则了,根本不需要破解,因此密钥在网络中传送还是不安全。
与对称加密算法不同,非对称加密算法需要密钥对,即两个密钥:公开密钥(公钥)和私有密钥(私钥)。
公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。
公钥和私钥是怎么来的?
操作系统随机生成一个随机数,将这个随机数通过某个函数进行运算,分成两部分,公钥和私钥
优点:安全性高
缺点:加密与解密速度慢。
RSA、ECC(移动设备用)、Diffie-Hellman、El Gamal、DSA(数字签名用)。
答案是不能
鉴于非对称加密的机制,我们可能会有这种思路:服务器先把公钥直接明文传输给浏览器,之后浏览器向服务器传数据前都先用这个公钥加密好再传,这条数据的安全似乎可以保障了! 因为只有服务器有相应的私钥能解开这条数据 。
然而 由服务器到浏览器的这条路怎么保障安全? 如果服务器用它的的私钥加密数据传给浏览器,那么浏览器用公钥可以解密它,而这个公钥是一开始通过明文传输给浏览器的,这个公钥被谁劫持到的话,他也能用该公钥解密服务器传来的信息了。所以 目前似乎只能保证由浏览器向服务器传输数据时的安全性 (其实仍有漏洞,下文会说)。
1、先通过非对称加密技术,把对称加密的密钥X传给对方,使得这个对称加密的密钥X是安全的
2、后面再通过对称加密技术进行数据传输
详细流程
(1)服务器端拥有用于非对称加密的 公钥A 、 私钥A’ 。
(2)客户端向网站服务器请求,服务器先把 公钥A 明文给传输浏客户端
(3)客户端随机生成一个用于对称加密的 密钥X ,用 公钥A 加密后传给服务器端。
(4)服务器端拿到后用 私钥A’ 解密得到 密钥X 。
(5)这样双方就都拥有 密钥X 了,且别人无法知道它。之后双方所有数据都用 密钥X 加密解密。
数字签名是基于公钥密码体制(非对称密钥密码体制)的。
数字签名必须保证以下三点:
上图位用户A使用数字签名向用户B传输一份文件的过程:
什么时候使用这种不对文件加密,而对文件的摘要加密(对文件进行签名)的技术呢?
注意: 这里强调的是只有“A公钥” 上有认证机构CA的数字签名,意思是CA用它的私钥对“A公钥”的内容进行单向散列函数得到的 加密摘要(数字签名) ,该签名放在“A公钥”中(左上角那个),对于B用户来说,它从可靠的路径拿到CA的公钥,使用CA的公钥解密“A公钥”的内容得到的128位的摘要 和 “A公钥”的内容通过单向散列函数计算出来的是否一致,如果是表示认可这个“A公钥”
当用户A遗失或泄露了CA颁发的证书后,为了避免他人使用该证书冒充用户A,用户A向认证机构CA "挂失" 该证书。于是认证机构CA把该证书放入该认证机构的证书吊销列表(CRL)中,并在网上公示。
用户B在收到用户A的公钥时,除了要验证该公钥是否位认证机构颁发的,还要登录认证机构的网站查看该公钥是否已被认证机构吊销变为无效证书。
认证机构CA的作用:
1、http连接很简单,是无状态的,明文传输。https协议 = http协议 + SSL,可以进行加密传输,身份认证
2、http连接的是80端口,https连接的是443端口
3、https协议需要服务器端到CA申请SSL证书,即客户端请求的时候,服务器端发送SSL证书给客户端,SSL证书内容包括公钥、CA机构的数字签名。验证了服务器端的身份以及公钥的可靠性。 (注意:混合加密那里“将公钥A给客户端”,严格的来说是把SSL证书给客户端)
SSL提供以下三个功能
1、 SSL服务器鉴别。允许用户证实服务器的身份。 具有SSL功能的浏览器维持一个表,上面有一些可信赖的认证中心CA和它们的公钥
2、 SSL客户鉴别。允许服务器证实客户的身份。
3、 加密的SSL会话,通过混合加密实现的 。客户和服务器交互的所有数据都是发送方加密,接受方解密
SSL的位置
(1)方法:get,post,head,put,delete,option,trace,connect
(2)URL字段
(3)HTTP协议版本
User-Agent:产生请求的浏览器类型
Aceept:客户端可识别的内容类型列表
Host:主机地址
200:请求被成功处理
301:永久性重定向
302:临时性重定向
403:没有访问权限
404:没有对应资源
500:服务器错误
503:服务器停机
HTTP协议的底层使用TCP协议,所以HTTP协议的长连接和短连接在本质上是TCP层的长连接和短连接。由于TCP建立连接、维护连接、释放连接都是要消耗一定的资源,浪费一定的时间。所对于服务器来说,频繁的请求释放连接会浪费大量的时间,长时间维护太多的连接的话又需要消耗资源。所以长连接和短连接并不存在优劣之分,只是适用的场合不同而已。长连接和短连接分别有如下优点和缺点:
注意: 从HTTP/1.1版本起,默认使用长连接用以保持连接特性。 使用长连接的HTTP协议,会在响应消息报文段加入: Connection: keep-alive。TCP中也有keep alive,但是TCP中的keep alive只是探测TCP连接是否活着,而HTTP中的keep-alive是让一个TCP连接获得更久一点。
Ⅳ 常见加密算法原理及概念
在安全领域,利用密钥加密算法来对通信的过程进行加密是一种常见的安全手段。利用该手段能够保障数据安全通信的三个目标:
而常见的密钥加密算法类型大体可以分为三类:对称加密、非对称加密、单向加密。下面我们来了解下相关的算法原理及其常见的算法。
对称加密算法采用单密钥加密,在通信过程中,数据发送方将原始数据分割成固定大小的块,经过密钥和加密算法逐个加密后,发送给接收方;接收方收到加密后的报文后,结合密钥和解密算法解密组合后得出原始数据。由于加解密算法是公开的,因此在这过程中,密钥的安全传递就成为了至关重要的事了。而密钥通常来说是通过双方协商,以物理的方式传递给对方,或者利用第三方平台传递给对方,一旦这过程出现了密钥泄露,不怀好意的人就能结合相应的算法拦截解密出其加密传输的内容。
对称加密算法拥有着算法公开、计算量小、加密速度和效率高得特定,但是也有着密钥单一、密钥管理困难等缺点。
常见的对称加密算法有:
DES:分组式加密算法,以64位为分组对数据加密,加解密使用同一个算法。
3DES:三重数据加密算法,对每个数据块应用三次DES加密算法。
AES:高级加密标准算法,是美国联邦政府采用的一种区块加密标准,用于替代原先的DES,目前已被广泛应用。
Blowfish:Blowfish算法是一个64位分组及可变密钥长度的对称密钥分组密码算法,可用来加密64比特长度的字符串。
非对称加密算法采用公钥和私钥两种不同的密码来进行加解密。公钥和私钥是成对存在,公钥是从私钥中提取产生公开给所有人的,如果使用公钥对数据进行加密,那么只有对应的私钥才能解密,反之亦然。
下图为简单非对称加密算法的常见流程:
发送方Bob从接收方Alice获取其对应的公钥,并结合相应的非对称算法将明文加密后发送给Alice;Alice接收到加密的密文后,结合自己的私钥和非对称算法解密得到明文。这种简单的非对称加密算法的应用其安全性比对称加密算法来说要高,但是其不足之处在于无法确认公钥的来源合法性以及数据的完整性。
非对称加密算法具有安全性高、算法强度负复杂的优点,其缺点为加解密耗时长、速度慢,只适合对少量数据进行加密,其常见算法包括:
RSA :RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其游碰乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥,可用于加密,也能用于签名。
DSA :数字签名算法没磨陆,仅能用于签名,不能用于加解密。
DSS :数字签名标准,技枯顷能用于签名,也可以用于加解密。
ELGamal :利用离散对数的原理对数据进行加解密或数据签名,其速度是最慢的。
单向加密算法常用于提取数据指纹,验证数据的完整性。发送者将明文通过单向加密算法加密生成定长的密文串,然后传递给接收方。接收方在收到加密的报文后进行解密,将解密获取到的明文使用相同的单向加密算法进行加密,得出加密后的密文串。随后将之与发送者发送过来的密文串进行对比,若发送前和发送后的密文串相一致,则说明传输过程中数据没有损坏;若不一致,说明传输过程中数据丢失了。单向加密算法只能用于对数据的加密,无法被解密,其特点为定长输出、雪崩效应。常见的算法包括:MD5、sha1、sha224等等,其常见用途包括:数字摘要、数字签名等等。
密钥交换IKE(Internet Key Exchange)通常是指双方通过交换密钥来实现数据加密和解密,常见的密钥交换方式有下面两种:
1、公钥加密,将公钥加密后通过网络传输到对方进行解密,这种方式缺点在于具有很大的可能性被拦截破解,因此不常用;
2、Diffie-Hellman,DH算法是一种密钥交换算法,其既不用于加密,也不产生数字签名。DH算法的巧妙在于需要安全通信的双方可以用这个方法确定对称密钥。然后可以用这个密钥进行加密和解密。但是注意,这个密钥交换协议/算法只能用于密钥的交换,而不能进行消息的加密和解密。双方确定要用的密钥后,要使用其他对称密钥操作加密算法实际加密和解密消息。DH算法通过双方共有的参数、私有参数和算法信息来进行加密,然后双方将计算后的结果进行交换,交换完成后再和属于自己私有的参数进行特殊算法,经过双方计算后的结果是相同的,此结果即为密钥。
如:
在整个过程中,第三方人员只能获取p、g两个值,AB双方交换的是计算后的结果,因此这种方式是很安全的。
公钥基础设施是一个包括硬件、软件、人员、策略和规程的集合,用于实现基于公钥密码机制的密钥和证书的生成、管理、存储、分发和撤销的功能,其组成包括:签证机构CA、注册机构RA、证书吊销列表CRL和证书存取库CB。
PKI采用证书管理公钥,通过第三方可信任CA中心,把用户的公钥和其他用户信息组生成证书,用于验证用户的身份。
公钥证书是以数字签名的方式声明,它将公钥的值绑定到持有对应私钥的个人、设备或服务身份。公钥证书的生成遵循X.509协议的规定,其内容包括:证书名称、证书版本、序列号、算法标识、颁发者、有效期、有效起始日期、有效终止日期、公钥 、证书签名等等的内容。
CA证书认证的流程如下图,Bob为了向Alice证明自己是Bob和某个公钥是自己的,她便向一个Bob和Alice都信任的CA机构申请证书,Bob先自己生成了一对密钥对(私钥和公钥),把自己的私钥保存在自己电脑上,然后把公钥给CA申请证书,CA接受申请于是给Bob颁发了一个数字证书,证书中包含了Bob的那个公钥以及其它身份信息,当然,CA会计算这些信息的消息摘要并用自己的私钥加密消息摘要(数字签名)一并附在Bob的证书上,以此来证明这个证书就是CA自己颁发的。Alice得到Bob的证书后用CA的证书(自签署的)中的公钥来解密消息摘要,随后将摘要和Bob的公钥发送到CA服务器上进行核对。CA在接收到Alice的核对请求后,会根据Alice提供的信息核对Bob的证书是否合法,如果确认合法则回复Alice证书合法。Alice收到CA的确认回复后,再去使用从证书中获取的Bob的公钥加密邮件然后发送给Bob,Bob接收后再以自己的私钥进行解密。