频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

对称加密算法技术概述

来源: 作者: 出处:巧巧读书 2007-09-28 进入讨论组
上一页 1 2 3 4 5 6 7 8 9 10 11 下一页 

Rijndael算法

 

加密算法

Rijndael算法是一个由可变数据块长和可变密钥长的迭代分组加密算法,数据块长和密钥长可分别为128,192或256比特。

数据块要经过多次数据变换操作,每一次变换操作产生一个中间结果,这个中间结果叫做状态。状态可表示为二维字节数组,它有4行,Nb列,且Nb等于数据块长除32。如表2-3所示。

   

a0,0

a0,1

a0,2

a0,3

a0,4

a0,5

a1,0

a1,1

a1,2

a1,3

a1,4

a1,5

a2,0

a2,1

a2,2

a2,3

a2,4

a2,5

a3,0

a3,1

a3,2

a3,3

a3,4

a3,5

 

    数据块按a0,0 , a1,0 , a2,0 , a3,0 , a0,1 , a1,1 , a2,1 , a3,1 , a0,2…的顺序映射为状态中的字节。在加密操作结束时,密文按同样的顺序从状态中抽取。

    密钥也可类似地表示为二维字节数组,它有4行,Nk列,且Nk等于密钥块长除32。算法变换的圈数NrNbNk共同决定,具体值列在表2-4中。

3-2  NbNk决定的Nr的值

Nr

Nb = 4

Nb = 6

Nb = 8

Nk = 4

10

12

14

Nk = 6

12

12

14

Nk = 8

14

14

14

 

 

3.2.1圈变换

   加密算法的圈变换由4个不同的变换组成,定义成:

Round(State,RoundKey)
{
ByteSub(State);
ShiftRow(State);
MixColumn(State);
AddRoundKey(State,RoundKey); (EXORing a Round Key to the State)

}

     加密算法的最后一圈变换与上面的略有不同,定义如下:

FinalRound(State,RoundKey)
{
ByteSub(State);
ShiftRow(State);
AddRoundKey(State,RoundKey);

}

 文字:http://www.qqread.com/encrypt/a054114620.html 更多文章 更多内容请看加密与解密技术常用软件加密宝典加密算法专题,或进入讨论组讨论。

更多专题 【深 度 阅 读】 相 关 文 章
    上一页 1 2 3 4 5 6 7 8 9 10 11 下一页 
    收藏此文】【 】【打印】【关闭
    相关图文阅读
    频道图文推荐
    健 康 咨 询
    时 尚 咨 询
    巧巧读书宗旨
    相关专题
    讨论组问题推荐
    站内各频道最新更新文档
    站内最新制作专题
    热门关键字导读
    Photoshop教 程照片处理 照片制作 PS快捷键 抠图
    计 算 机 故 障XP系统修复
    艺 术 与 设 计设计 流媒体 设计欣赏 边框
    计 算 机 安 全ARP
    站内频道文章精选
    巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章