機器學習 pytorch(4)

2021-09-12 17:35:31 字數 2873 閱讀 7848

基於機器學習的物理不可轉殖函式(puf)建模攻擊

2.2、puf

物理不可轉殖函式(physical unclonable function,puf)是一種新的輕量級硬體安全原語。當輸入乙個激勵時,puf利用晶元製造過程中難以**的工藝偏差(process variation),輸出依賴於晶元的不可轉殖的響應,非常適合資源受限環境下的裝置認證。然而,攻擊者可以收集一定數量的激勵響應對將puf進行建模,因此,puf易受基於機器學習建模攻擊。下圖是一種典型的puf——arbiter puf,其中共同組成激勵,r為響應。其原理是:乙個脈衝訊號t會在arbiter puf上下兩條路徑同時傳播,通過激勵改變路徑(如c1=1時,在m1階段交叉傳播;c1=0時,在m1階段平行傳播),由於工藝偏差會影響不同路徑的傳播快慢,最終導致上下兩條路徑訊號傳播產生快慢差異,比較傳播快慢生成激勵響應r(0或1)

2.3、建模攻擊線性回歸和邏輯回歸是入門級的機器學習演算法,本實驗需自行掌握這兩個演算法,另外如支援向量機(svm),人工神經網路(ann),卷積神經網路(cnn),協方差矩陣自適應進化策略(cmas-es)需根據分組情況學習其一,最後使用邏輯回歸以及分得的四種演算法(svm,ann,cnn,cma-es)其一對arbiter puf進行建模攻擊,本實驗只需對**的arbiter puf進行建模即可。

在我們的**實驗中,建模主要分為三個步驟:

在**的arbiter puf上獲取一定量的激勵響應對作為訓練資料,再獲取一定量的激勵響應對(要求10000對,不能與訓練資料的激勵相應對相同)作為測試資料。

使用訓練資料的激勵響應對構建攻擊模型。

使用測試資料的激勵響應對測試攻擊模型的準確率。(實驗要求準確率達到98%以上,並報告使用了多少對訓練資料到達該效果)

作業系統:windows

程式語言:python並安裝tensorflow包

本實驗給出乙個csv檔案「**arbiter_puf.csv」,可用excel開啟,實驗中可用python讀入。

實驗步驟:

安裝python以及tensorflow 包;

使用csv_file =  csv.reader(open('**arbiter_puf.csv','r'))讀入資料;

編寫程式獲取訓練資料與測試資料,並儲存為檔案形式;

讀入訓練資料以及測試資料,使用tensorflow對機器學習模型進行訓練;

不斷擴大訓練資料集,使得訓練的模型達到準確率要求

這次實驗我沒用tensorflow包,用pytorch

我覺得最重要的兩個問題是對puf工作原理的研究,還有如何建模。搞清楚這兩個問題後面搭建神經網路會方便很多。

舉如下例子:

​ 如圖,這是乙個簡單 4 階 arbiter puf 對應激勵(1011)的路徑圖,我們產生一位響應,只需要比較藍紅兩條路徑的訊號傳播快慢就行了。我們設邏輯回歸的引數為,如果以(1011)作為輸入,得到的結果為 w0+w1+w3+w4顯然沒有任何意義。

​ 這時就需要變通了,我們需要在輸入或者設引數上做點手腳來遵循 arbiter-puf 的工作原理。這裡對 arbiter puf 的所有延遲段進行設引數。圖中的(w11,w12,w13,w14)對應之前圖中的(p,s,t,q),這時我們產生響應相當於比較(w12+w24+w33+w42)和(w13+w21+w32+w43)的大小。即判斷以下兩個矩陣對應位置相乘後求和的正負。

​ 可見激勵(1011)和矩陣 c 是一一對應的,我們只需要對激勵進行擴充套件就能完成建模。注意這裡的矩陣相乘不是線性代數中的矩陣相乘,而是對應位置的數相乘。其實只要把矩陣做一下轉置就可以對應線性代數中的矩陣相乘了。最終,我們把c矩陣程式設計乙個1*256的矩陣,即把每行拼接起來,在程式設計進行計算做最後的一位01輸出,我們的資料集收集方式就得以實現了。

理解了以上部分再去做還是一籌莫展的。還需要分析一下如何建模。

這時候要考慮輸入是什麼,輸出是什麼:

向上邊的c矩陣,乙個4行64列的矩陣能確定輸出r是0還是1,因為引數矩陣資料是給定的,不會變化了。

也就是說特徵值是4*64=256,256個輸入才會確定乙個輸出。

我們通過給定的**arbiter_puf.csv檔案來創造非常多組資料,生成很多像c一樣的矩陣,同時生成對應的輸出值y,也就是生成很多的激勵響應對。對生成的矩陣,一部分組成訓練集,一部分組成測試集;對生成的結果,一部份組成訓練標籤,一部分生成測試標籤。

考慮線性回歸和邏輯回歸的區別,這個問題因為輸出值要麼是0,要麼是1,屬於二分類問題。

使用訓練資料的激勵響應對構建攻擊模型。

使用測試資料的激勵響應對測試攻擊模型的準確率。

要做成這件事情需要去學很多知識:

線性回歸和邏輯回歸的區別:1 2 3

對csv檔案的處理;

1

機器學習4

題外話,今天導師給我安排了乙個師兄帶我,是做推理方面的,自然語言處理領域太廣,也不知道推理具體做什麼的,哈哈,努力吧 機器學習第5章走起。如果h是無限大的怎麼辦呢?h的大小我們用m表示。small m 當m小的時候,p bad 2m.自然可以說p bad 相對較小,但是當m很小的時候,也說明h的個數...

機器學習 4

現在你進入了兩難的境地。乙個是來自使用者的小的資料集,它是一種分布,而另乙個是大得多的資料集,來自另乙個分布,的外觀和你真正想要處理的並不一樣。那麼你該怎麼做呢?這裡有一種選擇,你可以將兩種資料組合在一起,這樣你就有了21萬張,然後將這21萬張隨機分配到訓練 開發和測試集中。這麼做有一些好處,你的訓...

機器學習 4

十三 svm 線性可分svm原理 十四 svm 直觀理解拉格朗日乘子法 十五 svm對偶學習 十六 線性svm 間隔由硬到軟 十七 非線性svm和核函式 十八 svr 一種寬容的回歸模型 十九 直觀認識svm和svr 二十 hmm 定義和假設 二十一 hmm 三個基本問題 概率計算問題 問題 學習問...