您好, 访客   登录/注册

密码的背后

来源:用户上传      作者: 杨思安 杜志豪

  今年2月,三位中国专家在山东宣布的研究成果,震动了国际数学界和密码学界。
  大多数人可能根本无法理解,这项研究成果――一张布满数字的表格究竟有什么意义?对于某些数学专家来说,它意味着,人们在理论上可以使用一台价值25万美元的先进计算机,花四个月的时间复制一串很长的数字――这有什么值得大惊小怪的呢?
  答案很简单。它关乎我们每一个人的银行账户安全。
  目前,我们在处理网上业务时采用的关键保密措施,是通过一种名为安全散列算法的数学方法产生的数字串来确认信息发送者的身份,并确保内容的真实性。这些数字串是互联网上“数字签名”的核心所在――数字签名是网上类似于指纹、印记、手写签名的识别信息。
  安全散列算法是互联网软件基础的一部分,一旦它被证明是脆弱的,就意味着所有人的银行账户都可能面临更高的被非法进入并被盗取存款的危险。而来自山东大学、山东交通大学和中国科学院的研究者宣布,他们已经通过数学方法证明:安全散列算法远比人们想像的要脆弱得多。
  安全散列算法是一种相对古老的算法,全世界的数学家已经花了很多年时间去测试并尝试攻破它。山东的研究成果是目前最先进的远景研究,一旦被证实,它将会给网上业务带来深远的影响。
  安全散列算法中的“散列算法”是一种人们设计的方程式,它可以将一条信息转化成一个惟一的、拥有固定长度的压缩数字串;产生数字串的惟一方法,就是将这个算法应用于初始信息上。信息发送者将散列数字串和信息都加密,接收者把它们解密后,将散列算法应用于接收到信息上,然后将产生的散列数字串和收到的数字串进行对比,以验证收到的信息和发送者散列的是否相同。
  这样的信息也可以是密码。通过如此的步骤后,接收者可以验证该密码的正确性;同时因为看不到密码究竟是什么,从而保证了密码的安全性――为什么当我们忘记了银行密码的时候,银行不能告诉我们之前的密码是什么,而只能让我们重新设定一个?就是因为当我们通过互联网输入密码“shamao66”的时候,银行端接收到的可能是类似“2fd4e1c67a2d28fced849ee1bb76e7391b93e b12”的一串东西。
  散列程序之所以有价值,是因为它是单向的。如果你手头只有经过散列得到的数字串,并没有办法通过这一算法反过来去得到初始信息(当然,能否保证完全“不可逆”,这个问题在理论上还没有解决)。作为安全互联网交易的基础,所有的公钥和私钥密码技术都依靠散列算法。
  安全散列算法(SHA)程序是由美国国家安全局(U.S. National Security Agency)设计、由美国国家标准技术研究院公布的。安全散列算法的第二个版本,即被称为SHA-1的算法,在1995年公布。像SHA这样的重要算法通常被广泛地公布,从而使全球的电脑专家(包括黑客)可以对其进行测试,以期在应用以前找到漏洞和弱点。SHA-1算法可以产生264(2的64次方)个可能的结果;如果在少于这个数目的尝试中发现同一结果出现了两次,那么,这个算法就可认为是被“攻破”了。王小云、尹依群和于红波三位专家宣布,他们在2的第33次方上攻破了这个算法。这意味着,如果一个犯罪组织拥有强大的计算能力和足够的时间,就有可能伪造数字签名。
  研究者们目前还没有公布科学研究的细节,以保护正在使用的公共编码结构。人们更关注的,并非是黑客可能将用2的第33次方攻击来获取银行密码,而是这项研究揭示了这样一种可能性,即一个使用笔记本电脑的16岁小孩就能冒充“网上中国银行”。一些新的、更长的SHA-1版本已经被公布,但是它还没有经过测试,因而也没有被收入为标准编码技术。
  中国的研究者们攻破了世界上最著名的方程式,也让中国展开了一场是否应将编码技术列为《国家保密法》保护范畴的争论。支持者认为,用于保证秘密安全的技术本身就要求保密;反对者则指出,最安全的技术来自于广泛的公共参与。
  密码学不再是间谍和军事密码信息的独有领域,区分真实发送者和冒名者、区分真实信息和伪造信息已经成为必要――即使约定一个喝咖啡的日期这样的小事也是如此。或许,中国研究者们的最大贡献,就在于把这个事关公共安全和需求的事情从阴影中解放出来,把其带入到公共科学的研究范畴里。
  
  作者杨思安(Anne Stevenson-Yang)为美国信息产业机构(USITC)驻北京首席代表,杜志豪(Ken DeWoskin)为美国密歇根大学名誉教授、普华永道(PricewaterhouseCoopers) 原中国合伙人


转载注明来源:https://www.xzbu.com/3/view-718980.htm