普通语言基本密码

哈Ha!

我们每个人都经常听到诸如“数据加密”,“秘密密码”,“密码保护”,“加密”之类的单词和短语,但并不是每个人都明白确切的含义。 在这篇文章中,我们将了解什么是加密并考虑基本密码,从而使甚至远离IT的人们也能理解这种现象的本质。

首先,我们将了解术语。

加密是对原始消息的一种转换,如果任何恶意人员截获该消息,将不允许他们读取数据。 这种转换是使用特殊的数学和逻辑算法完成的,下面将介绍其中的一些算法。

实际上, 原始消息就是我们要加密的内容。 一个经典的例子是文本。

加密消息是已通过加密过程的消息。

密码是我们用来转换消息的算法本身。

密钥是可基于其执行加密或解密的组件。

字母是原始和加密消息中所有可能字符的列表。 包括数字,标点符号,空格,小写和大写字母等。

现在,我们或多或少讲相同的语言,我们将分析简单的密码。

  • Atbash密码


最简单的密码。 它的本质是字母的向上。

例如,我们有一个与通常的拉丁字母完全一致的字母。

abcdefghijklmnopqrstu vwxyz 

要实现Atbash密码,我们只需将其反转即可。 “ A”将变为“ Z”,“ B”将变为“ Y”,反之亦然。 在输出中,我们得到以下图片:



现在我们在源字母和密码字母上写必要的消息

原帖:我爱哈伯
加密的:r olev szyi

  • 凯撒代码


此处添加了另一个参数-以1到25(对于拉丁字母)的数字形式的原始键。 实际上,密钥是4到10。

同样,为清楚起见,请使用拉丁字母

 abcdefghijklmnopqrstu vwxyz 

现在,将每个字母向右或向左移动一个键值。

例如,键将为4,向右移动。

原始字母:abcdefghijklmnopqrstu vwxyz
加密的:wxyzabcdefghijklmnopq rstuv

我们正在尝试写一条消息:

 hello world 

我们对其进行加密,并获得以下不连贯的文本:

 dahhk sknhz 

  • Vernam密码(XOR密码)


具有绝对加密强度的最简单的基于二进制的密码。 如果不知道密钥,就无法解密(由Claude Shannon证明)。

原始字母仍然是相同的拉丁语。

该消息分为多个单独的字符,每个字符以二进制形式显示。
密码学经典为每个字母提供一个五位数的bodo码 。 我们将尝试使用ASCII表示例将此密码更改为以8位/字符编码。 我们以二进制代码的形式表示每个字母。

图片

现在,请记住电子课程和XOR元素,也称为XOR。

XOR接收信号(每个为0或1),对其进行逻辑运算,并根据输入值给出一个信号。

如果所有信号彼此相等(0-0或1-1或0-0-0等),则输出为0。
如果信号不相等(0-1或1-0或1-0-0等),则输出为1。

现在,为了加密消息,我们将输入用于加密的文本本身和相同长度的密钥。 我们将每个字母转换成其二进制代码,然后执行公式消息XOR键

例如:

邮寄:伦敦
密钥:SYSTEM

我们将它们翻译成二进制代码并执行XOR:

 01001100 01001111 01001110 01000100 01001111 01001110 01010011 01011001 01010011 01010100 01000101 01001101 _______________________________________________________ 00011111 00010110 00011101 00010000 00001010 00000011 

在此特定示例中,我们将仅看到一个空白处,而不是结果字符,因为所有字符都位于前32个服务字符中。 但是,如果将结果转换为数字,则会得到以下图片:

 31 22 29 16 10 3. 

在外观上-一组完全不连贯的数字,但是我们知道一些。

  • 码字代码


加密原理与凯撒的密码大致相同。 仅在这种情况下,我们才不将字母移位一定数量的位置,而是将代码字移位。

例如,以西里尔字母进行更改。

  

我们将提供一个代码字。 例如Lukomorye。 从中删除所有重复的字符。 在输出中,我们得到单词“ Lukomrier”。

现在我们在字母表的开头输入这个词,其余的字符保持不变。

   

现在,我们将记录所有消息并对其进行加密。

 "    " 

我们得到以下不可读的废话:

 "    " 

  • 播放器代码


经典的Playfer密码假定基于拉丁字母字符(i和j写入一个单元格),一个代码字以及对其的进一步处理为5x5矩阵。

让代码字为“ HELLO”。

首先,我们采用之前的密码,即 删除重复项,并在字母表的开头写下单词。



现在接收任何消息。 例如,“我喜欢哈伯和吉斯”。

我们将其分为两部分,即 成对的字符,不包括空格。

 IL OV EH AB RA ND GI TH UB. 

如果消息来自奇数个字符,或者在二元组中有两个相同的字符(例如,LL),则将符号X替换为丢失或重复的字符。

根据几个简单的规则执行加密:

1)如果二字字符在同一行的矩阵中-我们将它们向右移动一个位置。 如果该符号是行中的最后一个,则它将成为第一个。

例如,EH变为LE。



2)如果二字字符在同一列中,则将它们向下移动一个位置。 如果字符在该列的最底部,则它将采用最顶部的值。

例如,如果我们有一个LX bigram,那么它将变成DL。

3)如果字符不在任何行或列上,则我们构建一个矩形,其中字符是对角线的边缘。 并交换角落。

例如,bigram RA。





根据这些规则,我们将加密整个消息。

 IL OV EH AB RA ND GI TH UB. KO HY LE HG EU MF BP QO QG 

如果删除空格,我们将收到以下加密消息:

 KOHYLEHGEUMFBPQOQG 

恭喜啦 阅读本文之后,您至少可以大致了解什么是加密,并且知道如何使用一些原始密码,并且可以开始研究一些更复杂的密码模式,我们将在后面讨论。

谢谢您的关注。

Source: https://habr.com/ru/post/zh-CN444176/


All Articles