欢迎来到专业的和成秘书网平台! 心得体会 工作总结 工作计划 疫情防控 述职报告 思想汇报 事迹材料 共同富裕
当前位置:首页 > 专题范文 > 公文范文 > 正文

对于一些现成加密算法学习笔记

时间:2022-09-14 12:25:03 来源:网友投稿

下面是小编为大家整理的对于一些现成加密算法学习笔记,供大家参考。

对于一些现成加密算法学习笔记

 

 关于一些现成加密算法的学习 笔记

 关于一些现成加密算法的学习笔记

  为了 达到这些目的, 您可以使用算法和惯例的组合(称作加密基元)

 来创建加密方案。下表列出了 加密基元及它们的用法。

 私钥加密

  私钥加密算法使用单个私钥来加密和解密数据。

 由于具有密钥的任意一方都可以使用该密钥解密数据, 因此必须保护密钥不被未经授权的代理得到。

 私钥加密又称为对称加密,因为同一密钥既用于加密又用于解密。

 私钥加密算法非常快(与公钥算法相比)

 , 特别适用于对较大的数据流执行加密转换。

 通常, 私钥算法(称为块密码)

 用于一次加密一个数据块。

 块密码(如 RC2、 DES、TripleDES 和 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 提供以下实现私钥加密算法的类:

 公钥加密

  公钥加密使用一个必须对未经授权的用户保密的私钥和一个可以对任何人公开的公钥。公钥和私钥都在数学上相关联; 用公钥加密的数据只能用私钥解密, 而用私钥签名的数据只能用公钥验证。

 公钥可以提供给任何人; 公钥用于对要发送到私钥持有者的数据进行加密。

 两个密钥对于通信会话都是唯一的。

 公钥加密算法也称为不对称算法, 原因是需要用一个密钥加密数据而需要用另一个密钥来解密数据。

 公钥加密算法使用固定的缓冲区大小, 而私钥加密算法使用长度可变的缓冲区。

 公钥算法无法像私钥算法那样将数据链接起来成为流, 原因是它只可以加密少量数据。

 因此, 不对称操作不使用与对称操作相同的流模型。

 双方(小红和小明)

 可以按照下列方式使用公钥加密。

 首先, 小红生成一个公钥/私钥对。

 如果小明想要给小红发送一条加密的消息, 他将向她索要她的公钥。

 小红通过不安全的网络将她的公钥发送给小明, 小明接着使用该密钥加密消息。

 (如果小明在不安全的信道如公共网络上收到小红的密钥, 则小明必须同小红验证他具有她的公钥的正确副本。

 )小明将加密的消息发送给小红, 而小红使用她的私钥解密该消息。

 但是, 在传输小红的公钥期间, 未经授权的代理可能截获该密钥。

 而且, 同一代理可能截获来自小明的加密消息。

 但是, 该代理无法用公钥解密该消息。

 该消息只能用小红的私钥解密, 而该私钥没有被传输。

 小红不使用她的私钥加密给小明的答复消息, 原因是任何具有公钥的人都可以解密该消息。

 如果小红想要将消息发送回小明, 她将向小明索要他的公钥并使用该公钥加密她的消息。

 然后, 小明使用与他相关联的私钥来解密该消息。

 在一个实际方案中, 小红和小明使用公钥(不对称)

 加密来传输私(对称)

 钥, 而对他们的会话的其余部分使用私钥加密。

 公钥加密具有更大的密钥空间(或密钥的可能值范围)

 , 因此不大容易受到对每个可能密钥都进行尝试的穷举攻击。

 由于不必保护公钥, 因此它易于分发。

 公钥算法可用于创建数字签名以验证数据发送方的身份。

 但是, 公钥算法非常慢(与私钥算法相比)

 , 不适合用来加密大量数据。

 公钥算法仅对传输很少量的数据有用。

 公钥加密通常用于加密一个私钥算法将要使用的密钥和 IV。

 传输密钥和 IV 后, 会话的其余部分将使用私钥加密。

 . NET Framework 提供以下实现公钥加密算法的类:

 数字签名

 公钥算法还可用于构成数字签名。

 数字签名验证发送方的身份(如果您信任发送方的公钥)

 并帮助保护数据的完整性。

 使用由小红生成的公钥, 小红的数据的接收者可以通过将数字签名与小红的数据和小红的公钥进行比较来验证是否是小红发送了该数据。

 为了 使用公钥加密对消息进行数字签名, 小红首先将哈希算法应用于该消息以创建消息摘要。

 该消息摘要是数据的紧凑且唯一的表示形式。

 然后, 小红用她的私钥加密该消息摘要以创建她的个人签名。

 在收到消息和签名时, 小明使用小红的公钥解密签名以恢复消息摘要, 并使用与小红所使用的相同的哈希算法来散列消息。

 如果小明计算的消息摘要与从小红那里收到的消息摘要完全一致, 小明就可以确定该消息来自私钥的持有人, 并且数据未被修改过。

 如果小明相信小红是私钥的持有人, 则他知道该消息来自小红。

 请注意, 由于发送方的公钥为大家所周知, 并且它通常包含在数字签名格式中, 因此任何人都可以验证签名。

 此方法不保守消息的机密; 若要使消息保密, 还必须对消息进行加密。

 . NET Framework 提供以下实现数字签名算法的类:

 哈希值

  哈希算法将任意长度的二进制值映射为固定长度的较小二进制值, 这个小的二进制值称为哈希值。

 哈希值是一段数据唯一且极其紧凑的数值表示形式。

 如果散列一段明文而且哪怕只更改该段落的一个字母, 随后的哈希计算都将产生不同的值。

 要找到散列为同一个值的两个不同的输入, 在计算上是不可能的。

 消息身份验证代码 (MAC)

 哈希函数通常与数字签名一起用于对数据进行签名, 而消息检测代码 (MDC)

 哈希函数则用于数据完整性。

 双方(小红和小明)

 可按下面的方式使用哈希函数来确保数据的完整性。

 如果小红对小明编写一条消息并创建该消息的哈希, 则小明可以在稍后散列该消息并将他的哈希与原始哈希进行比较。

 如果两个哈希值相同, 则该消息没有被更改; 如果值不相同, 则该消息在小红编写它之后已被更改。

 为了 使此系统发挥作用, 小红必须对除小明外的所有人保密原始的哈希值。

 . NET Framework 提供以下实现数字签名算法的类:

 随机数生成

  随机数生成是许多加密操作不可分割的组成部分。

 例如, 加密密钥需要尽可能地随机,以便使生成的密钥很难再现。

 加密随机数生成器必须生成无法以计算方法推算出(低于 p < . 05 的概率)

 的输出; 即, 任何推算下一个输出位的方法不得比随机猜测具有更高的成功概率。

 . NET Framework 中的类使用随机数生成器生成加密密钥。

  H5C+w&rYlT gNaI5C+ x&rYmTgNbI5C0x&rZmTgObI5 D0x&sZmThObI 6D0x*sZmUhObJ6D0y*sZnUhO cJ6D1y*s#nUh PcJ6E1y*t#nUiPcJ7E1y(t#n ViPcK 7E1z(t# oViPdK7E2z(t! oViQdK7F2z( u! oVjQdK8F2z ) u!oWjQdL8F2A) u!pWjQeL8F 2A) u!pWjQeL8 F3A) u$pWjReL8G3A) v$pWkRe L9G3A -v$pXkR eM9G3B-v$qXkRfM9G4B-v%qX kSfM9H 4B-w%q XlSfMaH4B+w%qYlSfNaH4C+w %rYlSgNaH5C+ w&rYlTgNaI5C+x&rYmTgNbI5 C0x&r ZmTgObI 5D0x&sZmThObI6D0x*sZmUhO bJ6D0y*sZnUh OcJ6D1y*s#nUhPcJ6E1y*t#n UiPcJ7E1y(t# nViPcK7E1z(t#oViPdK7E2z( t!oViQ dK7F2z (t!oViQdK7F2z(u! oVjQdK8F 2z) u!oWjQdL8 F2A) u! pWjQeL 8F3A) u$pWjR eL8G3A)v$pWk ReL9G3A-v$pXkReM9G3B-v$q XkRfM9G 4B-v% qXkSfM9H4B-w % qXlSfMaH4B+ w%qYlSf NaH4C +w%rYlSgNaH5 C+w&rYlTgNaI 5C+x&rYmTgNb I5C0x&rZmTgO bI5D0x&sZmTh ObI6D0x *sZmU hObJ6D0y*sZnUhOcJ6D1y*s# nUhPcJ 6E1y*t #nUiPcJ7E1y(t#nUiPcJ7E1y (t#nViPcK7E1 z(t#oViPdK7E2z(t! oViQdK7 F2z(u!oVjQdK 8F2z) u!oWjQdL8F2A) u! pWjQ eL8F3A)u$pWj ReL8G3A) v$pWkReL9J6E1y*t #nUiPcJ 7E1y( t#nViPcK7E1z(t#oViPdK7E2 z(t! oViQdK7F 2z(u!oVjQdK8F2z) u!oWjQdL 8F2A) u!pWjQe L8F3A) u$pWjReL8G3A) v$pWk ReL8G3A) v$pW kReL9G3A-v$pXkReM9G3B-v$ qXkRfM9G4B-v%qXkSfM9H4B - w%qXlSfMaH4 B+w%qYlSfNaH 4C+w%rYlSgNa H 5C+w&rYlTgN aI5C+x& rYmTg NbI5C0x&rZmT g ObI5D0x&sZm ThObI6D 0x*sZ mUhObJ6D0y*s ZnUhOcJ6D1y* s#nUhPcJ6E1y *t#nUiPcJ7E1 y (t#nViPcK7E 1z(t#oV iPdK7 E2z(t!oViQdK 7F2z(u! oVjQd K8F2z) u !oWjQ dL8F2z) u!oWj Q dL8F2A) u! pW jQeL8F3A) u$p WjReL8G3A) v$ p WkReL9G3A-v $pXkReM9G3B- v$qXkRfM9G4B - v%qXkSfM9H4 B-w%qXlSfMaH 4B+w%qYlSfNa H4 C+w%rYlSgN aH5C+w&r YlTg NaI5C+x&rYmT gN bI5C0x&rZm TgObI5D0x&sZ mThObI6D0x*s Zm UhObJ6D0y* sZnUhOcJ 6D1y *s#nUhPcJ6E1 y*t#nUiPcJ7E 1y(t#nViPcK7 E1z(t#oViPdK 7E 2z(t #oViPdK7E2z(t!oVi QdK7F2z(u!oV jQd K8F2z) u! o WjQdL8F2A ) u! pWjQeL8F3A) u $pWjReL8G3A) v$pWkReL9G3A -v$pXkReM9G3 B-v$qXkRfM9G 4B-v%qXkSfM9 H4B-w%qXlSfMaH 4B+w%qY lSfNaH4C+w%rYlSgNaH5C+w& rYlTgNaI5C+x &rYmTgNbI5C0x&rZmTgObI5D 0x&sZ mThObI6 D0x*sZmUhObJ6D0y*sZnUhOc J6D1y* s#nUhP cJ6E1y*t#nUhPcJ6E1y*t#nU iPcJ7E1y(t#n ViPcK7E1z(t#oViPdK7E2z(t !oViQd K7F2z( u!oVjQdK8F2z) u!oWjQdL8F2 A) u! p WjQeL8F 3A) u$pWjReL8G3A) v$pWkReL 9G3A- v$pXkRe M9G3B-v$qXkRfM9G4B-v%qXk SfM9H 4B-w%qX lSfMaH4B+w%qYlSfNaH4C+w% rYlSgN aH5C+w &rYlTgNaI5C+x&u$pWjReL8F 3A) u$p WjReL8 G3A) v$pWkReL9G3A-v$pXkRe M9G3B -v$qXkR fM9G4B-v%qXkSfM9H4B-w%qX lSfMaH 4B+w%q YlSfNaH4C+w%rYlSgNaH5C+w &rYlTgNaI5C+ x&rYmT gNbI5C 0x&rZmTgObI 5D0x&sZ mThOb I6D0x*sZmUhO bJ6D0y*sZnUh OcJ6D1y *s#nU hPcJ6E1y*t#nUiPcJ7E1y(t# nViPcK 7E1z(t #oViPdK7E2z(t!oViQdK7F2z (u! oVjQdK8F2 z(u!oVjQdK8F 2z) u!oWjQdL8 F2A) u! p WjQeL 8F3A) u$pWjRe L 8G3A) v$pWkR eL9G3A -v$pXk ReM9G3B-v$qXkRfM9G4B-v%q XkSfM9H 4B-w% qXlSfMaH4B+w%qYlSfNaH4C+ w%rYlSgNaH5C +w&rYlTgNaI5C+x&rYmTgNbI 5C0x&r ZmTgOb I5D0x&sZmThObI6D0x*sZmUh ObJ6D0y*sZnU hOcJ6D1y*s#nUhPcJ6E1y*t# nUiPcJ 7E1y(t #nViPcK7E1z(t#nViPcK7E1z (t#oViPdK7E2 z(t!oViQdK7F2z(u! oVjQdK8 F2z) u!oWjQdL 8F2A) u!pWjQeL8F3A) u$pWjR eL8G3A) v$pWkReL9G3A-v$p X kReM9G3B-v$ qXkRfM9G 4B-v %qXkSfM9H4B- w %qXlSiQdK7F 2z(u! oV jQdK8 F2z) u!oWjQdL 8F2A) u!pWjQe L8F3A) u $pWjR eL8G3A) v$pWk ReL9G3A-v$pX kReM9G3A-v$p XkReM9G3B-v$ q XkRfM9G4B-v %qXkSfM9H4B- w%qXlSfMaH4B + w%qYlSfNaH4 C+w%rYlSgNaH 5C+w&rYlTgNa I5C+x&rYmTgN bI5C0x&rZmTg ObI5D0x&sZmT h ObI6D0x*sZm UhObJ6D0y*sZ nUhOcJ6D1y*s # nUhPcJ6E1y* t#nUiPcJ 7E1y (t#nViPcK7E1 z(t#oViPdK7E 2z(t! oViQdK7 F2z(u!oVjQdK 8F2z) u!oWjQd L8F2A) u !pWjQ eL8F3A) u!pWj Q eL8F3A) u$pW jReL8G3A) v$p WkReL9G3A-v$ pXkReM9G3B-v $qXkRfM9G4B- v%qXkSfM9H4B - w(t!o ViQdK7F2z(u! o VjQd K8F2z) u!oWjQ dL 8F2A) u!pWj QeL8F3A)u$pW jReL8G3A) v$p Wk ReL9G3A-v$ pXkReM9G 3B-v$qXkRfM9G 7E1z(t# oViPcK7E1z(t#oViPdK7E2z( t!oViQdK7F2z (u!oVjQdK8F2z) u!oWjQdL8F 2A) u!pWjUhOb J6D0y*sZnUhOcJ6D1y*s#nUh PcJ6E 1y*t#nU iPcJ7E1y(t#nViPcK7E1z(t# oViPd K7E2z(t ! oViQdK7F2z(u!oVjQdK8I5D 0x&sZ mThObI6 D0x*sZmUhObJ 6D0x*sZmUhOb J6D0...

推荐访问:对于一些现成加密算法学习笔记 学习笔记 加密算法