最近我媳妇儿他们公司老板抽风了,他们的所有电脑被监控了,所有的聊天记录都会被老板看到,侵犯人权哪!不过这倒是让我回忆起了《Algorithmes》第一章的加密技术,于是重新温习了一下,温故而知新嘛……
我们就拿他们公司做个简单的例子,我(Richard, 代号R)、我媳妇儿(Diana, 代号D)、他们老板(BOSS, 代号B)。
私钥(private key),顾名思义,这个key是私有的,只有R和D知道。在D去上班之前,我们就约好一个长度为N的数字为KEY。R发消息x给D时,先将x和KEY做异或运算,得出加密后的数据P;D收到P以后,再次P与KEY做异或运算,即可解码出原始消息x。B能获取的数据是P,因为他不知道KEY的值,所以很难解码出原始消息。
不过这个例子只是个玩具加密,有一个致命的问题,就是只能使用一次。比如,第一次我传输了长度为2的数据,第二次传输了长度为10的数据,那么B将两次获取的数据对比,就可以得到KEY的2-8位。
但是,也有应用广泛的私钥技术,比如AES。AES设置的私钥一般为128位(也有192-256的变体),他将一个长的消息分割成以128比特为单位的小块,分别对每个小块应用一个可逆算法e。解码时在分别对每一块执行可逆算法。