对称加解密和非对称加解密

转载 2017年12月15日 00:00:00

        (点击上方蓝字,快速关注)

什么是对称加密技术?

  对称加密采用了对称密码编码技术,它的特点是文件加密和解密使用相同的密钥,即加密密钥也可以用作解密密钥,这种方法在密码学中叫做对称加密算法,对称加密算法使用起来简单快捷,密钥较短,且破译困难,除了数据加密标准(DES),另一个对称密钥加密系统是国际数据加密算法(IDEA),它比DES的加密性好,而且对计算机功能要求也没有那么高。IDEA加密标准由PGP(Pretty Good Privacy)系统使用。

  对称加密算法在电子商务交易过程中存在几个问题:

 1、要求提供一条安全的渠道使通讯双方在首次通讯时协商一个共同的密钥。直接的面对面协商可能是不现实而且难于实施的,所以双方可能需要借助于邮件和电话等其它相对不够安全的手段来进行协商;

 2、密钥的数目难于管理。因为对于每一个合作者都需要使用不同的密钥,很难适应开放社会中大量的信息交流;

 3、对称加密算法一般不能提供信息完整性的鉴别。它无法验证发送者和接受者的身份;

 4、对称密钥的管理和分发工作是一件具有潜在危险的和烦琐的过程。对称加密是基于共同保守秘密来实现的,采用对称加密技术的贸易双方必须保证采用的是相同的密钥,保证彼此密钥的交换是安全可靠的,同时还要设定防止密钥泄密和更改密钥的程序。

  假设两个用户需要使用对称加密方法加密然后交换数据,则用户最少需要2个密钥并交换使用,如果企业内用户有n个,则整个企业共需要n×(n-1) 个密钥,密钥的生成和分发将成为企业信息部门的恶梦。

  常见的对称加密算法有DES、3DES、Blowfish、IDEA、RC4、RC5、RC6和AES 

 

什么是非对称加密技术


1976年,美国学者Dime和Henman为解决信息公开传送和密钥管理问题,提出一种新的密钥交换协议,允许在不安全的媒体上的通讯双方交换信息,安全地达成一致的密钥,这就是“公开密钥系统”。相对于“对称加密算法”这种方法也叫做“非对称加密算法”。

与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将其中的一把作为公用密钥向其它方公开;得到该公用密钥的乙方使用该密钥对机密信息进行加密后再发送给甲方;甲方再用自己保存的另一把专用密钥对加密后的信息进行解密。甲方只能用其专用密钥解密由其公用密钥加密后的任何信息。

非对称加密算法的保密性比较好,它消除了最终用户交换密钥的需要,但加密和解密花费时间长、速度慢,它不适合于对文件加密而只适用于对少量数据进行加密。

如果企业中有n个用户,企业需要生成n对密钥,并分发n个公钥。由于公钥是可以公开的,用户只要保管好自己的私钥即可(企业分发后一般保存的是私钥,用户拿的是公钥),因此加密密钥的分发将变得十分简单。同时,由于每个用户的私钥是唯一的,其他用户除了可以可以通过信息发送者的公钥来验证信息的来源是否真实,还可以确保发送者无法否认曾发送过该信息。非对称加密的缺点是加解密速度要远远慢于对称加密,在某些极端情况下,甚至能比非对称加密慢上1000倍。
非对称加密的典型应用是数字签名。

常见的非对称加密算法有:RSA、ECC(移动设备用)、Diffie-Hellman、El Gamal、DSA(数字签名用)

对称加/解密和非对称加/解密的区别

对称加/解密和非对称加/解密主要有以下区别。

(1)对称加/解密使用分组加/解密方法对一段明文按固定长度划分成多组,然后分别对每组使用可变长度的密码迭代编码,最后将每组编码后的密文重新组合到一起,解密时也一样,先对密文按固定长度划分成多组,然后使用密码解密每一组,最后重新组合明文。非对称加/解密算法使用几乎不可逆的算法来加/解密,加密和解密使用不同的密码。

(2)对称加/解密算法和非对称加/解密算法都是公开的,对称加/解密算法的安全性依赖于密码的强度和密码的保存,而非对称加/解密算法只需公开一对密码中的其中一个,另外一个无需公开,所以非对称加/解密算法安全性比较大。


php rsa加密解密实例(非对称加密)

php服务端与客户端交互、提供开放api时,通常需要对敏感的部分api数据传输进行数据加密,这时候rsa非对称加密就能派上用处了,下面通过一个例子来说明如何用php来实现数据的加密解密 1、加...
  • wsliangjian
  • wsliangjian
  • 2015年05月20日 10:11
  • 2529

RSA非对称加密算法详解

加密技术加密技术是对信息进行编码和解码的技术,编码是把原来可读信息(又称明文)译成代码形式(又称密文),其逆过程就是解码(解密),加密技术的要点是加密算法,加密算法可以分为三类: 1. 对称加密 ...
  • qwe6112071
  • qwe6112071
  • 2016年12月11日 23:10
  • 1973

java实现对称加密AES与非对称加密RSA算法

AES高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的D...
  • cuiyaoqiang
  • cuiyaoqiang
  • 2016年03月16日 09:38
  • 2554

对称加密解密类

可以对url或者是url参数进行加密解密的帮助类。
  • itmaxin
  • itmaxin
  • 2014年02月25日 10:08
  • 1606

对称加解密算法

对称加解密算法分为:分组加密算法、流加密算法; 目前国际上使用的对称加密算法主要有: 另外,还有我国自主研发的已经公布的SM4算法; 名称 英文 DES (Data Encrypti...
  • u012198553
  • u012198553
  • 2017年03月09日 17:05
  • 499

安全随笔2:对称加密应用场景

MD5或者说HASH值是一种不可逆的算法。如果需要从密文还原成明文,那么就需要对称和非对称这两类可逆算法。 首先,简单介绍下这两类算法。图9-1是对称算法的示意图: 图9-1 对称算法 在对...
  • luminji
  • luminji
  • 2013年11月27日 14:01
  • 1467

Java 加密解密之对称加密算法AES

Java 加密解密基础 Java byte数组与十六进制字符串互转 Java BASE64加密解密 Java 加密解密之消息摘要算法(MD5 SHA MAC) Java 加密解密之对称加密算法...
  • aubdiy
  • aubdiy
  • 2016年05月27日 23:35
  • 612

对称加密 非对称加密 不可逆加密算法

根据密钥类型不同可以将现代密码技术分为两类:对称加密算法(私钥密码体系)和非对称加密算法(公钥密码体系)。 1 对称加密算法中,数据加密和解密采用的都是同一个密钥,因而其安全性依赖于所持有密钥的安全性...
  • l464373218
  • l464373218
  • 2015年12月24日 17:33
  • 1202

非对称加解密

非对称加密主要算法有:RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)等;非对称加密拥有两个密钥:公开密钥(publickey)和私有密钥(privatekey)。通常...
  • u012198553
  • u012198553
  • 2017年03月09日 17:18
  • 167

CryptAPI对称加密的例子

前言看见一个Demo中有使用CryptAPI加密的代码. 查了资料,先写一个能用的CryptAPI加密例子, 预测一下Demo中的CryptAPI的调用流程. 等还原玩,如果Demo写的有特色, ...
  • LostSpeed
  • LostSpeed
  • 2016年10月02日 14:17
  • 620
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:对称加解密和非对称加解密
举报原因:
原因补充:

(最多只允许输入30个字)