7.5 密钥应该多长
答案并不固定,它要视情况而定。为了断定你需要多高的安全性,你应该问自己一些问题:你的数据价值有多大?你的数据要多长的安全期?攻击者的资源情况怎样?
一个顾客清单或许值1000美元;一起令人痛苦的离婚案件的财政数据或许值10000美元;一个大公司的广告和市场数据应该值1百万美元;而一个数据取款系统的主密钥价值可能会超过亿元。
在商品贸易的世界里,保密仅需要数分钟,在报纸行业,今天的秘密将是明天的头条标题。产品开发信息或许需要保密一到两年,根据法律美国人口普查数据要保密100年。
参加你小妹妹令人惊讶的生日晚会的客人名单只能引起那些爱管闲事的亲戚们的兴趣;公司的贸易秘密是那些竞争公司所感兴趣的;对敌军来说军事秘密是值得感兴趣的。
你可以据此阐述你的安全需求。例如,
密钥长度必须足够长,以使破译者花费一亿美元在一年中破译系统的可能性也不超过1/232,甚至假设技术在此期间每年有30%的增长速度。
表7.10部分摘自文献[150],给出了对各种信息的安全需要的估计。
表7.10 不同信息的安全需要
信息类型 |
时间 |
最小密钥长度 |
战场军事信息 产品发布、合并、利率 贸易秘密 氢弹秘密 间谍的身份 个人隐私 外交秘密 美国普查数字 |
数分钟/小时 几天/几周 几十年 >40年 >50年 >50年 >65年 100年 |
56-64 bits 64 bits 112 bits 128 bits 128 bits 128 bits 至少128 bits 至少128 bits |
将来计算机能力是难以估计的,但这里有一个合情合理的经验方法:计算机设备的性价比每18个月翻一番或以每5年十倍的速度增长。这样,在50年内最快的计算机将比今天快1010倍,且这些数字仅对于普通用途的计算机而言;谁能知道某种特制的密码破译机在下个50年内如何发展呢?
假定一种加密算法能用30年,你就能对它是多么安全有一个概念。现在设计的一种算法或许直到2000年才会普遍使用,并将在2025年仍然运用它来为那些需保密至2075年或更晚的信息加密。