关于下一代加密技术 (CNG) 之RSA Cng的应用探索(一)

二次信任 提交于 2020-03-01 09:18:46
公共网络(如 Internet)不提供实体间安全通信的方法。 这种网络上的通信容易被未经授权的第三方读取甚至修改。 加密这些信息有助于防止他人查看数据,它提供了检测数据是否已被修改的方式,同时有助于在非安全信道上提供安全的通信方式。 例如,可以使用加密算法对数据进行加密,在加密状态下传输数据,然后由预定的接收方对数据进行解密。 如果第三方截获了加密的数据,解密数据是很困难和费时的。

在 .NET Framework 中,System.Security.Cryptography 命名空间中的类为您提供并管理了可用于加密的许多细节。 有一些是非托管 Microsoft Cryptography API (CryptoAPI) 的包装,而另一些则是纯粹的托管实现。 要使用这些类,我们可以在不必成为加密方面的专家。 当我们需要创建其中一个加密算法类的新实例时,将自动生成密钥以便于使用,并且默认属性总是尽可能地安全可靠。
现在我们试着简要介绍 .NET Framework 支持的加密方法和惯例,其中包括 .NET Framework 3.5 版中引入的 ClickOnce 清单、Suite B 以及下一代加密技术 (CNG) 支持。
本概述包含以下几节:
加密基元
私钥加密
公钥加密
数字签名
哈希值
随机数生成
下一代加密技术 (CNG) 类
等。
而对于下一代加密技术(CNG)类,将做一个稍微详尽的介绍。

一般而言,加密是用于达到以下目的:
保密性:帮助保护用户的标识或数据不被读取。
数据完整性:帮助保护数据不被更改。
身份验证:确保数据发自特定的一方。
不可否认性:防止特定的一方否认发送过消息。
为了达到这些目的,我们就得使用一些算法和惯例的组合(称作加密基元)来创建加密方案。 下表列出了加密基元及它们的用法。
加密基元 使用
私钥加密(对称加密) 对数据执行转换,使第三方无法读取该数据。 此类型的加密使用单个共享的机密密钥来加密和解密数据。
公钥加密(不对称加密) 对数据执行转换,使第三方无法读取该数据。 此类加密使用公钥/私钥对来加密和解密数据。
加密签名 通过创建对特定方唯一的数字签名来帮助验证数据是否发自特定方。 此过程还使用哈希函数。
加密哈希 将数据从任意长度映射为定长字节序列。 哈希在统计上是唯一的;不同的双字节序列不会哈希为同一个值。

待续。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!