卷首语
1964年10月,“73式”程序存储方案(磁芯存储器)确定后,算法团队面临新的技术挑战:37阶矩阵加密逻辑涵盖明文处理、分组补零、矩阵变换、密钥生成、解密恢复等全流程,若直接进行代码固化,将导致程序结构混乱、维护困难,且难以适配硬件模块化设计。此时,将核心算法按“功能独立、边界清晰”原则拆分为19组模块,成为连接“逻辑设计”与“代码落地”的关键步骤。这场为期1个半月的模块划分工作,不仅让复杂的加密逻辑实现系统化拆解,更提升了代码的可测试性、可维护性与硬件适配性,为后续算法代码固化与硬件集成搭建了标准化的技术桥梁。
一、模块划分的背景与核心目标
37阶矩阵加密逻辑通过初步测试后,李工团队在代码固化准备中发现:完整加密逻辑包含28个核心操作步骤(如明文校验、37字节分组、随机补零、8次矩阵变换等),若编写为单一程序,代码量将超8Kb(磁芯存储器程序区容量),且调试时难以定位错误(如矩阵变换错误与补零错误无法区分),模块划分势在必行。
基于“73式”研发需求与后续维护考量,团队明确模块划分三大目标:一是功能独立,每个模块仅负责单一核心功能(如“矩阵变换模块”仅执行1-8变换,不涉及密钥生成);二是边界清晰,明确每个模块的输入输出参数(如“密钥生成模块”输入密钥种子,输出128位密钥,不接收其他模块数据);三是适配硬件,模块规模需匹配磁芯存储器分区(单模块代码量≤512字节,便于加载至程序存储区)。
模块划分工作由李工牵头(算法板块负责人),组建5人专项小组:李工(整体逻辑拆解,把控模块分类)、吴工(矩阵运算模块设计,熟悉变换流程)、陈工(分组与补零模块设计,负责输入处理)、郑工(密钥管理模块设计,参与密钥生成理论)、马工(异常处理与辅助模块设计,擅长测试逻辑),确保覆盖加密全流程。
划分周期规划为1个半月(1964.10.1-1964.11.15),分三阶段:第一阶段(10.1-10.10)拆解加密流程,初步拟定模块清单;第二阶段(10.11-10.31)明确模块功能与边界,绘制模块交互图;第三阶段(11.1-11.15)组织评审,优化模块划分,衔接后续代码编写。
划分启动前,团队梳理核心约束条件:模块总数控制在19组(基于流程步骤拆解与硬件适配测算,19组可实现功能全覆盖且单模块规模适中);模块交互需通过指定缓存区(磁芯存储器数据区,地址0x4),现存于研发团队档案库,包含全流程图谱、步骤说明、功能归属标注,共28页,由李工、吴工共同绘制,是模块划分的核心流程依据。
档案中“加密流程图谱”采用流程图标准绘制:矩形框标注流程步骤(如“步骤3:37字节分组”),箭头标注数据流向,旁注功能描述(“将预处理后的明文按37字节拆分,最后一组不足37字节时标记补零需求”),并标注该步骤拟归属的模块类别(“分组模块”),拆解逻辑可视化。
步骤说明页记录关键流程的细节:“步骤5:矩阵变换”说明为“接收37字节分组向量,依次调用1-8矩阵进行乘法运算,每轮运算后执行模256处理,输出变换后向量至密钥整合阶段”,明确该步骤需拆分为“矩阵变换执行”“模256运算”“矩阵调度”3个模块,为后续模块拆分提供依据。
档案中“功能归属争议记录”显示:针对“密钥与矩阵变换的整合”功能,团队曾讨论是否合并为“加密整合模块”,最终决定拆分为“密钥整合模块”(负责密钥与变换向量的逻辑结合)与“加密输出控制模块”(负责整合后数据的格式转换与输出),争议解决依据为“功能独立原则,整合与输出属于不同流程阶段”。
档案末尾“初步模块清单”列出22个候选模块,标注每个模块对应的流程步骤,如“明文格式校验模块(步骤1-1)”“分组执行模块(步骤3-1)”,为后续优化为19组模块提供初始基础,档案有李工、陈工的签名,日期为10月10日。
四、19组模块的具体分类与功能定义
基于流程拆解,团队通过合并同类功能、拆分过大模块,最终确定19组模块,按“功能大类”分为7类,每类模块功能独立、边界清晰,覆盖加密与解密全流程。
第一类“输入处理类”(2组):1“明文格式校验模块”,功能为校验输入明文是否为AScII码,剔除非法字符(如非打印字符),输出合法明文片段,错误率≤0.001%;2“明文长度统计模块”,功能为统计合法明文总长度,计算分组数量(如1%。
第七类“异常处理类”(1组):1“算法异常处理模块”,功能为实时监测其他模块的运行状态(如明文格式错误、矩阵运算溢出、密钥求解失败),接收异常信号后,输出报警提示(如LEd指示灯或文字提示),并执行异常处理(如格式错误时暂停输入,溢出时重新运算),确保算法整体不崩溃,异常恢复率≥99.9%。
第八类“辅助功能类”(2组):1“算法版本管理模块”,功能为存储当前算法模块的版本信息(如矩阵参数版本、密钥算法版本),输出版本号至外部接口,便于后续算法升级与版本追溯;2“运算日志记录模块”,功能为记录关键运算步骤的结果(如分组数量、密钥生成时间、异常事件),日志存储于磁芯存储器备份区,可查询近72小时记录,便于故障排查与维护。
19组模块功能定义完成后,团队编制《19组算法模块功能清单》,详细记录每个模块的输入参数(如“明文格式校验模块”输入为“原始明文流”)、输出参数(如“合法明文片段+错误标记”)、功能描述、关联模块(如“明文格式校验模块”关联“明文长度统计模块”),确保模块间交互逻辑清晰。
六、历史补充与证据:模块功能清单档案
1964年10月的《“73式”电子密码机19组算法模块功能清单档案》(档案号:L-1964-002),现存于军事通信技术档案馆,包含模块清单表、输入输出参数说明、关联关系图,共45页,由李工、郑工共同编制,是模块功能定义的核心凭证。
档案中“模块清单表”按类别排序,每一行记录模块名称、编号(如“输入-01:明文格式校验模块”)、代码量估算(如“约384字节”)、负责人(如“陈工”)、功能摘要,例如“矩阵-03:模256运算模块”摘要为“处理矩阵变换后超范围元素,执行模256运算,输出0-255标准化元素,适配硬件数据格式”。
输入输出参数说明页详细记录:“密钥-02:128位密钥计算模块”输入为“密钥种子(128位)、方程组参数(138x128)”,输出为“128位密钥(二进制)、密钥有效性标记(合法\/非法)”,参数格式标注为“密钥种子:十六进制,32个字符;方程组参数:二进制,存储地址0x2000-0x3FFF”,确保代码编写时参数格式统一。
关联关系图用箭头标注模块间的数据流:“明文格式校验模块”→“明文长度统计模块”(输出合法明文片段);“明文长度统计模块”→“37字节分组模块”(输出分组计数);“37字节分组模块”→“矩阵变换执行模块”(输出标准分组向量),直观展示模块交互路径,无循环依赖(如A→b→c,无c→A)。
档案末尾“功能边界确认表”记录每个模块的“禁止功能”,如“37字节分组模块”禁止“补零操作”“格式校验”,仅允许“分组拆分”;“密钥生成模块”禁止“矩阵运算”“明文处理”,确保功能边界不越位,表中有李工、吴工的签名,日期为10月31日。