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

高级加密标准AES候选算法之一CAST-256

高级加密标准AES候选算法之一CAST-256

CAST-256算法是于1998年发表的首轮的AES候选算法,也是CAST-128算法的扩展版本。CAST-128和CAST-256都是依照Adams设计的"CAST"设计方法,该设计方法用3种不同的基于8X32的S盒的轮函数。CAST-256的分组长度为128比特,密钥长度可为128、160、192、224和256比特,对于所有的密钥版本轮数都统一为48轮。   

CAST-256为广义的Feistel结构的算法,算法一共有4个分支,全轮48轮可W分为6个前向4轮和6个后向4轮。

假定3种轮函数分别为F1,F2和F3,I=(I1||I2||I3||I4)是轮函数的32比特输入,Si(1≤i≤4)为轮函数的第i个S盒。O是轮函数的32比特输出值。F1,F2和F3的定义为:

其中kr为5比特的“移位”密钥,km为32比特的“掩码”密钥。

令β=(A,B,C,D)为128比特分组,那么A,B,C,D为3个不同的轮函数F1,F2和F3的32比特比特的输入,基于F1,F2和F3我们定义“前向4轮”为β=Q(β):

类似定义“后向4轮”为β=Q`(β):

其中krji和kmji(1≤j≤4,1≤i≤12)是第i个“4轮”中第j轮的“移位”密钥和“掩码”密钥。

CAST-256的解密算法和加密算法相同,只是轮密钥的使用顺序相反。

关于密钥扩展算法,暂未查找到相关资料。


http://www.kler.cn/a/540396.html

相关文章:

  • 将 AMD Zynq™ RFSoC 扩展到毫米波领域
  • JS中|=是什么意思?
  • 集成右键的好用软件,支持多线程操作!
  • rdian是一个结构体,pdian=^Rdian,list泛型做什么用?
  • WebSocket推送数据快,条数多导致前端卡顿问题解决
  • Linux 创建进程 fork()、vfork() 与进程管理
  • 驱动开发系列36 - Linux Graphics 2D 绘制流程
  • STC 51单片机62——极简 4x4x4光立方
  • 2025上半年还可以参加那些数学建模竞赛?
  • 使用css3锥形渐变conic-gradient实现有趣样式
  • 基于 Git、Jenkins 和 Docker 的自动化持续集成与部署实践
  • 【Elasticsearch】集群配置性能优化
  • D3实现站点路线图demo分享
  • 【Deepseek】本地部署Deepseek
  • C# OpenCV机器视觉:对位贴合
  • 【开源免费】基于SpringBoot+Vue.JS校园网上店铺系统(JAVA毕业设计)
  • QNX800 run in Raspberry Pi
  • DeepSeek 实践总结
  • Vue全流程--Vue3组合一ref与reactive(实现响应式)
  • 零阶保持器(ZOH)变换和Tustin离散化变换以及可视化
  • 大语言模型RAG,transformer
  • 微信小程序分包异步化
  • 【时时三省】(C语言基础)基础习题1
  • Open Liberty使用指南及开发示例(二)
  • C++基础知识学习记录—补充
  • 2.10作业