当前位置: 首页 > news >正文

序列密码算法ShanLooog512设计原理详解

序列密码算法ShanLooog512设计原理详解

ShanLooog512(闪龙512)为序列密码算法,内部状态为512比特,密钥长度为128或256比特,轮函数为FFFFFFFF,循环轮数为24轮,输出密钥流为512比特的状态。与Salsa20类似,内部状态为4X4的矩阵形式排列,字大小为32比特。

当密钥长度为256比特,密钥K=k0||k1||k2||k3||k4||k5||k6||k7;当密钥长度为128比特,(k4,k5,k6,k7)=(k0,k1,k2,k3) ,密钥K=k0||k1||k2||k3||k4||k5||k6||k7。其中ki(i=0,…,7)为32位字。

(1)初始化阶段

ShanLooog512算法内部状态初始化如下所示:

其中,(k0,...,k7)为256比特的密钥,(v0,v1)为初始IV,(i0,i1)为分组标号,(c0,c1,c2,c3)为固定的常数。如果密钥长度是128比特,则(k4,k5,k6,k7)=(k0,k1,k2,k3)。其中(c0,c1,c2,c3)=(0xccd696e5,0xa8f4e504,0xeb19cf63,0xf708b2cd)或者(c0,c1,c2,c3)=(0xbc42e727,0xe138f70f4,0xc2b3a0d9,0xbd485fdc)。

(2)密钥流产生过程

ShanLooog512为基于ARX(模加、循环移位、异或)混合运算设计的类分组结构流密码算法。其密钥流生成过程如下所示:

轮函数FFFFFFFF如下图所示:

其中GGGGGGGG1如下图所示:

其中GGGGGGGG2如下图所示:

其中Transformation (类似矩阵转置操作)如下图所示:

其中M8X1(矩阵变换操作)如下图所示:

对应的二元矩阵为:

其中M8X2(矩阵变换操作)如下图所示:

对应的二元矩阵为:

综上所述,密钥流(K[0],…,K[15])= ShanLooog512(X0)+X24。

 

http://www.dtcms.com/a/161943.html

相关文章:

  • MCU通用输入输出端口(GPIO)设计指南
  • C#中构造器及属性的加载顺序
  • C++中的格式化字符串
  • 用 Python打造交互式图片-音视频管理器:代码分析与实践
  • 前后端分离: vue3+SpringBoot+ElementPlus+Axios+MyBatisPuls
  • 在 Ubuntu 22.04 x64 系统安装/卸载 1Panel 面板
  • Docker容器技术基础入门
  • Java 的创新与变革之路:从 JDK 7 到 JDK 23
  • 无需手动重建!Altium到Cadence的封装转换:ASCII文件方法详解
  • 前端实现商品放大镜效果(Vue3完整实现)
  • 【计算机视觉】TorchVision 深度解析:从核心功能到实战应用 ——PyTorch 官方计算机视觉库的全面指南
  • MCU低功耗运行模式与唤醒机制解析
  • Docker 常用命令(涵盖多个方面)
  • 8、HTTPD服务--ab压力测试
  • Java多线程入门案例详解:继承Thread类实现线程
  • mtrace和memleak源码分析
  • 从困局到破局的AI+数据分析
  • 【机器学习】​碳化硅器件剩余使用寿命稀疏数据深度学习预测
  • UE 滚动提示条材质制作
  • 民锋视角下的价格风险管理策略
  • 0805登录_注册_token_用户信息_退出-网络ajax请求2-react-仿低代码平台项目
  • 八大排序——快速排序/快排优化
  • 【javascript】竞速游戏前端优化:高频操作与并发请求的解决方案
  • jaffree 封装ffmpeg 转换视频格式,获取大小,时间,封面
  • 汤晓鸥:计算机视觉的开拓者与AI产业化的先行者
  • python数据分析(五):Pandas 数据检索技术
  • Android学习总结之Java篇(一)
  • 关于https请求丢字符串导致收到报文解密失败问题
  • java.lang.AssertionError: Binder ProxyMap has too many entries: 问题处理
  • 深入理解链表:从基础操作到高频面试题解析