CN106470100B - 加解密装置、加密方法和解密方法 - Google Patents
加解密装置、加密方法和解密方法 Download PDFInfo
- Publication number
- CN106470100B CN106470100B CN201510500431.9A CN201510500431A CN106470100B CN 106470100 B CN106470100 B CN 106470100B CN 201510500431 A CN201510500431 A CN 201510500431A CN 106470100 B CN106470100 B CN 106470100B
- Authority
- CN
- China
- Prior art keywords
- mentioned
- data
- orthogonal vectors
- product
- encryption
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Storage Device Security (AREA)
Abstract
一种加解密装置、加密方法和解密方法。该加解密装置包括处理器以及第一存储器装置;处理器用以处理第一数据及第二数据;第一存储器装置储存控制处理器的执行的第一、第二、以及第三应用程序;其中,第一应用程序使处理器产生第一组正交向量,且第一组正交向量包括第一正交向量以及第二正交向量;第二应用程序使处理器将第一数据乘以第一正交向量以产生第一乘积;第三应用程序使处理器将第二数据乘以第二正交向量以产生第二乘积;以及第一应用程序还使处理器相加第一和第二乘积以产生加密数据并储存加密数据至第二存储器装置。本发明使用正交向量对相同装置上的两种或更多种数据进行加密和解密,藉以对装置上的各种处理动作提供数据安全保护。
Description
技术领域
本发明涉及数据安全,尤指适用于数据安全中的加解密装置、加密方法和解密方法。
背景技术
由于目前有越来越多的运算装置例如智能型手机、手提计算机、以及智能表可以执行两个或更多个处理程序,因此处理程序之间的信息安全成为重要的设计考量,用于保护某个处理程序上执行的敏感信息或数据不受其他处理程序的侵害。
商用产品保证(Commercial Product Assurance,CPA)为一种增加商用产品的安全信心的方式。根据CPA规定,在单独商品内包括多个逻辑装置,且必须禁止其中每个逻辑装置的设定被其他逻辑装置存取。因此若两个或更多个处理程序驻于相同运算装置之内且能存取相同的数据储存装置时,***必须确保其他处理程序无法撷取这些处理程序的设定数据。
因此,本发明提供一种加解密装置、加密方法和解密方法用以在相同运算装置上针对不同处理程序提供数据安全性。
发明内容
基于上述目的,本发明公开了一种加解密装置,包括一第一输入接口电路、一第二输入接口电路、一处理器、以及一第一存储器装置。上述第一输入接口电路接收第一数据。上述第二输入接口电路接收第二数据。上述处理器耦接上述第一输入接口电路和上述第二输入接口电路。上述第一存储器装置储存控制上述处理器的执行的第一、第二、以及第三应用程序。上述第一应用程序使上述处理器产生一第一组正交向量。上述第二应用程序使上述处理器接收上述第一组正交向量的一第一正交向量并将上述第一数据乘以上述第一正交向量以产生一第一乘积。上述第三应用程序使上述处理器接收上述第一组正交向量的一第二正交向量并将上述第二数据乘以上述第二正交向量以产生一第二乘积。上述第一应用程序还使上述处理器相加上述第一和第二乘积以产生加密数据并储存上述加密数据至一第二存储器装置。
本发明还公开了一种加解密装置,该加解密装置包括:一处理器,该处理器用以处理一第一数据及一第二数据;以及一第一存储器装置,该第一存储器装置储存控制上述处理器的执行的一第一、一第二、以及一第三应用程序;其中,上述第一应用程序使上述处理器产生一第一组正交向量,且上述第一组正交向量包括一第一正交向量以及一第二正交向量;上述第二应用程序使上述处理器将上述第一数据乘以上述第一正交向量以产生一第一乘积;上述第三应用程序使上述处理器将上述第二数据乘以上述第二正交向量以产生一第二乘积;以及上述第一应用程序还使上述处理器相加上述第一和第二乘积以产生一加密数据并储存上述加密数据至一第二存储器装置。
本发明还公开了一种加密方法,该加密方法适用于一加密装置,该加密方法包括:产生一第一组正交向量;将一第一数据乘以上述第一组正交向量的第一正交向量以产生一第一乘积;将一第二数据乘以上述第一组正交向量的第二正交向量以产生一第二乘积;将上述第一和第二乘积相加以产生一加密数据;以及储存上述加密数据至一存储器装置;其中,上述第一数据和第二数据属于不同数据种类。
本发明还公开了一种解密方法,该解密方法适用于一解密装置,该解密方法包括:读取一加密数据;将上述加密数据和一第一组正交向量的一第一正交向量相乘以产生一第一乘积;将上述加密数据和上述第一组正交向量的一第二正交向量相乘以产生一第二乘积;分别根据上述第一乘积和上述第二乘积得到一第一数据和一第二数据;其中,上述第一数据和第二数据属于不同数据种类。
本发明使用正交向量对相同装置上的两种或更多种数据进行加密和解密,藉以对装置上的各种处理动作提供数据安全保护。
附图说明
图1显示本发明实施例中一种量表装置1的框图。
图2显示本发明实施例中一加密方法2的流程图。
图3显示本发明实施例中一种解密方法3的流程图。
图4显示本发明实施例中一种正交向量产生方法4的流程图。
图5显示本发明实施例中一种加密方法5的流程图。
图6显示本发明实施例中一种解密方法6的流程图。
主要组件符号说明:
1 量表装置
10 输入接口装置
100 3G广域局域网络接口电路
102 本地局域网络接口电路
104 通用串行总线接口电路
106 家庭局域网络接口电路
D1、D2、D3 量表数据
12 中央处理单元
14 第一存储器装置
140 水表程序
142 瓦斯表程序
144 电表程序
146 数据安全程序
16 第二存储器装置
160 加密数据
2 加密方法
S200、S202、…、S218 步骤
3 解密方法
S300、S302、…、S312 步骤
4 正交向量产生方法
S400、S402、…、S408 步骤
5 加密方法
S500、S502、…、S508 步骤
6 解密方法
S600、S602、…、S608 步骤
具体实施方式
在此必须说明的是,以下公开内容中所提出的不同实施例或范例,用以说明本发明所公开的不同技术特征,其所描述的特定范例或排列用以简化本发明,然而并非用以限定本发明。此外,在不同实施例或范例中可能重复使用相同的参考数字与符号,此等重复使用的参考数字与符号用以说明本发明所公开的内容,而非用以表示不同实施例或范例间的关系。
图1显示本发明实施例中一种量表装置1的框图,包括输入接口装置(输入接口电路)10、中央处理单元(Central Processing Unit,CPU)12、第一存储器装置14、以及第二存储器装置16。量表装置1可收集各种量表数据,量表数据D1、D2、和D3,接着定期或当读取/写入第二存储器装置16上的加密数据一预定次数时将加密后的量表数据储存至第二存储器装置16,其中上述读取以及写入第二存储器装置16动作各一次视为一次存取动作。量表数据可为水表、瓦斯表、或电表数据,其代表家用水、瓦斯、或电力消耗,或可为水表、瓦斯表、或电表的数据设定。量表装置1对个人数据的数据安全提供保护,使其不受未授权的数据存取侵害。
第一存储器装置14储存水表程序140、瓦斯表程序142、电表程序144、以及数据安全程序146,每个程序可由中央处理单元12加载并执行。数据安全程序146可产生用于分配给水表程序140、瓦斯表程序142、以及电表程序144的正交向量。正交向量用作水表程序140、瓦斯表程序142、和电表程序144的加密或解密密钥来对收集的量表数据进行加密或解密。例如,在数据安全程序146产生第一正交向量且瓦斯表程序142接收第一正交向量后,瓦斯表程序142可以第一正交向量加密瓦斯表数据并将加密瓦斯表数据送回数据安全程序146进行进一步数据处理。
输入接口电路10包括3G广域局域网络(Wide Area Network,WAN)接口电路100、本地局域网络(Local Area Network,LAN)接口电路102、通用串行总线(Universal SerialBus,USB)接口电路104、以及家庭局域网络(Home Area Network,HAN)接口电路106,且每个接口电路可从各自的测量装置接收水表、瓦斯表、或电表数据,接着将水表、瓦斯表、或电表数据送至水表程序140,瓦斯表程序142,或电表程序144。
在每个预定期间或达到每个存取量表数据的预定次数时,数据安全程序146可产生一组新的正交向量。预定期间或预定次数可由制造商、贩卖商、或用户加以设定。
数据安全程序146可根据Walsh-Hadamard转换产生一组正交向量,上述组正交向量中的每个正交向量互相正交,所以正交向量之间不会互相干扰。上述组正交向量中的每个正交向量的长度可为固定长度或不同长度。
在某些实施例中,上述组正交向量的正交向量的各自长度为固定值,且可由数据种类数量和数据加密所需的安全层级而判断。当数据种类数量增加和/或所需安全层级增加时,正交向量的长度可随之增加。反之,当数据种类数量降低和/或所需安全层级降低时,正交向量的长度可被降低藉以降低数据处理的复杂度。
在其他实施例中,上述组正交向量的正交向量的各自长度可为不同值,且可判断并可根据每个量表程序140、142和144中加密数据的数据种类判断。例如,水表程序140的数据种类为水表数据且瓦斯表程序142的数据种类为瓦斯表数据,分派给水表数据的正交向量可为(1,0,0)且分派给瓦斯表数据可为(0,1,0,1),两个正交向量的前3个数值组成互相正交,而瓦斯表数据的正交向量的第4个数值为任意数,即0或1。
水表程序140可将水表数据与分派的正交向量相乘以产生水表数据乘积;瓦斯表程序142可将瓦斯表数据与分派的正交向量相乘以产生瓦斯表数据乘积;电表程序144可将可将电表数据与分派的正交向量相乘以产生电表数据乘积。
数据安全程序146可从水表程序140、瓦斯表程序142、和电表程序14接收水表数据乘积、瓦斯表数据乘积、和电表数据乘积,藉由将所有乘积相加以相加水表数据乘积、瓦斯表数据乘积、和电表数据乘积来提供加密数据160,并将加密数据160储存于第二存储器装置16。由于分派了不同的正交向量给水表程序140、瓦斯表程序142、和电表程序144,作为结果的内积(inner product)也为互相正交,并且加密数据160中每个乘积不会干扰其他的乘积。
第一存储器装置14以及第二存储器装置16可为相同存储器装置的不同区块,或是不同的存储器装置。第二存储器装置16可为量表装置1的内建或外插存储器装置,并可以例如为闪存。
当水表程序140、瓦斯表程序142、或电表程序144需使用加密数据160时可以解密加密数据160并对解密的数据进行数据处理。例如水表程序140、瓦斯表程序142、或电表程序144可收集新量表数据,解密旧量表数据,并以新正交向量加密新量表数据和旧量表数据以得到新加密数据。新正交向量可由数据安全程序146在每个固定期间或当存取第二存储器装置16的加密数据一预定次数时产生。
在加密时水表程序140、瓦斯表程序142、或电表程序144可分别在执行乘积动作前执行搅乱动作以更加强数据安全。每个水表程序140、瓦斯表程序142、或电表程序144各有一套独立且不公开的搅乱机制,搅乱机制由各程序的设计者所决定。举例而言,瓦斯表程序142无法存取水表程序140、或电表程序144专用的搅乱机制。
在解密时,水表程序140、瓦斯表程序142、或电表程序144可从第二存储器装置16读取加密数据160,将加密数据160乘以用于加密量表数据的正交向量藉以产生乘积,接着根据一搅乱机制对乘积进行解搅乱,以得到原始量表数据,该搅乱机制对应每个水表程序140、瓦斯表程序142、或电表程序144的专用搅乱机制。旧正交向量和一搅乱机制对每个水表程序140、瓦斯表程序142、或电表程序144来说是特定值或特定机制,其他程序无法得知,且每个程序使中央处理单元12无法存取关于其他程序的量表数据、正交向量和搅乱机制的信息,例如:水表程序140在执行时,中央处理单元12无法存取电表数据、对应于电表的正交向量以及对应于电表的搅乱机制。在本发明的实施例中,搅乱机制可以进行搅乱的动作与解搅乱的动作,并且解搅乱的动作为搅乱的动作的一反向动作,意即将搅乱后的数据还原成原始数据。在一个例子中,量表装置1可定期加密最新更新的量表数据然后将加密数据160储存至第二存储器装置16。数据安全程序146可针对水表程序140、瓦斯表程序142、和电表程序144定期产生一组新正交向量。水表程序140、瓦斯表程序142、和电表程序144可从第二存储器装置16接收加密数据160,分别地将加密数据160乘以对应的旧正交向量以产生第一、第二、和第三乘积,再使用对应搅乱机制解搅乱乘积藉以恢复旧水表数据、旧瓦斯表数据、和旧电表数据。接下来水表程序140、瓦斯表程序142、和电表程序144可分别从数据安全程序146接收上述组新正交向量的新第一、第二、和第三正交向量,藉由将收集到的量表数据加入旧水表数据、旧瓦斯表数据、和旧电表数据而产生新水表数据、新瓦斯表数据、和新电表数据,使用第一、第二、和第三搅乱机制搅乱新第一、新第二和新第三乘积以产生新第一、新第二和新第三搅乱数据,将新第一、新第二和新第三搅乱数据分别乘以上述组新正交向量的新第一、新第二、和新第三正交向量藉以产生新第一、新第二、和新第三乘积。接着数据安全程序146可从水表程序140、瓦斯表程序142、和电表程序144接收新第一、新第二、和新第三乘积,并将新第一、新第二、和新第三乘积互相相加以产生要储存至第二存储器装置16的新加密数据160。
图2显示本发明实施例中一加密方法2的流程图,适用于一加密装置,例如图1中量表装置1。为了解释目的,加密方法2使用程序A、程序B和数据安全程序用以显示其动作。程序A、程序B、和数据安全程序可储存于第一存储器装置之内,并由处理器加载和执行。加密方法2可在开机时或当加密程序初始时开始动作。
在加密方法2开始后,程序A接收第一数据(S200)且程序B接收第二数据(S202)。程序A可在每个期间a内收集第一数据且程序B可在每个期间b内收集第二数据,其中期间a和b可大致相同或不同。第一和第二数据可为以二进制形式表示的向量组成,该二进制形式包括0或1。一旦收到第一数据或第二数据之后,程序A或程序B可转换第一或第二数据中的“0”至“-1”以进行后续动作。第一数据和第二数据属于不同数据种类和/或由不同程序运作。第一数据和第二数据为用户输入的数据或由测量装置从周围环境中测量的数据,该测量装置可例如为瓦斯表或电表。在一个例子中,第一数据或第二数据可为水表数据、瓦斯表数据、和电表数据其中之一,且程序A和程序B可处理水表数据、瓦斯表数据、和电表数据其中之一。在另一个例子中,第一数据或第二数据可为skype数据和facebook数据其中之一,且程序A或程序B可处理数据以执行skype和facebook其中的一种应用程序。
同时数据安全程序可使用例如Walsh-Hadamard转换来产生一组正交向量,并派送上述组正交向量中的第一正交向量至程序A以及上述组正交向量中的第二正交向量至程序B。作为响应,程序A接收第一正交向量(S204)且程序B接收第二正交向量(S206)。程序A和B可将收到的第一和第二正交向量储存于各自的本地存储器装置。在每个预定期间(例如每3小时)或达到每个存取量表数据的预定次数(例如每10次)存取动作发生时,数据安全程序可产生一组新正交向量。预定期间或预定次数可由制造商、贩卖商、或用户设定。上述组正交向量的正交向量的长度可以是固定的或由数据种类数量和数据加密所需的安全层级判断。当数据种类数量增加和/或所需安全层级增加时,正交向量的长度可随之增加。反之,当数据种类数量降低和/或所需安全层级降低时,正交向量的长度可以降低以降低数据处理的复杂度。
下一步,程序A可使用第一搅乱机制搅乱第一数据以产生第一搅乱数据(S208)且程序B使用第二搅乱机制搅乱第二数据以产生第二搅乱数据(S210)。搅乱动作可包括一个或多个逻辑运作,例如XOR、NOR以及位置换运作。第一搅乱机制和第二搅乱机制由程序开发者设定,且每个搅乱机制只有程序A或程序B知道。即加密装置上的程序B、数据安全程序、以及其他程序无法存取第一搅乱机制,且加密装置上的程序A、数据安全程序、以及其他程序无法存取第二搅乱机制。藉由这个机制数据搅乱程序对加密数据提供进一步数据安全。
程序A可将第一搅乱数据乘以第一正交向量以产生第一乘积(S212)并传送第一乘积至数据安全程序,且程序B可将第二搅乱数据乘以第二正交向量以产生第二乘积(S214)并传送第一乘积至数据安全程序。具体来说,程序A可对第一搅乱数据和第一正交向量执行内乘积乘法,且程序B可对搅乱第二数据和第二正交向量执行内乘积乘法。
接着数据安全程序可相加第一和第二乘积藉由将第一和第二乘积相加以产生加密数据(S216),并将加密数据存入本地存储器装置(S218)。
图3显示本发明实施例中一种解密方法3的流程图,适用于一解密装置,例如图1中量表装置1。为了解释目的,解密方法3使用程序A、程序B和数据安全程序用以显示其动作。程序A、程序B、和数据安全程序可储存于第一存储器装置之内,并由处理器加载和执行。解密方法3可在开机时或当加密程序初始时开始动作。
解密方法3开始后,程序A和B可从本地存储器读取加密数据(S300)。随后程序A可将加密数据乘以第一正交向量以产生第一乘积(S302),且程序B可将加密数据乘以第二正交向量以产生第二乘积(S304)。程序A可对加密数据和旧第一正交向量执行内乘积乘法以产生第一乘积,且程序B可对加密数据和旧第二正交向量执行内乘积乘法以产生第二乘积。由于第一和第二正交向量的正交性,上述程序A可排除相关于程序B的数据,相同地,程序B可排除相关于程序A的数据。第一和第二正交向量为用于加密的正交向量。根据图1和图2的实施例,数据安全程序可在每个预定期间(例如每3小时)或达到每个存取量表数据的预定次数(例如每10次)存取动作发生时产生一组新正交向量。因此程序A和B可在每次数据安全程序产生上述组新正交向量时分别接收新第一和第二正交向量。程序A和B可分别将旧第一和第二正交向量以及新第一和第二正交向量储存于本地存储器装置例如缓冲器或寄存器之内。程序A和B可读取旧第一和第二正交向量以解密加密数据以及读取新第一和第二正交向量以加密数据。
下一步,程序A可根据第一搅乱机制解搅乱第一乘积以恢复第一数据(S306),且程序B可根据第二搅乱机制解搅乱第二乘积以恢复第二数据(S308)。之后程序A和B可分别执行进一步数据处理,例如加密第一和第二数据。第一搅乱机制和第二搅乱机制由程序开发者设定,且每个搅乱机制只有程序A或程序B知道。即加密装置上的程序B、数据安全程序、以及其他程序无法存取第一搅乱机制,且加密装置上的程序A、数据安全程序、以及其他程序无法存取第二搅乱机制。藉由这个机制数据搅乱程序对加密数据提供进一步数据安全。
图4显示本发明实施例中一种正交向量产生方法4的流程图,在加密方法2和解密方法3中使用,藉以以随机数方式生成一组正交向量。向量产生方法4加密两种或更多种数据,并可在数据安全程序内实现,且在加密方法2或解密方法3开始时初始化。数据安全程序可储存于第一存储器装置,并由处理器加载和执行。
在初始化后正交向量产生方法4可根据Walsh-Hadamard转换产生上述组正交向量(S400)。上述组正交向量中的每个向量都互相正交,即上述组正交向量中的两个或更多个向量的点乘积为0。上述组正交向量的正交向量的长度可为固定的或由数据种类数量和数据加密所需的安全层级判断。当数据种类数量增加和/或所需安全层级增加时,正交向量的长度可随之增加。反之,当数据种类数量降低和/或所需安全层级降低时,正交向量的长度可以降低以降低数据处理的复杂度。
接着正交向量产生方法4可以随机数方式生成旋转角度θ(S402)。旋转角度θ介于0和180度之间的范围。当需要一组新正交向量来加密或解密时,依据新旋转角度θ即可产生一组新正交向量。根据前面段落说明,在每个预定期间或达到存取加密或解密的数据的每个预定次数时会需要一组新正交向量。预定期间或预定次数可由制造商、贩卖商、或用户设定。
随后正交向量产生方法4可以旋转角度θ旋转上述组正交向量中的每个向量(S404)。例如当旋转角度θ为30度时,上述组正交向量中的每个向量都会旋转30度,具体来说,上述组正交向量中的每个向量都会沿着一特定维度的坐标轴旋转30度,例如:X轴、Y轴或Z轴等等。
然后正交向量产生方法4可判断旋转后的向量是否有所改变(S406)。若旋转后的向量有改变,正交向量产生方法4可输出旋转后的向量作为该组新正交向量(S408)。若旋转后的向量维持相同,正交向量产生方法4可回到步骤S402重新产生另一旋转角度θ。
图5显示本发明实施例中一种加密方法5的流程图,适用于一加密装置,例如图1中量表装置1。加密方法5可由储存在第一存储器装置的软件码实现,并由处理器加载和执行,其中软件码可包括三个或更多个程序,如数据安全程序、第一程序和第二程序。加密方法5可在开机时或当加密程序初始时开始动作。第一和第二程序可分别由用户输入或由测量装置从周围环境中测量的第一数据和第二数据获取。
在开始后,加密方法5可藉由数据安全程序产生一组正交向量(S500),并派送上述组正交向量中的第一正交向量至第一程序以及派送上述组正交向量中的第二正交向量至第二程序。上述组正交向量可根据正交向量产生方法4产生。第一和第二程序可分别将第一和第二正交向量储存至本地缓冲器。第一和第二正交向量分别只对第一和第二程序公开,从而其他程序无法存取第一和第二正交向量。
接着加密方法5可将第一数据乘以上述组正交向量中的第一正交向量以产生第一乘积(S502),将第二数据乘以上述组正交向量中的第二正交向量以产生第二乘积(S504),并相加第一和第二乘积以产生加密数据(S506)。步骤S502和S504可分别由第一和第二程序执行,且步骤S506可由数据安全程序执行。具体来说数据安全程序可将第一和第二乘积相加以形成加密数据。由于正交向量互不相关且互相独立,第一和第二乘积加总内的第一和第二乘积不会互相干扰。此外由于原始乘积受到加总程序的掩饰,第一和第二乘积的加总结果可提供进一步数据隐私。最后,加密方法5可将加密数据储存至本地数据储存装置例如快闪盘。
在某些实施例中,在产生第一和第二乘积之前加密方法5可还包括分别以第一和第二搅乱机制搅乱第一和第二数据。搅乱机制为第一和第二程序独有,且每个程序无法存取其他程序的搅乱机制。搅乱动作可包括一个或多个逻辑运作,例如XOR、NOR以及位置换运作。第一和第二搅乱机制可由程序开发者设定。
在一个例子中,数据安全程序产生第一正交向量[1 1 1 1]和第二正交向量[1 1-1 -1]且分别将第一正交向量和第二正交向量派送给第一程序和第二程序(S500),且第一程序从水表获得的测量值接收第一数据[1 0 1]且第二程序从瓦斯表获得的测量值接收第二数据[1 1 0]。第一程序将第一数据[1 0 1]转换为第一数据[1 -1 1]且第二程序将第二数据[1 1 0]转换为第二数据[1 1 -1]。接着第一程序接收第一正交向量[1 1 1 1]且第二程序接收第二正交向量[1 1 -1 -1]。第一程序将第一数据[1 -1 1]乘以第一正交向量[11 1 1]以产生第一乘积[1 1 1 1 -1 -1 -1 -1 1 1 1 1](S502),且第二程序将第二数据[1 1 -1]乘以第二正交向量[1 1 -1 -1]以产生第二乘积[1 1 -1 -1 1 1 -1 -1 -1 -1 11](S504)。接着数据安全程序相加第一乘积[1 1 1 1 -1 -1 -1 -1 1 1 1 1]以及第二乘积[1 1 -1 -1 1 1 -1 -1 -1 -1 1 1]以产生加密数据[2 2 0 0 0 0 2 2 0 0 2 2]并将加密数据[2 2 0 0 0 0 2 2 0 0 2 2]存入本地数据储存装置。
图6显示本发明实施例中一种解密方法6的流程图,适用于一解密装置,例如图1中量表装置1。解密方法6可解密储存于本地数据储存装置的加密数据,该数据储存装置可例如为快闪盘,其中储存于本地数据储存装置的加密数据会根据图5的加密方法5被事先加密。加密数据可包括两种或更多种数据,例如水表数据和电表数据。解密方法6可由储存在第一存储器装置的软件码实现,并由处理器加载和执行,其中软件码可包括三个或更多个程序,如数据安全程序。解密方法6可在开机时或当加密程序初始时开始动作。
在开始后,解密方法6可从本地数据储存装置接收加密数据(S600),藉由数据安全程序产生一组正交向量(S602),解密方法6步骤S602中提供的上述组正交向量对应加密方法5步骤S500所产生的上述组正交向量,且步骤S500和S602可共享并使用相同的上述组正交向量。接着数据安全程序将上述组正交向量中的第一正交向量派送至第一程序以及将上述组正交向量中的第二正交向量派送至第二程序。步骤S600可由第一和第二程序执行,且步骤S602可由数据安全程序执行。
上述组正交向量可根据正交向量产生方法4产生,用于加密和解密数据。即上述组正交向量已用于加密储存在本地数据储存装置的加密数据。第一和第二程序可分别将第一和第二正交向量储存至本地缓冲器。第一和第二正交向量分别只对第一和第二程序公开,从而其他程序无法存取第一和第二正交向量。
下一步解密方法6可将加密数据乘以上述组正交向量中的第一正交向量以产生第一乘积(S604),将加密数据乘以上述组正交向量中的第二正交向量以产生第二乘积(S606),并分别根据第一乘积和第二乘积判断第一数据和第二数据(S608)。步骤S604和S606可分别由第一和第二程序执行,且步骤S608可由第一和第二程序执行。具体来说第一和第二程序可分别将第一和第二乘积除以每个正交向量的强度以恢复第一和第二数据。
在某些实施例中,在恢复第一和第二数据后,解密方法6可还分别根据第一和第二搅乱机制解搅乱第一和第二数据。搅乱机制为第一和第二程序独有,且每个程序无法存取其他程序的搅乱机制。搅乱动作可包括一个或多个逻辑运作,例如XOR、NOR以及位置换运作。第一和第二搅乱机制可由程序开发者设定。
在一个例子中,第一和第二程序从本地数据储存装置接收加密数据[2 2 0 0 0 02 2 0 0 2 2](S600),且数据安全程序产生第一正交向量[1 1 1 1]和第二正交向量[1 1-1 -1]并分别将第一正交向量和第二正交向量派送至第一程序和第二程序(S602)。第一程序将加密数据[2 2 0 0 0 0 2 2 0 0 2 2]乘以第一正交向量[1 1 1 1]以产生第一乘积[4 -4 4](S604)且第二程序将加密数据[2 2 0 0 0 0 2 2 0 0 2 2]乘以第二正交向量[11 -1 -1]以产生第二乘积[4 4 -4](S606)。最后第一程序藉由将第一乘积[4 -4 4]除以向量强度4判断第一数据以恢复第一数据[1 -1 1],同样第一程序藉由将第二乘积[4 4 -4]除以向量强度4判断第一数据以恢复第二数据[1 1 -1]。
图1到图6的加密装置、解密装置、加密方法、以及解密方法使用正交向量对相同装置上的两种或更多种数据进行加密和解密,藉以对装置上的各种处理动作提供数据安全保护。
虽然实施例使用两种或三种程序上的两种或三种数据来说明加密装置、解密装置、加密方法、以及解密方法的动作,本领域的技术人员可知其他数量的数据或程序可依照本发明的原理来进行加密或解密。
本领域的技术人员可理解信息和信号可使用各种不同的技术来表现。例如说明书中描述的数据、指令、信息、信号、位、符号以及芯片可由电压、电流、电磁波、磁场或颗粒、光场或颗粒、或以上的任意组合来表示。
本领域的技术人员可还理解说明书中所述的各个逻辑区块、模块、处理器、执行装置、电路和算法步骤可由电路硬件(例如数字实现硬件、模拟实现硬件,或两者的结合,其可由来源码或其他相关技术加以设计实现),使用指令的各种形式的程序代码或设计码(这里可另外称为软件或软件模块),或上述两者的结合而加以实现。为了清楚显示上述软件和硬件的互换性,说明书描述的各种图示组件、区块、模块、电路、及步骤通常以其功能进行描述。这些功能要以软件或硬件实现会和完整***的特定应用和设计限制有关。本领域的技术人员可针对每个特定应用而以各种方式实现描述的功能,但是实现方式的决定不会偏离本发明的精神和范围。
另外,本发明描述的各种逻辑区块、模块、以及电路可以使用集成电路(Integrated Circuit,IC)实现或由接入终端或存取点执行。集成电路可包括通用处理器、数字信号处理器(Digital Signal Processor,DSP)、特定用途集成电路(ApplicationSpecific Integrated Circuit,ASIC)、现场可编程逻辑门阵列(Field programmableGate Array,FPGA)或其他可编程控制逻辑组件、离散式逻辑电路或晶体管逻辑门、离散式硬件组件、电性组件、光学组件、机械组件或用于执行本发明所描述的执行的功能的其任意组合,其可执行集成电路内驻、外部,或两者皆有的程序代码或程序指令。通用处理器可以为微处理器,或者,该处理器可以为任意商用处理器、控制器、微处理器、或状态机。处理器也可由计算装置的结合加以实现,例如DSP和微处理器、多个微处理器、一个或多个微处理器以及DSP核心、或其他各种设定的结合。
本领域的技术人员可理解本发明公开程序步骤的特定顺序或序列仅为举例。根据设计偏好,本领域的技术人员可理解只要不偏离本发明的精神和范围,本发明公开程序步骤的特定顺序或序列可以以其他顺序重新排列。本发明实施例的方法和要求所伴随的各种步骤顺序只是举例,而不限定于本发明公开程序步骤的特定顺序或序列。
所述的方法或算法步骤可以以硬件或处理器执行软件模块,或以两者结合的方式实现。软件模块(例如包括可执行指令和相关数据)及其他数据可内驻于数据存储器之内,如RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、缓存器、硬盘、软盘、光盘片、或是任何其他机器可读取(如计算机可读取)储存媒体。数据储存媒体可耦接至机器,如计算机或处理器(其可称为“处理器”),处理器可从储存媒体读取及写入程序代码。数据储存媒体可整合至处理器。处理器和储存媒体可内驻ASIC之内。ASIC可内驻在用户设备。或者处理器和储存媒体可以以离散组件的形式驻在用户设备之内。另外,适用的计算机程序产品可包括计算机可读取媒体,包括关于一个或多个说明书公开的程序代码。在一些实施例中,适用的计算机程序产品可包括封装材料。
本发明虽然以较佳实施例公开如上,然而其并非用以限定本发明,任何本领域的技术人员,在不脱离本发明的精神和范围的情况下,应当可作些许的更动与润饰,因此,本发明的保护范围应当视所附的权利要求书所界定者为准。
Claims (17)
1.一种加解密装置,该加解密装置包括:
一处理器,该处理器用以处理一第一数据及一第二数据;以及
一第一存储器装置,该第一存储器装置储存控制上述处理器的执行的一第一、一第二、以及一第三应用程序;
其中,上述第一应用程序使上述处理器产生一第一组正交向量,且上述第一组正交向量包括一第一正交向量以及一第二正交向量;
上述第二应用程序使上述处理器将上述第一数据乘以上述第一正交向量以产生一第一乘积;
上述第三应用程序使上述处理器将上述第二数据乘以上述第二正交向量以产生一第二乘积;以及
上述第一应用程序还使上述处理器相加上述第一和第二乘积以产生一加密数据并储存上述加密数据至一第二存储器装置;
其中,上述第一正交向量和上述第二正交向量的长度不同。
2.如权利要求1所述的加解密装置,其中,上述第一应用程序使上述处理器在一固定期间内重新产生一第二组正交向量。
3.如权利要求1所述的加解密装置,其中,当存取上述第二存储器装置的上述加密数据的次数超出一预定次数时,上述第一应用程序使上述处理器重新产生一第二组正交向量。
4.如权利要求1所述的加解密装置,其中,上述第一应用程序使上述处理器:
以随机数方式生成一旋转角度;以及
结合上述第一组正交向量内每个向量与上述旋转角度藉以产生一第二组正交向量。
5.如权利要求1所述的加解密装置,其中,上述第一数据和第二数据属于不同数据种类。
6.如权利要求1所述的加解密装置,其中:
上述第二应用程序使上述处理器通过一第一搅乱机制产生上述第一数据;以及
上述第三应用程序使上述处理器通过一第二搅乱机制产生上述第二数据。
7.如权利要求6所述的加解密装置,其中,上述第二应用程序使上述处理器仅存取上述第一数据及上述第一正交向量,上述第三应用程序使上述处理器仅存取上述第二数据及上述第二正交向量。
8.如权利要求7所述的加解密装置,其中,上述第二应用程序使上述处理器仅存取上述第一搅乱机制,上述第三应用程序使上述处理器仅存取上述第二搅乱机制。
9.如权利要求6所述的加解密装置,其中:
上述第二应用程序使上述处理器接收上述第一组正交向量的上述第一正交向量,从上述第二存储器装置接收上述加密数据,将上述加密数据和上述第一正交向量相乘以产生一第三乘积,并且根据上述第三乘积得到上述第一数据;以及
上述第三应用程序使上述处理器接收上述第一组正交向量的上述第二正交向量,从上述第二存储器装置接收上述加密数据,将上述加密数据和上述第二正交向量相乘以产生一第四乘积,并且根据上述第四乘积得到上述第二数据。
10.如权利要求9所述的加解密装置,其中:
上述第二应用程序使上述处理器根据上述第一搅乱机制解搅乱该第三乘积以得到上述第一数据;以及
上述第三应用程序使上述处理器根据上述第二搅乱机制解搅乱该第四乘积以得到上述第二数据。
11.一种加密方法,该加密方法适用于一加密装置,该加密方法包括:
产生一第一组正交向量;
将一第一数据乘以上述第一组正交向量的第一正交向量以产生一第一乘积;
将一第二数据乘以上述第一组正交向量的第二正交向量以产生一第二乘积;
将上述第一和第二乘积相加以产生一加密数据;以及
储存上述加密数据至一存储器装置;
其中,上述第一数据和第二数据属于不同数据种类;
其中,上述第一正交向量和上述第二正交向量的长度不同。
12.如权利要求11所述的加密方法,还包括:在一固定期间内产生一第二组正交向量。
13.如权利要求11所述的加密方法,还包括:当存取上述存储器装置的一次数超出一预定次数时,产生一第二组正交向量。
14.如权利要求11所述的加密方法,还包括:
以随机数方式生成一旋转角度;以及
结合上述第一组正交向量内每个向量与上述旋转角度藉以产生一第二组正交向量。
15.如权利要求11所述的加密方法,还包括:
使用一第一搅乱机制产生上述第一数据;以及
使用一第二搅乱机制产生上述第二数据。
16.一种解密方法,该解密方法适用于一解密装置,该解密方法包括:
读取一加密数据;
将上述加密数据和一第一组正交向量的一第一正交向量相乘以产生一第一乘积;将上述加密数据和上述第一组正交向量的一第二正交向量相乘以产生一第二乘积;分别根据上述第一乘积和上述第二乘积得到一第一数据和一第二数据;
其中,上述第一数据和上述第二数据属于不同数据种类;
其中,上述第一正交向量和上述第二正交向量的长度不同。
17.如权利要求16所述的解密方法,还包括:
根据一第一搅乱机制解搅乱该第一乘积以得到上述第一数据;以及
根据一第二搅乱机制解搅乱该第二乘积以得到上述第二数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510500431.9A CN106470100B (zh) | 2015-08-14 | 2015-08-14 | 加解密装置、加密方法和解密方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510500431.9A CN106470100B (zh) | 2015-08-14 | 2015-08-14 | 加解密装置、加密方法和解密方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106470100A CN106470100A (zh) | 2017-03-01 |
CN106470100B true CN106470100B (zh) | 2019-08-20 |
Family
ID=58214857
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510500431.9A Active CN106470100B (zh) | 2015-08-14 | 2015-08-14 | 加解密装置、加密方法和解密方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106470100B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109450620B (zh) * | 2018-10-12 | 2020-11-10 | 创新先进技术有限公司 | 一种移动终端中共享安全应用的方法及移动终端 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1547157A (zh) * | 2003-12-12 | 2004-11-17 | 上海交通大学 | 数字水印的加密正交变换方法 |
CN1777097A (zh) * | 2004-10-01 | 2006-05-24 | 深谷博美 | 加密数据发布方法、加密装置、解密装置、加密程序和解密程序 |
TW201325216A (zh) * | 2011-12-06 | 2013-06-16 | Ind Tech Res Inst | 數位版權管理物件之加密/解密方法、數位版權管理物件加密/解密裝置 |
CN104065968A (zh) * | 2014-07-02 | 2014-09-24 | 哈尔滨海能达科技有限公司 | 一种视频数据加密、解密方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101534269B (zh) * | 2009-04-14 | 2012-05-09 | 华南理工大学 | 一种水声通信*** |
-
2015
- 2015-08-14 CN CN201510500431.9A patent/CN106470100B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1547157A (zh) * | 2003-12-12 | 2004-11-17 | 上海交通大学 | 数字水印的加密正交变换方法 |
CN1777097A (zh) * | 2004-10-01 | 2006-05-24 | 深谷博美 | 加密数据发布方法、加密装置、解密装置、加密程序和解密程序 |
TW201325216A (zh) * | 2011-12-06 | 2013-06-16 | Ind Tech Res Inst | 數位版權管理物件之加密/解密方法、數位版權管理物件加密/解密裝置 |
CN104065968A (zh) * | 2014-07-02 | 2014-09-24 | 哈尔滨海能达科技有限公司 | 一种视频数据加密、解密方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106470100A (zh) | 2017-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9584311B2 (en) | Decrypting data | |
CN104468089B (zh) | 数据保护装置及其方法 | |
CN108959978A (zh) | 设备中密钥的生成与获取方法及装置 | |
CN102638341B (zh) | 用于计算标量乘法的结果的设备和方法 | |
EP2273718B1 (en) | Cryptographic key generation using a stored input value and a count value stored for later regeneration | |
CN1960363B (zh) | 一种利用网络实现信息安全设备远程更新的方法 | |
CN105635144B (zh) | 基于云平台服务器的数据处理方法及*** | |
CN104380245A (zh) | 随机数生成器和流密码 | |
CN109104724B (zh) | 一种用于设备升级的数据加密方法和装置 | |
CN104025104A (zh) | 具有密钥驱动的混淆的虚拟机设备和方法 | |
CN107017981A (zh) | 硬件辅助快速伪随机数生成 | |
CN102347834A (zh) | 受信移动平台体系结构 | |
CN103562922A (zh) | 在芯片制造期间建立唯一秘钥 | |
CN107368744A (zh) | 用于更新固件组件的方法以及测量和控制技术的设备 | |
CN104486355A (zh) | 防止代码被恶意篡改的方法和装置 | |
CN107122632A (zh) | 软件安装包的加密方法及装置 | |
CN108173885A (zh) | 数据加密方法、数据解密方法及相关装置 | |
EP2832129A1 (en) | Secure communication using physical proximity | |
CN107852328B (zh) | 用于安全产品标识和验证的增强混淆或随机化 | |
CN106470100B (zh) | 加解密装置、加密方法和解密方法 | |
CN105574441A (zh) | 一种嵌入式固件保护的方法和装置 | |
CN116566584B (zh) | 基于Henon混沌***加密的可编程控制器通信方法 | |
CN103701591A (zh) | 一种序列密码实现方法和密钥流生成方法及装置 | |
KR101866693B1 (ko) | 함수 암호를 이용한 안전한 전기 요금 과금 방법 | |
Immler | Breaking hitag 2 revisited |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |