机密性算法
为防止安全威胁,在计算机网络中须要提供许多基本的安全服务,其中最基本的一项服务就是机密性。安全
机密性(Confidentiality):确保计算机系统中的信息或网络中传输的信息不会泄露给非受权用户。网络
机密性与密码学ide
咱们经过计算机传输数据时,若是没法防止他人窃听,能够利用密码学技术将发送的数据转换成任何不知道如何作逆变换的人都不可理解的形式,从而保证数据的机密性。加密
这种变换称为加密(Encryption),加密后的数据称为密文(Ciphertext),而加密前的数据称为明文(Plaintext),接收方经过某种逆变换将密文从新变换回原来的明文称为解密(Decryption)。计算机网络
密码学家发现,加密和解密的过程能够用一个密钥(Key) 做为参数,而且加密和解密的过程能够公开,只有密钥须要保密。即只有知道密钥的人才能解密密文,而任何人,即便知道加密和解密算法也没法解密密文。ip
采用这种方式的缘由是,若是你依靠密码算法保密,一旦密码算法泄露就必须放弃该算法。这意味着要频繁的修改密码算法,而开发一个密码算法的难度是很大的。另外,密钥空间很大,用密钥将密码算法参数化,同一个算法能够为大量用户提供加密服务。开发
加密与解密过程get
待加密的明文X用加密算法E和加密密钥KA获得密文Y。it
利用解密算法D和解密密钥KB可解出明文X。
这里的加密密钥和解密密钥能够相同,也能够不一样,取决于采用的是对称密钥密码体制仍是公开密钥密码体制。
对称密钥密码体制
数据加密和解密用的是同一个密钥。在通讯前,双方都须要知道这个密钥,所以如何传送密钥也是一个很关键的问题,若是经过网络传送,极可能会被截获。而且密钥一旦泄露,加密数据将受到威胁,所以必须以绝对安全的方式传送密钥才能保证安全。
密钥的传输方法能够经过很是可靠的信使携带密钥分发给互相通讯的各用户。这种方法称为网外分发。但随着用户的增多和通讯量的增大,密钥更换频繁(密钥必须按期更换才能保证安全可靠),派信使的问题将再也不适用。
所以经常使用的对称密钥分发方式是设立密钥分发中心(KDC),KDC是一个你们都信任的机构,其任务就是给须要进行秘密通讯的用户临时分发一个会话密钥。
假设A须要把一份明文M发送给B。通讯双方已经有了密钥KA。
A经过密钥KA对明文M使用加密算法E获得密文Y
B也用密钥KA经过解密算法D对密文Y进行解密获得明文M
主要的加密算法有:
公开密钥密码体制(非对称密钥密码体制)
使用不一样的密钥对数据进行加密和解密。每一个通讯方都有一对密钥,一个公钥,能够公布出来,一个私钥,须要保密。其余想要给该方发送数据,均可以用公钥进行加密,而后发送。
公钥只能用于加密,没法用于解密,所以公钥能够公开出来。全部的解密都依赖于接收方本身的私钥,只要保护好这个私钥,即便别人知道你的公钥并获取了你的密文也没法对密文解密。
在这里,本身的私钥本身知道就行,别人无需知道,所以能够避免传输泄露的问题。
公钥算法有如下特性:
此外加密和解密运算能够对调,即
Q&A
Q1: 如何保证这个公布的公钥不是伪造的?
A1: 经过一个可信的中介机构。对于公开密钥密码体制,认证中心(Certification Authority,CA) 来实现公钥的签发和认证。。
主要的加密算法: