私钥

简介

[私钥算法]与[ 公钥算法]一起使用的 [ 密钥对]的秘密一半。
1, 公钥、私钥成对出现
2,公开的 密钥公钥,只有自己知道的叫私钥
3,公钥 加密数据、对应的私钥 解密数据
4,私钥 加密数据,对应的 公钥 解密数据
5,可以用 公钥 解密,就是对应的私钥加的密

6,可以用私钥解密,就是对应的公钥加的密

私钥算法(块密码)
基本信息:私钥加密算法使用单个私钥来加密和解密数据,私钥加密又称为[对称加密],因为同一密钥既用于加密               又用于解密。
安全相关:由于具有密钥的任意一方都可以使用该密钥解密数据,因此必须保护密钥不被未经授权的代理得到。


通常用于:私钥加密算法非常快(与公钥算法相比),特别适用于对较大的数据流执行加密转换。
              私钥算法(称为块密码)用于一次加密一个数据块。块密码(如 RC2、DES、TripleDES 和                         Rijndael)通过加密将 n 字节的输 入块转换为加密字节的输出块。
              如果要加密或解密字节序列,必须逐块进行。由于 n 很小(对于 RC2、DES 和 TripleDES,n = 8               字节;n = 16 [默认值];n = 24;对于Rijndael,n = 32),因此必须对大于 n 的数据值一次加密一个块。

[基类库]中提供的[块密码类]使用称作[密码块链(CBC)的链模式]
密码块链(CBC)的链模式:使用[一个密钥]和一个[初始化向量 (IV)]对数据执行加密转换

原因:对于给定的私钥k,一个不使用初始化向量的简单块密码将把相同的明文输入块加密为同样的密文输出块,         如果在明文流中有重复的块,那么在密文流中将存在重复的块。
        如果未经授权的 用户知道有关明文块的结构的任何信息,就可以使用这些信息解密已知的密文块并有可能         发现您的密钥。
        若要克服这个问题,可将上一个块中的信息混合到加密下一个块的过程中,这样,两个相同的明文块的输出         就会不同。
        由于该技术使用上一个块加密下一个块,因此使用了一个 IV 来加密数据的第一个块。
        使用该系统,未经授权的用户有可能知道的公共消息标头将无法用于对密钥进行反向工程。

风险:可以危及用此类型密码加密的数据的一个方法是,对每个可能的密钥执行[穷举搜索]。
        根据用于执行加密的密钥大小,即使使用最快的计算机执行这种搜索,也极其耗时,因此难以实施。
        使用较大的密钥大小将使解密更加困难。虽然从理论上说加密不会使对手无法检索加密的数据,但这确实          极大增加了这样做的成本。
        如果执行彻底搜索来检索只在几天内有意义的数据需要花费三个月的时间,那么穷举搜索的方法是不实用          的。
        私钥加密的缺点是它假定双方已就[密钥]和[IV]达成协议,并且互相传达了[密钥]和[IV]的值。但是,密           钥必须对未经授权的用户保密。
        由于存在这些问题,私钥加密通常与公钥加密一起使用,来秘密地传达[密钥]和[IV]的值。

.NET中实现私钥加密的类

 DESCryptoServiceProvider
 RC2CryptoServiceProvider
 RijndaelManaged

 TripleDESCryptoServiceProvider

可在MSDN中查看具体使用情况

转载于:https://my.oschina.net/u/861613/blog/161902

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值