上一节,主要介绍了一些RSA算法的数论知识。
有了这些知识,我们就可以看懂RSA算法。这是目前地球上最重要的加密算法。
本节主要介绍下密钥生成的步骤、加密与解密、私钥解密的证明等内容。
前几天,同事给我秀了一段代码,初看之时,没弄懂其作用。这并不意外,因为我对这段代码所用到的C语言异或^操作符不熟悉。一是在我的编程里这个操作符不常用,看其它代码也少见到;二是我编程的基础知识本身就不是很扎实。
同事秀的这段代码以前并未见过,当他说出这段代码的功能后,先是惊讶其精妙绝伦地实现,然再搜索其原理,发现其也不是想象的那么美好。在这里一一探究。 阅读全文 »
有100个囚犯分别关在100间牢房里。牢房外有一个空荡荡的房间,房间里有一个灯泡,以及控制这个灯泡的开关。初始时,灯是关着的。看守每次随机选择一名囚犯进入房间,但保证每个囚犯都会被选中无穷多次。如果在某一时刻,有囚犯成功断定出所有人都进过这个房间了,所有囚犯都能释放。游戏开始前,所有囚犯可以聚在一起商量对策,但在此之后,它们唯一可用来交流的工具就只有那个灯泡。他们应该设计一个怎样的协议呢?
这个经典的问题在网上转载无数,题目描述被好事者们改得天花乱坠,甚至加进了“这盏灯永远有充足的能源供应”、“如果灯泡坏了或是电路出了故障会马上修好”等条件,剥掉了“算法问题”的外壳,填补了本不存在的漏洞,让更多的人动起了脑筋。在论坛上,每次贴出这个问题,总会引起一大群人论战。但很不幸的是,这个题目的来源至今仍是个谜。据目前的已知情况推测,这个题目最早来源于伯克利大学的电气工程荣誉学会,时间大概是2001年。在2002年7月,IBM官方网站上的Ponder This趣题栏目介绍了这个题目,“囚犯与灯泡”一炮走红,随即遍布网络的各个角落。2003年,《数学情报》(Mathematical Intelligencer)杂志上发表了一篇题为《一百个囚犯和一个灯泡》(One hundred prisoners and a lightbulb)的论文,也让囚犯们正式引起了数学家的关注。
想必很多人知道这个问题的标准答案了。 阅读全文 »
© 2012 velep.com | reille blog | 管理| 粤ICP备15065318号-2| 谷歌地图| 百度地图| Suffusion theme|Sayontan Sinha |