兼具完整性验证的区块加密装置、区块加密方法、区块解密装置及区块解密方法转让专利

申请号 : CN201310613143.5

文献号 : CN104683093B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 颜嵩铭涂政宏吴瑞明

申请人 : 财团法人资讯工业策进会

摘要 :

本发明提供了一种兼具完整性验证的区块加密装置、区块加密方法、区块解密装置及区块解密方法。加密装置将一电子文件分割为数个消息区块,且该等消息区块具有一顺序。加密装置以一检查向量作为该等消息区块的最后一个。加密装置依该顺序对各该消息区块进行以下运作:产生一输入区块,以一金钥将该输入区块加密为一输出区块,且将该输出区块与前一消息区块进行异或运算以得一密文区块,该输入区块的值等于该消息区块、前一消息区块所对应的输出区块及前前一消息区块进行异或运算后的值。加密装置依该顺序串接该等密文区块以产生一电子密文。解密装置则进行与加密装置相对应的运作。

权利要求 :

1.一种区块加密装置,其特征在于,包含:

一储存单元,储存一金钥;以及

一处理单元,电性连接至该储存单元,且用以进行以下运作:

(a)取得一第一向量及一第二向量,

(b)将一电子文件分割为数个消息区块,所述消息区块具有一顺序,(c)将一检查向量加入所述消息区块,使该检查向量作为所述消息区块中的最后一个,(d)依该顺序对各该消息区块进行以下运作:(d1)产生一输入区块,该输入区块的值等于该消息区块、该消息区块的前一个消息区块所对应的一输出区块及该消息区块的前前一个消息区块进行异或(XOR)运算后的值,(d2)以一金钥对该输入区块加密以得一输出区块,以及(d3)将该输出区块与该消息区块的前一个消息区块进行异或运算以得一密文区块,以及(e)依该顺序串接所述密文区块以产生一电子密文,

其中,当该处理单元处理所述消息区块中的第一个时,该消息区块的前一个消息区块所对应的该输出区块为该第一向量,且该消息区块的前前一个消息区块为一全零向量,当该处理单元处理所述消息区块中的第二个时,该消息区块的前前一个消息区块为该第二向量;

其中,该处理单元更于处理所述消息区块中的最后一个前,对所述密文区块进行异或运算以得一暂时区块,再对该暂时区块进行一函式运算以得该检查向量。

2.如权利要求1所述的区块加密装置,其特征在于,该处理单元是经由对该消息区块及该消息区块的前一个消息区块所对应的该密文区块进行异或运算以产生该输入区块。

3.如权利要求1所述的区块加密装置,其特征在于,该处理单元是对各该消息区块进行以下运作以产生该输入区块:对该消息区块及该消息区块的前前一个消息区块进行异或运算以得一暂时区块,以及对该暂时区块及该消息区块的前一个消息区块所对应的该输出区块进行异或运算以得该输入区块。

4.如权利要求1所述的区块加密装置,其特征在于,该处理单元是经由以下运作来完成该运作(d1)、该运作(d2)及该运作(d3):将各该消息区块各自与前前一个消息区块进行异或运算以得数个暂时区块,利用该金钥、该第一向量及一加密区块连锁器将所述暂时区块加密为所述输出区块,以及将各该输出区块各自与前一个消息区块进行异或运算以得所述密文区块。

5.如权利要求1所述的区块加密装置,其特征在于,该函式运算为一金钥加密运算、一旋转运算及一杂凑运算其中之一。

6.一种区块解密装置,其特征在于,包含:

一储存单元,储存一金钥;以及

一处理单元,电性连接至该储存单元,且用以进行以下运作:

(a)取得一第一向量及一第二向量,

(b)将一电子密文分割为数个密文区块,所述密文区块具有一顺序,(c)依该顺序对各该密文区块进行以下运作:

(c1)产生一输入区块,该输入区块的值等于该密文区块、该密文区块的前一个密文区块所对应的一输出区块及该密文区块的前前一个密文区块进行异或运算后的值,(c2)以一金钥对该输入区块解密以得一输出区块,以及(c3)产生一消息区块,该消息区块的值等于该输出区块与该密文区块的前一个密文区块进行异或运算后的值,(d)将所述消息区块中的最后一个与一检查向量比对,以及

(e)当所述消息区块中的最后一个与该检查向量相同时,将排除所述消息区块中的最后一个后的所述消息区块依该顺序串接为一解密文件,其中,当该处理单元处理所述密文区块中的第一个时,该密文区块的前一个密文区块所对应的该输出区块为该第二向量,且该密文区块的前前一个密文区块为一全零向量,当该处理单元处理所述密文区块中的第二个时,该密文区块的前前一个密文区块为该第一向量;

其中,该处理单元更对排除最后一个密文区块后的所述密文区块进行异或运算以得一暂时区块,再以对该暂时区块进行一函式运算以得该检查向量。

7.如权利要求6所述的区块解密装置,其特征在于,该处理单元是经由对该密文区块及该密文区块的前一个密文区块所对应的该消息区块进行异或运算以产生该输入区块,且该处理单元是经由对该输出区块与该密文区块的前一个密文区块进行异或运算以得该消息区块。

8.如权利要求6所述的区块解密装置,其特征在于,该处理单元是经由对该密文区块及该密文区块的前一个密文区块所对应的该消息区块进行异或运算以产生该输入区块,该处理单元是经由对该密文区块的前前一个密文区块所对应的该消息区块、该输出区块及该密文区块的前一个密文区块所对应的该输入区块进行异或运算以得该消息区块,其中当该处理单元处理所述密文区块中的第一个时,该密文区块的前前一个密文区块所对应的该消息区块为该全零向量,且该密文区块的前一个密文区块所对应的该输入区块为该第一向量,当该处理单元处理所述密文区块中的第二个时,该密文区块的前前一个密文区块所对应的该消息区块为该第二向量。

9.如权利要求6所述的区块解密装置,其特征在于,该函式运算为一金钥加密运算、一旋转运算及一杂凑运算其中之一。

10.一种区块解密装置,其特征在于,包含:

一储存单元,储存一金钥;以及

一处理单元,电性连接至该储存单元,且用以进行以下运作:

(f)取得一第一向量及一第二向量,

(g)将一电子密文分割为数个密文区块,所述密文区块具有一第一顺序,且所述密文区块中的最后一个为一参考向量,(h)排除所述密文区块中的最后一个,

(i)将所述密文区块以一第二顺序重新排列,其中该第二顺序为该第一顺序的反序,(j)将该第一向量加入所述密文区块,使该第一向量为所述密文区块中的最后一个,(k)依据该第二顺序,对各该密文区块进行以下运作:(k1)产生一输入区块,该输入区块的值等于该密文区块、该密文区块的前一个密文区块所对应的一输出区块及该密文区块的前前一个密文区块进行异或运算后的值,(k2)以一金钥对该输入区块加密以得一输出区块,以及(k3)将该输出区块与该密文区块的前一个密文区块进行异或运算以得一消息区块,(l)将所述消息区块中的最后一个与该第二向量比对,以及(m)当所述消息区块中的最后一个与该第二向量相同时,排除所述消息区块中的最后一个,再依据该第二顺序,倒序地串接剩余的所述消息区块以产生一解密文件,其中,当该处理单元处理所述密文区块中的第一个时,该密文区块的前一个密文区块所对应的该输出区块为一检查向量,且该密文区块的前前一个密文区块为一全零向量,当该处理单元处理所述密文区块中的第二个时,该密文区块的前前一个密文区块为该参考向量;

其中,该处理单元更对排除最后一个密文区块后的所述密文区块进行异或运算以得一暂时区块,再对该暂时区块进行一函式运算以得该检查向量。

11.如权利要求10所述的区块解密装置,其特征在于,该处理单元是经由将该密文区块与该密文区块的前一个密文区块所对应的该消息区块进行异或运算以得该输入区块。

12.如权利要求10所述的区块解密装置,其特征在于,该函式运算为一金钥加密运算、一旋转运算及一杂凑运算其中之一。

13.如权利要求10所述的区块解密装置,其特征在于,该处理单元是经由以下运作来完成该运作(k1)、该运作(k2)及该运作(k3):(n1)以所述密文区块、该检查向量、该参考向量及该金钥分别作为如权利要求1所述的区块加密装置执行该运作(d)时所使用的所述消息区块、该第一向量、该第二向量及该金钥,以及(n2)利用如权利要求1所述的区块加密装置执行如权利要求1所述的该运作(d),藉此得到所述消息区块。

14.一种电脑执行的区块加密方法,其特征在于,包含下列步骤:(a)取得一第一向量及一第二向量;

(b)将一电子文件分割为数个消息区块,所述消息区块具有一顺序;

(c)将一检查向量加入所述消息区块,使该检查向量作为所述消息区块中的最后一个;

(d)依该顺序对各该消息区块进行以下运作:

(d1)产生一输入区块,该输入区块的值等于该消息区块、该消息区块的前一个消息区块所对应的一输出区块及该消息区块的前前一个消息区块进行异或运算后的值;

(d2)以一金钥对该输入区块加密以得一输出区块;以及

(d3)将该输出区块与该消息区块的前一个消息区块进行异或运算以得一密文区块;以及(e)依该顺序串接所述密文区块以产生一电子密文;

其中,当该步骤(d)处理所述消息区块中的第一个时,该消息区块的前一个消息区块所对应的该输出区块为该第一向量,且该消息区块的前前一个消息区块为一全零向量,当该步骤(d)处理所述消息区块中的第二个时,该消息区块的前前一个消息区块为该第二向量;

其中,该步骤(d)处理所述消息区块中的最后一个前,对所述密文区块进行异或运算以得一暂时区块;以及对该暂时区块进行一函式运算以得该检查向量。

15.如权利要求14所述的区块加密方法,其特征在于,该步骤(d1)是经由对该消息区块及该消息区块的前一个消息区块所对应的该密文区块进行异或运算以产生该输入区块。

16.如权利要求14所述的区块加密方法,其特征在于,该步骤(d1)是包含以下步骤:对该消息区块及该消息区块的前前一个消息区块进行异或运算以得一暂时区块;以及对该暂时区块及该消息区块的前一个消息区块所对应的该输出区块进行异或运算以得该输入区块。

17.如权利要求14所述的区块加密方法,其特征在于,该步骤(d)是经由以下步骤来完成该步骤(d1)、该步骤(d2)及该步骤(d3):将各该消息区块各自与前前一个消息区块进行异或运算以得数个暂时区块;

利用该金钥、该第一向量及一加密区块连锁器将所述暂时区块加密为所述输出区块;

以及

将各该输出区块各自与前一个消息区块进行异或运算以得所述密文区块。

18.如权利要求14所述的区块加密方法,其特征在于,该函式运算为一金钥加密运算、一旋转运算及一杂凑运算其中之一。

19.一种电脑执行的区块解密方法,其特征在于,包含下列步骤:(a)取得一第一向量及一第二向量;

(b)将一电子密文分割为数个密文区块,所述密文区块具有一顺序;

(c)依该顺序对各该密文区块进行以下运作:

(c1)产生一输入区块,该输入区块的值等于该密文区块、该密文区块的前一个密文区块所对应的一输出区块及该密文区块的前前一个密文区块进行异或运算后的值;

(c2)以一金钥对该输入区块解密以得一输出区块;以及

(c3)产生一消息区块,该消息区块的值等于该输出区块与该密文区块的前一个密文区块进行异或运算后的值;

(d)将所述消息区块中的最后一个与一检查向量比对;以及

(e)当所述消息区块中的最后一个与该检查向量相同时,将排除所述消息区块中的最后一个后的所述消息区块依该顺序串接为一解密文件;

其中,当该步骤(c)处理所述密文区块中的第一个时,该密文区块的前一个密文区块所对应的该输出区块为该第二向量,且该密文区块的前前一个密文区块为一全零向量,当该步骤(c)处理所述密文区块中的第二个时,该密文区块的前前一个密文区块为该第一向量;

其中,所述的区块解密方法还包含下列步骤:

对排除最后一个密文区块后的所述密文区块进行异或运算以得一暂时区块;以及对该暂时区块进行一函式运算以得该检查向量。

20.如权利要求19所述的区块解密方法,其特征在于,该步骤(c1)是经由对该密文区块及该密文区块的前一个密文区块所对应的该消息区块进行异或运算以产生该输入区块,该步骤(c3)是经由对该输出区块与该密文区块的前一个密文区块进行异或运算以得该消息区块。

21.如权利要求19所述的区块解密方法,其特征在于,该步骤(c1)是经由对该密文区块及该密文区块的前一个密文区块所对应的该消息区块进行异或运算以产生该输入区块,该步骤(c3)是经由对该密文区块的前前一个密文区块所对应的该消息区块、该输出区块及该密文区块的前一个密文区块所对应的该输入区块进行异或运算以得该消息区块,其中当该步骤(c3)处理所述密文区块中的第一个时,该密文区块的前前一个密文区块所对应的该消息区块为该全零向量,且该密文区块的前一个密文区块所对应的该输入区块为该第一向量,当该步骤(c3)处理所述密文区块中的第二个时,该密文区块的前前一个密文区块所对应的该消息区块为该第二向量。

22.如权利要求19所述的区块解密方法,其特征在于,该函式运算为一金钥加密运算、一旋转运算及一杂凑运算其中之一。

23.一种电脑执行的区块解密方法,其特征在于,包含下列步骤:(f)取得一第一向量及一第二向量;

(g)将一电子密文分割为数个密文区块,所述密文区块具有一第一顺序,且所述密文区块中的最后一个为一参考向量;

(h)排除所述密文区块中的最后一个;

(i)于步骤(h)后,将所述密文区块以一第二顺序重新排列,其中该第二顺序为该第一顺序的反序;

(j)将该第一向量加入所述密文区块,使该第一向量为所述密文区块中的最后一个;

(k)依据该第二顺序,对各该密文区块进行以下运作:

(k1)产生一输入区块,该输入区块的值等于该密文区块、该密文区块的前一个密文区块所对应的一输出区块及该密文区块的前前一个密文区块进行异或运算后的值;

(k2)以一金钥对该输入区块加密以得一输出区块;以及

(k3)将该输出区块与该密文区块的前一个密文区块进行异或运算以得一消息区块;

(l)将所述消息区块中的最后一个与该第二向量比对;以及

(m)当所述消息区块中的最后一个与该第二向量相同时,排除所述消息区块中的最后一个,再依据该第二顺序,倒序地串接剩余的所述消息区块以产生一解密文件;

其中,当该步骤(k1)处理所述密文区块中的第一个时,该密文区块的前一个密文区块所对应的该输出区块为一检查向量,且该密文区块的前前一个密文区块为一全零向量,当该步骤(k2)处理所述密文区块中的第二个时,该密文区块的前前一个密文区块为该参考向量;

其中,所述的区块解密方法于步骤(g)后,对排除最后一个密文区块后的所述密文区块进行异或运算以得一暂时区块;以及对该暂时区块进行一函式运算以得该检查向量。

24.如权利要求23所述的区块解密方法,其特征在于,该步骤(k1)是经由将该密文区块与该密文区块的前一个密文区块所对应的该消息区块进行异或运算以得该输入区块。

25.如权利要求23所述的区块解密方法,其特征在于,该函式运算为一金钥加密运算、一旋转运算及一杂凑运算其中之一。

26.如权利要求23所述的区块解密方法,其特征在于,该步骤(k)是经由以下步骤来完成该步骤(k1)、该步骤(k2)及该步骤(k3):(n1)以所述密文区块、该检查向量、该参考向量及该金钥分别作为如权利要求1所述的区块加密装置执行该运作(d)时所使用的所述消息区块、该第一向量、该第二向量及该金钥;以及(n2)利用如权利要求1所述的区块加密装置执行如权利要求1所述的该运作(d),藉此得到所述消息区块。

说明书 :

兼具完整性验证的区块加密装置、区块加密方法、区块解密装

置及区块解密方法

技术领域

[0001] 本发明是关于一种区块加密装置、区块加密方法、区块解密装置及区块解密方法;更具体而言,本发明是关于一种兼具完整性验证的区块加密装置、区块加密方法、区块解密装置及区块解密方法。

背景技术

[0002] 在一对一的安全通信中,唯有同时满足机密性、完整性及来源认证等三个基本的安全需求,才能确保消息在通信的传递过程为安全无虞的。机密性是指消息在传递过程中不会被第三方取得其内容。完整性是指消息的接收方必须能够确保接收到的消息内容和传送方所传送的消息内容一致,亦即消息的内容未被窜改。来源验证则指消息的接收方必须要能验证该消息确实是预期的传送方所传送。
[0003] 在网络通信中,常以对称式加解密法作为安全通信的机制。传送方及接收方事先协议一金钥,传送方再以该金钥及一对称式加密演算法将所欲传送的消息加密为一密文。接收方接收该密文后,利用同样的金钥及与该对称式加密演算法对应的一对称式解密演算法对该密文进行解密,藉此取得传送方先前所传送的消息。
[0004] 当传送方所要加密的消息的数据量大于对称式加密演算法所能处理的一个区块,则必须配合区块操作模式(mode of operation)一起运作。采用区块操作模式的目的在于将个别的消息区块以安全的方式连结,避免某些消息区块被泄露或遭受额外的攻击。加密区块连锁(Cipher Block Chaining;以下简称「CBC」)模式为区块操作模式中的一种,其加密机制及解密机制是分别描绘于图1A及图1B。
[0005] 如图1A所描绘,CBC模式的加密机制会将所欲传送的电子文件M切割为数个大小相同的消息区块m1、m2、m3、m4、……、mt,再对每一个消息区块m1、m2、m3、m4、……、mt进行个别的加密处理。具体而言,针对这些消息区块中的第一 个(亦即,消息区块m1),加密机制先将的与一初始向量(Initial Vector)IV进行异或(exclusive OR;XOR)运算,再以对称式加密演算法及金钥K对异或运算后的结果进行加密运算E,藉此产生消息区块m1所对应的密文区块c1。针对其余消息区块(亦即,消息区块m2、m3、m4、……、mt)中的每一个,加密机制先将的与前一消息区块所对应的密文区块(亦即,密文区块c1、c2、c3、……、ct-1)进行异或运算,再以对称式加密演算法及同样的金钥K对异或运算后的结果进行加密运算E,藉此产生密文区块(亦即,密文区块c2、c3、c4、……、ct)。最后,加密机制再经由串接密文区块c1、c2、c3、……、ct以产生电子密文C。
[0006] 如图1B所描绘,CBC模式的解密机制会将接收到的电子密文C切割为数个大小相同的密文区块c1、c2、c3、c4、……、ct,再对每一个密文区块c1、c2、c3、c4、……、ct进行个别的解密处理。具体而言,针对这些密文区块中的第一个(亦即,密文区块c1),解密机制先以与该对称式加密演算法相对应的一对称式解密演算法及同样的金钥K进行解密运算D,再将解密后的结果与初始向量IV进行异或运算,藉此产生密文区块c1所对应的消息区块m1。针对其余的密文区块(亦即,消息区块c2、c3、c4、……、ct)中的每一个,解密机制亦先以该对称式解密演算法及同样的金钥K进行解密运算D,再将解密后的结果与前一密文区块(亦即,密文区块c1、c2、c3、……、ct-1)进行异或运算,藉此产生消息区块(亦即,消息区块m2、m3、m4、……、mt)。最后,解密机制再经由串接消息区块m1、m2、m3、……、mt以产生电子文件M。
[0007] 对称式加解密演算法能满足前述机密性的要求,但却无法满足完整性的要求。具体而言,若攻击者窜改电子密文,接收方在接收被窜改的电子密文后,仍能对的进行解密运算。举例而言,若攻击者将前述电子密文C(包含密文区块c1、c2、c3、……、ct)窜改为电子密文C’(包含密文区块c1’、c2、c3、……、ct),接收方仍能将电子密文C’解密为电子文件M’(包含消息区块m1’、m2’、m3、m4、……、mt),如图1C所示。然而,在大部分情况下,接收方无法判断解密后所获得的消息(例如:电子文件M’)的真伪。特别是当传送方原先欲传送的消息为程序、伺服器或其他人类无法辨识的消息,则接收方在对被窜改的电子密文解密后,便无法察觉解密后的消息有何异常。
[0008] 当完整性的安全需求无法达成时,连带的来源认证也无法满足。具体而言, 攻击者可任选一个乱数作为电子密文,并假冒传送方的身分将的传送给接收方,接收方则会以金钥及对称式解密演算法将接收到的电子密文(亦即,攻击者所任选的乱数)解密为一明文。由于接收方无法进行完整性检查,所以无法查觉接收到的电子密文及解密后的明文有何异常。主要的原因在于金钥为传送方及接收方所共有,故接收方将视解密后的明文为传送方所传送,但实际上该电子密文是由攻击者所传送。由此可知,在对称式加解密演算法无法满足完整性要求的情形下,亦无法对来源进行认证。
[0009] 为解决上述问题,有多种方法可作为解决之道。举例而言,当采用安全数据传输层(secure sockets layer;以下简称「SSL」)/传送层保全(transport layer security;以下简称「TLS」)机制进行传输时,其解决之道是描绘于图1D。传送方及接收方事先协定二把金钥K及Km,当传送方欲传送电子文件MS予接收方时,传送方先利用金钥Km对电子文件MS进行消息验证码(Message Authentication Code;MAC)运算MAC,以产生一消息验证码z1。接着,传送方将电子文件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 message authentication code;以下简称「HMAC」),另一种则是结合CBC模式的密码区块连结消息验证码(以下简称「CBC-MAC」)。HMAC的计算效率取决于所采用的杂凑函数。为了满足安全性的要求,较常采用的杂凑演算法 为SHA-1、SHA-2等,而这些较为复杂的杂凑演算法,其计算效率相当接近常见的进阶加密标准(advanced encryption standard;AES)的计算效率。另一方面,就CBC-MAC来看,虽然CBC-MAC只使用最后一个区块的密文作为输出,但其计算过程即是将输入的数据完整地加密一次;换言之,CBC-MAC的计算效率相当于所采用的区块加密演算法。
[0011] 由上述说明可知,当采用MAC-then-encrypt方法时,所耗费的计算时间相当于原本未采用消息验证码时的计算时间的两倍,多出来的时间来自于计算消息验证码的时间。当欲加密的消息的数据量很大时,多一倍的时间消耗对一般的应用而言仍属不可忽略的负担。有鉴于此,如何能满足机密性、完整性及来源认证等三个基本的安全需求,同时又降低时间成本为本领域仍亟需解决的课题。

发明内容

[0012] 为解决前述问题,本发明提供一种兼具完整性验证的区块加密装置、区块加密方法、区块解密装置及区块解密方法。
[0013] 本发明所提供的区块加密方法是由一电脑执行。该区块加密方法包含下列步骤:(a)取得一第一向量及一第二向量,(b)将一电子文件分割为数个消息区块,该等消息区块具有一顺序,(c)将一检查向量加入该等消息区块,使该检查向量作为该等消息区块中的最后一个。该区块加密方法更包含步骤(d),其是依该顺序对各该消息区块进行以下运作:
(d1)产生一输入区块,该输入区块的值等于该消息区块、该消息区块的前一个消息区块所对应的一输出区块及该消息区块的前前一个消息区块进行异或(XOR)运算后的值,(d2)以一金钥对该输入区块加密以得一输出区块,以及(d3)将该输出区块与该消息区块的前一个消息区块进行异或运算以得一密文区块。当该步骤(d)处理该等消息区块中的第一个时,该消息区块的前一个消息区块所对应的该输出区块为该第一向量,且该消息区块的前前一个消息区块为一全零向量,当该步骤(d)处理该等消息区块中的第二个时,该消息区块的前前一个消息区块为该第二向量。该区块加密方法更包含步骤(e),其是依该顺序串接该等密文区块以产生一电子密文。
[0014] 本发明所提供的区块解密方法是由一电脑执行。该区块解密方法包含下列步骤:(a)取得一第一向量及一第二向量,以及(b)将一电子密文分割为数个密文区块,该等密文区块具有一顺序。该区块解密方法更包含步骤(c),其是依该顺序对各该密文区块进行以下运作:(c1)产生一输入区块,该输入区块的值等于该密文区块、该密文区块的前一个密文区块所对应的一输出区块及该密文区块的前前一个密文区块进行异或运算后的值,(c2)以一金钥对该输入区块解密以得一输出区块,以及(c3)产生一消息区块,该消息区块的值等于该输出区块与该密文区块的前一个密文区块进行异或运算后的值。当该步骤(c)处理该等密文区块中的第一个时,该密文区块的前一个密文区块所对应的该输出区块为该第二向量,且该密文区块的前前一个密文区块为一全零向量,当该步骤(c)处理该等密文区块中的第二个时,该密文区块的前前一个密文区块为该第一向量。该区块解密方法更包含下列步骤:(d)将该等消息区块中的最后一个与一检查向量比对,及(e)当该等消息区块中的最后一个与该检查向量相同时,将排除该等消息区块中的最后一个后的该等消息区块依该顺序串接为一解密文件。
[0015] 本发明所提供的另一区块解密方法亦由一电脑执行。该区块解密方法包含下列步骤:(a)取得一第一向量及一第二向量,(b)将一电子密文分割为数个密文区块,该等密文区块具有一第一顺序,且该等密文区块中的最后一个为一参考向量,(c)排除该等密文区块中的最后一个,(d)于步骤(c)后,将该等密文区块以一第二顺序重新排列,其中该第二顺序为该第一顺序的反序,(e)将该第一向量加入该等密文区块,使该第一向量为该等密文区块中的最后一个。该区块解密方法更包含步骤(f),其是依据该第二顺序,对各该密文区块进行以下运作:(f1)产生一输入区块,该输入区块的值等于该密文区块、该密文区块的前一个密文区块所对应的一输出区块及该密文区块的前前一个密文区块进行异或运算后的值,(f2)以一金钥对该输入区块加密以得一输出区块,以及(f3)将该输出区块与该密文区块的前一个密文区块进行异或运算以得一消息区块。当该步骤(f1)处理该等密文区块中的第一个时,该密文区块的前一个密文区块所对应的该输出区块为一检查向量,且该密文区块的前前一个密文区块为一全零向量,当该步骤(f1)处理该等密文区块中的第二个时,该密文 区块的前前一个密文区块为该参考向量。该区块解密方法更包含下列步骤:(g)将该等消息区块中的最后一个与该第二向量比对,以及(h)当该等消息区块中的最后一个与该第二向量相同时,排除该等消息区块中的最后一个,再依据该第二顺序,倒序地串接剩余的该等消息区块以产生一解密文件。
[0016] 本发明所提供的区块加密装置包含一储存单元及一处理单元,其中该储存单元储存一金钥,且该处理单元,电性连接至该储存单元。该处理单元用以进行以下运作:(a)取得一第一向量及一第二向量,(b)将一电子文件分割为数个消息区块,该等消息区块具有一顺序,及(c)将一检查向量加入该等消息区块,使该检查向量作为该等消息区块中的最后一个。该处理单元更依该顺序对各该消息区块进行以下运作:(d1)产生一输入区块,该输入区块的值等于该消息区块、该消息区块的前一个消息区块所对应的一输出区块及该消息区块的前前一个消息区块进行异或运算后的值,(d2)以一金钥对该输入区块加密以得一输出区块,以及(d3)将该输出区块与该消息区块的前一个消息区块进行异或运算以得一密文区块,其中,当该处理单元处理该等消息区块中的第一个时,该消息区块的前一个消息区块所对应的该输出区块为该第一向量,且该消息区块的前前一个消息区块为一全零向量,当该处理单元处理该等消息区块中的第二个时,该消息区块的前前一个消息区块为该第二向量。该处理单元更依该顺序串接该等密文区块以产生一电子密文。
[0017] 本发明所提供的区块解密装置包含一储存单元及一处理单元,其中该储存单元储存一金钥,且该处理单元电性连接至该储存单元。该处理单元用以进行以下运作:(a)取得一第一向量及一第二向量,及(b)将一电子密文分割为数个密文区块,该等密文区块具有一顺序。该处理单元更依该顺序对各该密文区块进行以下运作:(c1)产生一输入区块,该输入区块的值等于该密文区块、该密文区块的前一个密文区块所对应的一输出区块及该密文区块的前前一个密文区块进行异或运算后的值,(c2)以一金钥对该输入区块解密以得一输出区块,以及(c3)产生一消息区块,该消息区块的值等于该输出区块与该密文区块的前一个密文区块进行异或运算后的值。当该处理单元处理该等密文区块中的第一个时,该密文区块的前一个密文区块所对应的该输出区块为该第二向量,且该密文区块的前前一个密文区块为一全零向量, 当该处理单元处理该等密文区块中的第二个时,该密文区块的前前一个密文区块为该第一向量。该处理单元更将该等消息区块中的最后一个与一检查向量比对。当该等消息区块中的最后一个与该检查向量相同时,该处理单元更将排除该等消息区块中的最后一个后的该等消息区块依该顺序串接为一解密文件。
[0018] 本发明所提供的另一区块解密装置包含一储存单元及一处理单元,其中该储存单元储存一金钥,且该处理单元电性连接至该储存单元。该处理单元用以进行以下运作:(a)取得一第一向量及一第二向量,(b)将一电子密文分割为数个密文区块,该等密文区块具有一第一顺序,且该等密文区块中的最后一个为一参考向量,(c)排除该等密文区块中的最后一个,(d)将该等密文区块以一第二顺序重新排列,其中该第二顺序为该第一顺序的反序,以及(e)将该第一向量加入该等密文区块,使该第一向量为该等密文区块中的最后一个。该处理单元更依据该第二顺序,对各该密文区块进行以下运作:(f1)产生一输入区块,该输入区块的值等于该密文区块、该密文区块的前一个密文区块所对应的一输出区块及该密文区块的前前一个密文区块进行异或运算后的值,(f2)以一金钥对该输入区块加密以得一输出区块,以及(f3)将该输出区块与该密文区块的前一个密文区块进行异或运算以得一消息区块。当该处理单元处理该等密文区块中的第一个时,该密文区块的前一个密文区块所对应的该输出区块为一检查向量,且该密文区块的前前一个密文区块为一全零向量,当该处理单元处理该等密文区块中的第二个时,该密文区块的前前一个密文区块为该参考向量。该处理单元更将该等消息区块中的最后一个与该第二向量比对。当该等消息区块中的最后一个与该第二向量相同时,该处理单元更排除该等消息区块中的最后一个,再依据该第二顺序,倒序地串接剩余的该等消息区块以产生一解密文件。
[0019] 本发明的区块加密装置及方法将电子文件所包含的数个消息区块与电子密文所包含的数个密文区块作较多层次的关联。通过此种方式,若电子密文中的任一密文区块被窜改(或传输错误),则解密装置及方法将电子密文解密后所得的最后一个消息区块,其内容将会是错误的。由于解密装置及方法会知道最后一个消息区块应当为何,因此能据以察觉电子密文的完整性已被破坏,进而舍弃该电子密文。由 此可知,本发明所揭露的技术能够在未进行消息验证码运算的情形下,以有效率地方式完成加密及解密,同时满足机密性、完整性及来源认证等三个基本的安全需求。
[0020] 在参阅图式及随后描述的实施方式后,此技术领域具有通常知识者便可了解本发明的其他目的,以及本发明的技术手段及实施态样。

附图说明

[0021] 图1A是描绘加密区块连锁模式中的加密机制的示意图;
[0022] 图1B是描绘加密区块连锁模式中的解密机制的示意图;
[0023] 图1C是例式采用加密区块连锁模式下,电子密文被窜改时的解密结果;
[0024] 图1D是描绘消息验证码再加密的示意图;
[0025] 图2A是描绘本发明第一及第二实施例的架构示意图;
[0026] 图2B是描绘本发明第一实施例的加密运作示意图;
[0027] 图2C是描绘消息区块mcv的产生方式的示意图;
[0028] 图3A是描绘本发明第二实施例的加密运作示意图;
[0029] 图3B是描绘消息区块mcv的产生方式的示意图;
[0030] 图3C是描绘本发明第三实施例的加密运作示意图;
[0031] 图4A是描绘本发明第四至第六实施例的架构示意图;
[0032] 图4B是描绘本发明第四实施例的解密运作示意图;
[0033] 图4C是描绘消息区块mcv的产生方式的示意图;
[0034] 图5A是描绘本发明第五实施例的解密运作示意图;
[0035] 图5B是描绘消息区块mcv的产生方式的示意图;
[0036] 图6A是描绘本发明第六实施例的解密运作示意图;
[0037] 图6B是描绘消息区块mcv的产生方式的示意图;
[0038] 图6C是描绘本发明第七实施例的解密运作示意图;
[0039] 图7是描绘本发明第八实施例的流程图;
[0040] 图8A是描绘本发明第九实施例的流程图;
[0041] 图8B是描绘本发明第十实施例的流程图;
[0042] 图9是描绘本发明第十一实施例的流程图;
[0043] 图10是描绘本发明第十二实施例的流程图;
[0044] 图11是描绘本发明第十三实施例的流程图;以及
[0045] 图12是描绘本发明第十四实施例的流程图。
[0046] 符号说明:
[0047] M:电子文件
[0048] m1、m2、m3、m4、mt:消息区块
[0049] c1、c2、c3、c4、ct-1、ct:密文区块
[0050] IV:初始向量
[0051] C:电子密文
[0052] K:金钥
[0053] E:加密运算
[0054] D:解密运算
[0055] c1’:密文区块
[0056] m1’、m2’:消息区块
[0057] M’:电子文件
[0058] MS、MD:电子文件
[0059] Km:金钥
[0060] z1、z2、z3:消息验证码
[0061] MAC:消息验证码运算
[0062] CN:电子密文
[0063] CMP:比较运算
[0064] 2:区块加密装置
[0065] 21:储存单元
[0066] 23:处理单元
[0067] IV1:第一向量
[0068] IV2:第二向量
[0069] mt-2、mt-1、mcv:消息区块
[0070] I1、I2、I3、I4、It:输入区块
[0071] O1、O2、O3、O4、Ot-1、Ot:输出区块
[0072] t1、t2、t3、t4、tt:暂时区块
[0073] F:运算
[0074] 30:加密区块连锁器
[0075] 4:区块解密装置
[0076] 41:储存单元
[0077] 43:处理单元
[0078] i0、i1、i2、i3、i4、it-2、it-1、it:输入区块
[0079] o0、o1、o2、o3、o4、ot-2、ot-1、ot:输出区块
[0080] ct-2:密文区块
[0081] m0:消息区块
[0082] S700~S713:步骤
[0083] S805、S809:步骤
[0084] S811~S815:步骤
[0085] S900~S915:步骤
[0086] S101:步骤
[0087] S200~S221:步骤
[0088] S230:步骤

具体实施方式

[0089] 以下将通过实施例来解释本发明所提供的兼具完整性验证的区块加密装置、区块加密方法、区块解密装置及区块解密方法。然而,本发明的实施例并非用以限制本发明须在如实施例所述的任何环境、应用或方式方能实施。因此,关于实施例的说明仅为阐释本发明的目的,而非用以直接限制本发明。须说明者,以下实施例 及图式中,与本发明非直接相关的元件已省略而未绘示。
[0090] 请先参阅图1C。在已知技术中,若电子密文C中的密文区块c1被窜改(或传输错误)为密文区块c1’,则接收方将电子密文C’解密为电子文件M’后,电子文件M’所包含的消息区块m1’及m2’为错误的。在一般的区块加密应用中,一但解密后的消息区块有误,代表完整性被破坏,理论上解密后所得的消息将不被接受。在已知技术中,以区块加密为基础的加密法中,错误扩散率越小,对串流加密的应用越有利。
[0091] 本发明则是采用新的区块操作模式,除了保有原先区块操作模式的特性外,更将错误扩散的影响放到最大,使得当电子密文被窜改(或传输错误)时,解密后所得的最后一个消息区块为错误的。如此一来,若接收方事先知道最后一个消息区块应当为何,便能据以察觉电子密文的完整性被破坏,进而舍弃该电子密文。
[0092] 本发明的第一实施例为一区块加密装置2,其架构示意图是描绘于图2A,且其加密的运作示意图是描绘于图2B。区块加密装置2包含一储存单元21及一处理单元23,且二者间相互电性连接。储存单元21可为一存储器、一软盘、一硬盘、一光盘(compact disk;CD)、一随身盘、一磁带、一数据库或所属技术领域具有通常知识者所知悉且具有相同功能的任何其他储存媒体或电路。处理单元23则可为本发明所属技术领域中具有通常知识者所知悉的各种处理器、中央处理装置(central processing unit)、微处理器或其他计算装置中的任一种。
[0093] 储存单元21储存一金钥K及一消息区块mcv,其中消息区块mcv是作为一检查向量。处理单元23会取得一第一向量IV1及一第二向量IV2。针对所欲加密的一电子文件M,处理单元23先将的分割为数个消息区块m1、m2、m3、m4、……、mt-1,且这些消息区块m1、m2、m3、m4、……、mt-1具有一顺序(亦即,依序为消息区块m1、m2、m3、m4、……、mt-1)。需说明者,此电子文件M可储存于储存单元21;或者,当区块加密装置2更设置有一输入介面时,此电子文件M可由该输入介面自一外部接收。此外,处理单元23将消息区块mcv加入这些消息区块之中,使消息区块mcv作为这些消息区块中的最后一个;换言之,处理单元23后续将处理消息区块m1、m2、m3、m4、……、mt-1、mcv。
[0094] 接着,处理单元23依据该顺序,针对消息区块m1、m2、m3、m4、……、mt-1、 mcv中的每一个,分别进行以下运作:产生一输入区块,以一金钥对该输入区块加密以得一输出区块,再将该输出区块与该消息区块的前一个消息区块进行异或(exclusive OR)运算以得一密文区块。需说明者,当处理消息区块m1、m2、m3、m4、……、mt-1、mcv中的每一个时,该输入区块的值等于该消息区块、该消息区块的前一个消息区块所对应的输出区块及该消息区块的前前一个消息区块进行异或运算后的值,如下列公式(1)所示:
[0095] I[i]=m[i]⊕O[i-1]⊕m[i-2]  (1)
[0096] 上述公式(1)中,变数i代表处理中的消息区块的编号,I[i]代表第i个输入区块,O[i-1]代表第i-1个输出区块,m[i]代表第i个消息区块,m[i-2]代表第i-2个消息区块,且符号⊕代表异或运算。需说明者,当处理单元23处理这些消息区块中的第一个(亦即,消息区块m1)时,消息区块m1的前一个消息区块所对应的输出区块为第一向量IV1(亦即,O[0]的值等于第一向量IV1的值),且消息区块m1的前前一个消息区块为一全零向量(亦即,m[-1]=0)。当处理单元23处理这些消息区块中的第二个(亦即,消息区块m2)时,消息区块m2的前前一个消息区块为第二向量IV(2 亦即,m[0]的值等于第二向量IV2)。
[0097] 于本实施例中,处理单元23是经由对该消息区块及该消息区块的前一个消息区块所对应的该密文区块进行异或运算以产生该输入区块,如下列公式(2)所示,其中c[i-1]代表第i-1个密文区块:
[0098] I[i]=m[i]⊕c[i-1]
[0099] =m[i]⊕O[i-1]⊕m[i-2]  (2)
[0100] 兹进一步地详述各输入区块、各输出区块及各密文区块的产生方式。具体而言,针对这些消息区块中的第一个(亦即,消息区块m1),处理单元23先将消息区块m1与前一个消息区块所对应的密文区块进行异或运算以得到一输入区块I1,其中处理单元23是以第一向量IV1的值作为消息区块m1的前一个消息区块所对应的密文区块的值。接着,处理单元23再以金钥K及一对称式加密演算法对此输入区块I1进行加密运算E以得到一输出区块O1。之后,处理单元23再将此输出区块O1与前一个消息区块进行异或运算以得到一密文区块c1,其中处理单元23是以第二向量IV2 的值作为消息区块m1的前一消息区块的值;换言之,处理单元23是将输出区块O1与第二向量IV2进行异或运算以得到一密文区块c1。
[0101] 之后,针对这些消息区块中的其余个(亦即,消息区块m2、m3、m4、……、mcv),处理单元23亦先将消息区块m2、m3、m4、……、mcv各自与其前一个消息区块所对应的密文区块(亦即,c1、c2、c3、……、ct-1)进行异或运算以分别得到一输入区块I2、I3、I4、……、It,再以金钥K及相同的对称式加密演算法对输入区块I2、I3、I4、……、It各自进行加密运算E以分别得到输出区块O2、O3、O4、……、Ot,再将输出区块O2、O3、O4、……、Ot各自与其前一个消息区块(亦即,m1、m2、m3、……、mt-1)进行异或运算以分别得到一密文区块c2、c3、c4、……、ct。
[0102] 之后,处理单元23再依该顺序,串接密文区块c1、c2、c3、c4、……、ct以产生一电子密文C。区块加密装置2可通过其他传送介面将电子密文C传送至接收方;或者,若区块加密装置2更设置有一传送介面时,亦可通过此传送介面将电子密文C传送至接收方。
[0103] 需说明者,于其他实施态样中,区块加密装置2的储存单元21可不储存消息区块mcv。于这些实施态样中,处理单元23在运算出密文区块c1、c2、c3、c4、……、ct-1后,且在处理最后一个消息区块(亦即,消息区块mcv)前,会对密文区块c1、c2、c3、c4、……、ct-1进行运算F,并以运算后的结果作为消息区块mcv,如图2C所示。举例而言,处理单元23可对密文区块c1、c2、c3、c4、……、ct-1进行异或运算以得一暂时区块,再对该暂时区块进行一函式运算以得消息区块mcv。前述函式运算可为一金钥加密运算、一旋转运算、一杂凑运算或其他事先与解密端协议好的函式运算。由于在这些实施态样中,处理单元23是利用密文区块c1、c2、c3、c4、……、ct-1来产生消息区块mcv,因此能避免攻击者经由窜改最后一个密文区块ct所造成的攻击。
[0104] 由上述说明可知,区块加密装置2除了将密文区块c1、c2、c3、……、ct-1分别与消息区块m2、m3、m4、……、mcv作关联,更将消息区块m1、m2、m3、……、mt-1分别与密文区块c2、c3、c4、……、ct作关联。因此,若电子密文C中的任一密文区块c1、c2、c3、c4、……、ct被窜改(或传输错误),与区块加密装置2搭配使 用的解密装置(请容后详述)对电子密文C解密后所得的最后一个消息区块将会是错误的。由于解密装置亦知道最后一个消息区块应当为何,因此能据以察觉电子密文C的完整性已被破坏,进而舍弃该电子密文。再者,若区块加密装置2进一步地利用密文区块c1、c2、c3、c4、……、ct-1来产生作为检查向量的消息区块mcv,则能避免攻击者经由窜改最后一个密文区块所造成的攻击。
[0105] 由此可知,通过本实施例的技术,区块加密装置2能够在未进行消息验证码运算的情形下,满足机密性、完整性及来源认证等三个基本的安全需求。因此,通过本实施例的技术,区块加密装置2能已有效率的方式达成机密性、完整性及来源认证等三个基本的安全需求。
[0106] 关于本发明的第二实施例,请参阅图2A及图3A,其中图3A是描绘加密的运作示意图。第二实施例与第一实施例的大部分的运作类似,故以下将仅详述二者的差异处。
[0107] 类似地,针对所欲加密的一电子文件M,处理单元23先将的分割为数个消息区块m1、m2、m3、m4、……、mt-1,且这些消息区块m1、m2、m3、m4、……、mt-1具有一顺序(亦即,依序为消息区块m1、m2、m3、m4、……、mt-1)。此外,处理单元23亦将消息区块mcv加入这些消息区块之中;换言之,处理单元23后续将处理消息区块m1、m2、m3、m4、……、mt-1、mcv。
[0108] 接着,处理单元23依据该顺序,针对消息区块m1、m2、m3、m4、……、mcv中的每一个,分别进行以下运作:产生一输入区块,以一金钥对该输入区块加密以得一输出区块,再将该输出区块与该消息区块的前一个消息区块进行异或运算以得一密文区块。需说明者,当处理消息区块m1、m2、m3、m4、……、mt-1、mcv中的每一个时,该输入区块的值等于该消息区块、该消息区块的前一个消息区块所对应的输出区块及该消息区块的前前一个消息区块进行异或运算后的值,如前述公式(1)所示。
[0109] 于本实施例中,处理单元23是对各该消息区块进行以下运作以产生相对应的该输入区块:对该消息区块及该消息区块的前前一个消息区块进行异或运算以得一暂时区块,以及对该暂时区块及该消息区块的前一个消息区块所对应的该输出区块 进行异或运算以得该输入区块。需说明者,当处理单元23处理这些消息区块中的第一个(亦即,消息区块m1)时,消息区块m1的前前一个消息区块为一全零向量(亦即,m[-1]=0),消息区块m1的前一个消息区块所对应的输出区块为第一向量IV(1 亦即,O[0]的值等于第一向量IV1的值)。当处理单元23处理这些消息区块中的第二个(亦即,消息区块m2)时,消息区块m2的前前一个消息区块为第二向量IV(2 亦即,m[0]的值等于第二向量IV2)。
[0110] 兹进一步地详述各输入区块、各输出区块及各密文区块的产生方式。兹先说明处理单元23如何处理这些消息区块中的第一个(亦即,消息区块m1)。处理单元23先将消息区块m1与其前前一个消息区块进行异或运算以得到一暂时区块t1,其中处理单元23是以全零向量作为消息区块m1的前前一个消息区块的值。接着,处理单元23再将暂时区块t1及消息区块m1的前一个消息区块所对应的输出区块进行异或运算以得输入区块I1,其中处理单元23是以第一向量IV1的值作为消息区块m1的前一个消息区块所对应的输出区块的值。之后,处理单元23利用金钥K及一对称式加密演算法对此输入区块I1进行加密以得到一输出区块O1。接着,处理单元23再将此输出区块O1与消息区块m1的前一个消息区块进行异或运算以得到一密文区块c1,其中处理单元23是以第二向量IV2作为消息区块m1的前一个消息区块。换言之,处理单元23是将输出区块O1与第二向量IV2进行异或运算以得到一密文区块c1。
[0111] 针对这些消息区块中的其余个(亦即,消息区块m2、m3、m4、……、mcv),处理单元23亦先将消息区块m2、m3、m4、……、mcv各自与其前前一个消息区块进行异或运算以分别得到暂时区块t2、t3、t4、……、tt。需说明者,当处理单元23处理所有消息区块中的第二个(亦即,消息区块m2)时,是以第二向量IV2的值作为其前前一个消息区块的值。接着,处理单元23将暂时区块t2、t3、t4、……、tt各自与其前一个消息区块所对应的该输出区块进行异或运算以分别得到输入区块I2、I3、I4、……、It。
[0112] 接着,处理单元23利用金钥K及对称式加密演算法对输入区块I2、I3、I4、……、It进行加密,以分别得到输出区块O2、O3、O4、……、Ot。之后,处理单元23再分别将输出区块O2、O3、O4、……、Ot与其前一个消息区块m1、m2、m3、……、mt-1 进行异或运算以得到密文区块c2、c3、c4、……、ct。
[0113] 之后,处理单元23再依该顺序,串接密文区块c1、c2、c3、c4、……、ct以产生一电子密文C。区块加密装置2可通过其他传送介面将电子密文C传送至接收方;或者,若区块加密装置2更设置有一传送介面时,亦可通过此传送介面将电子密文C传送至接收方。
[0114] 再者,于其他实施态样中,区块加密装置2的储存单元21可不储存消息区块mcv。于这些实施态样中,处理单元23在运算出密文区块c1、c2、c3、c4、……、ct-1后,且在处理最后一个消息区块(亦即,消息区块mcv)前,会对密文区块c1、c2、c3、c4、……、ct-1进行运算F,并以运算后的结果作为消息区块mcv,如图3B所示。举例而言,处理单元23可对密文区块c1、c2、c3、c4、……、ct-1进行异或运算以得一暂时区块,再对该暂时区块进行一函式运算以得消息区块mcv。前述函式运算可为一金钥加密运算、一旋转运算、一杂凑运算或其他事先与解密端协议好的函式运算。
[0115] 本实施例与第一实施例的差异仅在于输入区块I1、I2、I3、I4、……、It的产生方式而已,因此,本实施例仍会将消息区块m1、m2、m3、……、mt-1分别与密文区块c2、c3、c4、……、ct作关联,且会将密文区块c1、c2、c3、……、ct-1分别与消息区块m2、m3、m4、……、mcv作关联。因此,本实施例所揭露的加密技术亦能以有效率的方式产生电子密文C,同时满足机密性、完整性及来源认证等三个基本的安全需求。
[0116] 本发明的第三实施例为区块加密装置2,请参阅图2A及图3C,其中图3C是描绘加密的运作示意图。第三实施例与第二实施例的运作原理雷同,但第二实施例中的某些运作,于本实施例中则由一已知的加密区块连锁(cipher block chaining)器30来完成。以下将仅详述第三实施例与第二实施例的差异处。
[0117] 于本实施例中,处理单元23将消息区块m1、m2、m3、……、mt-1、mcv各自与其前前一个消息区块进行异或运算以得数个暂时区块t1、t2、t3、t4、……、tt。需说明者,当处理单元23处理这些消息区块中的第一个(亦即,消息区块m1)时,消息区块m1的前前一个消息区块为一全零向量(亦即,m[-1]=0),而当处理单元23 处理这些消息区块中的第二个(亦即,消息区块m2)时,消息区块m2的前前一个消息区块为第二向量IV2。
[0118] 接着,处理单元23利用金钥K、第一向量IV1及加密区块连锁器30将暂时区块t1、t2、t3、t4、……、tt加密为数个输出区块O1、O2、O3、O4、……、Ot。加密区块连锁器30的运作方式则如图1A所示。最后,处理单元23在输出区块输出区块O1、O2、O3、O4、……、Ot各自与前一个消息区块进行异或运算以得该等密文区块c1、c2、c3、……、ct-1、ct。需说明者,当处理输出区块O1区块时,处理单元23以第二向量IV2作为其前一个消息区块。换言之,处理单元23是将输出区块O1与第二向量IV2进行异或运算以得到密文区块c1,且将输出区块O2、O3、O4、……、Ot与消息区块m1、m2、m3、……、mt-1进行异或运算以得密文区块c2、c3、……、ct-1、ct。
[0119] 由上述说明可知,本实施例将消息区块m1、m2、m3、……、mt-1、mcv进行简单的异或运算后,即可利用已知的加密区块连锁器30进行加密处理,再对加密区块连锁器30产生的输出区块O1、O2、O3、O4、……、Ot进行简单的异或运算后,即可产生密文区块c1、c2、c3、……、ct-1、ct。换言之,当区块加密装置2与加密区块连锁器30搭配使用时,能够快速地实现本发明的技术。
[0120] 本发明的第四实施例为一区块解密装置4,其架构示意图是描绘于图4A,且其解密的运作示意图是描绘于图4B。区块解密装置4可与第一至第三实施例的区块加密装置2搭配使用。换言之,针对区块加密装置2加密后所产生的电子密文C,区块解密装置4能将的解密。
[0121] 区块解密装置4包含一储存单元41及一处理单元43,且二者间相互电性连接。储存单元41储存金钥K及消息区块mcv,其内容与区块加密装置2所储存者相同,且消息区块mcv是作为检查向量。储存单元41可为一存储器、一软盘、一硬盘、一光盘、一随身盘、一磁带、一数据库或所属技术领域具有通常知识者所知悉且具有相同功能的任何其他储存媒体或电路。处理单元43则可为本发明所属技术领域中具有通常知识者所知悉的各种处理器、中央处理装置、微处理器或其他计算装置中的任一种。
[0122] 处理单元43会取得一第一向量IV1及一第二向量IV2。需说明者,处理单元43 所取得的第一向量IV1及第二向量IV2与加密装置2加密电子密文C时所使用的第一向量IV1及第二向量IV2相同。针对所欲解密的电子密文C,处理单元43先将的分割为数个密文区块c1、c2、c3、c4、……、ct,且这些密文区块c1、c2、c3、c4、……、ct具有一顺序(亦即,依序为密文区块c1、c2、c3、c4、……、ct)。需说明者,此电子密文C可储存于储存单元41;或者,当区块解密装置4更设置有一输入介面时,亦可通过此输入介面自一传送方接收此电子密文C。
[0123] 接着,处理单元43依据该顺序,针对密文区块c1、c2、c3、c4、……、ct中的每一个,分别进行以下运作:产生一输入区块,以金钥K对该输入区块解密以得一输出区块,以及产生一消息区块。需说明者,处理单元43在处理密文区块c1、c2、c3、c4、……、ct中的每一个时,各输入区块的值等于处理中的该密文区块、该密文区块的前一个密文区块所对应的一输出区块及该密文区块的前前一个密文区块进行异或运算后的值,而该消息区块的值等于处理中的该密文区块所对应的该输出区块与该密文区块的前一个密文区块进行异或运算后的值。具体而言,前述各输入区块可由以下公式(3)表示:
[0124] i[i]=c[i]⊕o[i-1]⊕c[i-2]  (3)
[0125] 上述公式(3)中,变数i代表处理中的密文区块的编号,i[i]代表第i个输入区块,o[i-1]代表第i-1个输出区块,c[i]代表第i个密文区块,c[i-2]代表第i-2个密文区块,且符号⊕代表异或运算。需说明者,当处理单元43处理这些密文区块中的第一个(亦即,密文区块c1)时,密文区块c1的前一个密文区块所对应的输出区块为第二向量IV(2 亦即,o[0]的值等于第二向量IV2的值),且密文区块c1的前前一个密文区块为一全零向量(亦即,c[-1]=0)。当处理单元43处理这些密文区块中的第二个(亦即,密文区块c2)时,密文区块c2的前前一个密文区块为第一向量IV(1 亦即,c[0]的值等于第一向量IV1)。
[0126] 于本实施例中,处理单元43是经由对该密文区块及该密文区块的前一个密文区块所对应的该消息区块进行异或运算以产生该输入区块,如以下公式(4)所示,其中m[i-1]代表第i-1个消息区块:
[0127] i[i]=c[i]⊕m[i-1]
[0128] =c[i]⊕(o[i-1]⊕c[i-2])  (4)
[0129] 再者,于本实施例中,处理单元43是经由对该输出区块与该密文区块的前一个密文区块进行异或运算以得该消息区块,如以下公式(5)所示:
[0130] m[i]=o[i]⊕c[i-1]  (5)
[0131] 兹进一步地详述各输入区块、各输出区块及各消息区块的产生方式。兹先说明处理单元43如何处理这些密文区块中的第一个(亦即,密文区块c1)。处理单元43先将密文区块c1与其前一个密文区块所对应的消息区块进行异或运算以得到一输入区块i1,其中处理单元43是以第二向量IV2的值作为密文区块c1的前一个密文区块所对应的消息区块的值。换言之,处理单元43是将密文区块c1与第二向量IV2进行异或运算以得到输入区块i1。接着,处理单元43再以金钥K及与区块加密装置2所使用的对称式加密演算法对应的一对称式解密演算法对此输入区块i1进行解密运算D以得到一输出区块o1。之后,处理单元43再将此输出区块o1与密文区块c1的前一个密文区块进行异或运算以得到一消息区块m1,其中处理单元43是以第一向量IV1的值作为密文区块c1的前一个密文区块的值。换言之,处理单元43是将输出区块o1与第一向量IV1进行异或运算以得到消息区块m1。
[0132] 之后,针对这些密文区块中的其余个(亦即,密文区块c2、c3、c4、……、ct),处理单元43亦先将密文区块c2、c3、c4、……、ct各自与其前一个密文区块所对应的消息区块(亦即,m1、m2、m3、m4、……、mt-1)进行异或运算以分别得到一输入区块i2、i3、i4、……、it,再以金钥K及对称式解密演算法对输入区块i2、i3、i4、……、it各自进行解密运算D以分别得到输出区块o2、o3、o4、……、ot,再将输出区块o2、o3、o4、……、ot各自与前一个密文区块(亦即,c1、c2、c3、c4、……、ct-1)进行异或运算以分别得到一消息区块m2、m3、m4、……、mt。
[0133] 之后,处理单元43将这些消息区块m1、m2、m3、m4、……、mt中的最后一个(亦即,消息区块mt)与消息区块mcv(亦即,检查向量)比对。若消息区块mt与消息区块mcv相同,表示电子密文C通过验证。处理单元43便排除这些消息区块m1、m2、m3、m4、……、mt中的最后一个(亦即,消息区块mt),再依该顺序串接消 息区块m1、m2、m3、m4、……、mt-1以产生一解密文件(亦即,电子文件M)。倘若消息区块mt与消息区块mcv不同,表示电子密文C未通过验证,处理单元43将会舍弃电子密文C。
[0134] 需说明者,于其他实施态样中,当区块加密装置2于加密过程中是对密文区块c1、c2、c3、c4、……、ct-1进行运算F,并以运算后的结果作为消息区块mcv时,则区块解密装置4的处理单元43亦须配合地利用密文区块c1、c2、c3、c4、……、ct-1以相同的运算F产生消息区块mcv,如图4C所示。举例而言,若区块加密装置2先前是对密文区块c1、c2、c3、c4、……、ct-1进行异或运算以得一暂时区块,再对该暂时区块进行一函式运算以得消息区块mcv,则区块解密装置4的处理单元43再将电子密文C分割为密文区块c1、c2、c3、c4、……、ct后,亦须对密文区块c1、c2、c3、c4、……、ct-1进行相同的处理以取得消息区块mcv。前述函式运算可为一金钥加密运算、一旋转运算、一杂凑运算或其他函式运算;惟需说明者,加解密双方须事先协议出相同的函式运算。
[0135] 由上述说明、图4B及图4C可知,若电子密文C中的任一密文区块c1、c2、c3、c4、……、ct被窜改(或传输错误),对电子密文C解密后所得的最后一个消息区块必将会是错误的。举例而言,若电子密文C中的密文区块c2被窜改(或传输错误)为密文区块c2’,则解密后所得的消息区块m2、m3、m4、……、mt将皆为错误的。因此,区块解密装置4可经由比对消息区块mt与消息区块mcv而确认电子密文C是否遭到窜改(或传输错误)。
[0136] 关于本发明的第五实施例,请参阅图4A及图5A,其中图5A是描绘解密的运作示意图。于本实施例中,区块解密装置4亦可与第一至第三实施例的区块加密装置2搭配使用。换言之,针对区块加密装置2加密后所产生的电子密文C,本实施例的区块解密装置4能将的解密。第五实施例与第四实施例的大部分的运作类似,故以下将仅详述二者的差异处。
[0137] 类似地,处理单元43会取得第一向量IV1及第二向量IV2。需说明者,处理单元43所取得的第一向量IV1及第二向量IV2与加密装置2加密电子密文C时所使用的第一向量IV1及第二向量IV2相同。此外,针对所欲解密的电子密文C,处理单元43先 将的分割为数个密文区块c1、c2、c3、c4、……、ct,且这些密文区块c1、c2、c3、c4、……、ct具有一顺序(亦即,依序为密文区块c1、c2、c3、c4、……、ct)。接着,处理单元43依据该顺序,针对密文区块c1、c2、c3、c4、……、ct中的每一个,分别进行以下运作:产生一输入区块,以一金钥对该输入区块解密以得一输出区块,以及产生一消息区块,其中该输入区块的值等于该密文区块、该密文区块的前一个密文区块所对应的一输出区块及该密文区块的前前一个密文区块进行异或运算后的值,且该消息区块的值等于该输出区块与该密文区块的前一个密文区块进行异或运算后的值。
[0138] 于本实施例中,在处理密文区块c1、c2、c3、c4、……、ct中的每一个时,处理单元43是经由对该密文区块及该密文区块的前一个密文区块所对应的该消息区块进行异或运算以产生该输入区块;换言之,处理单元43是以前述公式(4)来产生输入区块i1、i2、i3、i4、……、it。此部分与第四实施例相同,故不赘言。
[0139] 本实施例则以不同的方式产生输出区块。具体而言,针对密文区块c1、c2、c3、c4、……、ct中的每一个,处理单元43是经由对该密文区块的前前一个密文区块所对应的该消息区块、该输出区块及该密文区块的前一个密文区块所对应的该输入区块进行异或运算以得该消息区块,如下列公式(6)所示:
[0140] m[i]=m[i-2]⊕t[i]
[0141] =m[i-2]⊕(o[i]⊕i[i-1])
[0142] =m[i-2]⊕o[i]⊕(m[i-2]⊕c[i-1])
[0143] =m[i-2]⊕c[i-1]  (6)
[0144] 需说明者,当处理单元43处理该等密文区块中的第一个(亦即,密文区块c1)时,该密文区块的前前一个密文区块所对应的该消息区块为该全零向量,且该密文区块的前一个密文区块所对应的该输入区块为该第一向量。再者,当处理单元43处理该等密文区块中的第二个(亦即,密文区块c2)时,该密文区块的前前一个密文区块所对应的该消息区块为该第二向量。
[0145] 兹进一步地详述各输入区块、各输出区块及各消息区块的产生方式。兹先说明处理单元43如何处理这些密文区块中的第一个(亦即,密文区块c1)。处理单元43先将密文区块c1与其前一个密文区块所对应的消息区块进行异或运算以产生输 入区块i1,其中处理单元43是以第二向量IV2作为密文区块c1的前一个密文区块所对应的消息区块。换言之,处理单元43是将密文区块c1与第二向量IV2进行异或运算以产生输入区块i1。接着,处理单元43再以金钥K及与区块加密装置2所使用的对称式加密演算法对应的一对称式解密演算法对此输入区块i1进行解密运算D以得到一输出区块o1。之后,处理单元43再将此输出区块o1与其前一个密文区块所对应的该输入区块以得到一暂时区块t1,再将暂时区块t1与其前前一个密文区块所对应的消息区块进行异或运算以得到消息区块m1,其中处理单元43是以第一向量IV1作为密文区块c1的前一个密文区块所对应的输入区块(亦即,i[0]的值等于第一向量IV1的值),且以全零向量作为密文区块c1的前前一个密文区块所对应的消息区块(亦即,m[-1]的值等于全零向量的值)。换言之,处理单元43是将输出区块o1与第一向量IV1以得到暂时区块t1,再将暂时区块t1与全零向量进行异或运算以得到消息区块m1。
[0146] 接着说明处理单元43如何处理这些密文区块中的第二个(亦即,密文区块c2)。处理单元43先将密文区块c2与其前一个密文区块所对应的消息区块(亦即,消息区块m1)进行异或运算以得到一输入区块i2。接着,处理单元43再以金钥K及同样的对称式解密演算法对此输入区块i2进行解密运算D以得到一输出区块o2。之后,处理单元43再将此输出区块o2与其前一个密文区块所对应的输入区块(亦即,输入区块i1)进行异或运算以得到一暂时区块t2,再将暂时区块t2与其前前一个密文区块所对应的消息区块进行异或运算以得到消息区块m2,其中处理单元43是以第二向量IV2作为密文区块c2的其前前一个密文区块所对应的消息区块(亦即,m[0]的值等于第二向量IV2的值)。换言之,处理单元43是将输出区块o2与输入区块i1以得到暂时区块t1,再将暂时区块t1与第二向量IV2进行异或运算以得到消息区块m2。
[0147] 之后,针对这些密文区块中的其余个(亦即,密文区块c3、c4、……、ct),处理单元43亦先将密文区块c3、c4、……、ct各自与其前一个密文区块所对应的消息区块(亦即,消息区块m2、m3、……、mt-1)进行异或运算以分别得到一输入区块i3、i4、……、it,再以金钥K及对称式解密演算法对输入区块i3、i4、……、it各自进行解密运算D以分别得到输出区块o3、o4、……、ot,再将输出区块o3、o4、……、ot各自与其前一个密文区块所对应的输入区块(亦即,输入区块i2、i3、……、it-1) 进行异或运算以分别得到一暂时区块t3、t4、……、tt,再将暂时区块t3、t4、……、tt各自与其前前一个密文区块所对应的消息区块(亦即,消息区块m1、m2、……、mt-2)进行异或运算以分别得到消息区块m3、m4、……、mt。
[0148] 之后,处理单元43将这些消息区块m1、m2、m3、m4、……、mt中的最后一个(亦即,消息区块mt)与消息区块mc(v 亦即,检查向量)比对。若消息区块mt与消息区块mcv相同,表示电子密文C通过验证。处理单元43便排除这些消息区块m1、m2、m3、m4、……、mt中的最后一个(亦即,消息区块mt),再依该顺序串接消息区块m1、m2、m3、m4、……、mt-1以产生一解密文件(亦即,电子文件M)。倘若消息区块mt与消息区块mcv不同,表示电子密文C未通过验证,处理单元43将会舍弃电子密文C。
[0149] 需说明者,于其他实施态样中,当区块加密装置2于加密过程中是对密文区块c1、c2、c3、c4、……、ct-1进行运算F,并以运算后的结果作为消息区块mcv时,则区块解密装置4的处理单元43亦须配合地以相同的运算F产生消息区块mcv,如图5B所示。举例而言,若区块加密装置2先前是对密文区块c1、c2、c3、c4、……、ct-1进行异或运算以得一暂时区块,再对该暂时区块进行一函式运算以得消息区块mcv,则区块解密装置4的处理单元43再将电子密文C分割为密文区块c1、c2、c3、c4、……、ct后,亦须对密文区块c1、c2、c3、c4、……、ct-1进行相同的处理以取得消息区块mcv。前述函式运算可为一金钥加密运算、一旋转运算、一杂凑运算或其他函式运算;惟需说明者,加解密双方须事先协议出相同的函式运算。
[0150] 由上述说明、图5A及图5B可知,若电子密文C中的任一密文区块c1、c2、c3、c4、……、ct被窜改(或传输错误),对电子密文C解密后所得的最后一个消息区块必将会是错误的。因此,通过本实施例所揭露的技术,区块解密装置4可经由比对消息区块mt与消息区块mcv而确认电子密文C是否遭到窜改(或传输错误)。
[0151] 关于本发明的第六实施例,请参阅图4A及图6A,其中图6是描绘本实施例的解密运作示意图。于本实施例中,区块解密装置4可与第一至第三实施例的区块加密装置2搭配使用。换言之,针对区块加密装置2加密后所产生的电子密文C,区块解密装置4能将的解密。第六实施例与第四、第五实施例的部分运作类似,故以下 将仅详述二者的差异处。
[0152] 类似的,处理单元43会取得第一向量IV1及第二向量IV2。需说明者,处理单元43所取得的第一向量IV1及第二向量IV2与加密装置2加密电子密文C时所使用的第一向量IV1及第二向量IV2相同。此外,针对所欲解密的电子密文C,处理单元43先将的分割为数个密文区块c1、c2、c3、c4、……、ct,且这些密文区块c1、c2、c3、c4、……、ct具有一第一顺序(亦即,依序为密文区块c1、c2、c3、c4、……、ct)。此外,处理单元43取这些密文区块中的最后一个(亦即,密文区块ct)做为一参考向量。
[0153] 接着,处理单元43排除密文区块c1、c2、c3、c4、……、ct中的最后一个(亦即,密文区块ct)。之后,处理单元43依照与第一顺序反序的一第二顺序,将密文区块c1、c2、c3、c4、……、ct-1重新排列为密文区块ct-1、ct-2、……、c1。之后,处理单元43将第一向量IV1加入密文区块ct-1、ct-2、……、c1,使第一向量IV1作为这些密文区块中的最后一个(亦即,密文区块c0)。换言之,密文区块c0即为第一向量IV1。
[0154] 接着,处理单元43依据该第二顺序,针对密文区块ct-1、ct-2、……、c1、c0中的每一个进行以下运作:产生一输入区块,以一金钥对该输入区块加密以得一输出区块,以及将该输出区块与该密文区块的前一个密文区块进行异或运算以得一消息区块,其中该输入区块的值等于该密文区块、该密文区块的前一个密文区块所对应的一输出区块及该密文区块的前前一个密文区块进行异或运算后的值,如下列公式(7)所示:
[0155] i[i]=c[i]⊕o[i-1]⊕c[i-2]  (7)
[0156] 需说明者,当处理单元43处理该等密文区块中的第一个(亦即,密文区块ct-1)时,密文区块ct-1的前一个密文区块所对应的输出区块为消息区块mc(v 亦即,o[0]的值等于作为检查向量的消息区块mcv的值),且密文区块ct-1的前前一个密文区块为一全零向量(亦即,c[-1]的值等于全零向量的值)。再者,当处理单元43处理该等密文区块中的第二个(亦即,密文区块ct-2)时,密文区块ct-2的前前一个密文区块为密文区块c(t 亦即,c[0]的值等于作为参考向量的密文区块ct的值)。
[0157] 于本实施例中,处理单元43是经由将该密文区块与该密文区块的前一个密文区块所对应的该消息区块进行异或运算以得该输入区块,如下列公式(8)所示:
[0158] i[i]=c[i]⊕m[i-1]
[0159] =c[i]⊕o[i-1]⊕c[i-2]  (8)
[0160] 兹进一步地详述各输入区块、各输出区块及各消息区块的产生方式。兹先说明处理单元43如何处理这些密文区块中的第一个(亦即,密文区块ct-1)。处理单元43先将密文区块ct-1与其前一个密文区块所对应的消息区块进行异或运算以得到一输入区块it-1,其中处理单元43是以作为检查向量的消息区块mcv作为前一个密文区块所对应的消息区块。换言之,处理单元43是将密文区块ct-1与消息区块mcv进行异或运算以得到输入区块it-1。接着,处理单元43再以金钥K及区块加密装置2所使用的对称式加密演算法对此输入区块it-1进行加密运算E以得到一输出区块ot-1。之后,处理单元43再将此输出区块ot-1与其前一个密文区块进行异或运算以得到消息区块mt-1,其中处理单元43是以作为参考向量的密文区块ct作为密文区块ct-1的前一个密文区块。换言之,处理单元43是将输出区块ot-1与密文区块ct进行异或运算以得到消息区块mt-1。
[0161] 接着说明处理单元43如何处理这些密文区块中的其余个(亦即,密文区块ct-2、……、c1、c0)。具体而言,处理单元43先将密文区块ct-2、……、c1、c0各自与其前一个密文区块所对应的消息区块(亦即,消息区块mt-1、……、m2、m1)进行异或运算以分别得到一输入区块it-2、……、i1、i0,再以金钥K及相同的对称式加密演算法对输入区块it-2、……、i1、i0各自进行加密运算E以分别得到输出区块ot-2、……、o1、o0,再将输出区块ot-2、……、o1、o0各自与其前一个密文区块(亦即,密文区块ct-1、……、c2、c1)进行异或运算以分别得到消息区块mt-2、……、m1、m0。
[0162] 之后,处理单元43将这些消息区块mt-1、mt-2、……、m1、m0中的最后一个(亦即,消息区块m0)与第二向量IV2比对。若消息区块m0与第二向量IV2相同,表示电子密文C通过验证。处理单元43便排除这些消息区块mt-1、mt-2、……、m1、m0中的最后一个(亦即,消息区块m0),再依该第二顺序,倒序地串接消息区块mt-1、mt-2、……、m1以产生一解密文件(亦即,电子文件M)。换言之,处理单元43是串接消息区块m1、……、mt-2、mt-1以产生解密文件。倘若消息区块m0与第二向量 IV2不同,表示电子密文C未通过验证,处理单元43将会舍弃电子密文C。
[0163] 需说明者,于其他实施态样中,当区块加密装置2于加密过程中是对密文区块c1、c2、c3、c4、……、ct-1进行运算F,并以运算后的结果作为消息区块mcv时,则区块解密装置4的处理单元43亦须配合地以相同的运算F产生消息区块mcv,如图6B所示。举例而言,若区块加密装置2先前是对密文区块c1、c2、c3、c4、……、ct-1进行异或运算以得一暂时区块,再对该暂时区块进行一函式运算以得消息区块mcv,则区块解密装置4的处理单元43再将电子密文C分割为密文区块c1、c2、c3、c4、……、ct后,亦须对密文区块c1、c2、c3、c4、……、ct-1进行相同的处理以取得消息区块mcv。前述函式运算可为一金钥加密运算、一旋转运算、一杂凑运算或其他函式运算;惟需说明者,加解密双方须事先协议出相同的函式运算。
[0164] 由上述说明、图6A及图6B可知,通过将密文区块c0、c1、c2、c3、c4、……、ct-1、ct重新排序,区块解密装置4可利用如第一实施例及第二实施例所揭露的加密机制完成解密的功能。此外,与前述实施例相同,若电子密文C中的任一密文区块c1、c2、c3、c4、……、ct被窜改(或传输错误),对电子密文C解密后所得的最后一个消息区块必将会是错误的。因此,通过本实施例所揭露的技术,区块解密装置4可经由比对消息区块m0与向量IV2而确认电子密文C是否遭到窜改(或传输错误)。
[0165] 本发明的第七实施例为区块解密装置6,其运作原理请参阅图6C。第七实施例与第六实施例的运作原理相同,其差异仅在于本实施例的区块解密装置6是经由区块加密装置2来完成解密的运作。若检视区块解密装置6及其所包含的区块加密装置2的运作方式,其是与图6B所绘示者相同。至于区块加密装置2的内部运作方式,则与图2B所绘示者相同。
[0166] 比较图2B及图6C可知,若欲以区块解密装置6对电子密文C进行解密,仅需要将数据位置进行调整,即可利用区块加密装置2达到解密的效果。具体而言,需将密文区块c0、c1、c2、c3、c4、……、ct-1重新排序为密文区块ct-1、ct-2、……、c1、c0,并以此作为区块加密装置2的输入。此外,区块加密装置2原先需输入第一向量IV1及第二向量IV2的处则以消息区块mcv及密文区块ct取代。区块加密装置2利用消息区块mcv及密文区块ct对密文区块ct-1、ct-2、……、c1、c0解密后,产生消息区块 mt-1、mt-2、……、m1、m0。再将消息区块mt-1、mt-2、……、m1倒序地排列之后,即可得到解密文件。
[0167] 由上述说明及图6C可知,本发明通过将数据位置进行调整,即可利用区块加密装置达到解密的效果。
[0168] 本发明的第八实施例为一种电脑执行的区块加密方法,其流程图是描绘于图7。执行此区块加密方法的电脑可为前述的区块加密装置2,且储存着一检查向量及一金钥。第八实施例的运作原理与第一实施例相同,故请一并参考图2B。
[0169] 首先,于步骤S700中,取得一第一向量及一第二向量。于步骤S701中,将欲加密的一电子文件分割为数个消息区块,该等消息区块具有一顺序。接着,于步骤S703中,将该检查向量加入该等消息区块,使该检查向量作为该等消息区块中的最后一个。接着,依该顺序对各该消息区块执行步骤S705、S707、S709及S711,直到所有的消息区块皆被处理完毕。
[0170] 具体而言,于步骤S705,产生一输入区块,其值等于该消息区块、该消息区块的前一个消息区块所对应的一输出区块及该消息区块的前前一个消息区块进行异或运算后的值。于本实施例中,步骤S705是经由对该消息区块及该消息区块的前一个消息区块所对应的该密文区块进行异或运算以产生该输入区块。于步骤S707,以一金钥及一对称式加密演算法对该输入区块加密以得一输出区块。于步骤S709,将该输出区块与该消息区块的前一个消息区块进行异或运算以得一密文区块。进一步言,当步骤S705及S709处理该等消息区块中的第一个时,该消息区块的前一个消息区块所对应的该输出区块为该第一向量,且该消息区块的前前一个消息区块为一全零向量,而当步骤S705及S709处理该等消息区块中的第二个时,该消息区块的前前一个消息区块为该第二向量。
[0171] 之后,于步骤S711,判断是否尚有未被处理的消息区块。倘若步骤S711的判断结果为是,则返回步骤S705以继续处理下一个消息区块。倘若步骤S711的判断结果为否,代表所有的消息区块皆已被处理。接着,执行步骤S713,依该顺序串接该等密文区块以产生一电子密文。
[0172] 需说明者,于其他实施态样中,执行此区块加密方法的电脑可不储存检查向 量。于这些实施态样中,在步骤S705、S707、S709处理到剩下一个消息区块时,区块加密方法可先执行另一步骤(未绘示),对已运算出来的该等密文区块进行异或运算以得一暂时区块,再执行另一步骤(未绘示)对该暂时区块进行一函式运算以得该检查向量。需说明者,前述函式运算可为一金钥加密运算、一旋转运算、一杂凑运算或其他事先与解密端协议好的函式运算。
[0173] 除了前述的步骤外,第八实施例亦能执行第一实施例的所有运作及功能。所属技术领域具有通常知识者可直接了解第八实施例如何基于上述第一实施例以执行此等操作及功能,故不赘述。
[0174] 本发明的第九实施例为一种电脑执行的区块加密方法,其流程图是描绘于图8A。执行此区块加密方法的电脑可为前述的区块加密装置2,且储存着一检查向量及一金钥。第九实施例的运作原理与第二实施例相同,故请一并参考图3A。
[0175] 第九实施例的区块加密方法是执行步骤S700、S701、S703、S805、S707、S709、S711及S713。换言之,第九实施例与第八实施例的差异在于第九实施例以步骤S805取代步骤S705。以下将仅针对二实施例的差异处进行详细说明。
[0176] 第九实施例的区块加密方法先执行步骤S700、S701及S703。之后,依该等消息区块所具有的顺序,对各该消息区块执行步骤S805、S707、S709及S711,直到所有的消息区块皆被处理完毕。
[0177] 具体而言,于步骤S805,区块加密方法产生一输入区块,其值等于该消息区块、该消息区块的前一个消息区块所对应的一输出区块及该消息区块的前前一个消息区块进行异或运算后的值。于本实施例中,步骤S805是先对该消息区块及该消息区块的前前一个消息区块进行异或运算以得一暂时区块,再对该暂时区块及该消息区块的前一个消息区块所对应的该输出区块进行异或运算以得该输入区块。
[0178] 接着,于步骤S707,以一金钥及一对称式加密演算法对该输入区块加密以得一输出区块。于步骤S709,将该输出区块与该消息区块的前一个消息区块进行异或运算以得一密文区块。进一步言,当步骤S805及S709处理该等消息区块中的第一个时,该消息区块的前一个消息区块所对应的该输出区块为该第一向量,且该消息区块的前前一个消息区块为一全零向量,而当步骤S805及S709处理该等消息区 块中的第二个时,该消息区块的前前一个消息区块为该第二向量。
[0179] 之后,于步骤S711,判断是否尚有未被处理的消息区块。倘若步骤S711的判断结果为是,则返回步骤S705以继续处理下一个消息区块。倘若步骤S711的判断结果为否,代表所有的消息区块皆已被处理。接着,执行步骤S713,依该顺序串接该等密文区块以产生一电子密文。
[0180] 类似的,于其他实施态样中,执行此区块加密方法的电脑可不储存检查向量,其检查向量的产生方式可参酌前一实施例的描述,兹不赘言。再者,除了前述的步骤外,第九实施例亦能执行第二实施例的所有运作及功能。所属技术领域具有通常知识者可直接了解第九实施例如何基于上述第二实施例以执行此等操作及功能,故不赘述。
[0181] 本发明的第十实施例一种电脑执行的区块加密方法,其流程图是描绘于图8B。第十实施例与第九实施例的运作原理雷同,但本实施例是以一已知的加密区块连锁器来完成某些步骤。以下将仅详述第十实施例与第九实施例的差异处。为便于理解,请一并参考图3C。
[0182] 类似的,本实施例的区块加密方法先执行步骤S700、S701及S703。接着,执行步骤S811,将各该消息区块各自与前前一个消息区块进行异或运算以得数个暂时区块。需说明者,当步骤S811处理该等消息区块中的第一个时,其前前一个消息区块为一全零向量,而当步骤S811处理该等消息区块中的第二个时,其前前一个消息区块为该第二向量。
[0183] 接着,执行步骤S813,利用该金钥、该第一向量及一加密区块连锁器将该等暂时区块加密为该等输出区块。之后,执行步骤S815,将各该输出区块各自与前一个消息区块进行异或运算以得该等密文区块。需说明者,当步骤S815处理该等输出区块中的第一个时,其前一个消息区块为该第二向量。之后,执行步骤S713,依该顺序串接该等密文区块以产生一电子密文。
[0184] 类似的,于其他实施态样中,执行此区块加密方法的电脑可不储存检查向量,其检查向量的产生方式可参酌第八实施例的描述,兹不赘言。再者,除了前述的步骤外,第十实施例亦能执行第三实施例的所有运作及功能。所属技术领域具有通常 知识者可直接了解第十实施例如何基于上述第三实施例以执行此等操作及功能,故不赘述。
[0185] 本发明的第十一实施例为一种电脑执行的区块解密方法,其流程图是描绘于图9。执行此区块解密方法的电脑可为前述的区块解密装置4,且储存着一检查向量及一金钥。再者,本实施例的区块解密方法可与第八至第十实施例的区块加密方法搭配使用。换言之,针对第八至第十实施例加密后所产生的电子密文,本实施例的区块解密方法能将的解密。第十一实施例的运作原理与第四实施例相同,故请一并参考图4B。
[0186] 首先,执行步骤S900,取得一第一向量及一第二向量。需说明者,步骤S900所取得的第一向量及第二向量与区块加密方法加密该电子密文时所使用的第一向量及第二向量相同。之后,执行步骤S901,将一电子密文分割为数个密文区块,该等密文区块具有一顺序。接着,依该顺序对各该密文区块执行步骤S903、S905、S907及S909,直到所有的密文区块皆被处理完毕。
[0187] 具体而言,于步骤S903,产生一输入区块,其值等于该密文区块、该密文区块的前一个密文区块所对应的一输出区块及该密文区块的前前一个密文区块进行异或运算后的值。于本实施例中,步骤S903是经由对该密文区块及该密文区块的前一个密文区块所对应的该消息区块进行异或运算以产生该输入区块。接着,于步骤S905,以一金钥及一对称式解密演算法对该输入区块解密以得一输出区块,其中此对称式解密演算法是与第八至第十实施例所使用的对称式加密演算法相对应。于步骤S907,产生一消息区块,该消息区块的值等于该输出区块与该密文区块的前一个密文区块进行异或运算后的值。于本实施例中,步骤S907经由对该输出区块与该密文区块的前一个密文区块进行异或运算以得该消息区块。需说明者,当步骤S903及S907处理该等密文区块中的第一个时,该密文区块的前一个密文区块所对应的该输出区块为该第二向量,且该密文区块的前前一个密文区块为一全零向量,当步骤S903及S907处理该等密文区块中的第二个时,该密文区块的前前一个密文区块为该第一向量。
[0188] 之后,于步骤S909,判断是否尚有未被处理的密文区块。倘若步骤S909的判 断结果为是,则返回步骤S903以继续处理下一个密文区块。倘若步骤S909的判断结果为否,代表所有的密文区块皆已被处理。接着,执行步骤S911,将该等消息区块中的最后一个与该检查向量比对,并判断二者是否相同。若步骤S911的判断结果为是,则执行步骤S913,将排除该等消息区块中的最后一个后的该等消息区块依该顺序串接为一解密文件。若步骤步骤S911的判断结果为否,则执行步骤S915,舍弃该电子密文。
[0189] 需说明者,倘若本实施例所搭配的区块加密方法未储存检查向量,而是动态地利用产生的密文区块来产生检查向量,则本实施例亦需以相同的方式产生检查向量。具体而言,当解密方法执行步骤S901后,便可执行另一步骤(未绘示)以利用排除最后一个密文区块后的该等密文区块来产生检查向量。检查向量的产生方式可参酌前述实施例的描述,兹不赘言。
[0190] 除了前述的步骤外,第十一实施例亦能执行第四实施例的所有运作及功能。所属技术领域具有通常知识者可直接了解第十一实施例如何基于上述第四实施例以执行此等操作及功能,故不赘述。
[0191] 本发明的第十二实施例为一种电脑执行的区块解密方法,其流程图是描绘于图10。执行此区块解密方法的电脑可为前述的区块解密装置4,且储存着一检查向量及一金钥。再者,本实施例的区块解密方法可与第八至第十实施例的区块加密方法搭配使用。换言之,针对第八至第十实施例加密后所产生的电子密文,本实施例的区块解密方法能将的解密。第十二实施例的运作原理与第五实施例相同,故请一并参考图5A。
[0192] 第九实施例的区块解密方法是执行步骤S900、S901、S903、S905、S101、S909、S911、S913及S915。换言之,本实施例与第十一实施例的差异在于本实施例以步骤S101取代步骤S907。以下将仅针对二实施例的差异处进行详细说明。
[0193] 首先,执行步骤S900,取得一第一向量及一第二向量。需说明者,步骤S900所取得的第一向量及第二向量与区块加密方法加密该电子密文时所使用的第一向量及第二向量相同。之后,执行步骤S901,将一电子密文分割为数个密文区块,该等密文区块具有一顺序。接着,依该顺序对各该密文区块执行步骤S903、S905 及S101,直到所有的密文区块皆被处理完毕。
[0194] 于本实施例中,针对各该密文区块执行完步骤S903及S905后,接着执行步骤S101。于步骤S101,产生一消息区块,该消息区块的值等于该输出区块与该密文区块的前一个密文区块进行异或运算后的值。于本实施例中,步骤S101是经由对该密文区块的前前一个密文区块所对应的该消息区块、该输出区块及该密文区块的前一个密文区块所对应的该输入区块进行异或运算以得该消息区块。
[0195] 需说明者,当步骤S101处理该密文区块中的第一个时,该密文区块的前前一个密文区块所对应的该消息区块为该全零向量,且该密文区块的前一个密文区块所对应的该输入区块为该第一向量。此外,当步骤S101处理该密文区块中的第二个时,该密文区块的前前一个密文区块所对应的该消息区块为该第二向量。
[0196] 接着,执行步骤S909。类似的,于本实施例中,当步骤S909判断所有的密文区块皆被处理完毕后,将继续执行步骤S911及S913或步骤S911及S915。
[0197] 类似的,倘若本实施例所搭配的区块加密方法未储存检查向量,而是动态地利用产生的密文区块来产生检查向量,则本实施例亦需以相同的方式产生检查向量。具体而言,当区块解密方法执行步骤S901后,便可执行另一步骤(未绘示)以利用排除最后一个密文区块后的该等密文区块来产生检查向量。检查向量的产生方式可参酌前述实施例的描述,兹不赘言。
[0198] 除了前述的步骤外,第十二实施例亦能执行第五实施例的所有运作及功能。所属技术领域具有通常知识者可直接了解第十二实施例如何基于上述第五实施例以执行此等操作及功能,故不赘述。
[0199] 本发明的第十三实施例为一种电脑执行的区块解密方法,其流程图是描绘于图11。执行此区块解密方法的电脑可为前述的区块解密装置4,且储存着一检查向量及一金钥。再者,本实施例的区块解密方法可与第八至第十实施例的加密方法搭配使用。换言之,针对第八至第十实施例加密后所产生的电子密文,本实施例的区块解密方法能将的解密。
第十三实施例的运作原理与第六实施例相同,故请一并参考图6A。
[0200] 首先,执行步骤S200,取得一第一向量及一第二向量。需说明者,步骤S200 所取得的第一向量及第二向量与区块加密方法加密该电子密文时所使用的第一向量及第二向量相同。之后,执行步骤S201,将一电子密文分割为数个密文区块,该等密文区块具有一第一顺序,且将该等密文区块中的最后一个作为一参考向量。接着,执行步骤S203,排除该等密文区块中的最后一个。接着,于步骤S205中,将该等密文区块以一第二顺序重新排列,其中该第二顺序为该第一顺序的反序。于步骤S207,将该第一向量加入该等密文区块,使该第一向量为该等密文区块中的最后一个。
[0201] 接着,依该第二顺序对各该密文区块执行步骤S209、S211、S213及S215,直到所有的密文区块皆被处理完毕。于步骤S209中,产生一输入区块,该输入区块的值等于该密文区块、该密文区块的前一个密文区块所对应的一输出区块及该密文区块的前前一个密文区块进行异或运算后的值。于本实施例中,步骤S209是经由将该密文区块与该密文区块的前一个密文区块所对应的该消息区块进行异或运算以得该输入区块。需说明者,当步骤S209处理该等密文区块中的第一个时,该密文区块的前一个密文区块所对应的该输出区块为该检查向量,且该密文区块的前前一个密文区块为一全零向量,而当步骤S209处理该等密文区块中的第二个时,该密文区块的前前一个密文区块为该参考向量。之后,于步骤S211中,以该金钥及一对称式加密演算法对该输入区块加密以得一输出区块,其中此对称式加密演算法是与第八至第十实施例所使用的对称式加密演算法相同。接着,于步骤S213,将该输出区块与该密文区块的前一个密文区块进行异或运算以得一消息区块。
[0202] 之后,于步骤S215,判断是否尚有未被处理的密文区块。倘若步骤S215的判断结果为是,则返回步骤S209以继续处理下一个密文区块。倘若步骤S215的判断结果为否,代表所有的密文区块皆已被处理。倘若步骤S215的判断结果为否,接着执行步骤S217,将该等消息区块中的最后一个与该第二向量比对,并判断二者是否相同。若步骤S217的判断结果为是,则执行步骤S219,排除该等消息区块中的最后一个,再依据该第二顺序,倒序地串接剩余的该等消息区块以产生一解密文件。若步骤S217的判断结果为否,则执行步骤S221,舍弃该电子密文。
[0203] 类似的,倘若本实施例所搭配的区块加密方法未储存检查向量,而是动态地 利用产生的密文区块来产生检查向量,则本实施例亦需以相同的方式产生检查向量。具体而言,当解密方法执行步骤S203后,便可执行另一步骤(未绘示)以利用该等密文区块来产生检查向量。检查向量的产生方式可参酌前述实施例的描述,兹不赘言。
[0204] 除了前述的步骤外,第十三实施例亦能执行第六实施例的所有运作及功能。所属技术领域具有通常知识者可直接了解第十三实施例如何基于上述第六实施例以执行此等操作及功能,故不赘述。
[0205] 本发明的第十四实施例一种电脑执行的区块解密方法,其流程图是描绘于图12。第十四实施例与第十三实施例的运作原理雷同,但本实施例是以本发明的区块加密装置来完成某些步骤。以下将仅详述第十四实施例与第十三实施例的差异处。为便于理解,故请一并参考图6C。
[0206] 类似的,本实施例的区块加密方法先执行步骤S200、S201、S203、S205及S207。接着,执行步骤S230,利用本发明的区块加密装置、检查向量、参考向量、金钥对该等密文区块进行加密,藉此得到数个消息区块。需说明者,当执行步骤S230时,区块加密装置原先需输入第一向量及第二向量之处则以检查向量及参考向量取代。之后,执行步骤S217及S219或步骤S217及S221。
[0207] 比较图12及图11可知,本实施例是以步骤S230取代步骤S209、S211、S213及S215。换言之,本实施例仅需要将数据位置进行调整,即可利用区块加密装置达到解密的效果。
[0208] 类似的,倘若本实施例所搭配的区块加密方法未储存检查向量,而是动态地利用产生的密文区块来产生检查向量,则本实施例亦需以相同的方式产生检查向量。具体而言,当解密方法执行步骤S203后,便可执行另一步骤(未绘示)以利用该等密文区块来产生检查向量。检查向量的产生方式可参酌前述实施例的描述,兹不赘言。
[0209] 除了前述的步骤外,第十四实施例亦能执行第七实施例的所有运作及功能。所属技术领域具有通常知识者可直接了解第十四实施例如何基于上述第七实施例以执行此等操作及功能,故不赘述。
[0210] 再者,第八至第十四实施例所描述的区块加密方法及区块解密方法各可由一电脑程序产品加以实现。当一处理单元载入此电脑程序产品,并执行此电脑程序产品所包含的数个指令后,即可完成第八至第十四实施例中任一个所描述的区块加密方法或区块解密方法。前述的电脑程序产品可为能被于网络上传输的文件,亦可被储存于电脑可读取记录媒体中,例如只读存储器(read only memory;ROM)、快闪存储器、软盘、硬盘、光盘、随身盘、磁带、可由网络存取的数据库或熟习此项技艺者所已知且具有相同功能的任何其它储存媒体中。
[0211] 由上述各实施例的说明可知,本发明的区块加密装置及方法将电子文件所包含的数个消息区块与电子密文所包含的数个密文区块作较多层次的关联。通过此种方式,若电子密文中的任一密文区块被窜改(或传输错误),则区块解密装置及方法将电子密文解密后所得的最后一个消息区块,其内容将会是错误的。由于区块解密装置及方法会知道最后一个消息区块应当为何,因此能据以察觉电子密文的完整性已被破坏,进而舍弃该电子密文。由此可知,本发明所揭露的技术能够在未进行消息验证码运算的情形下,以有效率地方式完成加密及解密,同时满足机密性、完整性及来源认证等三个基本的安全需求。
[0212] 上述的实施例仅用来例举本发明的实施态样,以及阐释本发明的技术特征,并非用来限制本发明的保护范畴。任何熟悉此技术者可轻易完成的改变或均等性的安排均属于本发明所主张的范围,本发明的权利保护范围应以权利要求书为准。