If you're seeing this message, it means we're having trouble loading external resources on our website.

如果你被网页过滤器挡住,请确保域名*.kastatic.org*.kasandbox.org 没有被阻止.

主要内容

异或位运算

最佳移位密码

如果你学过 一次性密码本 的课程,你知道它是 最佳移位密码。它用跟 信息的长度 一样的 随机移位。了解为什么一次性密码本是不能破解的(即 完美保密的)很重要。
想了解为什么,我们首先要介绍 ANDORXOR 按位操作法。具体是为什么在计算机中做一次性密码本时必须用 XOR。按位 意思是我们考虑的是单独的位(二进制数)。在任何现代或者电脑化的加密法方案中,我们用二进制数位代表符号。如果你忘了为什么是这样,可以观看这个跟 计算机内存 有关的视频。

为颜色加密

让我们从把可汗学院绿叶头像的颜色加密这个例子开始吧。
如何能把颜色转换为数字?现在,你在屏幕上看的是 HTML 的颜色,这些颜色是以 三原色模式 定义的。这是一个一定数量的 红、绿和蓝光 合在一起的加成模式。
我们可以 用 0-255 之间的数字 来定义具体有多少 RED(红), GREEN (绿)和 BLUE(蓝) 。黑是 全关的 (0,0,0) ,而白是 全开的 (255,255,255)。这两个之间有 一千六百万种可能的颜色 (256 * 256 * 256)。接下来,我们可以用任何图像编辑工具来取出可汗学院的叶子的绿色。
选择了绿色的Photoshop色盘截图。
注意它的RGB值:RED=156,GRENN=181,BLUE=58
用二进制表示这些数字就是:
RED=10011100, GREEN=10110101, BLUE=00111010.
我们可以把这些数字并在一起: 100111001011010100111010
可汗学院的绿色的二进制表达方式
上面写着 100111001011010100111010 的绿色背景

随机移位的应用

现在假如你用抛硬币转换成二进制来产生一个移位顺序:
HTHTTHTHHHHTTHTTTTHTTHHH = 010110100001101111011000
想一想我们改怎样把这个移位顺序应用到颜色上,以便使用一次性密码本进行加密:
100111001011010100111010 + 010110100001101111011000 = ?
为了让一次性密码本有效,我们必须选择正确的操作法,以让最终的顺序是任何颜色的可能性都一样。让我们看看三个不同的操作方式,AND, OR, XOR

AND

AND 操作符也称 逻辑连词,就和乘法的工作方式一样。
它只在所有的输入都是 1 才输出 1。以下是真值表:
0 AND 0 = 0
0 AND 10
1 AND 0 = 0
1 AND 1 = 1
让我们试试:
100111001011010100111010 AND 010110100001101111011000 = 000110000001000100011000
结果是一个很深的紫色。请注意我们为任何二进数进行 AND 操作法的时候,最终的顺序 不可能更大。在我们的颜色例子,这排除很多颜色的可能性,因为它让颜色变得 更黑

OR

OR 操作符也成 逻辑分离。它在 一个或多个输入是 1 的时候输出 1. 以下是真值表:
0 OR 0 = 0
0 OR 1 = 1
1 OR 0 = 1
1 OR 1 = 1
让我们试试:
100111001011010100111010 OR 010110100001101111011000 = 110111101011111111111010
结果是一种浅紫色。注意我们为任何二进制顺序进行 OR 操作法时,最终的顺序 不可能更小。这派出了很多可能性,因为它让颜色变得 更白

XOR

XOR 操作符在输入 不一样 的时候输入 1,也就是说两个输入其中一个是 唯一成立 的。 这跟 以 2 为模的加法 一样。 以下是真值表:
0 XOR 0 = 0
0 XOR 1 = 1
1 XOR 0 = 1
1 XOR 1 = 0
让我们试试:
100111001011010100111010 XOR 010110100001101111011000 = 110001101010111011100010
深紫色
结果是比 OR 操作法的稍微深一点的紫色。注意我们为一个二进制顺序进行 XOR 操作法时,最终的顺序可以是任何可能的顺序。对于某一个加密的颜色,我们只知道原来的颜色是任一颜色的可能性相同。我们 没有什么信息能改善猜中的概率 (一千六百万分之一)。
最后,让我们进行一个视觉演示,以看看一次性密码本的运作。接着我们可以获得更多能量积分!

想加入讨论吗?

尚无帖子。
你会英语吗?单击此处查看更多可汗学院英文版的讨论.