欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

加解密裝置、加密方法和解密方法與流程

文檔序號:12161594閱讀:555來源:國知局
加解密裝置、加密方法和解密方法與流程

本發(fā)明涉及數(shù)據(jù)安全,尤指適用于數(shù)據(jù)安全中的加解密裝置、加密方法和解密方法。



背景技術(shù):

由于目前有越來越多的運算裝置例如智能型手機、手提計算機、以及智能表可以執(zhí)行兩個或更多個處理程序,因此處理程序之間的信息安全成為重要的設(shè)計考量,用于保護某個處理程序上執(zhí)行的敏感信息或數(shù)據(jù)不受其他處理程序的侵害。

商用產(chǎn)品保證(Commercial Product Assurance,CPA)為一種增加商用產(chǎn)品的安全信心的方式。根據(jù)CPA規(guī)定,在單獨商品內(nèi)包括多個邏輯裝置,且必須禁止其中每個邏輯裝置的設(shè)定被其他邏輯裝置存取。因此若兩個或更多個處理程序駐于相同運算裝置之內(nèi)且能存取相同的數(shù)據(jù)儲存裝置時,系統(tǒng)必須確保其他處理程序無法擷取這些處理程序的設(shè)定數(shù)據(jù)。

因此,本發(fā)明提供一種加解密裝置、加密方法和解密方法用以在相同運算裝置上針對不同處理程序提供數(shù)據(jù)安全性。



技術(shù)實現(xiàn)要素:

基于上述目的,本發(fā)明公開了一種加解密裝置,包括一第一輸入接口電路、一第二輸入接口電路、一處理器、以及一第一存儲器裝置。上述第一輸入接口電路接收第一數(shù)據(jù)。上述第二輸入接口電路接收第二數(shù)據(jù)。上述處理器耦接上述第一輸入接口電路和上述第二輸入接口電路。上述第一存儲器裝置儲存控制上述處理器的執(zhí)行的第一、第二、以及第三應(yīng)用程序。上述第一應(yīng)用程序使上述處理器產(chǎn)生一第一組正交向量。上述第二應(yīng)用程序使上述處理器接收上述第一組正交向量的一第一正交向量并將上述第一數(shù)據(jù)乘以上述第一正交向量以產(chǎn)生一第一乘積。上述第三應(yīng)用程序使上述處理器接收上述第一組正交向量的一第二正交向量并將上述第二數(shù)據(jù)乘以上述第二正交向量以產(chǎn)生一第二乘積。上述第一應(yīng)用程序還使上述處理器相加上述第一和第二乘積以產(chǎn)生加密數(shù)據(jù)并儲存上述加密數(shù)據(jù)至一第二存儲器裝置。

本發(fā)明還公開了一種加解密裝置,該加解密裝置包括:一處理器,該處理器用以處理一第一數(shù)據(jù)及一第二數(shù)據(jù);以及一第一存儲器裝置,該第一存儲器裝置儲存控制上述處理器的執(zhí)行的一第一、一第二、以及一第三應(yīng)用程序;其中,上述第一應(yīng)用程序使上述處理 器產(chǎn)生一第一組正交向量,且上述第一組正交向量包括一第一正交向量以及一第二正交向量;上述第二應(yīng)用程序使上述處理器將上述第一數(shù)據(jù)乘以上述第一正交向量以產(chǎn)生一第一乘積;上述第三應(yīng)用程序使上述處理器將上述第二數(shù)據(jù)乘以上述第二正交向量以產(chǎn)生一第二乘積;以及上述第一應(yīng)用程序還使上述處理器相加上述第一和第二乘積以產(chǎn)生一加密數(shù)據(jù)并儲存上述加密數(shù)據(jù)至一第二存儲器裝置。

本發(fā)明還公開了一種加密方法,該加密方法適用于一加密裝置,該加密方法包括:產(chǎn)生一第一組正交向量;將一第一數(shù)據(jù)乘以上述第一組正交向量的第一正交向量以產(chǎn)生一第一乘積;將一第二數(shù)據(jù)乘以上述第一組正交向量的第二正交向量以產(chǎn)生一第二乘積;將上述第一和第二乘積相加以產(chǎn)生一加密數(shù)據(jù);以及儲存上述加密數(shù)據(jù)至一存儲器裝置;其中,上述第一數(shù)據(jù)和第二數(shù)據(jù)屬于不同數(shù)據(jù)種類。

本發(fā)明還公開了一種解密方法,該解密方法適用于一解密裝置,該解密方法包括:讀取一加密數(shù)據(jù);將上述加密數(shù)據(jù)和一第一組正交向量的一第一正交向量相乘以產(chǎn)生一第一乘積;將上述加密數(shù)據(jù)和上述第一組正交向量的一第二正交向量相乘以產(chǎn)生一第二乘積;分別根據(jù)上述第一乘積和上述第二乘積得到一第一數(shù)據(jù)和一第二數(shù)據(jù);其中,上述第一數(shù)據(jù)和第二數(shù)據(jù)屬于不同數(shù)據(jù)種類。

本發(fā)明使用正交向量對相同裝置上的兩種或更多種數(shù)據(jù)進(jìn)行加密和解密,藉以對裝置上的各種處理動作提供數(shù)據(jù)安全保護。

附圖說明

圖1顯示本發(fā)明實施例中一種量表裝置1的框圖。

圖2顯示本發(fā)明實施例中一加密方法2的流程圖。

圖3顯示本發(fā)明實施例中一種解密方法3的流程圖。

圖4顯示本發(fā)明實施例中一種正交向量產(chǎn)生方法4的流程圖。

圖5顯示本發(fā)明實施例中一種加密方法5的流程圖。

圖6顯示本發(fā)明實施例中一種解密方法6的流程圖。

主要組件符號說明:

1 量表裝置

10 輸入接口裝置

100 3G廣域局域網(wǎng)絡(luò)接口電路

102 本地局域網(wǎng)絡(luò)接口電路

104 通用串行總線接口電路

106 家庭局域網(wǎng)絡(luò)接口電路

D1、D2、D3 量表數(shù)據(jù)

12 中央處理單元

14 第一存儲器裝置

140 水表程序

142 瓦斯表程序

144 電表程序

146 數(shù)據(jù)安全程序

16 第二存儲器裝置

160 加密數(shù)據(jù)

2 加密方法

S200、S202、…、S218 步驟

3 解密方法

S300、S302、…、S312 步驟

4 正交向量產(chǎn)生方法

S400、S402、…、S408 步驟

5 加密方法

S500、S502、…、S508 步驟

6 解密方法

S600、S602、…、S608 步驟

具體實施方式

在此必須說明的是,以下公開內(nèi)容中所提出的不同實施例或范例,用以說明本發(fā)明所公開的不同技術(shù)特征,其所描述的特定范例或排列用以簡化本發(fā)明,然而并非用以限定本發(fā)明。此外,在不同實施例或范例中可能重復(fù)使用相同的參考數(shù)字與符號,此等重復(fù)使用的參考數(shù)字與符號用以說明本發(fā)明所公開的內(nèi)容,而非用以表示不同實施例或范例間的關(guān)系。

圖1顯示本發(fā)明實施例中一種量表裝置1的框圖,包括輸入接口裝置(輸入接口電路)10、中央處理單元(Central Processing Unit,CPU)12、第一存儲器裝置14、以及第二存儲器裝置16。量表裝置1可收集各種量表數(shù)據(jù),量表數(shù)據(jù)D1、D2、和D3,接著定期或當(dāng)讀取/寫入第二存儲器裝置16上的加密數(shù)據(jù)一預(yù)定次數(shù)時將加密后的量表數(shù)據(jù)儲存至第二存儲器裝置16,其中上述讀取以及寫入第二存儲器裝置16動作各一次視為一次存取動作。量表數(shù)據(jù)可為水表、瓦斯表、或電表數(shù)據(jù),其代表家用水、瓦斯、或電力消耗,或可為水表、瓦斯表、或電表的數(shù)據(jù)設(shè)定。量表裝置1對個人數(shù)據(jù)的數(shù)據(jù)安全提供保護,使其不受未授權(quán)的數(shù)據(jù)存取侵害。

第一存儲器裝置14儲存水表程序140、瓦斯表程序142、電表程序144、以及數(shù)據(jù)安全程序146,每個程序可由中央處理單元12加載并執(zhí)行。數(shù)據(jù)安全程序146可產(chǎn)生用于分配給水表程序140、瓦斯表程序142、以及電表程序144的正交向量。正交向量用作水表程序140、瓦斯表程序142、和電表程序144的加密或解密密鑰來對收集的量表數(shù)據(jù)進(jìn) 行加密或解密。例如,在數(shù)據(jù)安全程序146產(chǎn)生第一正交向量且瓦斯表程序142接收第一正交向量后,瓦斯表程序142可以第一正交向量加密瓦斯表數(shù)據(jù)并將加密瓦斯表數(shù)據(jù)送回數(shù)據(jù)安全程序146進(jìn)行進(jìn)一步數(shù)據(jù)處理。

輸入接口電路10包括3G廣域局域網(wǎng)絡(luò)(Wide Area Network,WAN)接口電路100、本地局域網(wǎng)絡(luò)(Local Area Network,LAN)接口電路102、通用串行總線(Universal Serial Bus,USB)接口電路104、以及家庭局域網(wǎng)絡(luò)(Home Area Network,HAN)接口電路106,且每個接口電路可從各自的測量裝置接收水表、瓦斯表、或電表數(shù)據(jù),接著將水表、瓦斯表、或電表數(shù)據(jù)送至水表程序140,瓦斯表程序142,或電表程序144。

在每個預(yù)定期間或達(dá)到每個存取量表數(shù)據(jù)的預(yù)定次數(shù)時,數(shù)據(jù)安全程序146可產(chǎn)生一組新的正交向量。預(yù)定期間或預(yù)定次數(shù)可由制造商、販賣商、或用戶加以設(shè)定。

數(shù)據(jù)安全程序146可根據(jù)Walsh-Hadamard轉(zhuǎn)換產(chǎn)生一組正交向量,上述組正交向量中的每個正交向量互相正交,所以正交向量之間不會互相干擾。上述組正交向量中的每個正交向量的長度可為固定長度或不同長度。

在某些實施例中,上述組正交向量的正交向量的各自長度為固定值,且可由數(shù)據(jù)種類數(shù)量和數(shù)據(jù)加密所需的安全層級而判斷。當(dāng)數(shù)據(jù)種類數(shù)量增加和/或所需安全層級增加時,正交向量的長度可隨之增加。反之,當(dāng)數(shù)據(jù)種類數(shù)量降低和/或所需安全層級降低時,正交向量的長度可被降低藉以降低數(shù)據(jù)處理的復(fù)雜度。

在其他實施例中,上述組正交向量的正交向量的各自長度可為不同值,且可判斷并可根據(jù)每個量表程序140、142和144中加密數(shù)據(jù)的數(shù)據(jù)種類判斷。例如,水表程序140的數(shù)據(jù)種類為水表數(shù)據(jù)且瓦斯表程序142的數(shù)據(jù)種類為瓦斯表數(shù)據(jù),分派給水表數(shù)據(jù)的正交向量可為(1,0,0)且分派給瓦斯表數(shù)據(jù)可為(0,1,0,1),兩個正交向量的前3個數(shù)值組成互相正交,而瓦斯表數(shù)據(jù)的正交向量的第4個數(shù)值為任意數(shù),即0或1。

水表程序140可將水表數(shù)據(jù)與分派的正交向量相乘以產(chǎn)生水表數(shù)據(jù)乘積;瓦斯表程序142可將瓦斯表數(shù)據(jù)與分派的正交向量相乘以產(chǎn)生瓦斯表數(shù)據(jù)乘積;電表程序144可將可將電表數(shù)據(jù)與分派的正交向量相乘以產(chǎn)生電表數(shù)據(jù)乘積。

數(shù)據(jù)安全程序146可從水表程序140、瓦斯表程序142、和電表程序14接收水表數(shù)據(jù)乘積、瓦斯表數(shù)據(jù)乘積、和電表數(shù)據(jù)乘積,藉由將所有乘積相加以相加水表數(shù)據(jù)乘積、瓦斯表數(shù)據(jù)乘積、和電表數(shù)據(jù)乘積來提供加密數(shù)據(jù)160,并將加密數(shù)據(jù)160儲存于第二存儲器裝置16。由于分派了不同的正交向量給水表程序140、瓦斯表程序142、和電表程序144,作為結(jié)果的內(nèi)積(inner product)也為互相正交,并且加密數(shù)據(jù)160中每個乘積不會干擾其他的乘積。

第一存儲器裝置14以及第二存儲器裝置16可為相同存儲器裝置的不同區(qū)塊,或是不同的存儲器裝置。第二存儲器裝置16可為量表裝置1的內(nèi)建或外插存儲器裝置,并可以例如為閃存。

當(dāng)水表程序140、瓦斯表程序142、或電表程序144需使用加密數(shù)據(jù)160時可以解密加密數(shù)據(jù)160并對解密的數(shù)據(jù)進(jìn)行數(shù)據(jù)處理。例如水表程序140、瓦斯表程序142、或電表程序144可收集新量表數(shù)據(jù),解密舊量表數(shù)據(jù),并以新正交向量加密新量表數(shù)據(jù)和舊量表數(shù)據(jù)以得到新加密數(shù)據(jù)。新正交向量可由數(shù)據(jù)安全程序146在每個固定期間或當(dāng)存取第二存儲器裝置16的加密數(shù)據(jù)一預(yù)定次數(shù)時產(chǎn)生。

在加密時水表程序140、瓦斯表程序142、或電表程序144可分別在執(zhí)行乘積動作前執(zhí)行攪亂動作以更加強數(shù)據(jù)安全。每個水表程序140、瓦斯表程序142、或電表程序144各有一套獨立且不公開的攪亂機制,攪亂機制由各程序的設(shè)計者所決定。舉例而言,瓦斯表程序142無法存取水表程序140、或電表程序144專用的攪亂機制。

在解密時,水表程序140、瓦斯表程序142、或電表程序144可從第二存儲器裝置16讀取加密數(shù)據(jù)160,將加密數(shù)據(jù)160乘以用于加密量表數(shù)據(jù)的正交向量藉以產(chǎn)生乘積,接著根據(jù)一攪亂機制對乘積進(jìn)行解攪亂,以得到原始量表數(shù)據(jù),該攪亂機制對應(yīng)每個水表程序140、瓦斯表程序142、或電表程序144的專用攪亂機制。舊正交向量和一攪亂機制對每個水表程序140、瓦斯表程序142、或電表程序144來說是特定值或特定機制,其他程序無法得知,且每個程序使中央處理單元12無法存取關(guān)于其他程序的量表數(shù)據(jù)、正交向量和攪亂機制的信息,例如:水表程序140在執(zhí)行時,中央處理單元12無法存取電表數(shù)據(jù)、對應(yīng)于電表的正交向量以及對應(yīng)于電表的攪亂機制。在本發(fā)明的實施例中,攪亂機制可以進(jìn)行攪亂的動作與解攪亂的動作,并且解攪亂的動作為攪亂的動作的一反向動作,意即將攪亂后的數(shù)據(jù)還原成原始數(shù)據(jù)。在一個例子中,量表裝置1可定期加密最新更新的量表數(shù)據(jù)然后將加密數(shù)據(jù)160儲存至第二存儲器裝置16。數(shù)據(jù)安全程序146可針對水表程序140、瓦斯表程序142、和電表程序144定期產(chǎn)生一組新正交向量。水表程序140、瓦斯表程序142、和電表程序144可從第二存儲器裝置16接收加密數(shù)據(jù)160,分別地將加密數(shù)據(jù)160乘以對應(yīng)的舊正交向量以產(chǎn)生第一、第二、和第三乘積,再使用對應(yīng)攪亂機制解攪亂乘積藉以恢復(fù)舊水表數(shù)據(jù)、舊瓦斯表數(shù)據(jù)、和舊電表數(shù)據(jù)。接下來水表程序140、瓦斯表程序142、和電表程序144可分別從數(shù)據(jù)安全程序146接收上述組新正交向量的新第一、第二、和第三正交向量,藉由將收集到的量表數(shù)據(jù)加入舊水表數(shù)據(jù)、舊瓦斯表數(shù)據(jù)、和舊電表數(shù)據(jù)而產(chǎn)生新水表數(shù)據(jù)、新瓦斯表數(shù)據(jù)、和新電表數(shù)據(jù),使用第一、第二、和第三攪亂機制攪亂新第一、新第二和新第三乘積以產(chǎn)生新第一、新第二和新第三攪亂數(shù)據(jù),將新第一、新第二和新第三攪亂數(shù)據(jù)分別乘以上述組新正交向量的新第一、新第二、和新第三正交向量藉以產(chǎn)生新第一、新第二、和新第三乘積。接著數(shù)據(jù)安全程序146可從水表程序140、瓦斯表程序142、和電表程序144接收新第一、新第二、和新第三乘積,并將新第一、新第二、和新第三乘積互相相加以產(chǎn)生要儲存至第二存儲器裝置16的新加密數(shù)據(jù)160。

圖2顯示本發(fā)明實施例中一加密方法2的流程圖,適用于一加密裝置,例如圖1中量表裝置1。為了解釋目的,加密方法2使用程序A、程序B和數(shù)據(jù)安全程序用以顯示其動作。程序A、程序B、和數(shù)據(jù)安全程序可儲存于第一存儲器裝置之內(nèi),并由處理器加載和執(zhí)行。加密方法2可在開機時或當(dāng)加密程序初始時開始動作。

在加密方法2開始后,程序A接收第一數(shù)據(jù)(S200)且程序B接收第二數(shù)據(jù)(S202)。程序A可在每個期間a內(nèi)收集第一數(shù)據(jù)且程序B可在每個期間b內(nèi)收集第二數(shù)據(jù),其中期間a和b可大致相同或不同。第一和第二數(shù)據(jù)可為以二進(jìn)制形式表示的向量組成,該二進(jìn)制形式包括0或1。一旦收到第一數(shù)據(jù)或第二數(shù)據(jù)之后,程序A或程序B可轉(zhuǎn)換第一或第二數(shù)據(jù)中的“0”至“-1”以進(jìn)行后續(xù)動作。第一數(shù)據(jù)和第二數(shù)據(jù)屬于不同數(shù)據(jù)種類和/或由不同程序運作。第一數(shù)據(jù)和第二數(shù)據(jù)為用戶輸入的數(shù)據(jù)或由測量裝置從周圍環(huán)境中測量的數(shù)據(jù),該測量裝置可例如為瓦斯表或電表。在一個例子中,第一數(shù)據(jù)或第二數(shù)據(jù)可為水表數(shù)據(jù)、瓦斯表數(shù)據(jù)、和電表數(shù)據(jù)其中之一,且程序A和程序B可處理水表數(shù)據(jù)、瓦斯表數(shù)據(jù)、和電表數(shù)據(jù)其中之一。在另一個例子中,第一數(shù)據(jù)或第二數(shù)據(jù)可為skype數(shù)據(jù)和facebook數(shù)據(jù)其中之一,且程序A或程序B可處理數(shù)據(jù)以執(zhí)行skype和facebook其中的一種應(yīng)用程序。

同時數(shù)據(jù)安全程序可使用例如Walsh-Hadamard轉(zhuǎn)換來產(chǎn)生一組正交向量,并派送上述組正交向量中的第一正交向量至程序A以及上述組正交向量中的第二正交向量至程序B。作為響應(yīng),程序A接收第一正交向量(S204)且程序B接收第二正交向量(S206)。程序A和B可將收到的第一和第二正交向量儲存于各自的本地存儲器裝置。在每個預(yù)定期間(例如每3小時)或達(dá)到每個存取量表數(shù)據(jù)的預(yù)定次數(shù)(例如每10次)存取動作發(fā)生時,數(shù)據(jù)安全程序可產(chǎn)生一組新正交向量。預(yù)定期間或預(yù)定次數(shù)可由制造商、販賣商、或用戶設(shè)定。上述組正交向量的正交向量的長度可以是固定的或由數(shù)據(jù)種類數(shù)量和數(shù)據(jù)加密所需的安全層級判斷。當(dāng)數(shù)據(jù)種類數(shù)量增加和/或所需安全層級增加時,正交向量的長度可隨之增加。反之,當(dāng)數(shù)據(jù)種類數(shù)量降低和/或所需安全層級降低時,正交向量的長度可以降低以降低數(shù)據(jù)處理的復(fù)雜度。

下一步,程序A可使用第一攪亂機制攪亂第一數(shù)據(jù)以產(chǎn)生第一攪亂數(shù)據(jù)(S208)且程序B使用第二攪亂機制攪亂第二數(shù)據(jù)以產(chǎn)生第二攪亂數(shù)據(jù)(S210)。攪亂動作可包括一個或多個邏輯運作,例如XOR、NOR以及位置換運作。第一攪亂機制和第二攪亂機制由程序開發(fā)者設(shè)定,且每個攪亂機制只有程序A或程序B知道。即加密裝置上的程序B、數(shù)據(jù)安全程序、以及其他程序無法存取第一攪亂機制,且加密裝置上的程序A、數(shù)據(jù)安全程序、以及其他程序無法存取第二攪亂機制。藉由這個機制數(shù)據(jù)攪亂程序?qū)用軘?shù)據(jù)提供進(jìn)一步數(shù)據(jù)安全。

程序A可將第一攪亂數(shù)據(jù)乘以第一正交向量以產(chǎn)生第一乘積(S212)并傳送第一乘積至數(shù)據(jù)安全程序,且程序B可將第二攪亂數(shù)據(jù)乘以第二正交向量以產(chǎn)生第二乘積(S214) 并傳送第一乘積至數(shù)據(jù)安全程序。具體來說,程序A可對第一攪亂數(shù)據(jù)和第一正交向量執(zhí)行內(nèi)乘積乘法,且程序B可對攪亂第二數(shù)據(jù)和第二正交向量執(zhí)行內(nèi)乘積乘法。

接著數(shù)據(jù)安全程序可相加第一和第二乘積藉由將第一和第二乘積相加以產(chǎn)生加密數(shù)據(jù)(S216),并將加密數(shù)據(jù)存入本地存儲器裝置(S218)。

圖3顯示本發(fā)明實施例中一種解密方法3的流程圖,適用于一解密裝置,例如圖1中量表裝置1。為了解釋目的,解密方法3使用程序A、程序B和數(shù)據(jù)安全程序用以顯示其動作。程序A、程序B、和數(shù)據(jù)安全程序可儲存于第一存儲器裝置之內(nèi),并由處理器加載和執(zhí)行。解密方法3可在開機時或當(dāng)加密程序初始時開始動作。

解密方法3開始后,程序A和B可從本地存儲器讀取加密數(shù)據(jù)(S300)。隨后程序A可將加密數(shù)據(jù)乘以第一正交向量以產(chǎn)生第一乘積(S302),且程序B可將加密數(shù)據(jù)乘以第二正交向量以產(chǎn)生第二乘積(S304)。程序A可對加密數(shù)據(jù)和舊第一正交向量執(zhí)行內(nèi)乘積乘法以產(chǎn)生第一乘積,且程序B可對加密數(shù)據(jù)和舊第二正交向量執(zhí)行內(nèi)乘積乘法以產(chǎn)生第二乘積。由于第一和第二正交向量的正交性,上述程序A可排除相關(guān)于程序B的數(shù)據(jù),相同地,程序B可排除相關(guān)于程序A的數(shù)據(jù)。第一和第二正交向量為用于加密的正交向量。根據(jù)圖1和圖2的實施例,數(shù)據(jù)安全程序可在每個預(yù)定期間(例如每3小時)或達(dá)到每個存取量表數(shù)據(jù)的預(yù)定次數(shù)(例如每10次)存取動作發(fā)生時產(chǎn)生一組新正交向量。因此程序A和B可在每次數(shù)據(jù)安全程序產(chǎn)生上述組新正交向量時分別接收新第一和第二正交向量。程序A和B可分別將舊第一和第二正交向量以及新第一和第二正交向量儲存于本地存儲器裝置例如緩沖器或寄存器之內(nèi)。程序A和B可讀取舊第一和第二正交向量以解密加密數(shù)據(jù)以及讀取新第一和第二正交向量以加密數(shù)據(jù)。

下一步,程序A可根據(jù)第一攪亂機制解攪亂第一乘積以恢復(fù)第一數(shù)據(jù)(S306),且程序B可根據(jù)第二攪亂機制解攪亂第二乘積以恢復(fù)第二數(shù)據(jù)(S308)。之后程序A和B可分別執(zhí)行進(jìn)一步數(shù)據(jù)處理,例如加密第一和第二數(shù)據(jù)。第一攪亂機制和第二攪亂機制由程序開發(fā)者設(shè)定,且每個攪亂機制只有程序A或程序B知道。即加密裝置上的程序B、數(shù)據(jù)安全程序、以及其他程序無法存取第一攪亂機制,且加密裝置上的程序A、數(shù)據(jù)安全程序、以及其他程序無法存取第二攪亂機制。藉由這個機制數(shù)據(jù)攪亂程序?qū)用軘?shù)據(jù)提供進(jìn)一步數(shù)據(jù)安全。

圖4顯示本發(fā)明實施例中一種正交向量產(chǎn)生方法4的流程圖,在加密方法2和解密方法3中使用,藉以以隨機數(shù)方式生成一組正交向量。向量產(chǎn)生方法4加密兩種或更多種數(shù)據(jù),并可在數(shù)據(jù)安全程序內(nèi)實現(xiàn),且在加密方法2或解密方法3開始時初始化。數(shù)據(jù)安全程序可儲存于第一存儲器裝置,并由處理器加載和執(zhí)行。

在初始化后正交向量產(chǎn)生方法4可根據(jù)Walsh-Hadamard轉(zhuǎn)換產(chǎn)生上述組正交向量(S400)。上述組正交向量中的每個向量都互相正交,即上述組正交向量中的兩個或更多 個向量的點乘積為0。上述組正交向量的正交向量的長度可為固定的或由數(shù)據(jù)種類數(shù)量和數(shù)據(jù)加密所需的安全層級判斷。當(dāng)數(shù)據(jù)種類數(shù)量增加和/或所需安全層級增加時,正交向量的長度可隨之增加。反之,當(dāng)數(shù)據(jù)種類數(shù)量降低和/或所需安全層級降低時,正交向量的長度可以降低以降低數(shù)據(jù)處理的復(fù)雜度。

接著正交向量產(chǎn)生方法4可以隨機數(shù)方式生成旋轉(zhuǎn)角度θ(S402)。旋轉(zhuǎn)角度θ介于0和180度之間的范圍。當(dāng)需要一組新正交向量來加密或解密時,依據(jù)新旋轉(zhuǎn)角度θ即可產(chǎn)生一組新正交向量。根據(jù)前面段落說明,在每個預(yù)定期間或達(dá)到存取加密或解密的數(shù)據(jù)的每個預(yù)定次數(shù)時會需要一組新正交向量。預(yù)定期間或預(yù)定次數(shù)可由制造商、販賣商、或用戶設(shè)定。

隨后正交向量產(chǎn)生方法4可以旋轉(zhuǎn)角度θ旋轉(zhuǎn)上述組正交向量中的每個向量(S404)。例如當(dāng)旋轉(zhuǎn)角度θ為30度時,上述組正交向量中的每個向量都會旋轉(zhuǎn)30度,具體來說,上述組正交向量中的每個向量都會沿著一特定維度的坐標(biāo)軸旋轉(zhuǎn)30度,例如:X軸、Y軸或Z軸等等。

然后正交向量產(chǎn)生方法4可判斷旋轉(zhuǎn)后的向量是否有所改變(S406)。若旋轉(zhuǎn)后的向量有改變,正交向量產(chǎn)生方法4可輸出旋轉(zhuǎn)后的向量作為該組新正交向量(S408)。若旋轉(zhuǎn)后的向量維持相同,正交向量產(chǎn)生方法4可回到步驟S402重新產(chǎn)生另一旋轉(zhuǎn)角度θ。

圖5顯示本發(fā)明實施例中一種加密方法5的流程圖,適用于一加密裝置,例如圖1中量表裝置1。加密方法5可由儲存在第一存儲器裝置的軟件碼實現(xiàn),并由處理器加載和執(zhí)行,其中軟件碼可包括三個或更多個程序,如數(shù)據(jù)安全程序、第一程序和第二程序。加密方法5可在開機時或當(dāng)加密程序初始時開始動作。第一和第二程序可分別由用戶輸入或由測量裝置從周圍環(huán)境中測量的第一數(shù)據(jù)和第二數(shù)據(jù)獲取。

在開始后,加密方法5可藉由數(shù)據(jù)安全程序產(chǎn)生一組正交向量(S500),并派送上述組正交向量中的第一正交向量至第一程序以及派送上述組正交向量中的第二正交向量至第二程序。上述組正交向量可根據(jù)正交向量產(chǎn)生方法4產(chǎn)生。第一和第二程序可分別將第一和第二正交向量儲存至本地緩沖器。第一和第二正交向量分別只對第一和第二程序公開,從而其他程序無法存取第一和第二正交向量。

接著加密方法5可將第一數(shù)據(jù)乘以上述組正交向量中的第一正交向量以產(chǎn)生第一乘積(S502),將第二數(shù)據(jù)乘以上述組正交向量中的第二正交向量以產(chǎn)生第二乘積(S504),并相加第一和第二乘積以產(chǎn)生加密數(shù)據(jù)(S506)。步驟S502和S504可分別由第一和第二程序執(zhí)行,且步驟S506可由數(shù)據(jù)安全程序執(zhí)行。具體來說數(shù)據(jù)安全程序可將第一和第二乘積相加以形成加密數(shù)據(jù)。由于正交向量互不相關(guān)且互相獨立,第一和第二乘積加總內(nèi)的第一和第二乘積不會互相干擾。此外由于原始乘積受到加總程序的掩飾,第一和第二乘積的加總結(jié)果可提供進(jìn)一步數(shù)據(jù)隱私。最后,加密方法5可將加密數(shù)據(jù)儲存至本地數(shù)據(jù)儲存 裝置例如快閃盤。

在某些實施例中,在產(chǎn)生第一和第二乘積之前加密方法5可還包括分別以第一和第二攪亂機制攪亂第一和第二數(shù)據(jù)。攪亂機制為第一和第二程序獨有,且每個程序無法存取其他程序的攪亂機制。攪亂動作可包括一個或多個邏輯運作,例如XOR、NOR以及位置換運作。第一和第二攪亂機制可由程序開發(fā)者設(shè)定。

在一個例子中,數(shù)據(jù)安全程序產(chǎn)生第一正交向量[1 1 1 1]和第二正交向量[1 1 -1 -1]且分別將第一正交向量和第二正交向量派送給第一程序和第二程序(S500),且第一程序從水表獲得的測量值接收第一數(shù)據(jù)[1 0 1]且第二程序從瓦斯表獲得的測量值接收第二數(shù)據(jù)[1 1 0]。第一程序?qū)⒌谝粩?shù)據(jù)[1 0 1]轉(zhuǎn)換為第一數(shù)據(jù)[1 -1 1]且第二程序?qū)⒌诙?shù)據(jù)[1 1 0]轉(zhuǎn)換為第二數(shù)據(jù)[1 1 -1]。接著第一程序接收第一正交向量[1 1 1 1]且第二程序接收第二正交向量[1 1 -1 -1]。第一程序?qū)⒌谝粩?shù)據(jù)[1 -1 1]乘以第一正交向量[1 1 1 1]以產(chǎn)生第一乘積[1 1 1 1 -1 -1 -1 -1 1 1 1 1](S502),且第二程序?qū)⒌诙?shù)據(jù)[1 1 -1]乘以第二正交向量[1 1 -1 -1]以產(chǎn)生第二乘積[1 1 -1 -1 1 1 -1 -1 -1 -1 1 1](S504)。接著數(shù)據(jù)安全程序相加第一乘積[1 1 1 1 -1 -1 -1 -1 1 1 1 1]以及第二乘積[1 1 -1 -1 1 1 -1 -1 -1 -1 1 1]以產(chǎn)生加密數(shù)據(jù)[2 2 0 0 0 0 2 2 0 0 2 2]并將加密數(shù)據(jù)[2 2 0 0 0 0 2 2 0 0 2 2]存入本地數(shù)據(jù)儲存裝置。

圖6顯示本發(fā)明實施例中一種解密方法6的流程圖,適用于一解密裝置,例如圖1中量表裝置1。解密方法6可解密儲存于本地數(shù)據(jù)儲存裝置的加密數(shù)據(jù),該數(shù)據(jù)儲存裝置可例如為快閃盤,其中儲存于本地數(shù)據(jù)儲存裝置的加密數(shù)據(jù)會根據(jù)圖5的加密方法5被事先加密。加密數(shù)據(jù)可包括兩種或更多種數(shù)據(jù),例如水表數(shù)據(jù)和電表數(shù)據(jù)。解密方法6可由儲存在第一存儲器裝置的軟件碼實現(xiàn),并由處理器加載和執(zhí)行,其中軟件碼可包括三個或更多個程序,如數(shù)據(jù)安全程序。解密方法6可在開機時或當(dāng)加密程序初始時開始動作。

在開始后,解密方法6可從本地數(shù)據(jù)儲存裝置接收加密數(shù)據(jù)(S600),藉由數(shù)據(jù)安全程序產(chǎn)生一組正交向量(S602),解密方法6步驟S602中提供的上述組正交向量對應(yīng)加密方法5步驟S500所產(chǎn)生的上述組正交向量,且步驟S500和S602可共享并使用相同的上述組正交向量。接著數(shù)據(jù)安全程序?qū)⑸鲜鼋M正交向量中的第一正交向量派送至第一程序以及將上述組正交向量中的第二正交向量派送至第二程序。步驟S600可由第一和第二程序執(zhí)行,且步驟S602可由數(shù)據(jù)安全程序執(zhí)行。

上述組正交向量可根據(jù)正交向量產(chǎn)生方法4產(chǎn)生,用于加密和解密數(shù)據(jù)。即上述組正交向量已用于加密儲存在本地數(shù)據(jù)儲存裝置的加密數(shù)據(jù)。第一和第二程序可分別將第一和第二正交向量儲存至本地緩沖器。第一和第二正交向量分別只對第一和第二程序公開,從而其他程序無法存取第一和第二正交向量。

下一步解密方法6可將加密數(shù)據(jù)乘以上述組正交向量中的第一正交向量以產(chǎn)生第一乘積(S604),將加密數(shù)據(jù)乘以上述組正交向量中的第二正交向量以產(chǎn)生第二乘積(S606), 并分別根據(jù)第一乘積和第二乘積判斷第一數(shù)據(jù)和第二數(shù)據(jù)(S608)。步驟S604和S606可分別由第一和第二程序執(zhí)行,且步驟S608可由第一和第二程序執(zhí)行。具體來說第一和第二程序可分別將第一和第二乘積除以每個正交向量的強度以恢復(fù)第一和第二數(shù)據(jù)。

在某些實施例中,在恢復(fù)第一和第二數(shù)據(jù)后,解密方法6可還分別根據(jù)第一和第二攪亂機制解攪亂第一和第二數(shù)據(jù)。攪亂機制為第一和第二程序獨有,且每個程序無法存取其他程序的攪亂機制。攪亂動作可包括一個或多個邏輯運作,例如XOR、NOR以及位置換運作。第一和第二攪亂機制可由程序開發(fā)者設(shè)定。

在一個例子中,第一和第二程序從本地數(shù)據(jù)儲存裝置接收加密數(shù)據(jù)[2 2 0 0 0 0 2 2 0 0 2 2](S600),且數(shù)據(jù)安全程序產(chǎn)生第一正交向量[1 1 1 1]和第二正交向量[1 1 -1 -1]并分別將第一正交向量和第二正交向量派送至第一程序和第二程序(S602)。第一程序?qū)⒓用軘?shù)據(jù)[2 2 0 0 0 0 2 2 0 0 2 2]乘以第一正交向量[1 1 1 1]以產(chǎn)生第一乘積[4 -4 4](S604)且第二程序?qū)⒓用軘?shù)據(jù)[2 2 0 0 0 0 2 2 0 0 2 2]乘以第二正交向量[1 1 -1 -1]以產(chǎn)生第二乘積[4 4 -4](S606)。最后第一程序藉由將第一乘積[4 -4 4]除以向量強度4判斷第一數(shù)據(jù)以恢復(fù)第一數(shù)據(jù)[1 -1 1],同樣第一程序藉由將第二乘積[4 4 -4]除以向量強度4判斷第一數(shù)據(jù)以恢復(fù)第二數(shù)據(jù)[1 1 -1]。

圖1到圖6的加密裝置、解密裝置、加密方法、以及解密方法使用正交向量對相同裝置上的兩種或更多種數(shù)據(jù)進(jìn)行加密和解密,藉以對裝置上的各種處理動作提供數(shù)據(jù)安全保護。

雖然實施例使用兩種或三種程序上的兩種或三種數(shù)據(jù)來說明加密裝置、解密裝置、加密方法、以及解密方法的動作,本領(lǐng)域的技術(shù)人員可知其他數(shù)量的數(shù)據(jù)或程序可依照本發(fā)明的原理來進(jìn)行加密或解密。

本領(lǐng)域的技術(shù)人員可理解信息和信號可使用各種不同的技術(shù)來表現(xiàn)。例如說明書中描述的數(shù)據(jù)、指令、信息、信號、位、符號以及芯片可由電壓、電流、電磁波、磁場或顆粒、光場或顆粒、或以上的任意組合來表示。

本領(lǐng)域的技術(shù)人員可還理解說明書中所述的各個邏輯區(qū)塊、模塊、處理器、執(zhí)行裝置、電路和算法步驟可由電路硬件(例如數(shù)字實現(xiàn)硬件、模擬實現(xiàn)硬件,或兩者的結(jié)合,其可由來源碼或其他相關(guān)技術(shù)加以設(shè)計實現(xiàn)),使用指令的各種形式的程序代碼或設(shè)計碼(這里可另外稱為軟件或軟件模塊),或上述兩者的結(jié)合而加以實現(xiàn)。為了清楚顯示上述軟件和硬件的互換性,說明書描述的各種圖示組件、區(qū)塊、模塊、電路、及步驟通常以其功能進(jìn)行描述。這些功能要以軟件或硬件實現(xiàn)會和完整系統(tǒng)的特定應(yīng)用和設(shè)計限制有關(guān)。本領(lǐng)域的技術(shù)人員可針對每個特定應(yīng)用而以各種方式實現(xiàn)描述的功能,但是實現(xiàn)方式的決定不會偏離本發(fā)明的精神和范圍。

另外,本發(fā)明描述的各種邏輯區(qū)塊、模塊、以及電路可以使用集成電路(Integrated Circuit,IC)實現(xiàn)或由接入終端或存取點執(zhí)行。集成電路可包括通用處理器、數(shù)字信號處理器(Digital Signal Processor,DSP)、特定用途集成電路(Application Specific Integrated Circuit,ASIC)、現(xiàn)場可編程邏輯門陣列(Field programmable Gate Array,F(xiàn)PGA)或其他可編程控制邏輯組件、離散式邏輯電路或晶體管邏輯門、離散式硬件組件、電性組件、光學(xué)組件、機械組件或用于執(zhí)行本發(fā)明所描述的執(zhí)行的功能的其任意組合,其可執(zhí)行集成電路內(nèi)駐、外部,或兩者皆有的程序代碼或程序指令。通用處理器可以為微處理器,或者,該處理器可以為任意商用處理器、控制器、微處理器、或狀態(tài)機。處理器也可由計算裝置的結(jié)合加以實現(xiàn),例如DSP和微處理器、多個微處理器、一個或多個微處理器以及DSP核心、或其他各種設(shè)定的結(jié)合。

本領(lǐng)域的技術(shù)人員可理解本發(fā)明公開程序步驟的特定順序或序列僅為舉例。根據(jù)設(shè)計偏好,本領(lǐng)域的技術(shù)人員可理解只要不偏離本發(fā)明的精神和范圍,本發(fā)明公開程序步驟的特定順序或序列可以以其他順序重新排列。本發(fā)明實施例的方法和要求所伴隨的各種步驟順序只是舉例,而不限定于本發(fā)明公開程序步驟的特定順序或序列。

所述的方法或算法步驟可以以硬件或處理器執(zhí)行軟件模塊,或以兩者結(jié)合的方式實現(xiàn)。軟件模塊(例如包括可執(zhí)行指令和相關(guān)數(shù)據(jù))及其他數(shù)據(jù)可內(nèi)駐于數(shù)據(jù)存儲器之內(nèi),如RAM存儲器、閃存、ROM存儲器、EPROM存儲器、EEPROM存儲器、緩存器、硬盤、軟盤、光盤片、或是任何其他機器可讀取(如計算機可讀取)儲存媒體。數(shù)據(jù)儲存媒體可耦接至機器,如計算機或處理器(其可稱為“處理器”),處理器可從儲存媒體讀取及寫入程序代碼。數(shù)據(jù)儲存媒體可整合至處理器。處理器和儲存媒體可內(nèi)駐ASIC之內(nèi)。ASIC可內(nèi)駐在用戶設(shè)備?;蛘咛幚砥骱蛢Υ婷襟w可以以離散組件的形式駐在用戶設(shè)備之內(nèi)。另外,適用的計算機程序產(chǎn)品可包括計算機可讀取媒體,包括關(guān)于一個或多個說明書公開的程序代碼。在一些實施例中,適用的計算機程序產(chǎn)品可包括封裝材料。

本發(fā)明雖然以較佳實施例公開如上,然而其并非用以限定本發(fā)明,任何本領(lǐng)域的技術(shù)人員,在不脫離本發(fā)明的精神和范圍的情況下,應(yīng)當(dāng)可作些許的更動與潤飾,因此,本發(fā)明的保護范圍應(yīng)當(dāng)視所附的權(quán)利要求書所界定者為準(zhǔn)。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
普格县| 厦门市| 惠州市| 古蔺县| 尉氏县| 都兰县| 邹平县| 行唐县| 黄浦区| 南安市| 江永县| 龙口市| 清丰县| 寿宁县| 金寨县| 怀安县| 阿勒泰市| 长武县| 宝兴县| 将乐县| 洛川县| 岳西县| 广宗县| 綦江县| 若羌县| 南靖县| 星子县| 仙游县| 阿城市| 东平县| 竹溪县| 互助| 洛南县| 贡嘎县| 周至县| 金乡县| 德江县| 西丰县| 崇礼县| 舟山市| 泸溪县|