试题三(15分)
阅读下列说明,回答问题1至问题4。
【说明】
某银行开发了一套手机银行App,需要对用户敏感数据进行保护。安全架构师在设计中采用了以下加密方案:
1. 用户在App端输入账户密码后,App使用SM4对密码进行加密(密钥为K1,K1以明文形式预置在App程序内部)。
2. 加密后的密码通过HTTPS协议传输到银行后台服务器。
3. 银行后台服务器接收到密文后,使用SM4密钥K1解密得到原始密码,然后与数据库中的密码Hash值进行比对验证。
4. 同时,App对用户的每一笔交易记录生成一个MD5哈希值,用于完整性校验。
【问题2】(4分)该方案中,App使用MD5对交易记录进行完整性校验。请回答:
(1)MD5算法的输出长度是多少比特?
(2)MD5算法在安全性方面存在的主要缺陷是什么?
(3)按照国家密码应用要求,银行等金融行业应优先选用哪种国产Hash算法替代MD5?该算法的输出长度是多少?
参考答案(1)MD5输出长度为**128比特**。
(2)MD5的主要缺陷:已被证明存在碰撞攻击,即可以找到两个不同输入产生相同哈希值,无法抵抗碰撞攻击,不再适合用于安全场景。
(3)应选用**SM3密码杂凑算法**替代MD5,SM3输出长度为**256比特**。