我正在学习Linux,目前正在学习SSH。但有些细节我不太明白。
g (生成器)和n开始,在某种程度上,我们使用组合,使用离散对数和私有数字生成公钥,公钥只用于加密。这个密钥是一个数字,那么一个数字如何加密一个消息?16,那么16如何加密我发送给某人的消息Good morning,然后相同的数字16在另一边解密消息?ssh-keygen -t rsa之后,生成了一个密钥对,但是当我在文本编辑器中打开它们时,我没有看到任何像素数那样的东西。这是另一种格式。现在,我真的很困惑,所有这些数学是如何与加密数据之间交换的两台计算机。
发布于 2019-04-20 13:56:33
这个密钥是一个数字,那么一个数字如何加密一个消息?
一个数字被表示为一个位序列--这是关键。
AES是用离散对数计算得到的数字吗?
AES是一种加密算法--参见维基百科:AES。该算法使用密钥(位序列,参见最后一点)加密一些有效载荷,并使用相同的有效载荷进行解密。想一想像异或这样的东西,可以使用相同的“密钥”来“加密”某些消息并再次“解密”它--只是比XOR好得多。
..。那么RSA到底给现有的密钥交换算法增加了什么呢?
SSH上下文中的RSA对密钥交换算法本身没有任何影响。但是它用于身份验证,这样客户端就可以确保它与预期的服务器进行密钥交换,而不是与中间的某个人(攻击者)进行密钥交换(MITM)。
在执行ssh-keygen -t rsa命令之后,生成了一个密钥对,但是当我在文本编辑器中打开它们时,我没有看到什么像素数那样的东西,它是一种不同的格式。
同样,一个数字是一个位序列。这样的序列可以用多种方式编码,比如十进制数、十六进制数、1和0的序列等等。您看到的是这些数字的特定编码以及一些附加的包装信息。
现在,我对所有这些数学是如何与加密两台计算机之间交换的真实数据有关的,比如信息、照片、视频等等,都感到困惑。
看起来你很困惑,因为你只把数字看作是记录在0到9之间的数字序列,但这只是数字表示方式的一种特定编码。对于计算机来说,一切都只是一个比特序列--其他一切(数字、字符、图像.)是一个特定的比特序列对人类意味着什么。
https://security.stackexchange.com/questions/207740
复制相似问题