私钥
加密算法使用单个私钥来
加密和
解密数据。由于具有
密钥的任意一方都可以使用该
密钥解密数据,因此必须保护密钥不被未经
授权的代理得到。私钥
加密又称为对称
加密,因为同一
密钥既用于加密又用于
解密。私钥
加密算法非常快(与
公钥算法相比),特别适用于对较大的数据流执行加密转换。通常,私钥算法(称为块密码)用于一次加密一个
数据块。块密码(如 RC2、DES、TripleDES 和 Rijndael)通过
加密将 n 字节的输 入块转换为加密字节的输出块。如果要加密或
解密字节序列,必须逐块进行。由于 n 很小(对于 RC2、DES 和 TripleDES,n = 8 字 节;n = 16 [默认值];n = 24;对于 Rijndael,n = 32),因此必须对大于 n 的数据值一次
加密一个块。
简介
5、如果可以用
公钥解密,则必然是对应的私钥加的密;
6、如果可以用私钥
解密,则必然是对应的
公钥加的密。
加密算法
基类库中提供的块密码类使用称作密码块链 (CBC) 的链模式,它使用一个
密钥和一个初始化向量 (IV) 对数据执行
加密转换。对于给定的私钥 k,一 个不使用初始化向量的简单块密码将把相同的明文输入块
加密为同样的密文输出块。如果在明文流中有重复的块,那么在密文流中将存在重复的块。如果未经授权的 用户知道有关明文块的结构的任何信息,就可以使用这些信息
解密已知的密文块并有可能发现您的
密钥。若要克服这个问题,可将上一个块中的信息混合到
加密下一 个块的过程中。这样,两个相同的明文块的输出就会不同。由于该技术使用上一个块
加密下一个块,因此使用了一个 IV 来加密数据的第一个块。使用该系统, 未经授权的用户有可能知道的公共消息标头将无法用于对
密钥进行反向工程。
可以危及用此类型密码
加密的数据的一个方法是,对每个可能的
密钥执行穷举搜索。根据用于执行
加密的密钥大小,即使使用最快的计算机执行这种搜索,也极其耗 时,因此难以实施。使用较大的
密钥大小将使
解密更加困难。虽然从理论上说
加密不会使对手无法检索加密的数据,但这确实极大增加了这样做的成本。如果执行彻 底搜索来检索只在几天内有意义的数据需要花费三个月的时间,那么穷举搜索的方法是不实用的。
私钥
加密的缺点是它假定双方已就
密钥和 IV 达成协议,并且互相传达了密钥和 IV 的值。并且,
密钥必须对未经授权的用户保密。由于存在这些问题,私钥
加密通常与
公钥加密一起使用,来秘密地传达
密钥和 IV 的值。
公钥和私钥
公钥和私钥就是俗称的不对称加密方式,是从以前的对称加密(使用用户名与密码)方式的提高。用电子邮件的方式说明一下原理。
使用公钥与私钥的目的就是实现安全的电子邮件,必须实现如下目的:
1、我发送给你的内容必须加密,在邮件的传输过程中不能被别人看到。
2、必须保证是我发送的邮件,不是别人冒充我的。
要达到这样的目标必须发送邮件的两人都有公钥和私钥。
公钥,就是给大家用的,你可以通过电子邮件发布,可以通过网站让别人下载,公钥其实是用来加密/验章用的。私钥,就是自己的,必须非常小心保存,最好加上 密码,私钥是用来解密/签章,首先就Key的所有权来说,私钥只有个人拥有。公钥与私钥的作用是:用公钥加密的内容只能用私钥解密,用私钥加密的内容只能 用公钥解密。
比如说,我要给你发送一个加密的邮件。首先,我必须拥有你的公钥,你也必须拥有我的公钥。
首先,我用你的公钥给这个邮件加密,这样就保证这个邮件不被别人看到,而且保证这个邮件在传送过程中没有被修改。你收到邮件后,用你的私钥就可以解密,就能看到内容。
其次我用我的私钥给这个邮件加密,发送到你手里后,你可以用我的公钥解密。因为私钥只有我手里有,这样就保证了这个邮件是我发送的。
当A->B资料时,A会使用B的公钥加密,这样才能确保只有B能解开,否则普罗大众都能解开加密的讯息,就是去了资料的保密性。验证方面则是使用签 验章的机制,A传资料给大家时,会以自己的私钥做签章,如此所有收到讯息的人都可以用A的公钥进行验章,便可确认讯息是由 A 发出来的了。