储存媒体的数据加密装置
技术领域
本发明涉及一种储存媒体的数据加密装置,尤指一种可避免密钥遭直接窃取的储存媒体的数据加密装置。
背景技术
随着半导体产业的快速演进,内存的容量越来越大,但体积却越来越小,使人们得容易地随身携带大容量储存媒体,而能达到将重要数据随身携带,只要有计算机就能随时读取储存媒体中的重要数据,非常方便。
然而,也因为储存媒体的体积越做越小,使得人们在携带时,不慎遗失的可能性相对提高,一旦遗失的储存媒体中存放有重要数据,任何拾获者皆可轻易地读取储存媒体中的重要数据,因而容易发生机密外泄的问题。
为此,目前有两种针对储存媒体中数据的加密方法。
1.设定使用者密钥:储存媒体中储存有一密钥查验程序,其可于储存媒体首次连接计算机时,让使用者透过计算机输入一使用者密钥,并由该密钥查验程序将使用者密钥储存在储存媒体中,尔后当储存媒体再连接计算机时,使用者必须透过计算机输入与储存媒体中所储存的使用者密钥相符的密码,方可顺利存取该储存媒体中的数据,反之则不允许存取该储存媒体中的数据。
2.使用高级加密标准(Advanced Encryption Standard,简称AES):AES是目前常见的加密标准,每个使用者都会预先设定一公用密钥及一私人密钥,该公用密钥是用以执行加密,而该私人密钥则是用于执行解密。当要将原始数据存入该储存媒体时,原始数据由AES加解密软件或硬件利用公用密钥将原始数据加密为已加密数据后,再存入该储存媒体中;当欲自储存媒体中读取已加密数据时,则必须由AES加解密软件或硬件以内存的私人密钥将已加密数据进行解密,方可读出正确的原始数据。
然而,无论是设定使用者密钥或是使用AES,都是预先在密钥查验程序及加解密软件或硬件中储存使用者密钥、公用密钥及私人密钥,因此存在着使用者密钥、公用密钥及私人密钥遭直接自储存媒体或加解密软件或硬件上窃取的风险。是以,现有的储存媒体数据加密装置,尚有待检讨,并进一步谋求可行的改进方案。
发明内容
为更提高储存媒体数据加密等级,本发明的主要目的在提供一种储存媒体的数据加密装置,其可避免储存媒体内存的密钥遭直接窃取。
为达成前述目的所采取的主要技术手段是令前述储存媒体的数据加密装置包括:
一密钥输入接口,供使用者输入以取得一使用者密钥;
一区块加解密单元,供进行区块编码或译码;
一随机数加解密单元,连接该密钥输入接口,而依该使用者密钥进行串行位随机数编码或译码;
一控制单元,连接该区块加解密单元和随机数加解密单元,且储存一加密程序及一解密程序,其中该加密程序当该控制单元取得一原始数据时,先将该原始数据传送至该区块加解密单元进行区块编码,再经该随机数加解密单元进行串行位随机数编码后输出一已加密数据,由该储存媒体加以储存;该解密程序当该控制单元自该储存媒体取得一已加密数据时,先将该已加密数据传送至该随机数加解密单元串行位随机数译码后,再经该区块加解密单元进行区块译码,若解密程序进行时,该随机数加解密单元所取得的使用者密钥与加密程序时所取得者相同,始可将该已加密数据还原为原始数据后输出;
该随机数加解密单元包括:
n个D正反器,其中n是对应使用者密钥的数据长度,各D正反器具有一D输入端、一触发输入端及一Q输出端,其中第1个D正反器的D输入端是连接该区块加解密单元以取得已加密数据,所有D正反器的触发输入端是连接该密钥输入接口以取得使用者密钥中的对应位码,当i=1至n-1时,第i个D正反器的Q输出端是连接第i+1个D正反器的D输入端,而第n个D正反器的D输入端是连接第n-1个D正反器的Q输出端;
m个XOR闸,其中m小于n,各XOR闸包括一第一输入端、一第二输入端及一输出端,其中各XOR闸的第一输入端连接一对应D正反器的D输入端,当j=1至m-1时,第j个XOR闸的第二输入端连接第j+1个XOR闸的输出端,而第m个XOR闸的第二输入端则连接第n个D正反器的Q输出端,第1个XOR闸的输出端供输出已加密数据。
利用上述技术手段,由于本加密装置毋须储存使用者密钥,每次加密或是解密均由使用者自行输入使用者密钥,输入正确才能正确地将已加密数据转换回原始数据,而得以顺利存取储存媒体中数据,反之虽仍可读出储存媒体中的数据,但不同的使用者密钥将导致读出的数据无法顺利解密还原为原始数据,故读出的数据仅是无用的乱码。因此,本加密装置可有效地达成数据加密,且因毋须储存使用者密钥而具有避免密钥遭直接自加密装置上窃取的功效。
附图说明
图1:是本发明一较佳实施例的实施暨应用示意图。
图2:是本发明另一较佳实施例的实施暨应用示意图。
图3:是本发明的功能方块图。
图4A:是本发明中一区块加解密单元所储存的一加密转换表。
图4B:是本发明中一区块加解密单元所储存的一解密转换表。
图5:是本发明中一随机数加解密单元的电路图。
符号说明
(1)数据加密装置 (2)可移除式储存装置
(3)计算机 (10)密钥输入接口
(20)区块加解密单元 (21)加密转换表
(22)解密转换表 (30)随机数加解密单元
(31)D正反器 (311)D输入端
(312)触发输入端 (313)Q输出端
(32)XOR閘 (321)第一输入端
(322)第二输入端 (323)输出端
(40)控制单元
具体实施方式
本发明的数据加密装置,是适用于任何储存媒体,包括计算机中的硬盘机,或是常见的可移除式储存装置,例如随身碟等,若该储存媒体是计算机中的硬盘机,则具体地是由计算机中的中央处理器(CPU)与该硬盘机交换数据,若该储存媒体是可移除式储存装置,则巨观地是由计算机与该可移除式储存装置交换数据,以下是以储存媒体是可移除式储存装置作为举例。如图1所示,本发明的数据加密装置(1)则可以软件实现,安装于可移除式储存装置(2)的闪存中,以完成与一计算机(3)交换数据时的加解密工作,或如图2所示,以硬件实现,而外接于一计算机(3)和该可移除式储存装置(2)之间,以完成数据的加解密工作。
关于本发明的一较佳实施例,请参阅图3所示,包括一密钥输入接口(10)、一区块加解密单元(20)、一随机数加解密单元(30)及一控制单元(40)。
上述密钥输入接口(10)是供使用者输入以取得一使用者密钥;较佳地,该密钥输入接口(10)是为一显示于储存媒体所连接的计算机(3)的屏幕上的对话框或对话窗口,供使用者藉由操作计算机(3)以输入使用者密钥;又于本实施例中,该使用者密钥是具有128个位码。
上述区块加解密单元(20)是供进行区块编码或译码;关于该区块加解密单元(20)的一较佳实施例,请进一步参阅图4A及图4B所示,该区块加解密单元(20)是储存有一加密转换表(21)及一解密转换表(22),其中:
该区块加解密单元(20)将数据进行加密时,是先将欲加密数据区分为多个子数据区块,接着再逐个将子数据区块利用该加密转换表(21)加密而输出区块加密数据,例如,若数据是0xab,则加密后的资料则是0x62;
该区块加解密单元(20)将数据进行解密时,是将欲解密数据区分为多个子数据区块,接着再逐个将子数据区块利用该解密转换表(22)解密为原始数据,例如,若加密后数据是0x62,则解密后资料为0xab。
上述随机数加解密单元(30)是连接该密钥输入接口(10),而依该使用者密钥进行串行位随机数编码或译码;请进一步参阅图5所示,该随机数加解密单元(30)是包括:
n个D正反器(D flip-flop)(31),其中n是对应使用者密钥的数据长度,各D正反器具有一D输入端(311)、一触发输入端(312)及一Q输出端(313),其中第1个D正反器(31)的D输入端是连接该区块加解密单元(20),并取得区块加密数据或已加密数据,所有D正反器(31)的触发输入端(312)是连接该密钥输入接口(10)以取得使用者密钥中的对应位码,而第1个D正反器(31)的Q输出端(313)是连接第2个D正反器(31)的D输入端(311),以此类推,第n个D正反器(31)的D输入端(311)是连接第n-1个D正反器(31)的Q输出端(313);于本实施例中,是对应该使用者密钥的数据长度而有128个D正反器(31),如此将可使编码的复杂度达到2128种组合,将难以利用试误法加以破解;
m个互斥或(exclusive or,简称XOR)闸(32),其中m小于n,各XOR闸(32)是包括一第一输入端(321)、一第二输入端(322)及一输出端(323),其中各XOR闸(32)的第一输入端(321)是连接一对应D正反器(31)的D输入端(311),第1个XOR闸(32)的第二输入端(322)是连接第2个XOR闸(32)的输出端(323),以此类推,第m个XOR闸(32)的第二输入端(322)则连接第n个D正反器(31)的Q输出端(313),第1个XOR闸(32)的输出端(323)是供输出已加密数据或随机数解密数据;较佳地,该随机数加解密单元(30)是具有3个XOR闸(32),其中第1个XOR闸(32)的第一输入端(321)是连接第1个D正反器(31)的D输入端(311),第2个XOR闸(32)的第一输入端(321)是连接第3个D正反器(31)的D输入端(311),第3个XOR闸(32)的第一输入端(321)是连接第20个D正反器(31)的D输入端(311)。
如此一来,该随机数加解密单元(30)即可根据使用者密钥,对区块加密数据逐个位地进行串行位随机数编码,以及对已加密数据逐个位地进行串行为元随机数译码。
上述控制单元(40)是连接该区块加解密单元(20)和随机数加解密单元(30),且储存有:
一加密程序,当该控制单元(40)自该计算机(3)取得一原始数据时,先将该原始数据传送至该区块加解密单元(20)进行区块编码而输出该区块加密数据,再经该随机数加解密单元(30)进行串行位随机数编码后输出该已加密数据,由该可移除式储存装置(2)加以储存;及
一解密程序,是当该控制单元(40)自该可移除式储存装置(2)取得一已加密数据时,先将该已加密数据传送至该随机数加解密单元(30)串行位随机数译码而输出该随机数解密数据,再经该区块加解密单元(20)进行区块译码,若解密程序进行时所取得的使用者密钥与加密程序时所取得者相同,该随机数加解密单元(30)始可将该已加密数据还原为原始数据后由该计算机(3)读取,反之该随机数加解密单元(30)则无法将已加密数据还原为原始数据;如此一来,虽该未还原为原始数据的已加密数据仍可由计算机(3)读取,但因并未正确地将之还原为原始数据,故计算机(3)将无法正确解读并显示。
由上述可知,本发明的加密装置(1)具有以下优点:
1.根据前述说明,本发明的加密装置(1)需要使用者于加密时及解密时输入使用者密钥,若解密时输入的使用者密钥与加密时所输入的使用者密钥不同,则无法正确地将已加密数据解密,因此,本发明的加密装置(1)不需储存使用者密钥,也因此无使用者密钥遭直接自本发明的加密装置(1)上窃取的可能性。
2.由于该区块加解密单元(20)进行加、解密时,是以查表方式完成,故仅需2个频率即可完成,而该随机数加解密单元(30)则仅增加了多个D正反器(31)和几个XOR闸(32),且在执行加、解密时亦仅增加稍许延迟,而不增加频率,因此,本发明的加密装置(1)不但可快速地执行加、解密,且在制造上,亦毋须增加过多的电路组件即可达成,故可具备加、解密速度快及整体体积不增加的优点。
本发明虽已于前述实施例中所揭露,但并不仅限于前述实施例中所提及的内容,在不脱离本发明的精神和范围内所作的任何变化与修改,均属于本发明的保护范围。