兼具完整性验证的区块加密装置、区块加密方法、区块解密装置及区块解密方法
【技术领域】
[0001]本发明是关于一种区块加密装置、区块加密方法、区块解密装置及区块解密方法;更具体而言,本发明是关于一种兼具完整性验证的区块加密装置、区块加密方法、区块解密装置及区块解密方法。
【背景技术】
[0002]在一对一的安全通信中,唯有同时满足机密性、完整性及来源认证等三个基本的安全需求,才能确保消息在通信的传递过程为安全无虞的。机密性是指消息在传递过程中不会被第三方取得其内容。完整性是指消息的接收方必须能够确保接收到的消息内容和传送方所传送的消息内容一致,亦即消息的内容未被窜改。来源验证则指消息的接收方必须要能验证该消息确实是预期的传送方所传送。
[0003]在网络通信中,常以对称式加解密法作为安全通信的机制。传送方及接收方事先协议一金钥,传送方再以该金钥及一对称式加密演算法将所欲传送的消息加密为一密文。接收方接收该密文后,利用同样的金钥及与该对称式加密演算法对应的一对称式解密演算法对该密文进行解密,藉此取得传送方先前所传送的消息。
[0004]当传送方所要加密的消息的数据量大于对称式加密演算法所能处理的一个区块,则必须配合区块操作模式(mode of operat1n)—起运作。采用区块操作模式的目的在于将个别的消息区块以安全的方式连结,避免某些消息区块被泄露或遭受额外的攻击。加密区块连锁(Cipher Block Chaining ;以下简称「CBC」)模式为区块操作模式中的一种,其加密机制及解密机制是分别描绘于图1A及图1B。
[0005]如图1A所描绘,CBC模式的加密机制会将所欲传送的电子文件M切割为数个大小相同的消息区块m1>m2>m3>m4>......、mt,再对每一个消息区块m1>m2>m3>m4>......、mt进行个别的加密处理。具体而言,针对这些消息区块中的第一个(亦即,消息区块Hi1),加密机制先将的与一初始向量(Initial Vector) IV进行异或(exclusive OR ;X0R)运算,再以对称式加密演算法及金钥K对异或运算后的结果进行加密运算E,藉此产生消息区块Hi1所对应的密文区块(V针对其余消息区块(亦即,消息区块m2、m3、m4、......、mt)中的每一个,加密机制先将的与前一消息区块所对应的密文区块(亦即,密文区块Cl、C2, c3、……、(V1)进行异或运算,再以对称式加密演算法及同样的金钥K对异或运算后的结果进行加密运算E,藉此产生密文区块(亦即,密文区块c2、c3、c4、......、ct)。最后,加密机制再经由串接密文区块
CpCyCp......、Ct以产生电子密文C。
[0006]如图1B所描绘,CBC模式的解密机制会将接收到的电子密文C切割为数个大小相同的密文区块CpCyCyC4'......、(^,再对每一个密文区块^…^士、......、ct进行个别的解密处理。具体而言,针对这些密文区块中的第一个(亦即,密文区块C1),解密机制先以与该对称式加密演算法相对应的一对称式解密演算法及同样的金钥K进行解密运算D,再将解密后的结果与初始向量IV进行异或运算,藉此产生密文区块C1所对应的消息区块mi。针对其余的密文区块(亦即,消息区块C2、c3、c4、……、Ct)中的每一个,解密机制亦先以该对称式解密演算法及同样的金钥K进行解密运算D,再将解密后的结果与前一密文区块(亦即,密文区块Cl、C2, c3、……、(V1)进行异或运算,藉此产生消息区块(亦即,消息区块m2、
m3、m4、......、mt)。最后,解密机制再经由串接消息区块叫為為、......、mt以产生电子文件
M0
[0007]对称式加解密演算法能满足前述机密性的要求,但却无法满足完整性的要求。具体而言,若攻击者窜改电子密文,接收方在接收被窜改的电子密文后,仍能对的进行解密运算。举例而言,若攻击者将前述电子密文C (包含密文区块c1、c2、c3、……、ct)窜改为电子密文C’(包含密文区块c/、c2、c3、......、ct),接收方仍能将电子密文C’解密为电子文件
M,(包含消息区块叫’為’為、!^、……、mt),如图1C所示。然而,在大部分情况下,接收方无法判断解密后所获得的消息(例如:电子文件M’)的真伪。特别是当传送方原先欲传送的消息为程序、伺服器或其他人类无法辨识的消息,则接收方在对被窜改的电子密文解密后,便无法察觉解密后的消息有何异常。
[0008]当完整性的安全需求无法达成时,连带的来源认证也无法满足。具体而言,攻击者可任选一个乱数作为电子密文,并假冒传送方的身分将的传送给接收方,接收方则会以金钥及对称式解密演算法将接收到的电子密文(亦即,攻击者所任选的乱数)解密为一明文。由于接收方无法进行完整性检查,所以无法查觉接收到的电子密文及解密后的明文有何异常。主要的原因在于金钥为传送方及接收方所共有,故接收方将视解密后的明文为传送方所传送,但实际上该电子密文是由攻击者所传送。由此可知,在对称式加解密演算法无法满足完整性要求的情形下,亦无法对来源进行认证。
[0009]为解决上述问题,有多种方法可作为解决之道。举例而言,当采用安全数据传输层(secure sockets layer ;以下简称「SSL」)/ 传送层保全(transport layer security;以下简称「TLS」)机制进行传输时,其解决之道是描绘于图1D。传送方及接收方事先协定二把金钥K及Km,当传送方欲传送电子文件Ms予接收方时,传送方先利用金钥Km对电子文件Ms进行消息验证码(Message Authenticat1n Code ;MAC)运算MAC,以产生一消息验证码Z10接着,传送方将电子文件Ms与消息验证码Z1串接,再以对称式加密演算法及金钥K将串接后的结果进行加密运算E,藉此产生电子密文CN。接收方接收到电子密文Cn后,先以对称式解密演算法及金钥K进行解密运算D,并取得电子文件Md及消息验证码z2。接着,接收方利用金钥Km对电子文件Md进行消息验证码运算MAC,藉此产生消息验证码z3。随后,接收方将消息验证码Z3与解密后所得的消息验证码Z2进行一比较运算CMP。若比较运算CMP的结果为消息验证码Z3与消息验证码Z2相同,代表电子文件Md在通信过程中未被窜改,和传送方所发送的电子文件Ms内容一致。然而,倘若比较运算CMP的结果为消息验证码Z3与消息验证码Z2不同,代表解密后所得的电子文件Md在通信过程中被窜改。
[0010]前述SSL/TLS机制所采用的「消息验证码再加密(以下简称「MAC-then-encrypt」)」方法因使用事先协定好的二把金钥K及Km,故能同时满足机密性、完整性及来源认证等三个基本的安全需求。已知技术中有多种计算消息验证码的方法,较常见者为利用杂凑函数所建构的金钥杂凑消息确认码(keyed-hash messageauthenticat1n code ;以下简称「HMAC」),另一种则是结合CBC模式的密码区块连结消息验证码(以下简称「CBC-MAC」)。HMAC的计算效率取决于所采用的杂凑函数。为了满足安全性的要求,较常采用的杂凑演算法为SHA-1、SHA-2等,而这些较为复杂的杂凑演算法,其计算效率相当接近常见的进阶加密标准(advanced encrypt1n standard ;AES)的计算效率。另一方面,就CBC-MAC来看,虽然CBC-MAC只使用最后一个区块的密文作为输出,但其计算过程即是将输入的数据完整地加密一次;换言之,CBC-MAC的计算效率相当于所采用的区块加密演算法。
[0011]由上述说明可知,当采用MAC-then-encrypt方法时,所耗费的计算时间相当于原本未采用消息验证码时的计算时间的两倍,多出来的时间来自于计算消息验证码的时间。当欲加密的消息的数据量很大时,多一倍的时间消耗对一般的应用而言仍属不可忽略的负担。有鉴于此,如何能满足机密性、完整性及来源认证等三个基本的安全需求,同时又降低时间成本为本领域仍亟需解决的课题。
【发明内容】
[0012]为解决前述问题,本发明提供一种兼具完整性验证的区块加密装置、区块加密方法、区块解密装置及区块解密方法。
[0013]本发明所提供的区块加密方法是由一电脑执行。该区块加密方法包含下列步骤:(a)取得一第一向量及一第二向量,(b)将一电子文件分割为数个消息区块,该等消息区块具有一顺序,(C)将一检查向量加入该等消息区块,使该检查向量作为该等消息区块中的最后一个。该区块加密方法更包含步骤(d),其是依该顺序对各该消息区块进行以下运作:(dl)产生一输入区块,该输入区块的值等于该消息区块、该消息区块的前一个消息区块所对应的一输出区块及该消息区块的前前一个消息区块进行异或(XOR)运算后的值,(d2)以一金钥对该输入区块加密以得一输出区块,以及(d3)将该输出区块与该消息区块的前一个消息区块进行异或运算以得一密文区块。当该步骤(d)处理该等消息区块中的第一个时,该消息区块的前一个消息区块所对应的该输出区块为该第一向量,且该消息区块的前前一个消息区块为一全零向量,当该步骤(d)处理该等消息区块中的第二个时,该消息区块的前前一个消息区块为该第二向量。该区块加密方法更包含步骤(e),其是依该顺序串接该等密文区块以产生一电子密文。
[0014]本发明所提供的区块解密方法是由一电脑执行。该区块解密方法包含下列步骤:(a)取得一第一向量及一第二向量,以及(b)将一电子密文分割为数个密文区块,该等密文区块具有一顺序。该区块解密方法更包含步骤(C),其是依该顺序对各该密文区块进行以下运作:(cl)产生一输入区块,该输入区块的值等于该密文区块、该密文区块的前一个密文区块所对应的一输出区块及该密文区块的前前一个密文区块进行异或运算后的值,(c2)以一金钥对该输入区块解密以得一输出区块,以及(c3)产生一消息区块,该消息区块的值等于该输出区块与该密文区块的前一个密文区块进行异或运算后的值。当该步骤(C)处理该等密文区块中的第一个时,该密文区块的前一个密文区块所对应的该输出区块为该第二向量,且该密文区块的前前一个密文区块为一全零向量,当该步骤(C)处理该等密文区块中的第二个时,该密文区块的前前一个密文区块为该第一向量。该区块解密方法更包含下列步骤:(d)将该等消息区块中的最后一个与一检查向量比对,及(e)当该等消息区块中的最后一个与该检查向量相同时,将排除该等消息区块中的最后一个后的该等消息区块依该顺序串接为一解密文件。
[0015]本发明所提供的另一区块解密方法亦由一电脑执行。该区块解密方法包含下列步骤:(a)取得一第一向量及一第二向量,(b)将一电子密文分割为数个密文区块,该等密文区块具有一第一顺序,且该等密文区块中的最后一个为一参考向量,(C)排除该等密文区块中的最后一个,(d)于步骤(C)后,将该等密文区块以一第二顺序重新排列,其中该第二顺序为该第一顺序的反序,(e)将该第一向量加入该等密文区块,使该第一向量为该等密文区块中的最后一个。该区块解密方法更包含步骤(f),其是依据该第二顺序,对各该密文区块进行以下运作:(fl)产生一输入区块,该输入区块的值等于该密文区块、该密文区块的前一个密文区块所对应的一输出区块及该密文区块的前前一个密文区块进行异或运算后的值,(f2)以一金钥对该输入区块加密以得一输出区块,以及(f3)将该输出区块与该密文区块的前一个密文区块进行异或运算以得一消息区块。当该步骤(Π)处理该等密文区块中的第一个时,该密文区块的前一个密文区块所对应的该输出区块为一检查向量,且该密文区块的前前一个密文区块为一全零向量,当该步骤(Π)处理该等密文区块中的第二个时,该密文区块的前前一个密文区块为该参考向量。该区块解密方法更包含下列步骤:(g)将该等消息区块中的最后一个与该第二向量比对,以及(h)当该等消息区块中的最后一个与该第二向量相同时,排除该等消息区块中的最后一个,再依据该第二顺序,倒序地串接剩余的该等消息区块以产生一解密文件。
[0016]本发明所提供的区块加密装置包含一储存单元及一处理单元,其中该储存单元储存一金钥,且该处理单元,电性连接至该储存单元。该处理单元用以进行以下运作:(a)取得一第一向量及一第二向量,(b)将一电子文件分割为数个消息区块,该等消息区块具有一顺序,及(c)将一检查向量加入该等消息区块,使该检查向量作为该等消息区块中的最后一个。该处理单元更依该顺序对各该消息区块进行以下运作:(dl)产生一输入区块,该输入区块的值等于该消息区块、该消息区块的前一个消息区块所对应的一输出区块及该消息区块的前前一个消息区块进行异或运算后的值,(d2)以一金钥对该输入区块加密以得一输出区块,以及(d3)将该输出区块与该消息区块的前一个消息区块进行异或运算以得一密文区块,其中,当该处理单元处理该等消息区块中的第一个时,该消息区块的前一个消息区块所对应的该输出区块为该第一向量,且该消息区块的前前一个消息区块为一全零向量,当该处理单元处理该等消息区块中的第二个时,该消息区块的前前一个消息区块为该第二向量。该处理单元更依该顺序串接该等密文区块以产生一电子密文。
[0017]本发明所提供的区块解密装置包含一储存单元及一处理单元,其中该储存单元储存一金钥,且该处理单元电性连接至该储存单元。该处理单元用以进行以下运作:(a)取得一第一向量及一第二向量,及(b)将一电子密文分割为数个密文区块,该等密文区块具有一顺序。该处理单元更依该顺序对各该密文区块进行以下运作:(Cl)产生一输入区块,该输入区块的值等于该密文区块、该密文区块的前一个密文区块所对应的一输出区块及该密文区块的前前一个密文区块进行异或运算后的值,(c2)以一金钥对该输入区块解密以得一输出区块,以及(c3)产生一消息区块,该消息区块的值等于该输出区块与该密文区块的前一个密文区块进行异或运算后的值。当该处理单元处理该等密文区块中的第一个时,该密文区块的前一个密文区块所对应的该输出区块为该第二向量,且该密文区块的前前一个密文区块为一全零向量,当该处理单元处理该等密文区块中的第二个时,该密文区块的前前一个密文区块为该第一向量。该处理单元更将该等消息区块中的最后一个与一检查向量比对。当该等消息区块中的最后一个与该检查向量相同时,该处理单元更将排除该等消息区块中的最后一个后的该等消息区块依该顺序串接为一解密文件。
[0018]本发明所提供的另一区块解密装置包含一储存单元及一处理单元,其中该储存单元储存一金钥,且该处理单元电性连接至该储存单元。该处理单元用以进行以下运作:(a)取得一第一向量及一第二向量,(b)将一电子密文分割为数个密文区块,该等密文区块具有一第一顺序,且该等密文区块中的最后一个为一参考向量,(C)排除该等密文区块中的最后一个,(d)将该等密文区块以一第二顺序重新排列,其中该第二顺序为该第一顺序的反序,以及(e)将该第一向量加入该等密文区块,使该第一向量为该等密文区块中的最后一个。该处理单元更依据该第二顺序,对各该密文区块进行以下运作:(Π)产生一输入区块,该输入区块的值等于该密文区块、该密文区块的前一个密文区块所对应的一输出区块及该密文区块的前前一个密文区块进行异或运算后的值,(f2)以一金钥对该输入区块加密以得一输出区块,以及(f3)将该输出区块与该密文区块的前一个密文区块进行异或运算以得一消息区块。当该处理单元处理该等密文区块中的第一个时,该密文区块的前一个密文区块所对应的该输出区块为一检查向量,且该密文区块的前前一个密文区块为一全零向量,当该处理单元处理该等密文区块中的第二个时,该密文区块的前前一个密文区块为该参考向量。该处理单元更将该等消息区块中的最后一个与该第二向量比对。当该等消息区块中的最后一个与该第二向量相同时,该处理单元更排除该等消息区块中的最后一个,再依据该第二顺序,倒序地串接剩余的该等消息区块以产生一解密文件。
[0019]本发明的区块加密装置及方法将电子文件所包含的数个消息区块与电子密文所包含的数个密文区块作较多层次的关联。通过此种方式,若电子密文中的任一密文区块被窜改(或传输错误),则解密装置及方法将电