第1003章 组算法模块划分(第2页)
第八类“辅助功能类”(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日。
七、模块功能边界的明确与冲突规避
李工团队通过“模块接口规范”明确功能边界,规范包含三部分:一是输入输出参数定义(数据格式、长度、存储地址),如“补零模块”仅接收“非标准分组+补零需求”,输出“标准分组+校验位”,不接收其他模块的矩阵变换数据;二是功能禁止清单,如“异常处理模块”仅监测异常,不执行加密\/解密运算,避免功能侵入;三是数据交互规则,模块间仅通过磁芯存储器指定缓存区(地址0x4000-0x7fff)传输数据,禁止直接调用其他模块的内部变量。
针对潜在的模块功能冲突(如“密钥整合模块”与“加密输出模块”均需处理加密数据),团队设计“数据所有权机制”:明确“密钥整合模块”生成“加密中间数据”后,标记数据所有权为“加密输出模块”,仅该模块可读取,其他模块(如矩阵模块)无法访问,避免数据被误修改;数据处理完成后,所有权释放,缓存区可复用。
边界验证通过“交叉测试”实现:郑工团队选取5组模块(如“明文校验-分组-补零-矩阵变换-密钥整合”),模拟数据交互,验证是否存在功能越位——例如“分组模块”是否尝试修改明文格式(禁止功能),测试结果显示19组模块均未越界,数据交互仅通过指定缓存区,无直接调用,边界清晰。
针对“模块间依赖过强”问题(如“矩阵变换模块”依赖“矩阵并行控制模块”的调度信号),团队设计“依赖降级方案”:若并行控制模块故障,矩阵变换模块可切换为“串行模式”独立运行(速度降低但不中断),避免因单一模块故障导致整体算法停滞,提升鲁棒性。
11月5日,团队完成《19组算法模块接口规范与边界确认报告》,包含接口定义、冲突规避方案、交叉测试数据,通过内部评审,确认模块边界清晰、无功能冲突,可进入代码编写阶段。
八、模块与代码固化的适配性设计
马工团队开展模块与代码固化的适配性设计,核心目标是确保19组模块的代码可顺利加载至磁芯存储器程序区(8kb),并适配硬件运算单元的调用逻辑。
代码量控制与存储分配:根据模块功能复杂度,估算每组模块的代码量(如“明文格式校验模块”约384字节,“矩阵变换执行模块”约480字节),19组模块总代码量约7.2kb,预留0.8kb空间(用于后续优化),存储地址按类别分配:输入处理类(0x0000-0x07ff)、分组补零类(0x0800-0x0fff)、矩阵运算类(0x1000-0x1fff)、密钥管理类(0x2000-0x27ff)、加密输出类(0x2800-0x2fff)、解密处理类(0x3000-0x37ff)、异常处理类(0x3800-0x3bff)、辅助功能类(0x3c00-0x3fff),地址不重叠。