只有钥匙才能开的锁,加密
假设你不用信封,把一封信手递手传下去。经手的每个人都能照样读它。在互联网上直接发的消息正是这样。加密把那封信变成没有钥匙就读不了的乱码。就算有人在中途拦截,也看不出是什么字,只有拿着正确钥匙的人才能还原读出来。
直接发的字谁都能读
你发一条消息时,
它不会直接到对方那里。
它要经过沿途好几个站点。
路由器、运营商设备、许多服务器,
一个接一个,然后才到达。
如果你不做任何处理就发送,
那么它走这条路的途中,
经过的每个地方都能读到内容。
这种没动过的原始文字
叫做明文。
明文就像没有信封的信。
点一下路上的中间站点。因为是明文,经过的每个地方都照样看到内容。
不管你点哪个站点,
同样的字都照样出现。
明文在经过的每个地方都一览无余。
当然大多数站点只是转发而已。
但麻烦在于,只要有一个起了念头,
就能读或抄走内容。
想到密码或私事
这样传过去,就让人发怵。
所以发字之前我们就想
把它锁上,让别人读不了。
那个上锁,正是加密。
锁上就成了没意义的字
加密就是把明文锁起来的活儿。
把原文的字
按固定的方式打乱,
变成读了也不知道意思的字。
这样锁住的字叫做密文。
密文里你确实看得到字。
但意思没了,
所以只看着像一团乱码。
就算有人在中途拦下来盯着看,
也猜不出说的是什么。
上锁的方式跟一把钥匙配成一对。
点上锁把明文加密。字变成没意义的密文。
一点上锁,清楚的字
就变成认不出的字了。
内容是一样的,
可现在读它也读不出意思。
这就是加密的核心效果。
内容没被抹掉,
而是被锁成没钥匙就读不了。
那自然就好奇了。
这团乱码怎么才能再
变回原来的字呢?
答案就在上锁时配好的那把钥匙里。
只有正确的钥匙才解得开
要再读锁住的密文,
必须用钥匙解开它。
这个解开叫做解密。
用上正确的钥匙,
乱码般的字就变回原来的明文。
就像把对的钥匙插进锁里打开。
反过来用错钥匙,
字就解不开,照样堵着。
所以只有拿钥匙的人才看得到内容。
中途没钥匙的任何人
都没法把密文变回明文。
选一把钥匙点解开。正确的钥匙原文就回来,错的钥匙解不开。
正确的钥匙把原文带回来了,
错的钥匙就堵着。
正是这一点让加密有用。
就算上锁的方式被广为人知
也没关系。
真正秘密的,只是那一把钥匙。
只有拿钥匙的人才解得开,
所以消息只在那些人之间被读到。
那么这样上锁解锁
实际在哪里护着我们呢?
来看两个地方。
传输中和存储时都守住
加密守住秘密的地方主要有两个。
第一个是传输中。
消息穿过互联网的途中,
会经过前面看到的那些中间站点。
加密后再发,
就算有人拦截也只握着密文。
没有钥匙,内容就受保护。
第二个是存储时。
消息或文件放在设备或服务器上,
哪怕它静静待在原处的期间,
也可能有人偷看。
加密后存储,
没钥匙就读不了那份存档。
在两种情况间来回点。看加密在传输中和存储时怎样守住秘密。
无论传输中还是存储中,
加密的字没有钥匙就只是一团乱码。
所以同一条消息,
是否锁着处理,差别很大。
重要的字发的时候锁,
存的时候也锁,
两边的秘密就都守住了。
不过这里还剩一件事。
上锁解锁都必不可少的那把钥匙,
收发双方怎么安全地分给彼此呢?
这本身就是一个大话题。
来理一理
归成一句话,是这样。
直接发的明文,路上谁都能读。
加密用钥匙把明文锁成
没意义的密文。
只有正确的钥匙才解得开,
所以只有拿着那把钥匙的人才看得到内容。
多亏这样,传输中和存储时秘密都守得住。
上锁的方式可以被知道,
秘密都聚在那一把钥匙上。
所以下一个问题自然就是这个。
那把钥匙怎么安全地分发呢?
依次点要点回顾一下。(明文会被看见 -> 上锁成密文 -> 只有钥匙能解 -> 守住传输和存储)
现在你拿到了守护秘密
最基本的一件工具。
锁上、只用钥匙解、发的时候存的时候都守住,
这个简单的想法就是安全的地基。
但就算有把好锁,
要是把钥匙随手弄丢,也没用。
收发消息的两人怎样安全地
分享同一把秘密钥匙,
那是下一课的主题。
锁已经在手了,
这回咱们一起走进钥匙的故事吧。