卷首語
1964年10月,“73式”程序存儲方案磁芯存儲器)確定後,算法團隊麵臨新的技術挑戰:37階矩陣加密邏輯涵蓋明文處理、分組補零、矩陣變換、密鑰生成、解密恢複等全流程,若直接進行代碼固化,將導致程序結構混亂、維護困難,且難以適配硬件模塊化設計。此時,將核心算法按“功能獨立、邊界清晰”原則拆分為19組模塊,成為連接“邏輯設計”與“代碼落地”的關鍵步驟。這場為期1個半月的模塊劃分工作,不僅讓複雜的加密邏輯實現係統化拆解,更提升了代碼的可測試性、可維護性與硬件適配性,為後續算法代碼固化與硬件集成搭建了標準化的技術橋梁。
一、模塊劃分的背景與核心目標
37階矩陣加密邏輯通過初步測試後,李工團隊在代碼固化準備中發現:完整加密邏輯包含28個核心操作步驟如明文校驗、37字節分組、隨機補零、8次矩陣變換等),若編寫為單一程序,代碼量將超8kb磁芯存儲器程序區容量),且調試時難以定位錯誤如矩陣變換錯誤與補零錯誤無法區分),模塊劃分勢在必行。
基於“73式”研發需求與後續維護考量,團隊明確模塊劃分三大目標:一是功能獨立,每個模塊僅負責單一核心功能如“矩陣變換模塊”僅執行18變換,不涉及密鑰生成);二是邊界清晰,明確每個模塊的輸入輸出參數如“密鑰生成模塊”輸入密鑰種子,輸出128位密鑰,不接收其他模塊數據);三是適配硬件,模塊規模需匹配磁芯存儲器分區單模塊代碼量≤512字節,便於加載至程序存儲區)。
模塊劃分工作由李工牽頭算法板塊負責人),組建5人專項小組:李工整體邏輯拆解,把控模塊分類)、吳工矩陣運算模塊設計,熟悉變換流程)、陳工分組與補零模塊設計,負責輸入處理)、鄭工密鑰管理模塊設計,參與密鑰生成理論)、馬工異常處理與輔助模塊設計,擅長測試邏輯),確保覆蓋加密全流程。
劃分周期規劃為1個半月1964.10.11964.11.15),分三階段:第一階段10.110.10)拆解加密流程,初步擬定模塊清單;第二階段10.1110.31)明確模塊功能與邊界,繪製模塊交互圖;第三階段11.111.15)組織評審,優化模塊劃分,銜接後續代碼編寫。
劃分啟動前,團隊梳理核心約束條件:模塊總數控製在19組基於流程步驟拆解與硬件適配測算,19組可實現功能全覆蓋且單模塊規模適中);模塊交互需通過指定緩存區磁芯存儲器數據區,地址0x40000x7fff),避免直接數據調用;每個模塊需預留測試接口,便於獨立驗證。
二、加密流程拆解與模塊劃分邏輯
李工團隊首先開展加密全流程係統化拆解,梳理出“明文輸入預處理分組補零矩陣變換密鑰生成加密整合密文輸出”7大核心階段,以及對應的解密反向流程“密文輸入解密矩陣變換補零移除明文整合明文輸出”),同時包含異常處理如格式錯誤、運算溢出)與輔助功能如版本管理、日誌記錄),形成完整流程圖譜。
模塊劃分遵循“流程階段+功能屬性”雙維度邏輯:流程階段維度確保模塊覆蓋全流程如輸入階段對應“明文預處理模塊”,分組階段對應“分組模塊”);功能屬性維度確保模塊單一職責如“矩陣運算”按“變換逆變換模運算”拆分為獨立模塊,而非合並為一個),避免“大模塊”導致的功能混雜。
拆解過程中重點解決“跨階段功能歸屬”問題:例如“補零校驗”功能,雖與分組階段相關,但需在解密階段驗證補零位置,團隊最終將其拆分為“補零參數生成模塊”加密階段,生成補零位置與校驗位)與“補零參數驗證模塊”解密階段,驗證並移除補零),確保兩個階段的功能獨立,互不依賴。
模塊規模控製通過“功能拆分”實現:例如“矩陣變換”功能,若包含18變換、模256運算、並行控製,代碼量將超800字節,團隊按“變換邏輯運算控製並行調度”拆分為“矩陣變換執行模塊”“模256運算模塊”“矩陣並行控製模塊”3個模塊,每個模塊代碼量控製在400字節以內,適配硬件存儲需求。
10月10日,團隊完成初步拆解,形成《加密流程拆解圖譜》,標注每個流程步驟的功能描述、輸入輸出數據、關聯後續步驟,為後續19組模塊的具體劃分提供流程依據,確保模塊劃分不遺漏、不重複覆蓋流程節點。
這章沒有結束,請點擊下一頁繼續閱讀!
三、曆史補充與證據:流程拆解圖譜檔案
1964年10月的《“73式”電子密碼機加密流程拆解圖譜檔案》檔案號:1964001),現存於研發團隊檔案庫,包含全流程圖譜、步驟說明、功能歸屬標注,共28頁,由李工、吳工共同繪製,是模塊劃分的核心流程依據。
檔案中“加密流程圖譜”采用流程圖標準繪製:矩形框標注流程步驟如“步驟3:37字節分組”),箭頭標注數據流向,旁注功能描述“將預處理後的明文按37字節拆分,最後一組不足37字節時標記補零需求”),並標注該步驟擬歸屬的模塊類彆“分組模塊”),拆解邏輯可視化。
步驟說明頁記錄關鍵流程的細節:“步驟5:矩陣變換”說明為“接收37字節分組向量,依次調用18矩陣進行乘法運算,每輪運算後執行模256處理,輸出變換後向量至密鑰整合階段”,明確該步驟需拆分為“矩陣變換執行”“模256運算”“矩陣調度”3個模塊,為後續模塊拆分提供依據。
檔案中“功能歸屬爭議記錄”顯示:針對“密鑰與矩陣變換的整合”功能,團隊曾討論是否合並為“加密整合模塊”,最終決定拆分為“密鑰整合模塊”負責密鑰與變換向量的邏輯結合)與“加密輸出控製模塊”負責整合後數據的格式轉換與輸出),爭議解決依據為“功能獨立原則,整合與輸出屬於不同流程階段”。
檔案末尾“初步模塊清單”列出22個候選模塊,標注每個模塊對應的流程步驟,如“明文格式校驗模塊步驟11)”“分組執行模塊步驟31)”,為後續優化為19組模塊提供初始基礎,檔案有李工、陳工的簽名,日期為10月10日。
四、19組模塊的具體分類與功能定義
基於流程拆解,團隊通過合並同類功能、拆分過大模塊,最終確定19組模塊,按“功能大類”分為7類,每類模塊功能獨立、邊界清晰,覆蓋加密與解密全流程。
第一類“輸入處理類”2組):1“明文格式校驗模塊”,功能為校驗輸入明文是否為ascii碼,剔除非法字符如非打印字符),輸出合法明文片段,錯誤率≤0.001;2“明文長度統計模塊”,功能為統計合法明文總長度,計算分組數量如1000字符需28組),輸出分組計數與最後一組補零需求如最後一組29字節需補8字節),為分組模塊提供參數。
第二類“分組與補零類”2組):1“37字節分組模塊”,功能為接收合法明文片段與分組計數,按37字節拆分,輸出標準分組向量37x1),不處理補零;2“隨機補零與校驗位生成模塊”,功能為接收最後一組非標準分組如29字節),隨機生成補零位置8個),生成8位校驗位記錄補零位置),輸出含補零的標準分組與校驗位,補零位置隨機性符合抗破解要求無規律可循)。
第三類“矩陣運算類”4組):1“矩陣變換執行模塊”,功能為接收標準分組向量,加載18矩陣參數,執行乘法運算,輸出變換後向量至模運算模塊;2“矩陣逆變換執行模塊”解密用),功能為接收密文分組向量,加載1?18?1逆矩陣參數,執行逆運算,輸出逆變換後向量;3“模256運算模塊”,功能為接收矩陣變換逆變換後的向量元素可能超255),執行模256運算,將元素控製在0255,輸出標準化向量;4“矩陣並行控製模塊”,功能為控製多組矩陣變換的並行執行如同時處理2個分組向量),提升運算效率,確保並行時無數據衝突,適配硬件運算單元的並行能力。
第四類“密鑰管理類”3組):1“密鑰種子生成模塊”,功能為接收外部密鑰輸入如手動密鑰或設備編號),生成128位密鑰種子,輸出至密鑰計算模塊;2“128位密鑰計算模塊”,功能為加載超定線性方程組參數,輸入密鑰種子,執行高斯消元求解,輸出128位密鑰,密鑰複雜度≥2128組;3“密鑰同步模塊”,功能為接收多節點密鑰請求,傳輸密鑰種子而非完整密鑰),控製節點同步生成密鑰,同步延遲≤18秒,適配野戰多節點協同需求。
五、19組模塊的後續分類與功能補充
第五類“加密輸出類”2組):1“密鑰整合模塊”,功能為接收矩陣變換後的標準化向量與128位密鑰,執行邏輯整合運算如異或操作),生成加密中間數據;2“密文格式轉換模塊”,功能為接收加密中間數據,轉換為二進製ascii碼格式可選),輸出標準密文如二進製密文按字節分組),密文格式符合通信傳輸要求無傳輸衝突字符)。
小主,這個章節後麵還有哦,請點擊下一頁繼續閱讀,後麵更精彩!
第六類“解密處理類”3組):1“密文格式解析模塊”,功能為接收輸入密文,解析格式二進製ascii碼),轉換為解密中間數據,輸出至解密矩陣模塊;2“補零參數驗證與移除模塊”,功能為接收解密後的非標準分組含補零)與校驗位,驗證校驗位合法性,根據校驗位識彆補零位置,移除零字節,輸出原始非標準分組如29字節);3“明文整合模塊”,功能為接收所有解密後的標準分組與最後一組原始非標準分組,按順序拚接,輸出完整明文,拚接錯誤率≤0.001。
第七類“異常處理類”1組):1“算法異常處理模塊”,功能為實時監測其他模塊的運行狀態如明文格式錯誤、矩陣運算溢出、密鑰求解失敗),接收異常信號後,輸出報警提示如ed指示燈或文字提示),並執行異常處理如格式錯誤時暫停輸入,溢出時重新運算),確保算法整體不崩潰,異常恢複率≥99.9。
第八類“輔助功能類”2組):1“算法版本管理模塊”,功能為存儲當前算法模塊的版本信息如矩陣參數版本、密鑰算法版本),輸出版本號至外部接口,便於後續算法升級與版本追溯;2“運算日誌記錄模塊”,功能為記錄關鍵運算步驟的結果如分組數量、密鑰生成時間、異常事件),日誌存儲於磁芯存儲器備份區,可查詢近72小時記錄,便於故障排查與維護。
19組模塊功能定義完成後,團隊編製《19組算法模塊功能清單》,詳細記錄每個模塊的輸入參數如“明文格式校驗模塊”輸入為“原始明文流”)、輸出參數如“合法明文片段+錯誤標記”)、功能描述、關聯模塊如“明文格式校驗模塊”關聯“明文長度統計模塊”),確保模塊間交互邏輯清晰。