張秀再,劉光杰,張經緯
(南京信息工程大學a.電子與信息工程學院;b.江蘇省大氣環境與裝備技術協同創新中心,南京 210044)
量子加密起源于1969 年美國科學家Wiesner[1]提出的Conjugate Coding,但由于當時技術的局限性,這一突破性想法沒有得到人們的關注。直到1984 年Bennett等[2]提出的第一個量子密鑰分發協議(QKD),即著名的BB84 協議,才標志著量子加密的研究真正開始。目前,關于量子加密在理論與實驗方面都取得了大量研究成果。1991 年Ekert[3]提出的E91 協議和1992 年Bennett[4]提出的B92 協議,都已被證明量子加密的絕對安全性。FPGA 綜合設計實驗是電子信息、自動化等工科專業的重要綜合實踐課程,具有綜合性、實踐性和創新性。而現有的實驗教學平臺一般只要求完成單項內容的驗證實驗,無法綜合應用所學知識解決實際工程問題,其他綜合設計實驗項目的綜合性、實踐性不強,難以滿足創新性設計,導致學生自主開展實驗的積極性不足,綜合設計的獲得感較低,難以提升學生的工程能力和創新能力。因此,引入實用的自主設計類教學實驗,提升FPGA 綜合設計實驗課程的高階性、創新性和挑戰度,培養學生創新思維是教學改革的一個重要方向。
本文在FPGA綜合設計實驗課程教學項目中,針對量子加密技術在視頻通信中的應用,基于XILINX公司的ZYNQ架構、以BB84 協議為核心加密算法,設計了一種對視頻數據流的視頻采集、信息加密、信道傳輸、信息解密、視頻播放功能的量子加密視頻通信教學實驗設計,增強了FPGA 綜合設計實驗教學的實用性和挑戰度,激發了學生的學習興趣和自主能動性,提升綜合實踐教學的成效。
量子加密視頻通信系統的整體結構如圖1 所示,主要包括量子密鑰分配單元(QKD)與視頻圖像處理單元兩部分。

圖1 量子加密視頻通信教學實驗系統結構框圖
量子密鑰分配單元[5]包括隨機數產生器、Alice算法模塊與Bob 算法模塊3 部分。其中Alice 與Bob 之間存在量子信道與傳統公開信道,兩信道之間相互隔離互不干擾。Alice與Bob引入了后處理算法,包括數據篩選、改進型二分法數據協調、Hash矩陣密性增強3個步驟。通過一個基于梅森旋轉算法的隨機數產生器為Alice與Bob提供所需要的隨機數。Bob 最后將密性增強壓縮后的密鑰傳給圖像加密模塊。
視頻圖像處理單元[6]包括圖像采集(OV7670)、圖像加密與圖像緩存(256M SDRAM)3 個模塊。視頻信息由圖像采集模塊獲取,即通過攝像頭OV7670 進行圖像采集,且在1 s內最高可向FPGA 輸入30 幀圖像。將圖像數據與QKD 系統產生的密鑰進行異或運算處理,然后把加密完成的視頻流信息存放到FPGA內部、容量大小為256 MB 的SDRAM 圖像緩存器中。圖像緩存模塊提取出部分數據后,通過傳統公開信道輸送至發送方Alice。視頻信息經圖像顯示模塊解密后,由內部的VGA驅動電路驅動,并通過VGA傳輸線在用戶屏幕上顯示。
對量子加密實驗系統來說,隨機數的好壞是影響整體性能的關鍵[7]。本實驗設計了一種新的基于梅森旋轉算法的隨機數產生模塊,該模塊最長隨機周期取自一個梅森素數219937-1,且較傳統反饋移位寄存器而言,可以保證隨機數是均勻分布的。
隨機數產生模塊的狀態轉移過程如圖2 所示。

圖2 隨機數產生模塊的狀態轉移圖
idle(空閑)當完成初始化時,轉到狀態1。
狀態1根據SEED 或上一輪運算結果對寄存器數組[0:623]依次進行初始賦值,判斷此時運算輪數%(模運算),624若為0則轉向狀態2,否則轉向狀態5。
狀態2操作單口RAM的RW線為讀,空閑一個周期讀入此時為i的寄存器數組的值,轉向狀態3。
狀態3空閑一個周期等待RAM 數據輸出穩定后,讀入一個名為(i+1)%624 寄存器數組的值,轉向狀態4。
狀態4空閑一個周期等待RAM 數據輸出穩定后,讀入一個名為(i+397)%624 寄存器數組的值,依次將i、(i+1)%624、(i+397)%624 按位計算且進行右移操作,設置操作單口RAM的RW線為寫,將計算值寫入RAM中,轉向狀態5。
狀態5如圖3 波形所示,操作單口RAM 的RW線為讀,讀出名為index 寄存器數組的值,完成梅森旋轉運算后,將result寫入RAM并拉高ready,轉向空閑狀態,等待下一輪計算。

圖3 隨機數產生模塊的波形
本實驗采用了一種改進型二分法作為數據協調算法,該算法能在保證數據安全性的前提下,保留更多的有效數據,并且比一般算法運算速度更快,節約通信資源;密性增強具體方案如下:先由Matlab 生成一族長度固定由0/1 元素構成的HASH 矩陣族,然后將協調后的數據經由HASH 矩陣壓縮。這樣可盡量減少竊聽方所得到的密鑰信息。
量子密鑰分配單元的狀態轉移過程如圖4 所示。

圖4 量子密鑰分配單元的狀態轉移圖
狀態1初試化各個寄存器,并由Alice(發送方)接收qbit(量子比特),Bob(接收方)接收mbase(測量基)。
狀態2Bob接收來自Alice 的量子比特流,并存儲至寄存器。
狀態3Alice接收Bob的小部分(25%)mbase。
狀態4Alice與Bob公開計算部分mbase與qbit的和運算,并在公共信道對比誤碼率,超出閾值則說明存在Eve(竊聽方),轉到狀態1 結束此次通信。
狀態5此次通信不存在Eve,則Alice 接收Bob剩余mbase。
狀態6Alice與Bob計算出所有qbit與mbase并配對基底,不一致則轉到狀態1。
狀態7、8、9、10多輪改進法糾錯,每輪結束檢查有效數值,若低于閾值則轉到狀態1。
狀態11將數據協調后的若干組數據依次打入HASH矩陣中,等待壓縮后的數值。
狀態12如圖5 所示將密鑰key 輸出,并拉高數據有效位valid,轉到狀態1 等待下一輪計算。

圖5 量子密鑰分配單元的波形
量子加密視頻通信系統采用自頂向下的設計思路,在Vivado 2017.2 平臺上利用Verilog 語言設計各個模塊,并將各個模塊組合封裝。頂層文件在Vivado工具綜合實現生成FPGA 的硬件資源消耗情況,如表1所示。從表1 可知,FPGA資源利用率最高的是LUT與BUFG,資源利用率為13%,可見量子加密算法易移植于其他系列的FPGA 與嵌入式系統,方便部署于復雜系統上,以此保護人們的信息不受侵犯。

表1 FPGA硬件資源消耗表
圖6 所示為在3 種不同狀態下正常顯示、加密之后與發現竊聽行為后的系統實驗測試結果。可見,實驗設計的視頻通信系統對數據的加密具有實時性和一次一密性。加密每一幀圖像所用的密鑰流都處于無規律地動態變化中,根據量子力學的特性[5],這種加密方式可及時發現竊聽行為[10],理論上具有絕對安全性。

圖6 加密實驗測試結果對比
根據實驗系統測試結果,從密鑰靈敏度、像素分布關系等方面對原始圖像與加密圖像進行對比,以驗證量子加密算法的安全性。
3.2.1 密鑰靈敏度
密鑰靈敏度即密鑰和密文圖像的關聯度,密鑰靈敏度越高,兩者關聯程度就越強,被破解的可能性也越小[8]。在密碼學中,可用原明文圖像與密文圖像的均方差MSE表示密鑰靈敏度

由于明文圖像為彩色,均方差MES可用R、G和B三通道均方差表示為:

密鑰完全正確,則明文圖像與密文圖像均方差MSE為0,梅森旋轉算法對初始值敏感。因此,當一幀圖像的量子密鑰全部正確,圖像為圖7(a)所示;若錯誤密鑰誤差小于2-20,解密依舊失敗,解密圖像如圖7(b)所示。

圖7 解密圖像
由圖7 所示可知,實驗系統密鑰靈敏度高,密鑰細微的變化將導致解密結果發生很大變化,解密出的錯誤圖像也不會顯示出任何有效信息,安全性高[9]。
3.2.2 灰度直方圖分析
灰度直方圖由Matlab通過將灰度分級成[0:255]顯示圖像像素在每個灰度級的分布情況,密文圖像的灰度直方圖和原始圖像的差別越大,則加密效果越好[10]。
圖8 和圖9 所示依次給出了原始明文圖像灰度直方圖與加密圖像灰度直方圖。可以明顯看出同一個圖像的R、G、B三通道與灰度圖的灰度分布基本一致,但圖像加密前與加密后的灰度發生了巨大變化,且密文圖像的灰度直方圖灰度變化較為平緩,明文圖像灰度直方圖灰度變化十分陡峭,因此密文圖像有效地隱藏了明文圖像的有效信息[11]。

圖8 原始明文圖像灰度直方圖

圖9 加密圖像灰度直方圖
3.2.3 相鄰像素相關性
實驗的一幀明文圖像如圖10(a)所示,密文圖像如圖10(b)所示。一幅明文圖像每個像素點都與相鄰像素點有巨大的關聯性,關聯系數>0.99,而只有使加密系統加密后的密文圖像素點與相鄰的相關性盡可能小,才能保證信息的安全[12]。相鄰像素相關系數表示為[13]:

圖10 相鄰像素相關性實驗

式中:D(x)、D(y)分別為對應像素的方差;cov(x,y)為協方差。
由式(3)得出R、G、B 三通道和灰度圖相鄰像素相關系數,如表2 所示。原明文圖像與密文圖像相鄰像素的水平、垂直和對角相關分布圖分別如圖11~13所示。

表2 原始圖像與密文圖像的相關系數表

圖11 水平相鄰像素相關分布圖

圖12 垂直相鄰像素相關分布圖

圖13 對角相鄰像素相關分布圖
由表2 數據和圖11~13 可知,原明文圖像的各個像素點與各自相鄰像素點基本呈線性相關,水平、垂直和對角相關系數均>0.998,而加密后的密文圖像的水平、垂直和對角相關系數均<0.5。因此,加密前后圖像關聯性發生了巨大改變[14]。
3.2.4 隨機性測試
利用NIST的SP800-22 標準對密文圖像做一個系統性偽隨機測試[15]。于Ubuntu16.4 系統下,采用NIST官方提供的sts-2.2 軟件包對序列長度3 ×106位的隨機數列進行測量,最終測試結果如表3 所示[16]。根據標準,若測試結果的P-value 值大于0.1,則該項測試顯示success,否則顯示failure。表3 顯示所有測試的P-value的值皆大于0.1,因此實驗設計的加密視頻通信系統的安全性滿足NIST SP800-22 標準,具有很強的保密性。

表3 NIST SP800-22 測試結果
在FPGA綜合設計實驗課程教學中,結合量子加密算法與視頻采集顯示技術,設計了一種基于FPGA的量子加密視頻通信教學實驗系統。實驗測試結果表明,基于FPGA硬件平臺上,優化量子加密算法可有效實現加密視頻通信,且能夠積極引導學生勇于開展高階性、創新性和挑戰度的綜合設計實驗,可以極大地豐富綜合設計實驗的教學內容,提升學生的自主實驗興趣和工程創造能力。