繁体版 简体版
幽幽小说网 > 网游小说 > 译电者 > 第1003章 组算法模块划分

第1003章 组算法模块划分(第1页/共2页)

卷首语

1964 年 10 月,“73 式” 程序存储方案(磁芯存储器)确定后,算法团队面临新的技术挑战:37 阶矩阵加密逻辑涵盖明文处理、分组补零、矩阵变换、密钥生成、解密恢复等全流程,若直接进行代码固化,将导致程序结构混乱、维护困难,且难以适配硬件模块化设计。此时,将核心算法按 “功能独立、边界清晰” 原则拆分为 19 组模块,成为连接 “逻辑设计” 与 “代码落地” 的关键步骤。这场为期 1 个半月的模块划分工作,不仅让复杂的加密逻辑实现系统化拆解,更提升了代码的可测试性、可维护性与硬件适配性,为后续算法代码固化与硬件集成搭建了标准化的技术桥梁。

一、模块划分的背景与核心目标

37 阶矩阵加密逻辑通过初步测试后,李工团队在代码固化准备中发现:完整加密逻辑包含 28 个核心操作步骤(如明文校验、37 字节分组、随机补零、8 次矩阵变换等),若编写为单一程序,代码量将超 8Kb(磁芯存储器程序区容量),且调试时难以定位错误(如矩阵变换错误与补零错误无法区分),模块划分势在必行。

基于 “73 式” 研发需求与后续维护考量,团队明确模块划分三大目标:一是功能独立,每个模块仅负责单一核心功能(如 “矩阵变换模块” 仅执行 m1-m8 变换,不涉及密钥生成);二是边界清晰,明确每个模块的输入输出参数(如 “密钥生成模块” 输入密钥种子,输出 128 位密钥,不接收其他模块数据);三是适配硬件,模块规模需匹配磁芯存储器分区(单模块代码量≤512 字节,便于加载至程序存储区)。

模块划分工作由李工牵头(算法板块负责人),组建 5 人专项小组:李工(整体逻辑拆解,把控模块分类)、吴工(矩阵运算模块设计,熟悉变换流程)、陈工(分组与补零模块设计,负责输入处理)、郑工(密钥管理模块设计,参与密钥生成理论)、马工(异常处理与辅助模块设计,擅长测试逻辑),确保覆盖加密全流程。

划分周期规划为 1 个半月(1964.10.1-1964.11.15),分三阶段:第一阶段(10.1-10.10)拆解加密流程,初步拟定模块清单;第二阶段(10.11-10.31)明确模块功能与边界,绘制模块交互图;第三阶段(11.1-11.15)组织评审,优化模块划分,衔接后续代码编写。

划分启动前,团队梳理核心约束条件:模块总数控制在 19 组(基于流程步骤拆解与硬件适配测算,19 组可实现功能全覆盖且单模块规模适中);模块交互需通过指定缓存区(磁芯存储器数据区,地址 0x4000-0x7FFF),避免直接数据调用;每个模块需预留测试接口,便于独立验证。

二、加密流程拆解与模块划分逻辑

李工团队首先开展加密全流程系统化拆解,梳理出 “明文输入 - 预处理 - 分组补零 - 矩阵变换 - 密钥生成 - 加密整合 - 密文输出” 7 大核心阶段,以及对应的解密反向流程(“密文输入 - 解密矩阵变换 - 补零移除 - 明文整合 - 明文输出”),同时包含异常处理(如格式错误、运算溢出)与辅助功能(如版本管理、日志记录),形成完整流程图谱。

模块划分遵循 “流程阶段 + 功能属性” 双维度逻辑:流程阶段维度确保模块覆盖全流程(如输入阶段对应 “明文预处理模块”,分组阶段对应 “分组模块”);功能属性维度确保模块单一职责(如 “矩阵运算” 按 “变换 - 逆变换 - 模运算” 拆分为独立模块,而非合并为一个),避免 “大模块” 导致的功能混杂。

拆解过程中重点解决 “跨阶段功能归属” 问题:例如 “补零校验” 功能,虽与分组阶段相关,但需在解密阶段验证补零位置,团队最终将其拆分为 “补零参数生成模块”(加密阶段,生成补零位置与校验位)与 “补零参数验证模块”(解密阶段,验证并移除补零),确保两个阶段的功能独立,互不依赖。

模块规模控制通过 “功能拆分” 实现:例如 “矩阵变换” 功能,若包含 m1-m8 变换、模 256 运算、并行控制,代码量将超 800 字节,团队按 “变换逻辑 - 运算控制 - 并行调度” 拆分为 “矩阵变换执行模块”“模 256 运算模块”“矩阵并行控制模块” 3 个模块,每个模块代码量控制在 400 字节以内,适配硬件存储需求。

10 月 10 日,团队完成初步拆解,形成《加密流程拆解图谱》,标注每个流程步骤的功能描述、输入输出数据、关联后续步骤,为后续 19 组模块的具体划分提供流程依据,确保模块划分不遗漏、不重复覆盖流程节点。

三、历史补充与证据:流程拆解图谱档案

1964 年 10 月的《“73 式” 电子密码机加密流程拆解图谱档案》(档案号:mL-1964-001),现存于研发团队档案库,包含全流程图谱、步骤说明、功能归属标注,共 28 页,由李工、吴工共同绘制,是模块划分的核心流程依据。

档案中 “加密流程图谱” 采用流程图标准绘制:矩形框标注流程步骤(如 “步骤 3:37 字节分组”),箭头标注数据流向,旁注功能描述(“将预处理后的明文按 37 字节拆分,最后一组不足 37 字节时标记补零需求”),并标注该步骤拟归属的模块类别(“分组模块”),拆解逻辑可视化。

步骤说明页记录关键流程的细节:“步骤 5:矩阵变换” 说明为 “接收 37 字节分组向量,依次调用 m1-m8 矩阵进行乘法运算,每轮运算后执行模 256 处理,输出变换后向量至密钥整合阶段”,明确该步骤需拆分为 “矩阵变换执行”“模 256 运算”“矩阵调度” 3 个模块,为后续模块拆分提供依据。

档案中 “功能归属争议记录” 显示:针对 “密钥与矩阵变换的整合” 功能,团队曾讨论是否合并为 “加密整合模块”,最终决定拆分为 “密钥整合模块”(负责密钥与变换向量的逻辑结合)与 “加密输出控制模块”(负责整合后数据的格式转换与输出),争议解决依据为 “功能独立原则,整合与输出属于不同流程阶段”。

档案末尾 “初步模块清单” 列出 22 个候选模块,标注每个模块对应的流程步骤,如 “明文格式校验模块(步骤 1-1)”“分组执行模块(步骤 3-1)”,为后续优化为 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“矩阵变换执行模块”,功能为接收标准分组向量,加载 m1-m8 矩阵参数,执行乘法运算,输出变换后向量至模运算模块;2“矩阵逆变换执行模块”(解密用),功能为接收密文分组向量,加载 m1?1-m8?1 逆矩阵参数,执行逆运算,输出逆变换后向量;3“模 256 运算模块”,功能为接收矩阵变换 \/ 逆变换后的向量元素(可能超 255),执行模 256 运算,将元素控制在 0-255,输出标准化向量;4“矩阵并行控制模块”,功能为控制多组矩阵变换的并行执行(如同时处理 2 个分组向量),提升运算效率,确保并行时无数据冲突,适配硬件运算单元的并行能力。

第四类 “密钥管理类”(3 组):1“密钥种子生成模块”,功能为接收外部密钥输入(如手动密钥或设备编号),生成 128 位密钥种子,输出至密钥计算模块;2“128 位密钥计算模块”,功能为加载超定线性方程组参数,输入密钥种子,执行高斯消元求解,输出 128 位密钥,密钥复杂度≥2^128 组;3“密钥同步模块”,功能为接收多节点密钥请求,传输密钥种子(而非完整密钥),控制节点同步生成密钥,同步延迟≤18 秒,适配野战多节点协同需求。

五、19 组模块的后续分类与功能补充

第五类 “加密输出类”(2 组):1“密钥整合模块”,功能为接收矩阵变换后的标准化向量与 128 位密钥,执行逻辑整合运算(如异或操作),生成加密中间数据;2“密文格式转换模块”,功能为接收加密中间数据,转换为二进制 \/ AScII 码格式(可选),输出标准密文(如二进制密文按字节分组),密文格式符合通信传输要求(无传输冲突字符)。

第六类 “解密处理类”(3 组):1“密文格式解析模块”,功能为接收输入密文,解析格式(二进制 \/ AScII 码),转换为解密中间数据,输出至解密矩阵模块;2“补零参数验证与移除模块”,功能为接收解密后的非标准分组(含补零)与校验位,验证校验位合法性,根据校验位识别补零位置,移除零字节,输出原始非标准分组(如 29 字节);3“明文整合模块”,功能为接收所有解密后的标准分组与最后一组原始非标准分组,按顺序拼接,输出完整明文,拼接错误率≤0.001%。

第七类 “异常处理类”(1 组):1“算法异常处理模块”,功能为实时监测其他模块的运行状态(如明文格式错误、矩阵运算溢出、密钥求解失败),接收异常信号后,输出报警提示(如 LEd 指示灯或文字提示),并执行异常处理(如格式错误时暂停输入,溢出时重新运算),确保算法整体不崩溃,异常恢复率≥99.9%。

第八类 “辅助功能类”(2 组):1“算法版本管理模块”,功能为存储当前算法模块的版本信息(如矩阵参数版本、密钥算法版本),输出版本号至外部接口,便于后续算法升级与版本追溯;2“运算日志记录模块”,功能为记录关键运算步骤的结果(如分组数量、密钥生成时间、异常事件),日志存储于磁芯存储器备份区,可查询近 72 小时记录,便于故障排查与维护。

您阅读的小说来自:幽幽小说网,网址:www.xiaoshuouu.com

『加入书签,方便阅读』(第1页/共2页)