第6章 (第2/3页)
的数字。
对第二个生成器进行调用的正确方式是使用迭代--当第一 个生成器工作完后,挑选出了一张扑克牌,第二个生成器对此进行 迭代,从而改变扑克牌的花式或点数。但设计者们并没有那么做, 他们仅仅让第二个生成器在每局开始的时候迭代一次,产生一个数 字,然后第一个生成器产生的每一个数字都依次加上这个数,这样 屏幕上的扑克牌就产生了。
对Alex来说,两个寄存器的使用是一种挑战,“涉及到密码 学的研究”,他知道那项技术有点像加密信息中使用的技术,他从 前也学过一些这方面的知识,但还不足以使他攻克这个难题,所以 他开始“造访”附近一所大学的图书馆。
如果设计者阅读加密系统方面的书籍时更仔细一点的话,他们 就不会犯那样的错误。而且他们应更有效地检测系统,以防备我们 的侵袭。
任何一个计算机专业的大学生,如果他明白一段程序欠缺什么 了的话,他就能像我们一样写出代码。这当中最令人讨厌的部分是 用尽可能快的方法找出算法,最好能够只花几秒钟了解机器的运行 情况;反过来如果你对这一切不熟悉的话,可能会要几个小时。
我们真的是不错的程序员,至今我们仍以编程技术为生,我们 的抹术不断得到优化。我不认为这样很浅薄。
我记得Norton(在Symantec收购该公司之前)的一个程序员在 做Diskreet产品时犯过这样的错误:所做的应用程序允许用户自己 创建加密虚拟驱动器。幵发人员错误地执行了这段程序--也有可 能是故意的--密钥的存储空间由56字节缩减到30字节。联邦政 府的数据加密标准用的是56位的密钥,这被认为是不可攻破的。 Norton给客户的感觉是他们的数据都是以这个标准进行保护的。 因为这个程序员的错误,用户的数据其实仅仅是以30位加密的,而不是56位。即使在今天,仍然可以用蛮力攻击30位的密钥。所 有使用这种产品的客户都被一种错误的安全观误导了:黑客总是能 用自己的密钥在某个时刻访问到用户的数据。这些家伙在这种机器 的程序里发现了同样的错误。
同时,伙计们在编写程序,打算用它在新的目标机器上赚钱。 他们一再劝说Alex发明一种不需要跑到公用电话机的方法。这个 答案来自于Eudcwmonic Pie上提供的办法:造出一个可穿戴的计 算机。Alex设计了一种微型计算机,计算机的微处理器板是由Mike 和Marco找到的目录纸板充当,并且与微处理器相匹配的有:一 个适合放在鞋里的控制按钮和一个无声震颤器(就像今天手机中普 遍用的那种)。他们将这个成果称作“ 口袋计算机在一个小芯片和很小的存储空间的基础上编写程序,我们得 聪明一点”,Alex说道,“我们做了一个漂亮的硬件,它不但适 合放在鞋里
(本章未完,请点击下一页继续阅读)