序列密码算法Maping设计原理详解
序列密码算法Maping设计原理详解Maping算法简介Maping和HC-256都是基于表驱动的序列密码算法由于其运行速度快、安全性能高至今未见行之有效的分析方法。Maping是一种软件效率高的序列密码算法其设计借鉴了RC4和HC-256的思想同时引入了面向32位字的非线性函数来更新系统的内部状态。它的主要特点是在现代微处理器上能实现非常快速的加解密操作同时保持了较强的安全性。Maping含有256比特密钥和256比特初始化向量运行速度比SNOW2.0和ZUC还快同时安全强度不输两者。Maping算法参数Maping算法是面向软件实现的快速同步流密码256比特密钥和256比特初始化向量外部状态G为16个32位字和内部状态P为1024个32位字。Maping的状态更新算法和密钥流生成算法是每运行1步更新1次状态P每次输入n个32位字(G)输出n个32位字(更新后的G)和更新后的P默认情况下n16。Maping算法初始化序列密码算法Maping的密钥初始化过程中内部状态是密钥和初始化向量的级联256比特的密钥和初始化向量被分为8个32比特的字分别记为将密钥和初始化向量扩展到2048个数组Wi(0≤i≤2047):其中f1f2表示32比特输入32比特输出线性扩散函数32比特字Xx3||x2||x1||x0中x0表示X的最低位字节x3表示X的最高位字节。两个数组G(16个)和P(1024个)表示32位字内部状态分别初始化为:Maping算法状态更新Maping算法的状态更新算法的输入为n个32位字(默认n16)输出为n个32位字G和内部状态P(均为更新后的)。具体如下图所示其中线性扩散变换M16X3Plus如下图所示Maping算法密钥流生成在密钥流生成过程中流密码Maping和HC-256是不同的。每执行4次状态更新变换输出32*n(n默认为16)比特密钥流生成的密钥流长度限制为2256比特其算法细节如下图所示。Maping的密钥流生成算法Maping算法总结Maping是一个设计精巧、高效且免费的流密码算法。它通过巨大的动态S盒和非线性更新函数在软件加密速度和密码强度之间取得了很好的平衡。虽然HC-256算法更为知名但Maping本身仍是一个经得起考验的可靠算法其设计思想对后续的密码设计也产生了积极的影响。Maping 专为软件高速加解密而设计这使得 Maping在现代处理器上能够高效运行。