国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于PU 分類的差分區(qū)分器及其應(yīng)用*

2021-05-15 09:54:46宿恒川朱宣勇
密碼學(xué)報(bào) 2021年2期
關(guān)鍵詞:數(shù)據(jù)量區(qū)分差分

宿恒川, 朱宣勇, 段 明

戰(zhàn)略支援部隊(duì)信息工程大學(xué) 數(shù)學(xué)工程與先進(jìn)計(jì)算國家重點(diǎn)實(shí)驗(yàn)室, 鄭州450001

1 引言

對于密碼算法的攻擊和分析, 主要是挖掘利用算法固有的不隨機(jī)特征, 設(shè)計(jì)構(gòu)造對應(yīng)的攻擊方法. 代表性的攻擊方法主要有: 線性攻擊、差分攻擊和代數(shù)攻擊, 以及多類攻擊方法的融合應(yīng)用. 在實(shí)際的分析應(yīng)用中, 不隨機(jī)的特征體現(xiàn)為構(gòu)造具有概率優(yōu)勢的區(qū)分器. 在足夠數(shù)據(jù)的基礎(chǔ)上, 區(qū)分器區(qū)分驗(yàn)證進(jìn)而確定正確的密鑰, 從而達(dá)成對于密碼算法的攻擊. 當(dāng)前, 差分攻擊及其各種變形攻擊方法, 是當(dāng)前算法攻擊的主要理論方法之一. 該攻擊方法的主要依據(jù)是: 輸入向量在某些特定位置的不同, 輸出向量的變化存在不均衡性; 也就是說存在高概率差分對. 實(shí)際的算法攻擊過程中, 多個(gè)串聯(lián)環(huán)節(jié)的高概率差分對連接在一起形成高概率的差分路徑, 基于此進(jìn)而構(gòu)造差分區(qū)分器. 尋找高概率的差分路徑進(jìn)而構(gòu)造高效的區(qū)分器, 是密碼算法分析和攻擊的核心工作之一.

近幾年來, 隨著高性能計(jì)算和大數(shù)據(jù)的快速發(fā)展, 基于深度學(xué)習(xí)的人工智能技術(shù)在語音識別、機(jī)器翻譯、生物特征提取、規(guī)則博弈等諸多領(lǐng)域取得了驚人的成就. 人工智能技術(shù)在基于固定微弱特征的發(fā)現(xiàn)識別具有先天的優(yōu)勢. 基于此, 密碼研究人員嘗試將人工智能方法引入密碼分析研究. 2011 年, Hospodar 等人提出了應(yīng)用深度學(xué)習(xí)技術(shù)對AES 的側(cè)信道攻擊方法[1]. 2012 年, Alani 提出一種基于神經(jīng)網(wǎng)絡(luò)技術(shù)的已知明文攻擊方法[2], 在密鑰未知的情況下通過訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)進(jìn)行密文解密.

2019 年, Gohr 采用人工智能中殘差網(wǎng)絡(luò)技術(shù)構(gòu)建差分區(qū)分器[3], 并對減輪Speck 加密算法[4]進(jìn)行攻擊. 針對5 輪Speck 算法和6 輪Speck 算法, 區(qū)分器的成功率分別是0.929 和0.788.

在本文中, 我們基于神經(jīng)網(wǎng)絡(luò)中PU 學(xué)習(xí)[5,6](positive-unlabeled learning) 的分類技術(shù)構(gòu)造差分區(qū)分器, 并對減輪Speck 算法進(jìn)行攻擊實(shí)驗(yàn). 在訓(xùn)練數(shù)據(jù)與Gohr 方法[7]相當(dāng)?shù)那闆r下, 針對5 輪Speck算法和6 輪Speck 算法, 我們區(qū)分器的成功率分別是0.965 和0.860. 具體結(jié)果[1]對比參見表1.

表1 Speck 算法5 輪、6 輪差分區(qū)分器成功率對比Table 1 Speck algorithm 5-round, 6-round differential distinguisher success rate comparison

本文的第2 節(jié)簡要介紹了Speck 密碼算法[4]、差分攻擊原理、PU 學(xué)習(xí)分類原理; 第3 節(jié)主要是采用PU 學(xué)習(xí)的技術(shù)構(gòu)建減輪Speck 算法PU 差分區(qū)分器, 并對減輪Speck 算法的進(jìn)行攻擊實(shí)驗(yàn); 第4 節(jié)對于神經(jīng)網(wǎng)絡(luò)模型和參數(shù)的選擇進(jìn)行優(yōu)化分析; 第5 節(jié)對論文的工作進(jìn)行總結(jié), 并對后續(xù)的研究問題進(jìn)行進(jìn)一步闡述.

2 預(yù)備知識

在這一部分, 我們介紹一些有關(guān)的理論.

2.1 Speck 算法

Speck 算法[4]是一類輕量級的分組密碼, 最早由美國國家安全局(NSA) 于2013 年6 月提出. 其加密的單輪函數(shù)如圖1.

Speck 算法的密鑰是選擇一個(gè)Key, 然后利用算法生成一個(gè)密鑰串k1, k2, ···, kt, 對數(shù)據(jù)進(jìn)行加密,其中t 是算法加密的輪數(shù), ki是第i 輪的輪密鑰. 算法參數(shù)如表2 所示.

2.2 PU 學(xué)習(xí)

PU 學(xué)習(xí)(positive-unlabeled learning) 是19 世紀(jì)末提出并逐漸發(fā)展的一種技術(shù)手段[5,6], 它主要應(yīng)用是檢索異常點(diǎn)的二進(jìn)制分類[8], 同時(shí)它也應(yīng)用于矩陣補(bǔ)全[9]和序列數(shù)據(jù)[10]等. PU 學(xué)習(xí)是在只有正類數(shù)據(jù)(P 數(shù)據(jù)) 和無標(biāo)記數(shù)據(jù)(U 數(shù)據(jù)) 的條件下, 訓(xùn)練二分類區(qū)分器.

基于如何處理無標(biāo)記部分的數(shù)據(jù), 現(xiàn)有的PU 學(xué)習(xí)主要分為兩類: 第一類是識別無標(biāo)記數(shù)據(jù)中可能的負(fù)類數(shù)據(jù)(N 數(shù)據(jù)), 并對其進(jìn)行傳統(tǒng)的監(jiān)督學(xué)習(xí); 第二類是將無標(biāo)簽數(shù)據(jù)視作權(quán)重較小的負(fù)類數(shù)據(jù). 前者在很大程度上依賴于用啟發(fā)式算法來識別負(fù)類數(shù)據(jù), 后者則嚴(yán)重依賴于對于權(quán)重的良好選擇.

圖1 單輪Speck 算法的加密函數(shù)Figure 1 Encryption function of single-round Speck algorithm

表2 Speck 算法的算法參數(shù)Table 2 Algorithm parameters of Speck algorithm

為了避免選擇權(quán)重的問題, Du Plessis M C、Niu G 和Sugiyama M 提出nPU (unbiased positiveunlabeled) 學(xué)習(xí)方法[11,12], 它是第二類PU 學(xué)習(xí)的一個(gè)子類.

當(dāng)訓(xùn)練的模型十分復(fù)雜時(shí), nPU 中的無偏風(fēng)險(xiǎn)估計(jì)(unbiased risk estimators) 可能變?yōu)樨?fù)值, 最壞的情況會(huì)使得模型中的測量函數(shù)和損失函數(shù)無法確定上限, 進(jìn)而導(dǎo)致經(jīng)驗(yàn)風(fēng)險(xiǎn)沒有下限. 為了解決這個(gè)問題, 2017 年, Kiryo 等人提出nnPU (非負(fù)PU, non-negative positive-unlabeled) 的學(xué)習(xí)方法, 該方法對過度學(xué)習(xí)具有非常好的魯棒性[13]. 下面, 我們簡要介紹nPU 和nnPU 的相關(guān)理論[11–13].

在這里我們將正類數(shù)據(jù)記作P, 負(fù)類數(shù)據(jù)記作N, 無標(biāo)簽數(shù)據(jù)記作U.

問題提出: 設(shè)d 是一個(gè)正整數(shù), X ∈Rd, Y ∈{+1,?1} 為對應(yīng)的輸入和輸出的隨機(jī)變量, p(x,y) 為(X,Y) 的潛在的聯(lián)合密度. Pp= p(x|Y =+1) 和Pn= p(x|Y =?1) 為P 和N 的邊值(即P 和N的條件密度), p(x) 為U 的邊值. πp= p(Y =+1) 為先驗(yàn)概率, πn= p(Y =?1) = 1 ?πp. πp可以由P 和U 的數(shù)據(jù)量進(jìn)行估計(jì).

在PU 學(xué)習(xí)中, 由于χp和χn的可用性, R(g) 可以直接逼近為

從式(5)中可以看出, nnPU 的風(fēng)險(xiǎn)在一定時(shí)期后不會(huì)像nPU 一樣下降, 因此該方法對過度學(xué)習(xí)具有非常好的魯棒性.

3 減輪Speck 算法的PU 差分區(qū)分器

本部分我們介紹減輪Speck 算法[4]的PU 差分區(qū)分器的各項(xiàng)參數(shù)和實(shí)驗(yàn)結(jié)果. 對于實(shí)驗(yàn)?zāi)P偷母鞣N重要的參數(shù)如何得到, 在下一節(jié)有詳細(xì)的分析過程, 在這里就不進(jìn)行贅述了. 這里我們給出實(shí)驗(yàn)最優(yōu)的參數(shù)和結(jié)果.

數(shù)據(jù)集: 選取差分(0x0040,0000). 當(dāng)標(biāo)簽為1 的時(shí)候, 即樣本為正樣本. 我們產(chǎn)生兩個(gè)具有差分的明文對, 在隨機(jī)密鑰的情況下對其進(jìn)行選定輪數(shù)的加密, 得到相應(yīng)的密文. 當(dāng)標(biāo)簽為0 的時(shí)候, 即樣本為負(fù)樣本. 我們產(chǎn)生兩個(gè)隨機(jī)的明文對, 在隨機(jī)密鑰的情況下對其進(jìn)行選定輪數(shù)的加密, 得到相應(yīng)的密文. 將兩個(gè)密文合成作為X, 將標(biāo)簽作為Y, 共產(chǎn)生107訓(xùn)練數(shù)據(jù)和106測試數(shù)據(jù), 其中正樣本負(fù)樣本分布均勻.

模型: PU 學(xué)習(xí)可以借用神經(jīng)網(wǎng)絡(luò)的模型實(shí)現(xiàn), 在對Speck 算法進(jìn)行實(shí)驗(yàn)的時(shí)候, 我們選擇了全連接神經(jīng)網(wǎng)絡(luò)(MLP) 模型[15], 本實(shí)驗(yàn)中, 采用6 層MLP, 其中隱層的神經(jīng)元都設(shè)定為1000 個(gè).

激活函數(shù): 在本實(shí)驗(yàn)中我們采用了RELU 函數(shù)[15], 這樣可以保證數(shù)據(jù)具有非負(fù)性.

損失函數(shù): 因?yàn)閾p失函數(shù)本質(zhì)上是零一函數(shù), 在這里我們選用Sigmoid 函數(shù)[15].

批次大小: 在本實(shí)驗(yàn)中選取5000 作為一個(gè)批次進(jìn)行訓(xùn)練.

成功率: 因?yàn)镻U 學(xué)習(xí)的性質(zhì), 在這里我們定義對于選擇的正類數(shù)據(jù)的成功率為成功率, 即

先驗(yàn)概率: 這是PU 學(xué)習(xí)中最本質(zhì)也是最重要的部分, 即PU 的核心. 在實(shí)驗(yàn)中先驗(yàn)概率(prior) 參數(shù)是通過標(biāo)簽數(shù)據(jù)和無標(biāo)簽數(shù)據(jù)的數(shù)據(jù)量確定的, 也是影響成功率的重要部分.

結(jié)果: 對Speck 算法5 輪的訓(xùn)練結(jié)果, 學(xué)習(xí)率[15]為1.0×10?5、標(biāo)簽的數(shù)據(jù)個(gè)數(shù)為4.0×106, 其余都為無標(biāo)簽數(shù)據(jù). 實(shí)驗(yàn)環(huán)境為1060T 的GPU, 一輪(epoch) 約使用200 秒. 選取損失函數(shù)為Sigmoid,運(yùn)行200 輪, 得到成功率展示如圖2 所示.

對Speck 算法6 輪的情況, 采取同樣的參數(shù), 標(biāo)簽數(shù)據(jù)的數(shù)量級選取為2.5×106, 得到結(jié)果如圖3 所示.

圖3 PU 學(xué)習(xí)在Speck 算法6 輪的區(qū)分成功率Figure 3 PU learning in 6 rounds of Speck algorithm to distinguish success rate

從圖3 可以看出, 在5 輪的情況下nnPU 和nPU 都具有很好的結(jié)果, 平均成功率達(dá)到了0.965. 在6輪的情況中, 前幾輪出現(xiàn)了num(t=1) = 0 的情況, 這是因?yàn)樵趯W(xué)習(xí)的初期還沒有很好的學(xué)到差分對具有的特征, 因此無法挑選出正確的差分對. 其6 輪的成功率最后也穩(wěn)定在0.860.

4 模型的分析

影響實(shí)驗(yàn)成功率的大小主要是由神經(jīng)網(wǎng)絡(luò)模型、損失函數(shù)、數(shù)據(jù)集先驗(yàn)概率和數(shù)據(jù)量等這幾個(gè)變量決定的. 本文中將按照以上順序逐步分析.

4.1 神經(jīng)網(wǎng)絡(luò)模型的選擇

在本實(shí)驗(yàn)中, 復(fù)雜的神經(jīng)網(wǎng)絡(luò)的提升效果并不明顯, 主要是因?yàn)檫x擇了6 層的全鏈接神經(jīng)網(wǎng)絡(luò), 已經(jīng)具備足夠的深度去學(xué)習(xí)差分對具有的特征. 我們輸入的數(shù)據(jù)為64 bit 的加密數(shù)據(jù), 相比神經(jīng)網(wǎng)絡(luò)來說, 即使我們使用卷積神經(jīng)網(wǎng)絡(luò)[15]或者殘差神經(jīng)網(wǎng)絡(luò)[15]等更高級的網(wǎng)絡(luò),并不會(huì)過度增強(qiáng)原數(shù)據(jù)具備的性質(zhì).

4.2 損失函數(shù)

在實(shí)驗(yàn)中, 我們使用了Sigmoid 函數(shù), 當(dāng)然也可以使用其他的一些損失函數(shù). 在這里, 我們使用Softplus 函數(shù)[15]也對Speck 算法5 輪的情況, 進(jìn)行了相應(yīng)的實(shí)驗(yàn), 在其他條件均不改變, 只改變損失函數(shù)的情況下, 實(shí)驗(yàn)結(jié)果如圖4 表示.

圖4 Softplus 函數(shù)在5 輪Speck 算法加密下的PU 學(xué)習(xí)成功率Figure 4 PU learning success rate of Softplus function encrypted with 5 rounds of Speck algorithm

從圖4 可以看出, 與Sigmoid 函數(shù)的結(jié)果相比, 選取Softplus 函數(shù)進(jìn)行實(shí)驗(yàn)得到的結(jié)果差強(qiáng)人意. 首選, 在nnPU 的情況下, 其精度遠(yuǎn)遠(yuǎn)不如Sigmoid. 在nPU 的條件下, 更是跌落0.8 以下. 這主要是因?yàn)镾oftplus 的值域是(0,∞). 它并不是嚴(yán)格的零一函數(shù), 它的約束力相對于Sigmoid 來說并不足. 在第2 節(jié)我們討論過, 只有零一函數(shù)可以將nPU 的式(1)轉(zhuǎn)變式(4), 因此Softplus 函數(shù)在nPU 中的適用性并沒有Sigmoid 強(qiáng), 它會(huì)產(chǎn)生過多的逼近誤差. 因此在程序?qū)崿F(xiàn)的時(shí)候, 直接使用了式(4)作為nPU 的損失函數(shù),所以才會(huì)出現(xiàn)成功率跌落到0.774 的結(jié)果.

還有很多其他的損失函數(shù)可供選擇, 可以根據(jù)不同的實(shí)驗(yàn)選擇不同的損失函數(shù).

4.3 先驗(yàn)概率

先驗(yàn)概率是整個(gè)PU 的核心, 也是影響成功率的關(guān)鍵因素. 在現(xiàn)實(shí)情況下, 先驗(yàn)概率的值主要依賴于標(biāo)簽數(shù)據(jù)和無標(biāo)簽數(shù)據(jù)的數(shù)據(jù)集大小.

在5 輪Speck 算法加密的情況下, 我們選擇了標(biāo)簽數(shù)據(jù)的數(shù)據(jù)量為4.0×106, 則剩下的無標(biāo)簽數(shù)據(jù)的數(shù)據(jù)量為6.0×106, 根據(jù)數(shù)據(jù)量計(jì)算得到的先驗(yàn)概率并不高. 因此就會(huì)減少整個(gè)損失中正向損失的所占比例, 增加負(fù)向損失的所占比例, 因此在學(xué)習(xí)器進(jìn)行學(xué)習(xí)的過程中, 也會(huì)更加注重在減少負(fù)向損失的部分.這有助于篩選出差分特征明顯的密文差分對, 減少錯(cuò)誤判斷的可能性.

在總數(shù)據(jù)集一定的情況, 當(dāng)我們逐步減少標(biāo)簽數(shù)據(jù)的數(shù)據(jù)量的時(shí)候, 先驗(yàn)概率逐漸增加, 因?yàn)槊芪牟罘謱Φ奶卣饕呀?jīng)足夠難發(fā)現(xiàn), 所以其成功率也會(huì)逐步減少. 當(dāng)我們逐步增加標(biāo)簽數(shù)據(jù)的數(shù)據(jù)量的時(shí)候, 先驗(yàn)概率逐漸減少, 其成功率也會(huì)逐步增加. 但是, 這里要注意的是, 不能無限制增加標(biāo)簽數(shù)據(jù)的數(shù)據(jù)量, 如果先驗(yàn)概率過小, 則會(huì)產(chǎn)生不學(xué)習(xí)特征而將所有數(shù)據(jù)拋棄的情況.

在5 輪Speck 算法情況下, 我們選擇將標(biāo)簽數(shù)據(jù)的個(gè)數(shù)分別定為5.0×104, 1.0×105, 1.0×106,2.0×106等幾種情況, 總體數(shù)據(jù)個(gè)數(shù)為1.0×107, 運(yùn)行200 輪后得到的結(jié)果參見表3.

表3 不同labeled 數(shù)據(jù)量的prior 和成功率Table 3 Priority and success rate of different labeled data volumes

從表3 中就可以很容易的看出, 當(dāng)數(shù)據(jù)總量一定的情況下, 增加標(biāo)簽數(shù)據(jù)的數(shù)量, 會(huì)使成功率逐漸升高, 隨著標(biāo)簽數(shù)據(jù)的個(gè)數(shù)逐漸增加, 先驗(yàn)概率也不斷減少, 相對于在總損失中, 不斷提高對正向判斷的權(quán)重.

4.4 數(shù)據(jù)量

足夠數(shù)據(jù)量是保證訓(xùn)練結(jié)果的前提, 我們對6 輪Speck 算法加密密文差分對的實(shí)驗(yàn)進(jìn)行相應(yīng)的改進(jìn),在保證先驗(yàn)概率不變的情況下, 同比增加標(biāo)簽數(shù)據(jù)和無標(biāo)簽數(shù)據(jù)的數(shù)據(jù)集大小. 將標(biāo)簽數(shù)據(jù)的數(shù)據(jù)集增加到4.0×106, 無標(biāo)簽數(shù)據(jù)的數(shù)據(jù)集增加到1.0×107, 運(yùn)行200 輪得到的結(jié)果如圖5 表示.

圖5 增加數(shù)據(jù)集之后的6 輪Speck 加密密文差分對的成功率Figure 5 Success rate of 6 rounds of Speck encrypted ciphertext differential pairs after adding data

從圖5 中可以看出, 增加了數(shù)據(jù)量, 在不改變先驗(yàn)概率的前提下可以增加相應(yīng)的成功率, 當(dāng)然這是顯然的, 實(shí)際情況中越多的數(shù)據(jù)也會(huì)帶來越高的成功率.

4.5 PU 學(xué)習(xí)的優(yōu)勢

在深度學(xué)習(xí)中, 分類問題一直是研究人員關(guān)注的重點(diǎn). 神經(jīng)網(wǎng)絡(luò)差分區(qū)分器是人工智能與傳統(tǒng)區(qū)分器的結(jié)合. 隨著不斷的研究發(fā)展, 基于不同類別的分類問題也產(chǎn)生了不同的方法. 比如隨機(jī)森林、貝葉斯等機(jī)器學(xué)習(xí)手段; 卷積網(wǎng)絡(luò)、殘差網(wǎng)絡(luò)等神經(jīng)網(wǎng)絡(luò)手段等等. 相比于這些手段, 基于PU 學(xué)習(xí)構(gòu)造的差分區(qū)分器是具有一定的優(yōu)勢的. 這是因?yàn)镻U 學(xué)習(xí)是在半監(jiān)督學(xué)習(xí)的一個(gè)研究方向, 它是一個(gè)二分類器. 而不論是卷積網(wǎng)絡(luò), 還是殘差網(wǎng)絡(luò)在分類問題中都具有對多種類型進(jìn)行區(qū)分的能力, 因此相對于專門進(jìn)行二分類的PU 學(xué)習(xí), 其精度有一定的差距.

5 結(jié)束語

在本文中, 我們使用了PU 學(xué)習(xí)中的nPU 和nnPU 對Speck 加密算法5 輪情況和6 輪情況下的明文差分對加密后的密文數(shù)據(jù)進(jìn)行訓(xùn)練與學(xué)習(xí), 并在測試集中進(jìn)行了測試. 針對5 輪Speck 算法和6 輪Speck 算法, 我們區(qū)分器的成功率分別是0.965 和0.860. 進(jìn)一步, 本文還分析了PU 學(xué)習(xí)模型中各參數(shù)對于成功率的影響.

從上述結(jié)果可以看出, 基于PU 學(xué)習(xí)分類構(gòu)造的差分區(qū)分器具有很好的成功率. 當(dāng)然基于PU 學(xué)習(xí)構(gòu)造差分區(qū)分器也有一些限制, 當(dāng)我們構(gòu)造7 輪Speck 算法的差分區(qū)分器時(shí), 其效果并不令人滿意. 主要原因是當(dāng)具有固定差分的明文數(shù)據(jù), 經(jīng)過7 輪Speck 算法加密后得到其相應(yīng)的密數(shù)據(jù), 得到的密數(shù)據(jù)所具有的差分特性過于分散, 故正類樣本所具有的特征過多且較為平均, 因此無法進(jìn)行很好的學(xué)習(xí). PU 學(xué)習(xí)不僅僅可以構(gòu)造Speck 算法的差分區(qū)分器, 對于其他密碼算法也可以構(gòu)造相應(yīng)輪數(shù)所對應(yīng)的差分區(qū)分器.

猜你喜歡
數(shù)據(jù)量區(qū)分差分
區(qū)分“旁”“榜”“傍”
你能區(qū)分平衡力與相互作用力嗎
數(shù)列與差分
基于大數(shù)據(jù)量的初至層析成像算法優(yōu)化
計(jì)算Lyapunov指數(shù)的模糊C均值聚類小數(shù)據(jù)量法
高刷新率不容易顯示器需求與接口標(biāo)準(zhǔn)帶寬
寬帶信號采集與大數(shù)據(jù)量傳輸系統(tǒng)設(shè)計(jì)與研究
電子制作(2019年13期)2020-01-14 03:15:18
教你區(qū)分功和功率
基于差分隱私的大數(shù)據(jù)隱私保護(hù)
罪數(shù)區(qū)分的實(shí)踐判定
黑河市| 隆昌县| 香港 | 卓尼县| 牙克石市| 武陟县| 阿图什市| 西峡县| 乌兰县| 友谊县| 贺州市| 临沧市| 东光县| 虎林市| 婺源县| 新余市| 德兴市| 玉门市| 沭阳县| 固阳县| 清原| 昭平县| 张家港市| 肃宁县| 宁南县| 克东县| 鲁甸县| 泰兴市| 石阡县| 井冈山市| 贡山| 鸡东县| 岳阳县| 米脂县| 廊坊市| 中方县| 永吉县| 苏尼特左旗| 泰来县| 辽宁省| 江西省|