对称密钥加密,又称私钥加密,即信息的发送方和接收方用一个密钥去加密和解密数据。它的最大优势是加/解密速度快,适合于对大数据量进行加密,但密钥管理困难。

 非对称密钥加密系统,又称公钥密钥加密。它需要使用一对密钥来分别完成加密和解密操作,一个公开发布,即公开密钥,另一个由用户自己秘密保存,即私用密钥。信息发送者用公开密钥去加密,而信息接收者则用私用密钥去解密。公钥机制灵活,但加密和解密速度却比对称密钥加密慢得多。

——————————————————————————————————————————————————————

 对称密钥加密又叫专用密钥加密,即发送和接收数据的双方必使用相同的密钥对明文进行加密和解密运算。对称密钥加密算法主要包括:DES、3DES、IDEA、FEAL、BLOWFISH等。

  DES.DES是美国国家标准和技术局(NIST)在1977年才有的数据加密标准,文件编号为FIPS PUB46。 算法本身称为DEA(数据加密算法)。DES是最常用的对称加密算法。DES密匙长度为56位,分组长度为64位。

  TDEA(3DES)(三重DEA)最初是由Tuchman 提出的,在1985年的ANSI标准X9.17中第一次为金融应用进行了标准化。1999年,TDEA合并到数据加密标准中,文献编号问哦FIPS PUB46-3 ,TDEA使用三个密匙,并执行三次DES算法。TDEA密匙长度是168比特。

  IDEA . IDEA是在1991年由瑞士联邦技术协会的Xuejia Lai和James Massey开发的。IDEA以64位的明文块进行分组,密匙长度为128位,主要采用3中运算:异或、模加、模乘。

  对称密钥是双方使用相同的密钥,在网络条件下就存在相应的不安全性。

  对称加密的要求

  (1)需要强大的加密算法。算法至少应该满足:即使分析人员知道了算法并能访问一些或者更多的密文,也不能译出密文或得出密匙。通常,这个要求以更强硬的形式表达出来,那就是:即使分析人员拥有一些密文和生成密文的明文,也不能译出密文或者发现密匙。即,加密算法应足以抵抗已知明文类型的破译。

  (2)发送方和接收方必须用安全的方式来获得保密密匙的副本,必须保证密匙的安全。如果有人发现了密匙,并知道了算法,则使用此密匙的所有通信便都是可读取的。

从数学角度理解

  以一个具体例子来说明有助于真正理解对称加密这概念。假设A需要把一份明文为M的资料发给B,但是因为怕资料在传输的中途被窃听或者篡改,A用了对称加密法将M经过一个加密函数Fk处理后生成M'加密文,而B接受到加密文后通过事先商定好的Fk再次处理M'便可以还原成明文M,从而达到安全传输信息的目的。

  A处: M' = Fk(M)

  B处: M = Fk(M')

 对于普通的对称密码学,加密运算与解密运算使用同样的密钥。通常,使用的对称加密算法比较简便高效,密钥简短,破译极其困难,由于系统的保密性主要取决于密钥的安全性,所以,在公开的计算机网络上安全地传送和保管密钥是一个严峻的问题。正是由于对称密码学中双方都使用相同的密钥,因此无法实现数据签名和不可否认性等功能。

—————————————————————————————————————————————————

 不像普通的对称密码学中采用相同的密钥加密、解密数据,非对称密钥加密技术采用一对匹配的密钥进行加密、解密,具有两个密钥,一个是公钥一个是私钥,它们具有这种性质:每把密钥执行一种对数据的单向处理,每把的功能恰恰与另一把相反,一把用于加密时,则另一把就用于解密。用公钥加密的文件只能用私钥解密,而私钥加密的文件只能用公钥解密。 公共密钥是由其主人加以公开的,而私人密钥必须保密存放。为发送一份保密报文,发送者必须使用接收者的公共密钥对数据进行加密,一旦加密,只有接收方用其私人密钥才能加以解密。 相反地,用户也能用自己私人密钥对数据加以处理。换句话说,密钥对的工作是可以任选方向的。这提供了"数字签名"的基础,如果要一个用户用自己的私人密钥对数据进行了处理,别人可以用他提供的公共密钥对数据加以处理。由于仅仅拥有者本人知道私人密钥,这种被处理过的报文就形成了一种电子签名----一种别人无法产生的文件。 数字证书中包含了公共密钥信息,从而确认了拥有密钥对的用户的身份。

 简单的公共密钥例子可以用素数表示,将素数相乘的算法作为公钥,将所得的乘积分解成原来的素数的算法就是私钥,加密就是将想要传递的信息在编码时加入素数,编码之后传送给收信人,任何人收到此信息后,若没有此收信人所拥有的私钥,则解密的过程中(实为寻找素数的过程),将会因为找素数的过程(分解质因数)过久而无法解读信息。

—————————————————————————————————————————————————

Kerberos 是一种网络认证协议,其设计目标是通过密钥系统为客户机 / 服务器应用程序提供强大的认证服务。该认证过程的实现不依赖于主机操作系统的认证,无需基于主机地址的信任,不要求网络上所有主机的物理安全,并假定网络上传送的数据包可以被任意地读取、修改和插入数据。在以上情况下, Kerberos 作为一种可信任的第三方认证服务,是通过传统的密码技术(如:共享密钥)执行认证服务的。

  认证过程具体如下:客户机向认证服务器(AS)发送请求,要求得到某服务器的证书,然后 AS 的响应包含这些用客户端密钥加密的证书。

证书的构成为:

1) 服务器 “ticket” ;

2) 一个临时加密密钥(又称为会话密钥 “session key”) 。

客户机将 ticket (包括用服务器密钥加密的客户机身份和一份会话密钥的拷贝)传送到服务器上。会话密钥可以(现已经由客户机和服务器共享)用来认证客户机或认证服务器,也可用来为通信双方以后的通讯提供加密服务,或通过交换独立子会话密钥为通信双方提供进一步的通信加密服务。

Kerberos是一种秘密密钥网络认证协议,由麻省理工学院(MIT)开发,它使用DES加密算法来进行加密和认证,DES是属于对称密钥。

—————————————————————————————————————————————————

PKI(Public Key Infrastructure ) 即"公钥基础设施",是一种遵循既定标准的密钥管理平台,它能够为所有网络应用提供加密和数字签名等密码服务及所必需的密钥和证书管理体系,简单来说,PKI就是利用公钥理论和技术建立的提供安全服务的基础设施。PKI技术是信息安全技术的核心,也是电子商务的关键和基础技术。

  PKI的基础技术包括加密、数字签名、数据完整性机制、数字信封、双重数字签名等。

非对称加密算法(asymmetric cryptographic algorithm)又名“公开密钥加密算法”,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。

非对称加密算法

  甲方只能用其专用密钥解密由其公用密钥加密后的任何信息。 非对称加密算法的保密性比较好,它消除了最终用户交换密钥的需要。   非对称密码体制的特点:算法强度复杂、安全性依赖于算法与密钥但是由于其算法复杂,而使得加密解密速度没有对称加密解密的速度快。对称密码体制中只有一种密钥,并且是非公开的,如果要解密就得让对方知道密钥。所以保证其安全性就是保证密钥的安全,而非对称密钥体制有两种密钥,其中一个是公开的,这样就可以不需要像对称密码那样传输对方的密钥了。这样安全性就大了很多。

 1.A要向B发送信息,A和B都要产生一对用于加密和解密的公钥和私钥。

2.A的私钥保密,A的公钥告诉B;B的私钥保密,B的公钥告诉A。

3.A要给B发送信息时,A用B的公钥加密信息,因为A知道B的公钥。

4.A将这个消息发给B(已经用B的公钥加密消息)。

5.B收到这个消息后,B用自己的私钥解密A的消息。其他所有收到这个报文的人都无法解密,因为只有B才有B的私钥。

非对称加密体系不要求通信双方事先传递密钥或有任何约定就能完成保密通信,并且密钥管理方便,可实现防止假冒和抵赖,因此,更适合网络通信中的保密通信要求。

 非对称加密算法与对称加密算法的区别

  首先,用于消息解密的密钥值与用于消息加密的密钥值不同; 其次,非对称加密算法比对称加密算法慢数千倍,但在保护通信安全方面,非对称加密算法却具有对称密码难以企及的优势。

  为说明这种优势,使用对称加密算法的例子来强调:

  Alice使用密钥K加密消息并将其发送给Bob,Bob收到加密的消息后,使用密钥K对其解密以恢复原始消息。这里存在一个问题,即Alice如何将用于加密消息的密钥值发送给 Bob?答案是,Alice发送密钥值给Bob时必须通过独立的安全通信信道(即没人能监听到该信道中的通信)。   这种使用独立安全信道来交换对称加密算法密钥的需求会带来更多问题:

  首先,有独立的安全信道,但是安全信道的带宽有限,不能直接用它发送原始消息。

  其次,Alice和Bob不能确定他们的密钥值可以保持多久而不泄露(即不被其他人知道)以及何时交换新的密钥值

  当然,这些问题不只Alice会遇到,Bob和其他每个人都会遇到,他们都需要交换密钥并处理这些密钥管理问题(事实上,X9.17是一项DES密钥管理ANSI标准[ANSIX9.17])。如果Alice要给数百人发送消息,那么事情将更麻烦,她必须使用不同的密钥值来加密每条消息。例如,要给 200个人发送通知,Alice需要加密消息200次,对每个接收方加密一次消息。显然,在这种情况下,使用对称加密算法来进行安全通信的开销相当大。

  非对称加密算法的主要优势就是使用两个而不是一个密钥值:一个密钥值用来加密消息,另一个密钥值用来解密消息。这两个密钥值在同一个过程中生成,称为密钥对。用来加密消息的密钥称为公钥,用来解密消息的密钥称为私钥。用公钥加密的消息只能用与之对应的私钥来解密,私钥除了持有者外无人知道,而公钥却可通过非安全管道来发送或在目录中发布。

  Alice需要通过电子邮件给Bob发送一个机密文档。首先,Bob使用电子邮件将自己的公钥发送给Alice。然后Alice用Bob的公钥对文档加密并通过电子邮件将加密消息发送给Bob。由于任何用Bob 的公钥加密的消息只能用Bob的私钥解密,因此即使窥探者知道Bob的公钥,消息也仍是安全的。Bob在收到加密消息后,用自己的私钥进行解密从而恢复原始文档。

对称密钥与非对称密钥相关推荐

  1. 对称密钥,非对称密钥,单向散列函数—William chu的学习之路(信息安全)

    今天也是元气满满的一天鸭!(土豪巨巨们要是觉得有用,支持一下吧~) 对称密钥密码技术 对称密钥又称为保密密钥,非对称密钥也称公有和私有密钥,对称密钥中加密和解密用相同的密钥如DES和IDEA等. 非对 ...

  2. 你不知道的对称密钥与非对称密钥

    (一)对称加密(Symmetric Cryptography) 对称密钥加密,又称私钥加密,即信息的发送方和接收方用一个密钥去加密和解密数据.它的最大优势是加/解密速度快,适合于对大数据量进行加密,对 ...

  3. PKI基础知识(数字信封与数字签名过程,对称密钥与非对称密钥)

    1.数字信封 关于对称密码术和非对称密码:前者具有加密速度快.运行时占用资源少等特点,后者可以用于密钥交换.一般来说,并不直接使用非对称加密算法加密明文,而仅用它保护实际加密明文的对称密钥,来减少运算 ...

  4. 数据加密 第五篇:非对称密钥

    非对称密钥(Asymmetric Keys)跟对称密钥相对,它使用一对密钥(算法),一个密钥用于加密,另一个密钥用于解密,加密的密钥称为私钥(private key),解密的密钥称为公钥(public ...

  5. (2)非对称密钥加密——RSA算法ECC算法(简介)

    一:目前主流的加密密钥分为两大类:对称密钥和非对称密钥 1)对称密钥:数据发送方和接收方使用的是同一个密钥,即加密和解密的密钥是同一个(K) 2)非对称密钥:数据发送方使用接收方的公钥进行加密,接收方 ...

  6. 加密解密-对称加密与非对称加密

    目录 加密-Encryption Symmetric-Key Encryption(对称密钥加密) 凯撒密码-对称加密的例子-aesarCipher 例子 Kercos原理-Kerckhoff's P ...

  7. 公钥和私钥的完全解释(包括对称算法和非对称算法、RSA解释)

    密钥分为两种:对称密钥与非对称密钥 对称密钥加密,又称私钥加密,即信息的发送方和接收方用一个密钥去加密和解密数据.它的最大优势是加/解密速度快,适合于对大数据量进行加密,但密钥管理困难. 非对称密钥加 ...

  8. mysql 非对称密钥_sqlser 2005 对称加密,非对称加密笔记

    一:对称加密 原始明文---密钥---加密数据---密钥---原始明文 速度快,通过算法将明文混淆,占用系统资源少 二:非对称加密 加密解密速度慢,较高的系统资源占用 三:混合数据加密 加密过程:随机 ...

  9. 【密码产品篇】智能密码钥匙密钥体系结构(非对称)

    [密码产品篇]智能密码钥匙密钥体系结构(非对称) 智能密码钥匙是一种具备密码运算.密钥管理能力,可提供密码服务的终端密码设备,其主要作用是"存储用户秘密信息(如私钥.数字证书),完成数据加解 ...

  10. php 生成非对称密钥,php实现非对称加密

    使用非对称加密主要是借助openssl的公钥和私钥,用公钥加密私钥解密,或者私钥加密公钥解密. 1.安装openssl和PHP的openssl扩展 2.生成私钥:openssl genrsa用于生成r ...

最新文章

  1. python读数据-python读取各种文件数据方法解析
  2. Siebel Admin: Siebel task manager commands
  3. 在linux下,如何在C语言中使用正则表达式
  4. [转]js 取得 Unix时间戳(Unix timestamp)
  5. 10.cadence.自定义焊盘的创建[原创]
  6. 【设计模式】适配器模式 Adapter Pattern
  7. pointers on c (day 1,chapter3)
  8. 大数据开发笔记(七):Kafka分布式流式处理
  9. 【虚拟主播】刚刚,我用三行代码创建了一个虚拟主播
  10. Mock Server基本使用方法
  11. Windows 2008 Server线程池前瞻(原创)
  12. 密西西比河谷州立大学:Android应用程序开发(四)
  13. 第三十四篇-Palette(调色板)的使用
  14. 计算机网络-数据链路层 1
  15. IDEA—Maven项目JDK版本设置
  16. 如何通过引用传递变量?
  17. 关于t-io框架的学习
  18. 使用ESP8266(基于官方SDK)接入阿里云物联网平台
  19. liunx 系统 一键安装
  20. 小学计算机教师面试试题及答案,2019上半年小学信息技术教师资格面试真题及答案(第一批)...

热门文章

  1. Intellij IDEA 设置字体加粗
  2. ffmpeg处理——*.flv视频文件和*.ass字幕文件合并成mp4
  3. f1c100s 调试问题汇总
  4. 维修管理系统微信小程序部署流程
  5. 运维安全·Web组件安全·Nginx
  6. STM32单片用什么编程?如何学习STM32单片机开发
  7. 梦幻西游端游脚本制作教程
  8. 使用EasyPoi完成复杂一对多excel表格导出功能
  9. 一文搞懂SPI通信协议
  10. iPhone手机弹窗BUG!每两分钟弹窗提醒一次,解决方案在这里