国内的一些行业应用智能卡规范中,凡是涉及到CPU卡的大多会提到采用SSF33加密算法。但是目前在任何公开的资料中始终不能找到SSF33加密算法的详细内容,开始的时候大家都疑窦丛生,后来也就习以为常见怪不怪了。因为虽然规范中定义了SSF33算法,但是在实际应用中几乎都不使用这套算法。尤其是针对那些需要在国际间实现互联互通的领域,比如银行卡方面,从来就没用过SSF33算法。

SSF33算法究竟是什么机制,始终让人倍感神秘。但是从中国人民银行PBOC2.0的规范中大体可以看出一些端倪。

浅析迷之存在的SSF33加密算法

从本质上看,SSF33算法相当于3DES算法的一个扩展,但是在内部的具体实现方式,比如移位、迭代、替换、压缩和扩充是否完全符合DES算法则不得而知。

在加密算法方面目前国际通用的对称算法是DES(或者后来出现的AES),而非对称算法是RSA和EC。而且这些算法都是公开的,但是密钥是保密的。只所以能够公开是因为算法足够安全,对于破解者来说在现有的技术条件下,要想破解这些算法要么是不可能的,要么不具备现实意义(比如对于一个有效期只有3年的信用卡,如果花费20年的时间才能破解就没有任何的意义)。

在加密领域也存在一些算法和密钥都不公开的模式,比如NXP公司的Mifare产品。不过这种不公开的算法很难保证安全,因为没有经过众多破解专家的分析和破译,事实也证明了这种不安全。

回过头来再看看我们的国产SSF33算法,假设它足够安全那就应该公开让大家去测评。否则,这种算法本身就没有多大的存在意义。换句话说,对于这种存在潜在风险的加密算法不应该在应用中采纳。

当然还有一种可能,就是我们的SSF33算法本身就是在DES算法基础上进行了简单的修改,安全性是没有问题的,不过根本算不上一个全新的算法,这样也不好公开,否则我们怎么面对国内外专家的质疑呢?

期待有一天能够一睹国产SSF33加密算法的真容!