- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数字签名,公钥,私钥有什么区别
加密将防止数据被查看或修改,并在原本不安全的信道上提供安全的通信信道。例如,可以使用加密算法对数据进行加密,在加密状态下传输数据,然后由预定的接收方对数据进行解密。如果第三方截获了加密的数据,将难以解密该数据。在一个使用加密的典型场合中,双方(小红和小明)在不安全的信道上通信。小红和小明想要确保任何可能正在侦听的人无法理解他们之间的通信。而且,由于小红和小明相距遥远,因此小红必须确保她从小明处收到的信息没有在传输期间被任何人修改。此外,她必须确定信息确实是发自小明而不是有人模仿小明发出的。加密用于达到以下目的:?保密性:防止用户的标识或数据被读取。?数据完整性:防止数据被更改。?身份验证:确保数据发自特定的一方。?为了达到这些目的,小红和小明使用算法和惯例的组合(称作加密基元)来创建加密方案。下表列出了加密基元及它们的用法。加密基元?使用?私钥加密(对称加密)?对数据执行转换,使第三方无法读取该数据。此类型的加密使用单个共享的机密密钥来加密和解密数据。?公钥加密(不对称加密)?对数据执行转换,使第三方无法读取该数据。此类加密使用公钥/私钥对来加密和解密数据。?加密签名?通过创建对特定的一方唯一的数字签名来确保数据发自该特定方。此过程还使用哈希函数。?加密哈希?将数据从任意长度映射为定长字节序列。哈希在统计上是唯一的;不同的双字节序列不会哈希为同一个值。?私钥加密私钥加密算法使用单个私钥来加密和解密数据。由于具有密钥的任意一方都可以使用该密钥解密数据,因此必须保护密钥不被未经授权的代理得到。私钥加密又称为对称加密,因为同一密钥既用于加密又用于解密。私钥加密算法非常快(与公钥算法相比),特别适用于对较大的数据流执行加密转换。通常,私钥算法(称为块密码)用于一次加密一个数据块。块密码(如?RC2、DES、TrippleDES?和?Rijndael)通过加密将?n?字节的输入块转换为加密字节的输出块。如果要加密或解密字节序列,必须逐块进行。由于?n?的大小很小(对于?RC2、DES?和?TripleDES,n? ?8?字节;n? ?16?[默认值];n? ?24;对于?Rijndael,n? ?32),因此必须对大于?n?字节的值一次加密一个块。基类库中提供的块密码类使用称作密码块链? CBC ?的链模式,它使用一个密钥和一个初始化向量? IV ?对数据执行加密转换。对于给定的私钥?k,一个未使用初始化向量的简单块密码将把相同的明文输入块加密为同样的密文输出块。如果在明文流内有重复的块,那么在密文流内也会有重复的块。如果未经授权的用户知道有关明文块的结构的所有信息,就可以使用该信息解密已知的密文块并有可能获得您的密钥。若要克服这个问题,可将上一个块中的信息混合到加密下一个块的过程中。这样,两个相同的明文块的输出就会不同。由于该技术使用上一个块加密下一个块,因此使用了一个?IV?来加密数据的第一个块。使用该系统,未经授权的用户有可能知道的公共消息标头将无法用于对密钥进行反向工程。可以危及用此类型密码加密的数据的一个方法是,对每个可能的密钥执行穷举搜索。根据用于执行加密的密钥大小,即使使用最快的计算机执行这种搜索,也极其耗时,因此难以实施。使用较大的密钥大小将使解密更加困难。虽然从理论上说加密不会使对手无法检索加密的数据,但它确实极大增加了这样做的成本。如果执行彻底搜索来检索只在几天内有意义的数据需要花费三个月的时间,那么穷举搜索的方法是不实用的。私钥加密的缺点是它假定双方已就密钥和?IV?达成协议,并且互相传达了密钥和?IV?的值。并且,密钥必须对未经授权的用户保密。由于存在这些问题,私钥加密通常与公钥加密一起使用,来秘密地传达密钥和?IV?的值。假设小红和小明是要在不安全的信道上进行通信的双方,他们可能按以下方式使用私钥加密。小红和小明都同意使用一种具有特定密钥和?IV?的特定算法(如?Rijndael)。小红撰写一条消息并创建要在其上发送该消息的网络流。接下来,她使用该密钥和?IV?加密该文本,并通过?Internet?发送该文本。她没有将密钥和?IV?发送给小明。小明收到该加密文本并使用预先商定的密钥和?IV?对它进行解密。如果该传输被截获,截获者将无法恢复原始消息,原因是截获者不知道密钥或?IV。在这个方案中,密钥必须保密,但?IV?不需要保密。在一个实际方案中,将由小红或小明生成私钥并使用公钥(不对称)加密将该私钥(对称)传递给对方。有关更多信息,请参见“公钥加密”。.NET?Framework?提供以下实现私钥加密算法的类:?DESCryptoServiceProvider?RC2CryptoServiceProvider?RijndaelManaged?
原创力文档


文档评论(0)