译电者青灯轻剑斩黄泉

第1003章 组算法模块划分

卷首语

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%。