当今世界信息技术的发展日新月异,信息技术已广泛深入到社会各个领域,应发挥着越来越重要的作用。世界各国都在致力于信息化建设,以“金桥”、“金卡”、“金卫”、“金关”、“金税”工程为代表的系列工程,正是我国发展信息化建设的重要举措。在“金”系列工程中,集成电路卡(Intergrated Circuit Card,简称IC卡)应用非常广泛。
在IC卡应用系统中,IC卡中信息的安全问题是人们关注的焦点问题。针对IC卡应用系统的特点,其安全性的关键在于卡中信息的安全。对多数攻击者而言,复制IC卡或窃取,更改卡中的信息才是其最终目的。为了更有效地保护卡中的信息,采用一种有效的、安全可靠的加密算法,实现对卡中信息的加密存储是相当必要的。
基于这一目标,本文以国际加密标准DES算法为基础,在传统三重DES加密模式的基础上,提出了一种改进的三重DES加密算法,并将其成功地应用到了医疗保险(下文简称医保)系统的IC卡结算业务之中。
1 IC卡应用系统简介
IC卡将集成电路芯片镶嵌在塑料基片中,封装称卡片的形状。它与其他类型的卡(如磁卡、条形码卡、光电卡等)想必其优势是“存储容量大”,智能型卡还具有微处理器,资料信息安全可靠,使用持久,能防磁、防静电等干扰;成本低、使用简便。因此,IC卡的应用领域日趋广泛,它作为信息的载体在信息社会中起着越来越重要的作用。
1.1 IC卡的基本特征
在IC卡应用系统中,使用较广的是IC卡中的一种——逻辑加密存储卡。这种卡具有如下性质:
(1)卡中设有口令(password)保护;
(2)对卡上电后,必须通过口令校验,才能够对卡进行写操作;
(3)只有通过口令校验后,卡中口令才可以进行读取与修改;
(4)对卡中数据区的读操作无需经过口令校验;
(5)卡中还设有口令校验错误计数,以免对口令进行穷举分析。口令校验没出错一次,错误计数减1,如果错误计数减为0,则卡被锁死。但如果错误计数大于0时,一旦口令核对正确,错误计数将恢复初始值。
1.2 对IC卡的攻击手段
对于IC卡的攻击者,其最主要的目的是摄取卡中的信息,或者对卡进行非法复制,或者篡改卡中的内容,或者冒用他人的卡等,以达到破坏系统的目的。对IC进行攻击的有效途径通常有以下两种:
1.2.1 穷举法
口令的穷举攻击是指通过对IC卡口令空间(口令的所有可能值的集合)进行遍历搜索来破获口令。若攻击者拥有IC卡应用系统的使用许可权(可以读写IC卡),那么他就可以利用穷举法破获卡中的口令。
1.2.2 中途拦截
中途拦截是指在IC卡与应用系统间的通信过程中截获信息,利用IC卡在口令校验后,对卡下电前可以独处口令的性质。攻击者可以在IC卡上引线并接通读写器,赶在卡下电前读出卡中口令。中途拦截法实施的条件是:攻击者必须掌握IC卡应用系统,并掌握好对IC卡上电且口令校验成功后直接对卡下电之前的时机。
由上可以看出,如果仅依赖IC卡中存放的口令进行保密是不太安全的。因为通过IC卡中的口令长度是非常有限的,容易被穷举法攻击;对穷举法攻击比较困难时,也容易为中途拦截法攻击。当然有人提出过一些措施以抗击中途拦截攻击,但仍然不是非常安全可靠。所以,有必要加强对卡中数据的保密,使得即使口令保护失效时,攻击者也很难获取卡中信息。
2 基于DES的三重加密算法
IC卡应用系统的特点要求:对卡中数据的加密/解密算法的安全性要高,加密/解密速度要快(因为读写卡中信息均需要进行解密/加密操作)。于是,选用了三重DES加密算法,传统的三重加密算法各分组明文之间互不影响。该文采用各分组明文间有一定影响的方法,对原算法进行了改进,使得消息明文的影响范围加大,加密强度得到提高。
2.1 传统三重DES加密算法
DES是一个分组加密算法,它是1975年由IBM公司提出的,1977年美国国家标准局宣布DES可以用于非国家保密机构,这使得它成为目前应用最广泛的加密算法之一。
DES算法的密钥长度为64位,但是其中有8位仅作为奇偶校验,所以它实际是一个56位的加密算法。DES算法的优势在于它易于硬软件实现、算法速度快、算法安全性高。但它的56位密钥毕竟少了点。由于新的密码分析方法的出现,使它受到了威胁。因此在实际应用中,加强它的加密强度是相当必要的。
三重DES加密算法是DES算法的强化形式之一,它对每一个64位分组明文用3个密钥进行加密来提高算法的强度。
2.2 改进的三重DES加密算法
在传统三重加密强化算法中,只是对每一个分组明文(8个字节)进行了加密强化,整个明文消息的各分组在加密时相互独立,互不影响,每一个分组密文只受该分组的8字节明文及三个密钥的影响。因而,一个字节的明文发生变化,只引起对应的8字节密文发生变化。它的影响力仅在8个字节范围内。若能够使得各个消息明文分组之间相互影响,即狂打每个字节明文的影响力,那么三重加密算法的强度必定会增强。
基于这一考虑,设计了一个改进的三重DES加密算法,算法描述如下所示。
算法的加密过程:
2.3 算法的安全性分析
传统的DES算法,其安全性是经过实践检验的,至今还没有对它进行成功攻击的案例。三重DES加密算法,由于采用了三个不同的密钥,及时采用针对性的时间-存储折衷的中间相遇攻击方法,其时间复杂度也是非常高的,并且由于时间和存储空间的限制,这种攻击法只有理论意义,可以说三重加密是安全的。
该文提出的改进三重DES算法,在三次DES分组加密之间各增加了一次分组换位变化T,这种变换打乱了分组结构,使得原有的明文的扩散范围变大,其扩散范围依赖于T的选择。无论密码分析者从明文开始,还是从密文开始,增加的换位变化T都将有效地阻止其分析。因此,这种加密算法可以有效地抵抗中间相遇攻击和穷举攻击,其安全性足以让人们放心。
另外,由于增加了两次换位变换,所以算法的执行速度会比传统DES加密慢。但是只要T选取得当,且CPU速度不断提高,这种影响几乎可以忽略不计。