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

基于海绵结构的密码杂凑算法Master

基于海绵结构的密码杂凑算法Master

什么是海绵结构?

海绵结构(Sponge Construction)是一种新型杂凑算法结构,该结构以其灵活性和安全性著称,最早被创新性的使用于SHA3(Keccak)算法的构建。目前使用了海绵结构的密码算法有Ketje,Keyak,SPONGENT,PHOTON等。它通过“吸收”(absorb)和“挤压”(squeeze)两个阶段处理输入数据,类似于海绵吸水后挤出的过程。基于海绵结构的密码算法使用相同的置换(Permutation)函数来处理每一个内部状态。

(1)海绵结构的内部状态

  • 状态(State):由固定大小的内部状态(b=r+c)组成,分为:
    • 速率部分(r:直接与输入/输出交互。
    • 容量部分(c:隐藏内部状态,决定安全性。

(2)内部状态的处理分为两个阶段

  • 阶段(Stage
    • 吸收阶段:将输入分块(每块r位)与状态混合,经置换函数(f)迭代更新。
    • 挤压阶段:从状态中提取输出哈希值(每次r位),直至达到所需长度。

关于海绵结构的具体实现过程如下图所示:

Master算法为基于海绵结构设计的密码杂凑算法,其内部状态大小为1600(25X64)比特,置换函数为P25,输出杂凑值长度分别为256(r=1088,c=512)比特和512(r=576,c=1024)比特。

Master算法杂凑值计算过程如下图所示:

其中消息填充(Padding)算法如下所示:

Master使用与SHA3相同的“10*1”填充规则(称为Multi-rate Padding):

  1. 在消息末尾添加一个“1”。
  2. 添加若干个“0”,直到长度满足 (n×r)−1。
  3. 最后添加一个“1”。

示例(若 r=1088 bits):

  • 原始消息:"Hello"(40 bits)→ 填充后:"Hello" + "1" + 1046×"0" + "1"。

其中P25置换为14轮迭代ARX结构,如下图所示:

将25个64比特字按照5X5的矩阵形式排列

其中5个ARX结构函数F1,F2,F3,F4和F5如下图所示:

其中X0,X1,X2,X3和X4均为64位字。

http://www.xdnf.cn/news/7522.html

相关文章:

  • 云原生主要架构模式
  • C++(4)if的终极使用 +三目运算符
  • Java 08集合
  • 网络安全之网络攻击spring临时文件利用
  • 2024年热门AI趋势及回顾
  • CPQ报价系统多层战略,加快企业销售周期
  • 利用Spring Boot和Redis构建高性能缓存系统
  • List优雅分组
  • 开源CMS系统中哪些常见的安全漏洞最需要注意?
  • AWS CodePipeline+ Elastic Beanstalk(AWS中国云CI/CD)
  • HCIP实验五
  • MyBatis实战指南(一)MyBatis入门基础与利用IDEA从零开始搭建你的第一个MyBatis系统
  • linux关闭某端口暂用的进程
  • 【前端开发】Uniapp日期时间选择器:实现分钟动态步长设置
  • 链表面试题9之环形链表进阶
  • 微服务架构中的多进程通信--内存池、共享内存、socket
  • Canvas SVG BpmnJS编辑器中Canvas与SVG职能详解
  • 50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | Rotating Navigation (旋转导航)
  • 新浪《经济新闻》丨珈和科技联合蒲江政府打造“数字茶园+智能工厂+文旅综合体“创新模式
  • Python、Pytorch、TensorFlow、Anconda、PySide、Jupyter
  • 欧拉系统离线部署docker
  • iOS苹果和Android安卓测试APP应用程序的区别差异
  • 【Linux】进程间通信(三):命名管道
  • 嵌入式开发学习日志(linux系统编程--文件读写函数)Day24
  • vr制作公司提供什么服务?
  • Linux跨网络通信中IP与MAC的作用
  • Electron+vite+vue3 从0到1搭建项目,开发Win、Mac客户端
  • spark调度系统核心组件SparkContext、DAGSchedul、TaskScheduler介绍
  • 项目管理进阶:基于IPD流程的项目管理部分问题及建议书【附全文阅读】
  • 怎么样进行定性分析