密码学系列之:SAFER
简介
分组密码是一个非常优秀的加密结构,很多常用加的加密算法使用的都是分组算法,比如DES。SAFER表示的也是一种分组密码算法。一起来看看吧。
SAFER简介
SAFER的全称是Secure And Fast Encryption Routine,在密码学中,SAFER主要是由James Massey(IDEA的设计师之一)代表Cylink公司设计的一组分组密码。
SAFER主要有四种类型分别是:SAFER K, SAFER SK ,SAFER+ 和SAFER++ 。
其中SAFER K 和 SAFER SK 是比较早期的设计,共享相同的加密函数,但是轮次和密钥调度是不一样的。
后面的SAFER+ 和SAFER++ 是作为AES算法的候选算法提交给NESSIE的。 SAFER系列中的所有算法都没有专利限制,可以免费使用。
SAFER K 和 SAFER SK
第一个SAFER密码是由Massey在1993年发布的SAFER K-64,具有64位块大小。 “K-64”表示64位的密钥大小。
因为64位的块太小了,不适合加密大的数据,所以第二年,Massey发布了支持128位的变体,叫做:SAFER K-128。
但是,Lars Knudsen和Sean Murphy发现这个版本存在一些问题,于是将密钥调度按照Knudsen的建议从新设计。这些变种算法分别被命名为SAFER SK-64和SAFER SK-128。
其中 “SK”代表"Strengthened Key schedule"也就是强化过的时间调度。
除此之外,还有一种40位块大小的变种算法SAFER SK-40。
我们使用一个图来看下SAFER K算法的基本流程:
从最上面开始,是明文的输入阶段,每个明文都被分成8块。
接着就是密钥混合阶段,在这个阶段,明文分别和子密钥进行加法模256或者XOR运算。
然后是替换阶段,将上一阶段生成的结果通过两个相反的S盒映射成为新的数据。
这两个S盒分别是由45x和log45这两个函数派生出来的。有想了解S盒的朋友可以参考 “密码学系列之:blowfish对称密钥分组算法” 一文。
然后是第二次的密钥混合阶段。
在第二次密钥混合阶段之后,会使用pseudo-Hadamard transform (PHT)来进行扩散。
这四个阶段组成了一轮加密。
SAFER+ 和 SAFER++
SAFER+ 和 SAFER++ 是对原有的SAFER加密算法的改进。他们是由亚美尼亚密码学家Gurgen Khachatrian(亚美尼亚大学)和Melsik Kuregian与Massey共同设计的。
SAFER + 是在1998年提出的,但是是以AES的候选算法提交的,它的块大小是128位。蓝牙的密钥是基于SAFER +的自定义算法来实现的(称为E21和E22),
SAFER ++ 是在2000年通过两个版本提交给NESSIE项目的,一个版本是64位,另一个版本是128位。
本文已收录于 http://www.flydean.com/safer/
最通俗的解读,最深刻的干货,最简洁的教程,众多你不知道的小技巧等你来发现!
欢迎关注我的公众号:「程序那些事」,懂技术,更懂你!
密码学系列之:SAFER相关推荐
- 密码学系列(一):密码行业、政策介绍
密码学系列(一):密码行业.政策介绍 管理部门 <密码法>(19年) <密码法>具体章节 第3章 商用密码 第4章 法律责任 相关零散知识 管理部门 国家密码管理局--商密办- ...
- 密码学系列 - 椭圆曲线签名的基本原理
ECDSA 涉及到三个重要的概念 第一个是私钥,私钥是一个只有我自己知道的数字,我可以用私钥去生成签名,比特币使用的私钥是一个256 bit 的整数. 第二个是公钥,公钥是跟私钥配对的一个数,是根据私 ...
- 密码学系列 - 椭圆曲线 ECC - ED25519
密码学 - 椭圆曲线 ECC ED25519 椭圆曲线是一系列满足如下方程的点: y^2 = x^3 + ax + b 并且 4a^3 + 27b^2 != 0 特性 封闭性:因为椭圆曲线上的点相加, ...
- 密码学系列 - 国密算法
国密即国家密码局认定的国产密码算法.主要有SM1,SM2,SM3,SM4,SM9.密钥长度和分组长度均为128位. 国密算法种类 SM1 为对称加密.其加密强度与AES相当.该算法不公开,调用该算法时 ...
- 密码学系列 - 棱镜门
prime256v1 (即 secp256r1) NSA对SECP256r1曲线安置了后门陷阱, 被美国情报人员破解可能性非常大 2013年发生了震惊世界的棱镜门事件.这一年,前中情局(CIA)职员爱 ...
- 密码学系列 - 默克尔路径
默克尔树 (merkle tree) 默克尔树,也称为哈希二叉树,是一种用于有效地汇总和验证大型数据集完整性的数据结构. 默克尔路径 可用于证明在一个很大字节数的区块中上千笔交易中的具体某一笔交易的存 ...
- 密码学系列(三):区块链+密码学基础知识
密码学系列(三):区块链+密码学基础知识 一.区块链的概念 区块链概述 区块链的特点 区块链变化 市场现状 二.区块链政策与标准 区块链的特点与发展 三.区块链的定义 区块链的价值 四.区块链开发语言 ...
- 密码学系列 - 国密算法SM1/SSF33
国密分组密码 SM1分组密码和SSF33分组密码均为国密分组密码标标准,SM1和SSF33的密钥长度和分组长度均为128比特. 目前这两个分组密码标准的算法尚未公开,其实现仅可以通过硬件芯片的方式获得 ...
- 密码学系列(二):专有名词缩写【持更】
密码学系列(二):遇到的一些专有名词缩写[持更] 密码学相关 密码产品所需 密码学相关 CRL:证书吊销列表 在线证书状态协议(OCSP):一个互联网协议,用于获取符合X.509标准的数字证书的状态. ...
最新文章
- (每日一题)P4841 [集训队作业2013]城市规划 (无向连通图计数)(普通生成函数 + 多项式求逆)
- linux下通过rsync+inotify 实现数据实时备份(远程容灾备份系统)
- linux用户limit修改,linux – 使用cgroups作为用户设置用户创建的systemd范围的MemoryLimit...
- epel源mysql版本_centos网络yum源和epel源(2017可用首选)
- python做路径图_python实现生成图片路径和对应标签
- 二元函数对xy同时求导_《高等数学》微课视频“二元函数的全微分求积”录音...
- 论文笔记:NeuS: Learning Neural Implicit Surfaces by Volume Rendering for Multi-view Reconstruction
- 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决
- 无线路由器破解之cdlinux
- 移动端web app自适应布局探索与总结
- 兽医外科设备的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- Android 使用 7z 压缩字符串(工作总结)
- java 回调方法是什么意思_java什么是回调
- 【ZZULIOJ】1055: 兔子繁殖问题
- 计算机右键无法新建excel,右键新建中没有excel怎么删除_右键新建中没有excel怎么办...
- python——xlsx文件的读写操作详解
- 30个不可不知的容器技术工具和资源
- 【PyTorch基础】
- js插件的经典写法与总结
- python爬取正能量图片mm131(update)
热门文章
- c语言变量作为数组长度,为什么在C中不允许将数组的大小作为常量变量但在C中允许?...
- 网络流媒体协议之——RTSP协议
- QT乱码总结1.Unicode 和 UTF-8
- Flink 状态管理:算子状态、键值分区状态、状态后端、有状态算子的扩缩容
- Go 内存对齐的那些事儿
- shell编程之文本处理工具sed
- 多媒体技术 PI 第二期:OSS 圆桌预告
- SRS流媒体服务器——单机环境搭建和源码目录介绍
- C/C++学习之路: C++对C的扩展
- Hadoop之MapReduce面试知识复习