RSA是指三位学者所发明的一种公钥密码算法。密码算法?简单的说,我写的东西,只想让某些特定的人知道其真实含义,而不想让所有人知道,特别是不想让我的敌人知道。就是一种传递秘密的方法。好,说起这个,我们知道的方法和故事就太多了。二战时期,由于美国成功的破解了日本海军的密码而在中途岛附近设伏,一举击沉日联合舰队的三艘主力航母,从而取得海上优势。还有我们小时候所感兴趣的谍报战,玩得都是密码。所以设计出敌人破解不了的密码太重要了,说一个套句就是,关系到国家的安全。
密码的一个特点是,敌人可以看到你写的东西,但是不能让他知道是什么意思。最易想到的一个场景就是,信息是用无线电发报的,我们和敌人同时接到这个电报,但是敌人就是不知道说的是什么,而我们一看,就知道它的含义。
好,有了这些铺垫,现在来看看公钥密码算法是怎么回事。公钥?
对,公共的钥匙!所谓公共的钥匙,就是公开的,所有的人都可以用的。公钥密码是由一对密码钥匙组成的,一个是公开的,即公钥,另一个是个人的,老索叫它私钥吧。
也许有人要问,有密码就行了,为什么我们还需要公钥密码。我们来看下面一个场景,老索告诉大家,我的公钥就是我的信箱:
老索@utopia00.com,
大家知道后可以给我发信,所有人都可以,
即公钥。但是私钥是我信箱的密码,当然不能告诉大家,只有我知道。由于大家只知道公钥而不知道私钥,所以尽管可以给我发信,但是却不能看到别人给我发的信的内容。而我是可以的,因为我有私钥。不太明白!
好,再来一个例子说说公钥密码和一般密码的区别。我送给我的爱人这样一条信息:09001215220500251521,我告诉她密码的编法是空格,a,b,c,....,x,y,z按顺序用00,01,02,03,...,24,25,26代替就可以了。她知道这个编法后,按对应法则,发现我送的信息是:我爱你。这个例子里面公钥和私钥是一个。即你知道了发送信息的编码,你可以把你的信息编码,同时,如果别人用此编码发送了一条信息,你也能知道它的内容。即:知道编码办法意味着知道破解的办法。编码和破解的难度是一样的。而公钥密码则完全不是这样,你知道编码的办法(公钥)但是你不知道破解的办法,因为你不知道私钥。即在不知道私钥的情况下,编码很容易,但是破解很难或者根本不可能。
唉,也不知到说清楚了没有,可能作为公众的读物还是太枯燥了点。
好,说点有故事的。老索在洛杉矶听USC(南加州)的朋友讲,当年,
RS要创造他们的密码系统,这个A还老大的不乐意,还想继续搞他的纯数学,RS硬是逼着A参加了这个工作。当然了,现在RSA成业界标准了,RSA也赢得了图灵奖。中国的姚曾是图灵奖得主(此姚非篮球之姚也)。
欲知RSA做出了什么东西,且听下回分解。