简述MISTY1加密算法

NESSIE是欧洲在本世纪初的一项为期三年的密码标准评选计划,无数的分组密码、流密码、公钥密码、杂凑函数等算法纷纷入选,规模堪比AES算法征集。今天我们要了解的就是入选NESSIE计划的分组密码算法——MISTY1加密算法。

MISTY1算法简介

MISTY1算法是由日本学者M.Matsui设计的一个分组密码算法,它是第一个基于抵抗差分密码分析和线性密码分析的可证安全性理论而设计的实用分组密码。MISTY1算法被NESSIE选定为过渡型的建议分组密码,同时也被国际组织在ISO和IEC列为分组密码标准之一。

MISTY1加密算法

MISTY1算法的加密原理

MISTY1算法的分组长度是64比特,密钥长度是128比特,轮数是可变的,但必须是4的倍数,一般使用的是八轮MISTY 1算法。它有下面三个特点:

  1. 它是第一个基于抵抗差分密码分析和线性密码分析的可证安全性理论而设计的实用分组密码算法;
  2. 使用了相关却有别于Feistel结构的一种结构,从而在保持同等安全强度的条件下增大算法运行的并行性;
  3. MISTY1算法使用规模不同的S盒--7×7的S盒S7和9×9的S盒S9,与8×8的S盒相比,所选择的S盒具有较高的安全系数。

MISTY1加密算法

MISTY1算法的加密过程

以8轮MISTY1算法为例,64比特的明文P64,被拆分成等长的L0和R0两部分,即P64=L0||R0,加密过程如下:

(1)对于奇数轮i(i=1,3,5,7),执行:

Ri=FLi(Li-1,KLi),Li=FLi+1(Ri-1,KLi+1)⊕F0(Ri,KOi,KIi

(2)对于偶数轮I(i=2,4,6,8),执行:

Ri=Li-1,Li=Ri-1⊕F0(Ri,KOi,KIi

(3)然后执行:

R9=FL9(L8,KL9),L9=FL10(R8,KL10

(4)最后输出64比特密文:

C64=L9||R9

MISTY1加密算法

MISTY1算法的解密过程

MISTY1算法解密过程和加密过程类似,它是加密过程的逆运算,差别仅限于每轮子密钥的使用,解密子密钥可以由加密子密钥计算得到。

MISTY1算法的应用

MISTY1算法广泛适用于电子政务等部门,此外,MISTY1算法在许多产品的安全算法中得到广泛的应用,如Ukey等。而用于3GPP移动通信的保密算法f8和完整性检验算法f9中的密码算法KASUMI算法,也是基于MISTY1算法设计的。因此,对MISTY1算法安全性分析具有重要的理论意义和现实意义。

免责声明:素材源于网络,如有侵权,请联系删稿。

相关推荐

简述曲路密码

在古典密码中大致可以分为移位和替换两种,在移位密码中字母不变,位置改变;替换密码中则是字母改变,位置不变。今天我们就来了解一种比较简单的移位密码——曲路密码。 曲路密码的简介 曲路密码发明者和发明时间 ...

简述ADFGVX密码

在之前的文章中,我们了解了波利比乌斯密码,它是一种棋盘方阵密码,而我们今天要了解的密码是由它改良而来,在第一次世界大战中被德军广泛使用的ADFGVX密码。 ADFGVX密码简介 ADFGVX密码被认为是“人力加密时代 ...

简述培根密码

大家应该都吃过培根这种食物,但你可知道在古典密码中有一种以“培根”为命名的密码算法。今天我们就来通过本文了解一下这个“培根密码”。 培根密码简介 培根密码有名“倍康尼密码”,英文明文Bacon's cipher,它并不 ...

简述KeeLoq加密算法

随着物联网的发展,越来越多的设备开始智能化,这其中就少不了加密算法的保驾护航。今天我们要了解的就是广泛应用于无线认证领域的加密算法——KeeLoq加密算法。 KeeLoq算法简介 KeeLoq算法最初是由南非Willem Smi ...