本發(fā)明涉及數(shù)據(jù)加解密技術(shù)領(lǐng)域,尤其涉及一種并行加解密方法。
背景技術(shù):
隨著計(jì)算機(jī)技術(shù)和嵌入式技術(shù)的發(fā)展,信息安全已經(jīng)從傳統(tǒng)的政治、經(jīng)濟(jì)和軍事等領(lǐng)域推廣到日常生活中,例如日常的移動(dòng)支付以及即時(shí)聊天軟件等均涉及到了信息安全。目前的電子設(shè)備例如手機(jī)、可移動(dòng)手持設(shè)備(Personal Digital Assistant,PDA)以及智能卡等移動(dòng)設(shè)備中都有專門的加密模塊對(duì)信息進(jìn)行加密再進(jìn)行保存或者傳輸?shù)募夹g(shù),從而達(dá)到保護(hù)數(shù)據(jù)安全的目的。
目前對(duì)于加密算法進(jìn)行攻擊最有效的一種方法是旁路攻擊(Side Channel Attack,SCA),攻擊者會(huì)利用電子設(shè)備在執(zhí)行密碼算法過(guò)程中物理器件泄漏的各種與密碼系統(tǒng)本身相關(guān)的邊際信息(例如運(yùn)行時(shí)間、能量消耗以及電磁輻射等)攻擊加密器件從而獲得密鑰。因此旁路攻擊也分為時(shí)間分析法、功耗分析法和電磁輻射分析法三類。其中功耗的可測(cè)試性最強(qiáng),測(cè)試工具最簡(jiǎn)單,功耗曲線也最合適進(jìn)行分析,因此功耗分析法在實(shí)際攻擊的應(yīng)用中也最多。
現(xiàn)有技術(shù)中,為了防御功耗分析攻擊方法,最主要的目標(biāo)就是將密碼模塊的能量消耗獨(dú)立于模塊所執(zhí)行的密碼算法。目前通常用于防御功耗分析攻擊方法的方式主要有以下幾種:
1)隱藏(Hiding)技術(shù),其基本思想在于消除能量消耗的數(shù)據(jù)依賴性,例如可以采用使得每一個(gè)操作幾乎都消耗相同能量的方式來(lái)制造設(shè)備,或者采用使得設(shè)備的能量消耗隨機(jī)化的方式來(lái)制造設(shè)備。
2)掩碼(Masking)技術(shù),其基本思想是隨機(jī)化密碼模塊處理算法過(guò)程中的中間值,以使處理被隨機(jī)化后的中間值所需要的能量消耗和處理算法的中間值所需要的能量消耗之間相互獨(dú)立。
3)功耗擾亂技術(shù),其基本思想是擾亂功耗取消和數(shù)據(jù)的相關(guān)性,例如可以在執(zhí)行加解密算法的過(guò)程中增加額外的數(shù)據(jù),或者采用增加隨機(jī)噪聲或者冗余功耗的方式來(lái)破壞功耗曲線和數(shù)據(jù)之間的相關(guān)性。
但是,在一般的加密設(shè)備上,無(wú)論使用上述哪種防御功耗分析攻擊的方法,均需要在芯片上引入額外的電路或者功能模塊,而這些額外的電路或者功能模塊只有在防御功耗分析攻擊時(shí)才有存在意義,在平時(shí)正常運(yùn)行的過(guò)程中只會(huì)浪費(fèi)芯片的面積和增大電子設(shè)備的功耗,加重整個(gè)電子設(shè)備的運(yùn)行負(fù)擔(dān)。
技術(shù)實(shí)現(xiàn)要素:
根據(jù)現(xiàn)有技術(shù)中存在的上述問(wèn)題,現(xiàn)提供一種并行加解密方法的技術(shù)方案,旨在防御針對(duì)數(shù)據(jù)加解密的功耗分析攻擊,提升數(shù)據(jù)加解密的安全系數(shù),并且無(wú)需引入額外的電路或功能模塊,節(jié)省芯片的面積以及工作所產(chǎn)生的功耗。
上述技術(shù)方案具體包括:
一種并行加解密方法,適用對(duì)稱加密算法;其中,包括一子密鑰生成步驟以及一密鑰操作步驟;
所述子密鑰生成步驟包括:
步驟A1,提供一第一處理器持續(xù)生成子密鑰;
步驟A2,所述第一處理器將生成的所述子密鑰寫入一共享存儲(chǔ)器中;
所述密鑰操作步驟包括:
步驟B1,提供一第二處理器持續(xù)獲取所述共享存儲(chǔ)器中保存的所述子密鑰;
步驟B2,所述第二處理器對(duì)獲取的所述子密鑰進(jìn)行后續(xù)的密鑰相關(guān)操作,以對(duì)數(shù)據(jù)進(jìn)行加解密操作。
優(yōu)選的,該并行加解密方法,其中,于所述共享存儲(chǔ)器中設(shè)置一第一標(biāo)記,所述第一標(biāo)記用于表示所述共享存儲(chǔ)器是否處于所述子密鑰已被讀出的第一狀態(tài)或者所述子密鑰已被寫入的第二狀態(tài);
則所述步驟A2具體包括:
步驟A21,所述第一處理器通過(guò)請(qǐng)求獲得對(duì)所述共享存儲(chǔ)器的操作權(quán);
步驟A22,所述第一處理器獲取所述共享存儲(chǔ)器中的所述第一標(biāo)記;
步驟A23,所述第一處理器根據(jù)所述第一標(biāo)記判斷所述共享存儲(chǔ)器中的所述子密鑰是否處于所述第一狀態(tài):
若否,則所述第一處理器使能中斷,等待所述共享存儲(chǔ)器中的所述子密鑰被讀出后再轉(zhuǎn)向步驟A24;
步驟A24,所述第一處理器將生成的所述子密鑰發(fā)送至所述共享存儲(chǔ)器保存,并將所述第一標(biāo)記更新為表示所述共享存儲(chǔ)器處于所述第二狀態(tài)。
優(yōu)選的,該并行加解密方法,其中,所述步驟A23中,若所述第一標(biāo)記表示所述共享存儲(chǔ)器不處于所述第一狀態(tài),則所述第一處理器使能中斷,并放棄對(duì)所述共享存儲(chǔ)器的操作權(quán),以等待所述共享存儲(chǔ)器中的所述子密鑰被讀出后再重新通過(guò)請(qǐng)求獲得對(duì)所述共享存儲(chǔ)器的操作權(quán),隨后轉(zhuǎn)向步驟A24。
優(yōu)選的,該并行加解密方法,其中,執(zhí)行完所述步驟A24后,繼續(xù)執(zhí)行下述步驟:
步驟A25,所述第一處理器放棄對(duì)所述共享存儲(chǔ)器的操作權(quán),并向所述第二處理器發(fā)送用于表示所述子密鑰已經(jīng)被寫入的信號(hào)。
優(yōu)選的,該并行加解密方法,其中,于所述共享存儲(chǔ)器中設(shè)置一第一標(biāo)記,所述第一標(biāo)記用于表示所述共享存儲(chǔ)器是否處于所述子密鑰已被讀出的第一狀態(tài)或者所述子密鑰已被寫入的第二狀態(tài);
則所述步驟B1具體包括:
步驟B11,所述第二處理器通過(guò)請(qǐng)求獲得對(duì)所述共享存儲(chǔ)器的操作權(quán);
步驟B12,所述第二處理器獲取所述共享存儲(chǔ)器中的所述第一標(biāo)記;
步驟B13,所述第二處理器根據(jù)所述第一標(biāo)記判斷所述共享存儲(chǔ)器是否處于所述第二狀態(tài):
若否,則所述第二處理器使能中斷,等待所述共享存儲(chǔ)器中的所述子密鑰被寫入后再轉(zhuǎn)向步驟B14;
步驟B14,所述第二處理器獲取所述共享存儲(chǔ)器中的所述子密鑰,并將所述第一標(biāo)記更新為表示所述共享存儲(chǔ)器處于所述第一狀態(tài),隨后轉(zhuǎn)向所述步驟B2.
優(yōu)選的,該并行加解密方法,其中,所述步驟B13中,若所述第一標(biāo)記表示所述共享存儲(chǔ)器不處于所述第二狀態(tài),則所述第二處理器使能中斷,并放棄對(duì)所述共享存儲(chǔ)器的操作權(quán),以等待所述共享存儲(chǔ)器中的所述子密鑰被寫入后再重新通過(guò)請(qǐng)求獲得對(duì)所述共享存儲(chǔ)器的操作權(quán),隨后轉(zhuǎn)向步驟B14。
優(yōu)選的,該并行加解密方法,其中,執(zhí)行完所述步驟B14后,繼續(xù)執(zhí)行下述步驟:
步驟B15,所述第二處理器放棄對(duì)所述共享存儲(chǔ)器的操作權(quán),并向所述第一處理器發(fā)送用于表示所述子密鑰已經(jīng)被讀出的信號(hào)。
優(yōu)選的,該并行加解密方法,其中,于所述共享存儲(chǔ)器中預(yù)設(shè)設(shè)置一第二標(biāo)記,所述第二標(biāo)記用于表示所述共享存儲(chǔ)器處于忙碌狀態(tài)或者空閑狀態(tài);
則所述第一處理器通過(guò)請(qǐng)求獲取對(duì)所述共享存儲(chǔ)器的操作權(quán)的過(guò)程包括:
步驟C1,所述第一處理器向所述共享存儲(chǔ)器發(fā)送一操作請(qǐng)求,以獲取所述共享存儲(chǔ)器反饋的所述第二標(biāo)記;
步驟C2,所述第一處理器根據(jù)所述第二標(biāo)記判斷所述共享存儲(chǔ)器是否處于所述忙碌狀態(tài):
若否,則轉(zhuǎn)向步驟C4;
步驟C3,所述第一處理器使能中斷,隨后返回所述步驟C1;
步驟C4,所述第一處理器獲取對(duì)所述共享存儲(chǔ)器的操作權(quán)。
優(yōu)選的,該并行加解密方法,其中,于所述共享存儲(chǔ)器中預(yù)設(shè)設(shè)置一第二標(biāo)記,所述第二標(biāo)記用于表示所述共享存儲(chǔ)器處于忙碌狀態(tài)或者空閑狀態(tài);
則所述第二處理器通過(guò)請(qǐng)求獲取對(duì)所述共享存儲(chǔ)器的操作權(quán)的過(guò)程包括:
步驟D1,所述第二處理器向所述共享存儲(chǔ)器發(fā)送一操作請(qǐng)求,以獲取所述共享存儲(chǔ)器反饋的所述第二標(biāo)記;
步驟D2,所述第二處理器根據(jù)所述第二標(biāo)記判斷所述共享存儲(chǔ)器是否處于所述忙碌狀態(tài):
若否,則轉(zhuǎn)向步驟D4;
步驟D3,所述第二處理器使能中斷,隨后返回所述步驟D1;
步驟D4,所述第二處理器獲取對(duì)所述共享存儲(chǔ)器的操作權(quán)。
上述技術(shù)方案的有益效果是:提供一種并行加解密方法,能夠防御針對(duì)數(shù)據(jù)加解密的功耗分析攻擊,提升數(shù)據(jù)加解密的安全系數(shù),并且無(wú)需引入額外的電路或功能模塊,節(jié)省芯片的面積以及工作所產(chǎn)生的功耗。
附圖說(shuō)明
圖1是本發(fā)明的較佳的實(shí)施例中,一種并行加解密方法中的子密鑰產(chǎn)生步驟的流程示意圖;
圖2是本發(fā)明的較佳的實(shí)施例中,一種并行加解密方法中的密鑰操作步驟的流程示意圖;
圖3是本發(fā)明的較佳的實(shí)施例中,并行加解密方法中,第一處理器將生成的子密鑰寫入共享存儲(chǔ)器中的流程示意圖;
圖4是本發(fā)明的較佳的實(shí)施例中,第一處理器請(qǐng)求獲取共享存儲(chǔ)器的控制權(quán)的流程示意圖;
圖5是本發(fā)明的較佳的實(shí)施例中,并行加解密方法中,第二處理器從共享存儲(chǔ)器中獲取被保存的子密鑰的流程示意圖;
圖6是本發(fā)明的較佳的實(shí)施例中,第二處理器請(qǐng)求獲取共享存儲(chǔ)器的控制權(quán)的流程示意圖;
圖7是本發(fā)明的較佳的實(shí)施例中,并行加解密方法的整體流程示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)的前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
需要說(shuō)明的是,在不沖突的情況下,本發(fā)明中的實(shí)施例及實(shí)施例中的特征可以相互組合。
下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步說(shuō)明,但不作為本發(fā)明的限定。
根據(jù)現(xiàn)有技術(shù)中存在的上述問(wèn)題,本發(fā)明提供一種并行加解密方法,該方法適用于對(duì)稱加密算法。加密算法被分為對(duì)稱算法和非對(duì)稱算法兩大類,所謂對(duì)稱加密算法,是一種技術(shù)比較成熟的加密算法,通常用于數(shù)據(jù)加解密過(guò)程中,是一種在加密過(guò)程和解密過(guò)程中使用相同密鑰的加密算法。對(duì)稱加密算法具有分為好幾種,但是無(wú)論哪一種對(duì)稱加密算法,基本都由兩步構(gòu)成,即子密鑰的產(chǎn)生和與密鑰相關(guān)的其他加密計(jì)算,現(xiàn)有技術(shù)中,上述兩步通常是依序進(jìn)行的,彼此之間具有很緊密的順序執(zhí)行關(guān)系。本發(fā)明主要針對(duì)對(duì)稱算法,因此在此不再討論非對(duì)稱算法的特征。
本發(fā)明的較佳的實(shí)施例中,上述并行加解密方法具體包括兩個(gè)步驟,即子密鑰產(chǎn)生步驟以及密鑰操作步驟。
上述子密鑰產(chǎn)生步驟具體如圖1所示,包括:
步驟A1,提供一第一處理器持續(xù)生成子密鑰;
步驟A2,第一處理器將生成的子密鑰寫入一共享存儲(chǔ)器中;
具體地,上述第一處理器可以為現(xiàn)有技術(shù)中進(jìn)行數(shù)據(jù)處理和傳輸?shù)碾娮釉O(shè)備中的任何微處理器,該微處理器能夠在并行加解密算法中執(zhí)行生成子密鑰的處理任務(wù)。具體地,持續(xù)生成子密鑰的具體過(guò)程在現(xiàn)有的對(duì)稱加密算法中已有較為成熟的實(shí)現(xiàn)方式,在此不再贅述。
上述步驟A2中,上述第一處理器生成子密鑰后將該子密鑰寫入一與第一處理器相連的一共享存儲(chǔ)器中保存。
上述密鑰操作步驟具體如圖2所示,包括:
步驟B1,提供一第二處理器持續(xù)獲取共享存儲(chǔ)器中保存的子密鑰;
步驟B2,第二處理器對(duì)獲取的子密鑰進(jìn)行后續(xù)的密鑰相關(guān)操作,以對(duì)數(shù)據(jù)進(jìn)行加解密操作。
具體地,上述步驟B1中,第二處理器同樣連接共享存儲(chǔ)器,并且由于對(duì)稱加密算法可能需要多輪循環(huán)加密才能實(shí)現(xiàn)最終對(duì)數(shù)據(jù)進(jìn)行加解密的目的,因此第二處理器需要持續(xù)獲取共享存儲(chǔ)器中保存的子密鑰以供多輪連續(xù)加解密操作。
上述第二處理器同樣可以為現(xiàn)有技術(shù)中進(jìn)行數(shù)據(jù)處理和傳輸?shù)碾娮釉O(shè)備中的任何微處理器,該微處理器能夠在并行加解密算法中執(zhí)行子密鑰獲取并執(zhí)行密鑰相關(guān)操作的處理任務(wù)。具體地,上述步驟B2中,所謂后續(xù)的密鑰相關(guān)操作,是指對(duì)稱加密算法中對(duì)加解密過(guò)程的一些常規(guī)處理,例如對(duì)子密鑰進(jìn)行校驗(yàn)以及將子密鑰應(yīng)用在加密/解密過(guò)程中等,在此不再贅述。獲取子密鑰的具體過(guò)程同樣在現(xiàn)有的對(duì)稱加密算法中已有較為成熟的實(shí)現(xiàn)方式,在此不再贅述。
本發(fā)明技術(shù)方案中,上述子密鑰產(chǎn)生步驟和密鑰操作步驟之間為相互獨(dú)立的步驟,兩個(gè)步驟異步執(zhí)行,即:
在子密鑰產(chǎn)生步驟中,第一處理器依序產(chǎn)生子密鑰,并依序?qū)⒆用荑€寫入到共享存儲(chǔ)器中;
在密鑰操作步驟中,第二處理器每次從共享存儲(chǔ)器中獲取一個(gè)子密鑰并進(jìn)行后續(xù)的密鑰相關(guān)操作,獲取的順序與子密鑰被保存在共享存儲(chǔ)器中的順序相同,以保證對(duì)稱加密算法的正確執(zhí)行。
因此,上述并行加解密方法中,步驟A1-A2和步驟B1-B2異步執(zhí)行,互不干擾。
本發(fā)明的較佳的實(shí)施例中,于共享存儲(chǔ)器中設(shè)置一第一標(biāo)記,第一標(biāo)記用于表示共享存儲(chǔ)器中的子密鑰處于寫入狀態(tài)或者讀出狀態(tài);
則步驟A2具體如圖3所示,包括:
步驟A21,第一處理器通過(guò)請(qǐng)求獲得對(duì)共享存儲(chǔ)器的操作權(quán);
步驟A22,第一處理器獲取共享存儲(chǔ)器中的第一標(biāo)記;
步驟A23,第一處理器根據(jù)第一標(biāo)記判斷共享存儲(chǔ)器中的子密鑰是否處于第一狀態(tài):
若否,則第一處理器使能中斷,等待共享存儲(chǔ)器中的子密鑰被讀出后再轉(zhuǎn)向步驟A24;
步驟A24,第一處理器將生成的子密鑰發(fā)送至共享存儲(chǔ)器保存,并將第一標(biāo)記更新為表示共享存儲(chǔ)器處于第二狀態(tài)。
具體地,本實(shí)施例中,上述第一處理器在對(duì)共享存儲(chǔ)器進(jìn)行操作之前,首先需要獲取共享存儲(chǔ)器的操作權(quán),并且在同一時(shí)間,只能有一個(gè)處理器對(duì)上述共享存儲(chǔ)器進(jìn)行操作。該獲取操作權(quán)的過(guò)程在下文中會(huì)詳述。
本實(shí)施例中,共享存儲(chǔ)器中預(yù)先設(shè)置一第一標(biāo)記,該第一標(biāo)記用于表示共享存儲(chǔ)器是否處于子密鑰已被讀出的第一狀態(tài)或者子密鑰已被寫入的第二狀態(tài)。具體地,上述共享存儲(chǔ)器只有兩個(gè)工作狀態(tài),一個(gè)是第二處理器讀出子密鑰,第一處理器尚未寫入下一個(gè)子密鑰的狀態(tài),即標(biāo)識(shí)子密鑰已被讀出尚未被寫入的第一狀態(tài);另一個(gè)是第一處理器寫入子密鑰,該子密鑰尚未被第二處理器讀取時(shí)的狀態(tài),即標(biāo)識(shí)子密鑰已被寫入尚未被讀出的第二狀態(tài)。則上述第一標(biāo)記同樣也就只具有兩種狀態(tài)表示值,例如上述第一標(biāo)記為存儲(chǔ)器中的flag信號(hào),則:
1)當(dāng)flag信號(hào)置高(為1)時(shí),表示第二處理器尚未讀出上一個(gè)子密鑰,即共享存儲(chǔ)器中的子密鑰處于已被寫入尚未被讀出的第二狀態(tài);當(dāng)flag信號(hào)置低(為0)時(shí),表示第二處理器已經(jīng)讀出上一個(gè)子密鑰,即共享存儲(chǔ)器中的子密鑰處于已被讀出尚未被寫入的第一狀態(tài)?;蛘?/p>
2)當(dāng)flag信號(hào)置低(為0)時(shí),表示第二處理器尚未讀出上一個(gè)子密鑰,即共享存儲(chǔ)器中的子密鑰處于已被寫入尚未被讀出的第二狀態(tài);當(dāng)flag信號(hào)置高(為1)時(shí),表示第二處理器已經(jīng)讀出上一個(gè)子密鑰,即共享存儲(chǔ)器中的子密鑰處于已被讀出尚未被寫入的第一狀態(tài)。
如上所述,上述第一標(biāo)記只有兩種狀態(tài),因此在上述步驟A21-A24中,當(dāng)?shù)谝粯?biāo)記表示共享存儲(chǔ)器不處于第一狀態(tài)時(shí),其必然處于第二狀態(tài),反之亦然,下文中不再贅述。
本實(shí)施例中,上述步驟A23中,第一處理器獲取上述第一標(biāo)記后,根據(jù)第一標(biāo)記判斷共享存儲(chǔ)器當(dāng)前的工作狀態(tài):
若共享存儲(chǔ)器當(dāng)前處于上述第一狀態(tài),則表示共享存儲(chǔ)器中的上一個(gè)子密鑰已被第二處理器讀出,此時(shí)可以向共享存儲(chǔ)器中寫入下一個(gè)子密鑰。此時(shí)進(jìn)行步驟A24,即第一處理器向共享存儲(chǔ)器寫入已經(jīng)生成的子密鑰;
若共享存儲(chǔ)器當(dāng)前不處于上述第一狀態(tài)(即處于第二狀態(tài)),則表示共享存儲(chǔ)器中的上一個(gè)子密鑰尚未被第二處理器讀出,此時(shí)第一處理器尚無(wú)法向共享存儲(chǔ)器寫入下一個(gè)子密鑰,因此第一處理器使能中斷,等待直到共享存儲(chǔ)器處于第一狀態(tài)時(shí)再執(zhí)行步驟A24。
本發(fā)明的較佳的實(shí)施例中,上述步驟A23中,若第一標(biāo)記表示共享存儲(chǔ)器不處于第一狀態(tài),則第一處理器使能中斷,并放棄對(duì)共享存儲(chǔ)器的操作權(quán),以等待共享存儲(chǔ)器中的子密鑰被讀出后再重新通過(guò)請(qǐng)求獲得對(duì)共享存儲(chǔ)器的操作權(quán),隨后轉(zhuǎn)向步驟A24。
具體地,由于上述步驟A21中,第一處理器已經(jīng)通過(guò)請(qǐng)求獲取共享存儲(chǔ)器的操作權(quán),并且在上述步驟A23中,在第一處理器使能中斷時(shí),若第一處理器不放棄對(duì)共享存儲(chǔ)器的操作權(quán),則第二處理器無(wú)法再對(duì)共享存儲(chǔ)器進(jìn)行操作。因此在上述步驟A23中,若第一處理器使能中斷,則其主動(dòng)放棄對(duì)共享存儲(chǔ)器的操作權(quán),以便于第二處理器對(duì)共享存儲(chǔ)器進(jìn)行操作。
上述步驟A23中,當(dāng)?shù)谝惶幚砥鞯却钡焦蚕泶鎯?chǔ)器中的上一個(gè)子密鑰被讀出(即共享存儲(chǔ)器處于第一狀態(tài))時(shí),第一處理器需要重新通過(guò)請(qǐng)求獲取對(duì)共享存儲(chǔ)器的控制權(quán),該請(qǐng)求并獲取控制權(quán)的過(guò)程與上述步驟A21中的過(guò)程相同,在下文中將一并描述。
本發(fā)明的較佳的實(shí)施例中,執(zhí)行完上述步驟A24后,繼續(xù)執(zhí)行如圖3所示的下述步驟:
步驟A25,第一處理器放棄對(duì)共享存儲(chǔ)器的操作權(quán),并向第二處理器發(fā)送用于表示子密鑰已經(jīng)被寫入的信號(hào)。
具體地,本實(shí)施例中,上述第一處理器向共享存儲(chǔ)器寫入子密鑰并更改共享存儲(chǔ)器的第一標(biāo)記后,則第一處理器對(duì)于當(dāng)前生成的子密鑰的處理過(guò)程就結(jié)束了,此時(shí)第一處理器會(huì)主動(dòng)放棄對(duì)共享存儲(chǔ)器的操作權(quán),以免影響第二處理器對(duì)共享存儲(chǔ)器的操作,并且第一處理器會(huì)主動(dòng)向第二處理器發(fā)送一個(gè)用于表示已經(jīng)向共享存儲(chǔ)器中寫入子密鑰的信號(hào)以通知第二處理器。
本發(fā)明的較佳的實(shí)施例中,于上述共享存儲(chǔ)器中還預(yù)先設(shè)置一第二標(biāo)記,第二標(biāo)記用于表示共享存儲(chǔ)器處于忙碌狀態(tài)或者空閑狀態(tài);
則第一處理器通過(guò)請(qǐng)求獲取對(duì)共享存儲(chǔ)器的操作權(quán)的過(guò)程具體如圖4所示,包括:
步驟C1,第一處理器向共享存儲(chǔ)器發(fā)送一操作請(qǐng)求,以獲取共享存儲(chǔ)器反饋的第二標(biāo)記;
步驟C2,第一處理器根據(jù)第二標(biāo)記判斷共享存儲(chǔ)器是否處于忙碌狀態(tài):
若否,則轉(zhuǎn)向步驟C4;
步驟C3,第一處理器使能中斷,隨后返回步驟C1;
步驟C4,第一處理器獲取對(duì)共享存儲(chǔ)器的操作權(quán)。
具體地,本實(shí)施例中,上述第二標(biāo)記用于表示共享存儲(chǔ)器當(dāng)前的運(yùn)行狀態(tài),即處于忙碌狀態(tài)還是空閑狀態(tài)。具體地,當(dāng)?shù)诙?biāo)記表示共享存儲(chǔ)器當(dāng)前處于忙碌狀態(tài)時(shí),表示共享存儲(chǔ)器當(dāng)前正在被某個(gè)處理器使用,此時(shí)第一處理器無(wú)法請(qǐng)求獲取共享存儲(chǔ)器的控制權(quán);當(dāng)?shù)诙?biāo)記表示共享存儲(chǔ)器當(dāng)前處于空閑狀態(tài)時(shí),第一處理器才可以獲取共享存儲(chǔ)器的控制權(quán)。
本實(shí)施例中,上述步驟C3中,在共享存儲(chǔ)器處于忙碌狀態(tài)時(shí),第一處理器使能中斷,并且返回步驟C1,以持續(xù)向共享存儲(chǔ)器發(fā)送操作請(qǐng)求,以持續(xù)獲取共享存儲(chǔ)器反饋的第二標(biāo)記并進(jìn)行持續(xù)判斷,當(dāng)?shù)诙?biāo)記表示共享存儲(chǔ)器處于空閑狀態(tài)時(shí)再轉(zhuǎn)向步驟C4,即獲取共享存儲(chǔ)器的控制權(quán)。
本發(fā)明的較佳的實(shí)施例中,上述步驟A21中第一處理器通過(guò)請(qǐng)求獲取共享存儲(chǔ)器的控制權(quán)的過(guò)程可以采用上述步驟C1-C4,上述步驟A23中第一處理器使能中斷后重新通過(guò)請(qǐng)求獲取共享存儲(chǔ)器的控制權(quán)的過(guò)程同樣可以采用上述步驟C1-C4。
本發(fā)明的較佳的實(shí)施例中,上述第二標(biāo)記可以為grant信號(hào),并且:
1)當(dāng)grant信號(hào)置高(為1)時(shí),表示共享存儲(chǔ)器當(dāng)前處于忙碌狀態(tài),當(dāng)grant信號(hào)置低(為0)時(shí),表示共享存儲(chǔ)器當(dāng)前處于空閑狀態(tài)。或者
2)當(dāng)grant信號(hào)置低(為0)時(shí),表示共享存儲(chǔ)器當(dāng)前處于忙碌狀態(tài),當(dāng)grant信號(hào)置高(為1)時(shí),表示共享存儲(chǔ)器當(dāng)前處于空閑狀態(tài)。
本發(fā)明的較佳的實(shí)施例中,如圖5所示,上述步驟B1具體包括:
步驟B11,第二處理器通過(guò)請(qǐng)求獲得對(duì)共享存儲(chǔ)器的操作權(quán);
步驟B12,第二處理器獲取共享存儲(chǔ)器中的第一標(biāo)記;
步驟B13,第二處理器根據(jù)第一標(biāo)記判斷共享存儲(chǔ)器是否處于第二狀態(tài):
若否,則第二處理器使能中斷,等待共享存儲(chǔ)器中的子密鑰被寫入后再轉(zhuǎn)向步驟B14;
步驟B14,第二處理器獲取共享存儲(chǔ)器中的子密鑰,并將第一標(biāo)記更新為表示共享存儲(chǔ)器處于第一狀態(tài),隨后轉(zhuǎn)向步驟B2。
具體地,本實(shí)施例中,上述步驟B11中,上述第二處理器通過(guò)請(qǐng)求獲得對(duì)共享存儲(chǔ)器的操作權(quán)的步驟與上述步驟C1-C4類似,在下文中會(huì)詳述。
本實(shí)施例中,上述步驟B13中,第二處理器獲取第一標(biāo)記后判斷共享存儲(chǔ)器是否處于第二狀態(tài):
若共享存儲(chǔ)器處于第二狀態(tài),則表示第一處理器已經(jīng)往共享存儲(chǔ)器中寫入子密鑰,此時(shí)第二處理器可以從共享存儲(chǔ)器中獲取子密鑰并進(jìn)行后續(xù)的密鑰相關(guān)操作;
若共享存儲(chǔ)器不處于第二狀態(tài)(即處于第一狀態(tài)),則表示第一處理器尚未往共享存儲(chǔ)器中寫入子密鑰,此時(shí)第二處理器使能中斷,等待共享存儲(chǔ)器中的子密鑰被寫入后再轉(zhuǎn)向步驟B14。具體地,如上文中所述,當(dāng)?shù)谝惶幚砥飨虻诙幚砥靼l(fā)送用于表示已經(jīng)向共享存儲(chǔ)器中寫入子密鑰的通知信號(hào)時(shí),表示共享存儲(chǔ)器進(jìn)入第一狀態(tài),此時(shí)再轉(zhuǎn)向步驟B14。
本實(shí)施例中,上述步驟B14中,第二處理器獲取子密鑰后執(zhí)行后續(xù)的密鑰相關(guān)操作,從而實(shí)現(xiàn)對(duì)數(shù)據(jù)的加解密操作。
本發(fā)明的較佳的實(shí)施例中,上述步驟B13中,若第一標(biāo)記表示共享存儲(chǔ)器不處于第二狀態(tài),則第二處理器使能中斷,并放棄對(duì)共享存儲(chǔ)器的操作權(quán),以等待共享存儲(chǔ)器中的子密鑰被寫入后再重新通過(guò)請(qǐng)求獲得對(duì)共享存儲(chǔ)器的操作權(quán),隨后轉(zhuǎn)向步驟B14。
由于上述步驟B11中,第二處理器已經(jīng)通過(guò)請(qǐng)求獲取共享存儲(chǔ)器的操作權(quán),并且在上述步驟B13中,在第二處理器使能中斷時(shí),若第二處理器不放棄對(duì)共享存儲(chǔ)器的操作權(quán),則第一處理器無(wú)法再對(duì)共享存儲(chǔ)器進(jìn)行操作。因此在上述步驟B13中,若第二處理器使能中斷,則其主動(dòng)放棄對(duì)共享存儲(chǔ)器的操作權(quán),以便于第一處理器對(duì)共享存儲(chǔ)器進(jìn)行操作。
本發(fā)明的較佳的實(shí)施例中,仍然如圖5所示,執(zhí)行完步驟B14后,繼續(xù)執(zhí)行下述步驟:
步驟B15,第二處理器放棄對(duì)共享存儲(chǔ)器的操作權(quán),并向第一處理器發(fā)送用于表示子密鑰已經(jīng)被讀出的信號(hào)。
具體地,本實(shí)施例中,上述第二處理器讀取共享存儲(chǔ)器中保存的子密鑰并更改共享存儲(chǔ)器的第一標(biāo)記后,則第二處理器獲取子密鑰的處理過(guò)程就結(jié)束了,此時(shí)第二處理器會(huì)主動(dòng)放棄對(duì)共享存儲(chǔ)器的操作權(quán),以免影響第一處理器對(duì)共享存儲(chǔ)器的操作,并且第二處理器會(huì)主動(dòng)向第一處理器發(fā)送一個(gè)用于表示已經(jīng)讀出共享存儲(chǔ)器中保存的子密鑰的信號(hào)以通知第一處理器。則上述步驟A23中,當(dāng)?shù)谝惶幚砥魇鼓苤袛鄷r(shí),若其獲取第二處理器發(fā)送的用于表示已經(jīng)讀出共享存儲(chǔ)器中保存的子密鑰的通知信號(hào)后就認(rèn)為等待結(jié)束,可以重新請(qǐng)求獲取共享存儲(chǔ)器的控制權(quán)。
本發(fā)明的較佳的實(shí)施例中,于上述步驟C1-C4類似地,如圖6所示,上述第二處理器通過(guò)請(qǐng)求獲取對(duì)共享存儲(chǔ)器的操作權(quán)的過(guò)程包括:
步驟D1,第二處理器向共享存儲(chǔ)器發(fā)送一操作請(qǐng)求,以獲取共享存儲(chǔ)器反饋的第二標(biāo)記;
步驟D2,第二處理器根據(jù)第二標(biāo)記判斷共享存儲(chǔ)器是否處于忙碌狀態(tài):
若否,則轉(zhuǎn)向步驟D4;
步驟D3,第一處理器使能中斷,隨后返回步驟D1;
步驟D4,第二處理器獲取對(duì)共享存儲(chǔ)器的操作權(quán)。
由于上述步驟D1-D4與步驟C1-C4類似,在此不再對(duì)步驟D1-D4做進(jìn)一步解釋。
同樣地,本發(fā)明的較佳的實(shí)施例中,上述步驟D1-D4既適用于上述步驟B11中第二處理器通過(guò)請(qǐng)求獲取共享存儲(chǔ)器的控制權(quán)的情況,也適用于上述步驟B13中第二處理器重新獲取共享存儲(chǔ)器的控制權(quán)的情況。
本發(fā)明的較佳的實(shí)施例中,于上述共享存儲(chǔ)器中,當(dāng)一個(gè)被保存的子密鑰被讀出時(shí),該子密鑰在共享存儲(chǔ)器中就被擦除,以避免重復(fù)寫入/讀出子密鑰的情況發(fā)生。
本發(fā)明技術(shù)方案中,如上文中所述,上述第一處理器、第二處理器以及共享存儲(chǔ)器均可以為現(xiàn)有的電子設(shè)備中常用的能夠執(zhí)行數(shù)據(jù)加解密操作的處理設(shè)備以及存儲(chǔ)設(shè)備,在此不再贅述。
綜上,結(jié)合上述子密鑰生成步驟和密鑰操作步驟,描述整個(gè)并行加解密方法的流程,具體如圖7所示。圖7中,第一處理器和第二處理器相互獨(dú)立運(yùn)行子密鑰生成步驟以及密鑰操作步驟,只在寫入子密鑰/讀出子密鑰時(shí)向?qū)Ψ桨l(fā)送寫入通知/讀出通知時(shí)存在相互之間的聯(lián)系,因此能夠擾亂電子設(shè)備進(jìn)行數(shù)據(jù)加解密處理時(shí)的功耗曲線,從而防御功耗分析攻擊方法。
以上所述僅為本發(fā)明較佳的實(shí)施例,并非因此限制本發(fā)明的實(shí)施方式及保護(hù)范圍,對(duì)于本領(lǐng)域技術(shù)人員而言,應(yīng)當(dāng)能夠意識(shí)到凡運(yùn)用本發(fā)明說(shuō)明書及圖示內(nèi)容所作出的等同替換和顯而易見(jiàn)的變化所得到的方案,均應(yīng)當(dāng)包含在本發(fā)明的保護(hù)范圍內(nèi)。