问:高级加密标准(AES)有哪些限制?
答:我相当肯定你的问题所指的是美国政府为保护政府机密情报所采用的高级加密标准(AES)的潜在限制。
早在1997年,国家标准和技术研究所(NIST)宣布,需要为数据加密标准(DES)(很容易受到蛮力攻击)寻找新的接替者。根据NIST的定义,这种新的、非机密、公开披露的加密算法称为高级加密标准(AES)。
经过一段时期的反馈、辩论和分析,Rijndael算法从15个竞争设计中脱颖而出,并在2000年10月以AES发布。该算法的选择过程是公开和透明的,这有助于建立其安全方面的信心。事实上,选择新算法的过程得到了加密社区的赞誉,因为它是第一个对公众开放的加密,并且得到了国家安全局(NSA)(保护绝密信息)的支持。
AES由三个分组密码组成:AES–128、AES-192和AES-256,具有软件和硬件实现技术,而且速度快。AES加密有一个128位的块大小,有128、192和256位的密钥大小。有10 rounds用于128位密钥、12 rounds用于192位密钥和14 rounds用于256位密钥——一个round由几个处理步骤(将输入的纯文本转换成密文最终输出)组成。所有密钥长度被认为足以保护机密信息到SECRET级,绝密级信息需要192或256位密钥长度。
但是,构成强大加密的组成部分在不断变化。虽然没有人成功地破解全部的AES,各类研究人员已经公布了针对AES减round版的攻击。虽然这些攻击在外部不容易实现,因为它们需要实验型的条件,但是这表明,AES的安全边缘正在缩小。因此,在不久的将来,我期望NIST能增加所有三个AES版本的round数。
目前唯一成功地针对全AES攻击的是针对特定实现技术的旁道攻击。旁道攻击不攻击实际的AES加密算法,而是针对其实现技术。例如,在2005年,一个缓存时序攻击打破了使用OpenSSL AES加密的自定义服务器。加密算法通常不是加密产品或服务的薄弱点,但实现技术或关键管理错误是其薄弱点。这就是为什么保护国家安全系统产品中的AES的实现技术,以及信息在使用之前要经国家安全局审查和认证的原因;一个坚实的加密机制如果使用不当,往往会造成破解。
【编辑推荐】