SM4-CFB  与  SM4-OFB  模式完整对比(基于GM/T  0006标准)

二者都属于流加密类工作模式,把分组密码转换成流密码、无需明文填充,都解决了ECB的语义安全缺陷,依赖随机128bit  IV;但反馈逻辑、错误扩散、安全风险、适用场景差异极大。

一、核心原理差异

  1.  CFB(密码反馈)

移位寄存器输入  =  上一轮输出的密文块

密钥流  =  SM4(寄存器状态)

加密:$C_i  =  P_i  \oplus  KS_i$

寄存器更新:左移,尾部填入$C_i$

  2.  OFB(输出反馈)

移位寄存器输入  =  上一轮生成的密钥流块

密钥流  =  SM4(寄存器状态)

加密:$C_i  =  P_i  \oplus  KS_i$

寄存器更新:左移,尾部填入$KS_i$

关键区别:反馈对象一个是密文,一个是密钥流。

二、优点对比

  (一)CFB  独有优势

1.  天然抗密文篡改,错误扩散可作为简易校验

密文任意比特出错,当前块+下一块解密全部乱码;攻击者很难精准修改指定明文而不产生大面积乱码,无校验时也能直观发现数据异常。

2.  不允许密钥流完全独立,IV复用危害相对可控

同一密钥复用IV时,CFB仅相邻分组泄露关联,不会全局全部明文异或泄露;OFB复用IV会导致全部报文密钥流完全重复,危害更严重。

3.  适配双向交互式通信(串口、工控485)

收发双方报文互相依赖时,CFB的密文反馈链路更贴合传统硬件加密芯片设计。

  (二)OFB  独有优势

1.  解密无错误扩散,仅出错对应单块失效

传输中单个比特损坏,只会影响对应那一段明文,后续数据完全不受干扰;适合无线网络、卫星传输、高丢包场景。

2.  加密、解密完全对称,硬件实现更简单

加解密运算逻辑一模一样,只需要调用SM4加密函数,控制电路/代码复用度高。

3.  密钥流可预先生成

密钥流只由密钥+IV决定,和明文、密文无关;可以提前计算密钥流缓存,实时业务仅做异或,降低实时运算延迟。

4.  支持分段短输出(8bit-OFB)

适合单字节设备逐字节加密,无块耦合干扰。

三、缺点对比

(一)CFB  缺点

1.  存在严重错误传播

一处密文损坏,后续整块明文全部失真;网络丢包、传输抖动会导致大片数据失效,不适合WiFi、4G等高误码网络。

2.  无法预生成密钥流

密钥流依赖前面的密文,必须边传输边计算,不能提前缓存密钥流提速。

3.  不能并行加解密

每一步寄存器依赖上一轮密文,串行运算,大文件吞吐性能差。

  (二)OFB  致命短板(最核心安全缺陷)

1.  IV复用是灾难性风险

同一密钥+相同IV加密两段不同明文:两段密文异或  =  两段明文直接异或。攻击者能直接推导出完整明文内容,完全丧失保密性。

CFB虽也禁止IV复用,但破坏程度远低于OFB。

2.  无天然篡改检测能力

密文比特篡改只会改变对应位置明文,其余数据完好;攻击者可精准修改指定字段(金额、控制指令),肉眼/数据无法察觉篡改,必须强制配套HMAC-SM3,缺一不可。

3.  对重放攻击防护弱

直接复制一段密文块重放,解密后对应明文会原样还原,没有块关联约束。

四、关键维度总对比表

对比维度    CFB模式  OFB模式

反馈源|前一轮密文  前一轮密钥流

错误扩散  强:单比特错→当前+下一块全部乱码    无扩散:仅对应块出错,后续正常

密钥流预计算    不可提前生成  可离线预生成缓存

IV复用危害  中等,局部明文泄露|极高,全文明文可直接异或还原

篡改识别能力  自带简易错误告警(大面积乱码)    无篡改提示,篡改隐蔽性极强

并行运算  完全串行,不支持并行|串行,均不可并行

硬件实现复杂度  略高,收发链路逻辑略有区分  更低,加解密代码完全一致

典型适配场景  工控串口、PLC、有线稳定总线、低误码本地设备  无线传输、卫星通信、高丢包网络、低延迟实时流

合规附加要求  建议配HMAC-SM3    强制必须搭配完整性校验码

五、场景选用建议

1.  选  CFB-SM4

有线工控总线、智能电表RS485、本地嵌入式稳定链路、对数据篡改敏感、传输误码极低的内网设备。

优势:篡改后大面积乱码,能快速发现异常。

2.  选  OFB-SM4

无线IoT、车载TBOX、音视频流、远距离卫星传输、网络易丢包场景;需要提前预计算密钥流降低实时算力消耗。

注意:使用OFB时,IV必须使用真随机数且永不复用,同时强制增加HMAC-SM3完整性校验。

六、共同短板(两者都存在)

1.  仅提供保密性,无内置完整性/防重放机制;

2.  加解密均串行执行,大文件加密吞吐不如GCM、CBC;

3.  IV必须密码学随机生成,不可使用固定值、时间戳弱随机;

4.  均不支持并行处理,不适合超大文件批量加密。

总结

  CFB核心优势:篡改易发现、IV复用危害更低;最大痛点是错误扩散严重,高丢包网络体验差。

  OFB核心优势:无错误扩散、密钥流可预计算、硬件轻量化;最大安全隐患是IV复用会直接泄露全部明文,篡改行为极难察觉,工程落地安全约束更严苛。