2004年四月二十一號。周三。
早上八點半。中科院計算所。信息安全組會議室。
林遠提前半小時到了。
會議室不大,能坐二十個人。橢圓形長桌,投影儀,白板。主題——」受限硬體環境下的密碼算法實現」。
劉教授已經在調試投影儀了。林遠把U盤插上,五頁幻燈片投射到白牆——數據都是現成的,從上月FPGA調研到現在積累的全部測試結果。
」人大概九點到。」劉教授看了看手錶,」信息安全組全組,加上陳偉東課題組的人。大概十五個。」
」陳偉東老師也來?」
」他專門來的。」劉教授說,」他對你在FPGA上做的橢圓曲線算法實現很感興趣。」
九點。人坐滿了。
林遠掃了一眼——大部分面孔在上月FPGA調研時見過。前排中間坐著陳偉東,四十出頭,圓臉,戴黑框眼鏡,手裡拿著一個筆記本。
劉教授簡單開場:」今天的報告由北大的林遠同學做。主題是他主導的CTIN引擎在FPGA上的實現——從算法設計到硬體部署,包括性能測試結果。下面交給林遠。」
林遠站起來,走到投影儀旁邊。
」各位老師好。我是林遠,今天報告的主題是——CTIN在FPGA上的實現。」
第一頁。背景。
」CTIN是一個基於信任網絡的加密通信引擎。核心運算包括橢圓曲線算法標量乘法、對稱加密、哈希運算。軟體版本在ARM XScale PXA255平台上,橢圓曲線算法標量乘法吞吐量是943次每秒。」
他頓了一下。
」943次每秒——對於嵌入式場景勉強夠用,但對於需要高吞吐量的安全網關和硬體加密模塊,這個速度不夠。」
第二頁。FPGA方案。
」Xilinx Virtex-II Pro平台。核心思路——將橢圓曲線算法標量乘法的關鍵運算映射到硬體資源。大數乘法用DSP48塊,Montgomery約減用流水線展開,標量乘法用Montgomery ladder算法在硬體上完整展開。」
第三頁。性能對比。
」測試結果——」
他指向屏幕上的數字。
」橢圓曲線算法 256位標量乘法吞吐量:35200次每秒。」
會議室里有人吸了口氣。
」對比ARM平台的943次每秒——提升了37.3倍。功耗方面,滿載8.2瓦,被動散熱。功耗效率4304次每秒每瓦。」
第四頁。甲方指標對比。
」如果目標指標是5000次每秒——FPGA方案的冗餘倍數是7倍。」
他停了兩秒。
」7倍冗餘意味著——即使後續增加側信道防護、加入抗干擾邏輯導致性能下降30%,仍然有4.9倍的裕量。」
第五頁。後續方向。
」兩個方向。第一,時序優化——通過進位保留加法器減少關鍵路徑延遲,預期吞吐量可以再提升40%到50%。第二——」
他看了一眼劉教授。
」國產密碼算法適配。」
報告結束。掌聲。
陳偉東第一個舉手。
」林遠,35200次每秒——這個數字是持續運行的穩定值,還是峰值?」
」穩定值。」林遠說,」八小時連續測試,標準差0.2%。正式報告由劉教授簽字。」
陳偉東點了點頭。」功耗8.2瓦——被動散熱能做到?」
」能。晶片表面溫度穩定在62度。加一個小散熱片就夠了,不需要風扇。」
」有意思。」陳偉東在筆記本上寫了幾個字。
劉教授也開口了:」林遠,你提到的國產密碼算法適配——具體說說你的思路。」
」國產密碼體系的核心是SM系列。SM2是橢圓曲線公鑰密碼,算法結構和橢圓曲線算法相似——我們現有的FPGA架構可以復用大部分模塊,只需要替換曲線參數和約減邏輯。SM3是哈希算法,類似SHA-256但壓縮函數不同——可以在FPGA上單獨實現一個哈希流水線。SM4是分組密碼,類似AES但輪函數結構不同——S盒實現方式需要調整。」
」工作量呢?」
」SM2——一個月。曲線參數不同,但硬體架構通用。SM3——兩周。SM4——兩周。總共一個半月可以出第一版。」
陳偉東放下筆。」一個半月——你是說,從開始到FPGA上跑通?」
」對。前提是現有Virtex-II Pro平台的資源夠用。初步評估——SM2需要的邏輯單元和橢圓曲線算法差不多,SM3和SM4的資源消耗遠小於橢圓曲線算法。總共大概需要額外30%的邏輯資源。當前板卡有33000個邏輯單元,橢圓曲線算法用了大約40%,剩餘足夠。」
陳偉東看了看劉教授。劉教授微微點頭。
」林遠。」陳偉東說,」你對SM系列的FPGA實現——有具體的技術路線嗎?」
」大方向有。」林遠說,」但具體到RTL級別的實現細節,還需要進一步研究。SM2的橢圓曲線選擇——目前國標推薦的是256位曲線,和我們現有的橢圓曲線算法曲線不同。 Montgomery約減的模數也要換。」
」那——」陳偉東頓了一下,」如果你有興趣,可以和我們課題組合作。我們正好在做一個方向——網絡安全態勢分析系統。系統需要處理大量加密流量,對加解密性能有硬需求。如果你的FPGA方案能集成進來——」
」什麼級別的項目?」
陳偉東看了他一眼。」863。」
林遠心跳快了一拍。
863——國家重點研究發展計劃。如果他的FPGA加密方案能進入863項目,就不只是學術研究了——是國家級的工程化驗證。
」具體方向是?」
」大規模網絡環境下的實時加密流量分析。」陳偉東說,」目前瓶頸在加解密速度——流量太大,軟體加解密跟不上。如果FPGA能做到線速加密——」
」線速?」
」千兆乙太網。線速加密意味著——每一幀數據包經過加密硬體的延遲不超過微秒級。你的FPGA方案——35200次每秒——如果優化到五萬次,單次運算延遲二十微秒。千兆乙太網的幀間隔是九點六微秒。」
」差一點。」林遠算了一下,」二十微秒 vs 九點六微秒——差一倍。」
」所以我說——如果優化到五萬次。」
」時序優化之後可以達到。」林遠說,」進位保留加法器+流水線深度優化——保守估計提升40%,樂觀估計50%。52800次每秒。單次延遲十九微秒。」
」十九微秒——還是差一點。」
」如果換更大的FPGA呢?」林遠說,」Virtex-II Pro是33000邏輯單元。如果換Virtex-4——85000邏輯單元。雙核並行,一個核加密,一個核做協議解析。」
陳偉東眼睛亮了。
」這個思路好。雙核並行——加密和解析流水線化。」
劉教授在旁邊插話:」Virtex-4的板卡計算所有幾塊。可以做。」
研討會結束。十一點半。
大部分人散了。陳偉東走到林遠面前。
」林遠,聊聊?」
兩個人走到走廊盡頭的窗邊。
」你剛才說的雙核並行——不是隨口說的吧?」
」不是。」林遠說,」CTIN引擎本身就是模塊化設計。加密模塊和協議解析模塊本來就是獨立的。放到FPGA上,天然適合雙核。」
」那你願不願意——把這個方向正式納入我們的863課題?」
」什麼形式?」
」你以聯合研究者的身份參與。」陳偉東說,」我們提供Virtex-4板卡、千兆乙太網測試環境、以及流量數據。你負責FPGA加密模塊的設計和實現。」
」和軟體所周老師那邊的課題衝突嗎?」
」不衝突。」陳偉東說,」周明哲做密碼算法理論,我做工程化應用。兩條線並行。你兩邊都參與——正好。」
」我需要和周老師商量一下。」
」當然。」陳偉東說,」如果決定參與,五月初給我一個初步方案。六月863中期檢查,FPGA加密模塊要作為亮點展示。」
」五月初——時間緊。但我可以。」
陳偉東拍了拍他的肩膀。」等你消息。」
中午。食堂。
劉教授和林遠坐在一起。
」陳偉東找你聊了?」
」聊了。863課題,FPGA加密模塊。」
」你怎麼想?」
」想參加。但時間壓力很大——遠望這邊2004年五月十八號要交付,德勤五月中旬要看演示。」
」我建議參加。」劉教授說,」863的平台比你想像的大。還有一點——」他壓低聲音,」陳偉東這個項目,和上面的重點項目有關係。」
林遠夾菜的手停了一下。
」具體不方便說。」劉教授說,」但你應該能猜到——網絡安全態勢分析,千兆線速加密,這些需求不僅僅是學術界的。」
」我明白。」林遠說,」從做CTIN的第一天起,我就知道——密碼學走到最後,一定會碰到那條線。」
劉教授看著他,搖了搖頭。」你這個年輕人——有時候比我想像的還清楚。」
下午兩點。回到工作室。
蘇明遠在等他。
」計算所怎麼樣?」
」報告做完了。反響不錯。」林遠坐下,」有個新情況——陳偉東想讓我參與他的863課題。FPGA加密模塊。」
」863?」蘇明遠坐直了,」國家級課題?」
」對。」
」好事啊。」蘇明遠說,」但這和你的公司有時間衝突吧?」
」有。」林遠說,」所以我需要你幫我把白皮書的進度再推一推。商務部分——你周五之前給我。我拿到之後周末整合,下周一給德勤初稿。」
」周五——」蘇明遠算了算,」還有四天。夠。」
」還有一件事。」林遠說,」德勤五月中旬來看演示——具體時間可能在2004年五月十二號前後。如果演示成功,平台公司的估值邏輯會完全不同。」
」所以演示必須成功。」
」必須。」
蘇明遠點頭。」我明白了。白皮書我來催。」
林遠打開墨鋒,在白板上更新進度。四標準開發——國際審計準則/美國政府會計/國際財報準則全部100%,安全標準體系還剩最後5%。集成測試未開始。白皮書技術部分前三章完成。
然後在白板最下方加了一行——
新增:863課題-陳偉東-FPGA加密模塊(待確認參與)
四條線變成五條線。時間越來越緊。但每一條都在往前推。