安全散列算法SHA-1的研究
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
19 9 5年 ,其 改进版本 S HA一1 正式 公布 ( HA—l 有 也 S 具 比S HA一 0更高 的安全 性 o S HA-1 法 …是 目前 最常 算 用 的安全散 列算法 和最 先进 的加密 技术 。S HA一1算法 的 思 想是 接收 一 段 明文 ,然 后 以一 种不 可 逆 的方 式将 它 转
得 L + 1+ k 即补位 后 的消 息长度 ) ( 满足 对 5 2 l 取模 后
余数 是 4 8 4 。然 后 ,添 加最 后 的 6 4位二 进制数 据 ,这 6 4
名标 准 ( S ) D S 、传输 层 安全 ( L ) T S、安全 电子 交易 (E ) ST、 互联 网协议 安全 (P e ) I S c、无线 局域 网 ( L W ANs 安全 、 )
Z AN o g rn T 噌 H G S n a , AO RO i , U u —n a Y G O u
(u a stt o cn n e nly Loa , e n4 12 ,ha Zo n Itu fSic ad T kog , u n Hn 2 0Y C/) y g ni e ee c o yg a n
2 1 2 S A-1常量 . 。 H
S HA一 一 共 需 要 8 1 0个 3 2位 的 常 量 ( K ” K, ,
K ,以 l 制给 出 , 。 ) 6进 它们 如下所 示 : () =0 5 2 9 9 ( 1K+ x A8 7 9 0≤ t 1 ) ≤ 9 () =0 6 D E A (0≤ t≤ 3 ) 2K+ x E 9 B 1 2 9
Ab ta t If r to ecypin tcn lg h s eo a i o tn me n t esr nt r sc r y n ecy t n loih s rc :n oma i n n r t ehoo y a bc me n mp ra t o a s o nue ewok eu i a d nr p i ag r m h s e o a t o t a b cme
h tpt. hs a e ito ue te H l loih c aa t r t a d p la i o so T i p p r nrd c s h S A ag r m h rce i i n api t n. a ayss H t sc c o n l e S A- 1 loih ag rtm pi il n f lme tto r cp a d mpe n a i n e n.
。 ㈣ 。 。1 0 00 1
a
b
c
L=2 4
2 22 分割 已填充 消息 ..
经 过 消 息 填 充 后 ,还 必 须 将 数 据 划 分 成 m 位 一 组
的 N 块 的数 据块 来提 供 给下 面 的散 列 值计 算 过程 。对 于 S HA—l ,填 充过 的 消息被 分割 成 N( ’M , ,M ) M“, …
个数据 块之 前 ,缓冲 区 H H.H,H , 被设 置初 始值 。 , , H
一 —..... L ..... .... .....
的方 便 易行 的 安全 算法 , 目前 很 多计算 机 语 言 ,像 C, J v ,C++和 P aa HP依 照 S HA—l算法 的标 准都能 实现
Ke wor : e ue ah loih y ds S cr h s ag rtm; S A 1; Enr p i tc nlg H cy t n e hoo y o
1引言
安全散 列 算法 ( HA) S 是一 种 常用 的数 据 加密 算法 。
它 由美 国国家 标准 与技术局 ( S 于 19 年 作为 联邦 NI T) 93
就 得到 5 2位 的填 充消 息 : l
2S A 1 H - 算法原理分析
2 1函数与常量定义 .
= 』
_ _ 、
基 于上 述 S HA-I 法原 理的 分析 ,S 算 HA一1 法实 算
现 流程 如图 1 示 。 所
011 001 00
性 ,而 且 实 现 起 来也 比较 简单 、容 易理 解 。考 虑 到 网络 上 的数 字签 名 ,乃至 电子 商 务等 ,一般 采用 J v a a实 现代 码 较 简单 迅 速 , 可移 植 性 和 安 全性 也 能得 到 更好 的保 其 证 。事 实上 ,这里 还存 在一 个潜 在 的问题 : HA—l算法 S 信 息摘 要的 计算速 度并 不 总是能 满 足要 求。使 得 S HA-l
单 向性 和抗碰 撞 性 。单 向性 即 由原 始 消 息计 算 出信 息摘 要 很容 易 ,而 由消息摘要计算 出原始消息在计 算上则几乎
是不可行 的。而所谓 的抗碰撞性 是指 ,要 找到两个 不 同的
() x A 2 6 (0≤ t 7 ) 4K=0 C 6 C D 6 1 ≤ 9
j ( 0 B Dj ^D) 0(
L) B. :( 4 ,e C D) B¥ (0D) = f (0≤ 6 7) 9 ( I ,是与 ,~ J. 0 足 井或 ) 渔 咧: 足 |
换 成 一段 ( 常更 小 ) 文 ,也 可 以 简单 地 理 解 为 取 一 通 密
串输 入码 ,把 它们 转化 为 长 度较 短 、位数 固定 的输 出序
研 究 ,介 绍 了 SA 算 法 的特 性 和 应 用 ,并 对 SA 算 法原 理 及 实 现 进 行 了分析 。 H —I H 一1
关 键 词 : 全散 列算 法 ; H 一1; 密技 术 安 SA 加
Re e r h f s a c o Se u e Ha h c r s Al rt go ihm SHA-1
2 1 1 H -1的迭 代函数 。. S A S HA—l 用 8 使 0个 连 续 的 逻 辑 函数 : f ”, f, f。 。
每个 函数 f 0≤ t 7 ) 操作 三个 3 t ( ≤ 9都 2位字 ( C, , B, D) 产 生一 个 3 位 字作 为输 出。 函数 f B, , ) 2 t C D 定义如 下 : (
随机数 生成 算法和 密码 存储机 制等 。
位 二进 制数 据就 是原 始 L位 消息 ( ) 度 的二进 制表 示。 M 长
例 如 : 8位 ASCI 码 系 统 中 ,消息 “ bc 在 I a ”长 度 为 8 ×3= 2 ,加 上 一 位 “ ” 4 1 ,还 要添 加 4 8一 (4+ 1 = 4 2 ) 4 3位 “ ” 2 0 ,最后 加 上 6 4位 原 始消 息长 度 二进 制 表示 后 ,
() =0 8 B DC (0≤ t 5 ) 3K. x F1 BC 4 ≤ 9
列 即散 列 值 ( 为 信 息 摘 要 ) 称 的过 程 。该 算 法 对 长 度 不 超过 2 的 消息 产生 10位 的消 息摘 要输 出 ,输入 按 5 2 6 1
位 的分 组进 行 处理 。S A一1算法具 有两 个 重要 特性 : H
安全散 列算法 S A 的研 究 H -1
张松敏 , 陶 荣 ,于 国 华
( 阳理工 学院 ,河南 洛 阳 4 1 2 ) 洛 7 03
摘 要 : 信息加 密技术是 当今保 障 网络安 全的一种重要 手段 ,加 密算 法已成为人 们研 究的一个 热点 。对 SA 算法进行 了深入 H ~I
2 2预 处理 .
在 进 行散 列 值 计算 之 前 ,先 要对 需 要 加 密的 数据 进 行预 处 理 。这 一预 处 理 由三 部 分组 成 : 息填 充 、分 割 消 已填 充 消息 ( 将填 充 后的 消 息 等 分 成 m 位处 理 块 ) 、为
原 始消息生成同一个信息摘要在计算上也是不可行的。 S HA一1 算法 在加 密学 中扮演 着极其 重要 的角色 ,可 以用于 实现数 据保 密 、防止数 据更 改和 身份 验证 等功能 。
洋
图 1 H 1算 法 买 现 流 程 S A
S HA一1算 法 是一 种 易于 实 现并 可 以基 于 多 种 平 台
H , , , , 。8 。H H, H: H 0个字的缓冲区被标识为 W。W1. W , ’ ”, 。 另外 ,还需 要一 个一 个字 的 TE P缓 冲 区。 为 了产 生 消 M 息摘 要 ,定 义的 1 字的数 据 块 M .M 一, 6个 , M 会 依次 进 行处 理 ,处 理 每 个 数 据 块 包含 8 0个步 骤 ,在 处 理 每
S HA-1 当然 , 。 受语 言平 台应 用性 的制 约 ,应用 最广泛
的 是 C语 言 和 J v a a语 言 。 自身计 算 机 上 的 消息 认 证一
般 采 用 C语 言实 现就 足 够 , 仅能 够保 证 良好 的可 移植 不
为 了处 理 M. 要进 行如下 步骤 : ,需 () M , 1将 分成 l 字 W。 W 一, , W。 6个 , W ( 是最 左边 的字 ) 。 () 2 对于 t 6到 7 ,令 =1 9 s( 0H 。 @ ) 0 一 。
数 据抽 取散列 值 ( 为 消息摘 要 ) 称 ,并 与对称 或 非对 称加 密 技 术一 起来 完 成对 原 始数 据 的认 证 和 完整 性检 查 。另
外 ,SHA一1 法 是 当今 众 多 流行 加 密 思 想核 心 , 几乎 算
无 处不 在 。它 在许 多 安全 协 议 中广 为 使用 ,如 : 字 签 数
2 3散列值计 算 .
在 对 原 始 数 据 消 息 进 行 了 填 充 、分 割 后 , 就 可 以
开 始 SH A-1 法 的核 心 部分 : 列 值计 算 。计 算 需 要 算 散
两 个 缓 冲 区 ,每 个 都 由 5个 3 2位 的 字组 成 ,还 需 要 一 个 8 0个 3 2位 字 的 缓 冲 区。 第 一 个 5个 字 的 缓 冲 区 被 标识 为 A , C, E。第二 个 5个 字的缓 冲 区被标 识 为 B, D,
一
个典 型 的应用 是从 数字 消 息 、I P信息 包 、磁盘 文 件等
散列 值计 算设置 初始化 值 。 2 2 1消息填 充 。. 假设 原 始消 息 ( ) 长度 是 L位 。首先 ,在 消 息最 M 的 后 加 一 位 “ ” 接 着 在 这 位 “ ” 后 面 补 k个 … ,使 l, l 0
( 1 ( , D) B- j ( I B =( 0 ~B 、 D) ( 1 B C D) B C0 D) 2. . =( £) 3 . =( D) B ( ≤1 ) O≤ 9 (0≤f 3 ) 2 9 (O , 5 ) 4 9
信 息 处理 标 准 公布 ( 第一 代 S 即 HA 算 法 S HA一 ) 0。在
散 列值 由下 面 5个 3 的字 组 成 ,其 1 进 制 表 示 如下 : 2位 6
H ( 。 = 7 5 3 1; I x FC 420 H  ̄ l E DAB8 ; “ =0 9 H ” =啦 8 BADC FE ;
,
,
H = x0 5 6 H‘: CDEF 。 f 0 1 2 7 ; 0 3210 34 ” x =
块 ,每 块 5 2位 。然 后 每 组 5 2位 的输 入 块 可 以表 示 成 1 1 1 6个 3 2位的字 ,分 别 记为 : “ M , ,M , M。 , “ … 。 ”
2 23设 置初 始散 列值 (( .. H 。 )
在 安 全 散 列 算 法 开 始 其 核 1 散 列 迭 代 计 算 之 5的 前 ,还 必 须设 置 好 正 确 的 初 始 散 列 值 H 。 而 H 的 数 量 和 字 长取决 于消息 摘要 的选择 。对于 S HA一1 ,初始
得 L + 1+ k 即补位 后 的消 息长度 ) ( 满足 对 5 2 l 取模 后
余数 是 4 8 4 。然 后 ,添 加最 后 的 6 4位二 进制数 据 ,这 6 4
名标 准 ( S ) D S 、传输 层 安全 ( L ) T S、安全 电子 交易 (E ) ST、 互联 网协议 安全 (P e ) I S c、无线 局域 网 ( L W ANs 安全 、 )
Z AN o g rn T 噌 H G S n a , AO RO i , U u —n a Y G O u
(u a stt o cn n e nly Loa , e n4 12 ,ha Zo n Itu fSic ad T kog , u n Hn 2 0Y C/) y g ni e ee c o yg a n
2 1 2 S A-1常量 . 。 H
S HA一 一 共 需 要 8 1 0个 3 2位 的 常 量 ( K ” K, ,
K ,以 l 制给 出 , 。 ) 6进 它们 如下所 示 : () =0 5 2 9 9 ( 1K+ x A8 7 9 0≤ t 1 ) ≤ 9 () =0 6 D E A (0≤ t≤ 3 ) 2K+ x E 9 B 1 2 9
Ab ta t If r to ecypin tcn lg h s eo a i o tn me n t esr nt r sc r y n ecy t n loih s rc :n oma i n n r t ehoo y a bc me n mp ra t o a s o nue ewok eu i a d nr p i ag r m h s e o a t o t a b cme
h tpt. hs a e ito ue te H l loih c aa t r t a d p la i o so T i p p r nrd c s h S A ag r m h rce i i n api t n. a ayss H t sc c o n l e S A- 1 loih ag rtm pi il n f lme tto r cp a d mpe n a i n e n.
。 ㈣ 。 。1 0 00 1
a
b
c
L=2 4
2 22 分割 已填充 消息 ..
经 过 消 息 填 充 后 ,还 必 须 将 数 据 划 分 成 m 位 一 组
的 N 块 的数 据块 来提 供 给下 面 的散 列 值计 算 过程 。对 于 S HA—l ,填 充过 的 消息被 分割 成 N( ’M , ,M ) M“, …
个数据 块之 前 ,缓冲 区 H H.H,H , 被设 置初 始值 。 , , H
一 —..... L ..... .... .....
的方 便 易行 的 安全 算法 , 目前 很 多计算 机 语 言 ,像 C, J v ,C++和 P aa HP依 照 S HA—l算法 的标 准都能 实现
Ke wor : e ue ah loih y ds S cr h s ag rtm; S A 1; Enr p i tc nlg H cy t n e hoo y o
1引言
安全散 列 算法 ( HA) S 是一 种 常用 的数 据 加密 算法 。
它 由美 国国家 标准 与技术局 ( S 于 19 年 作为 联邦 NI T) 93
就 得到 5 2位 的填 充消 息 : l
2S A 1 H - 算法原理分析
2 1函数与常量定义 .
= 』
_ _ 、
基 于上 述 S HA-I 法原 理的 分析 ,S 算 HA一1 法实 算
现 流程 如图 1 示 。 所
011 001 00
性 ,而 且 实 现 起 来也 比较 简单 、容 易理 解 。考 虑 到 网络 上 的数 字签 名 ,乃至 电子 商 务等 ,一般 采用 J v a a实 现代 码 较 简单 迅 速 , 可移 植 性 和 安 全性 也 能得 到 更好 的保 其 证 。事 实上 ,这里 还存 在一 个潜 在 的问题 : HA—l算法 S 信 息摘 要的 计算速 度并 不 总是能 满 足要 求。使 得 S HA-l
单 向性 和抗碰 撞 性 。单 向性 即 由原 始 消 息计 算 出信 息摘 要 很容 易 ,而 由消息摘要计算 出原始消息在计 算上则几乎
是不可行 的。而所谓 的抗碰撞性 是指 ,要 找到两个 不 同的
() x A 2 6 (0≤ t 7 ) 4K=0 C 6 C D 6 1 ≤ 9
j ( 0 B Dj ^D) 0(
L) B. :( 4 ,e C D) B¥ (0D) = f (0≤ 6 7) 9 ( I ,是与 ,~ J. 0 足 井或 ) 渔 咧: 足 |
换 成 一段 ( 常更 小 ) 文 ,也 可 以 简单 地 理 解 为 取 一 通 密
串输 入码 ,把 它们 转化 为 长 度较 短 、位数 固定 的输 出序
研 究 ,介 绍 了 SA 算 法 的特 性 和 应 用 ,并 对 SA 算 法原 理 及 实 现 进 行 了分析 。 H —I H 一1
关 键 词 : 全散 列算 法 ; H 一1; 密技 术 安 SA 加
Re e r h f s a c o Se u e Ha h c r s Al rt go ihm SHA-1
2 1 1 H -1的迭 代函数 。. S A S HA—l 用 8 使 0个 连 续 的 逻 辑 函数 : f ”, f, f。 。
每个 函数 f 0≤ t 7 ) 操作 三个 3 t ( ≤ 9都 2位字 ( C, , B, D) 产 生一 个 3 位 字作 为输 出。 函数 f B, , ) 2 t C D 定义如 下 : (
随机数 生成 算法和 密码 存储机 制等 。
位 二进 制数 据就 是原 始 L位 消息 ( ) 度 的二进 制表 示。 M 长
例 如 : 8位 ASCI 码 系 统 中 ,消息 “ bc 在 I a ”长 度 为 8 ×3= 2 ,加 上 一 位 “ ” 4 1 ,还 要添 加 4 8一 (4+ 1 = 4 2 ) 4 3位 “ ” 2 0 ,最后 加 上 6 4位 原 始消 息长 度 二进 制 表示 后 ,
() =0 8 B DC (0≤ t 5 ) 3K. x F1 BC 4 ≤ 9
列 即散 列 值 ( 为 信 息 摘 要 ) 称 的过 程 。该 算 法 对 长 度 不 超过 2 的 消息 产生 10位 的消 息摘 要输 出 ,输入 按 5 2 6 1
位 的分 组进 行 处理 。S A一1算法具 有两 个 重要 特性 : H
安全散 列算法 S A 的研 究 H -1
张松敏 , 陶 荣 ,于 国 华
( 阳理工 学院 ,河南 洛 阳 4 1 2 ) 洛 7 03
摘 要 : 信息加 密技术是 当今保 障 网络安 全的一种重要 手段 ,加 密算 法已成为人 们研 究的一个 热点 。对 SA 算法进行 了深入 H ~I
2 2预 处理 .
在 进 行散 列 值 计算 之 前 ,先 要对 需 要 加 密的 数据 进 行预 处 理 。这 一预 处 理 由三 部 分组 成 : 息填 充 、分 割 消 已填 充 消息 ( 将填 充 后的 消 息 等 分 成 m 位处 理 块 ) 、为
原 始消息生成同一个信息摘要在计算上也是不可行的。 S HA一1 算法 在加 密学 中扮演 着极其 重要 的角色 ,可 以用于 实现数 据保 密 、防止数 据更 改和 身份 验证 等功能 。
洋
图 1 H 1算 法 买 现 流 程 S A
S HA一1算 法 是一 种 易于 实 现并 可 以基 于 多 种 平 台
H , , , , 。8 。H H, H: H 0个字的缓冲区被标识为 W。W1. W , ’ ”, 。 另外 ,还需 要一 个一 个字 的 TE P缓 冲 区。 为 了产 生 消 M 息摘 要 ,定 义的 1 字的数 据 块 M .M 一, 6个 , M 会 依次 进 行处 理 ,处 理 每 个 数 据 块 包含 8 0个步 骤 ,在 处 理 每
S HA-1 当然 , 。 受语 言平 台应 用性 的制 约 ,应用 最广泛
的 是 C语 言 和 J v a a语 言 。 自身计 算 机 上 的 消息 认 证一
般 采 用 C语 言实 现就 足 够 , 仅能 够保 证 良好 的可 移植 不
为 了处 理 M. 要进 行如下 步骤 : ,需 () M , 1将 分成 l 字 W。 W 一, , W。 6个 , W ( 是最 左边 的字 ) 。 () 2 对于 t 6到 7 ,令 =1 9 s( 0H 。 @ ) 0 一 。
数 据抽 取散列 值 ( 为 消息摘 要 ) 称 ,并 与对称 或 非对 称加 密 技 术一 起来 完 成对 原 始数 据 的认 证 和 完整 性检 查 。另
外 ,SHA一1 法 是 当今 众 多 流行 加 密 思 想核 心 , 几乎 算
无 处不 在 。它 在许 多 安全 协 议 中广 为 使用 ,如 : 字 签 数
2 3散列值计 算 .
在 对 原 始 数 据 消 息 进 行 了 填 充 、分 割 后 , 就 可 以
开 始 SH A-1 法 的核 心 部分 : 列 值计 算 。计 算 需 要 算 散
两 个 缓 冲 区 ,每 个 都 由 5个 3 2位 的 字组 成 ,还 需 要 一 个 8 0个 3 2位 字 的 缓 冲 区。 第 一 个 5个 字 的 缓 冲 区 被 标识 为 A , C, E。第二 个 5个 字的缓 冲 区被标 识 为 B, D,
一
个典 型 的应用 是从 数字 消 息 、I P信息 包 、磁盘 文 件等
散列 值计 算设置 初始化 值 。 2 2 1消息填 充 。. 假设 原 始消 息 ( ) 长度 是 L位 。首先 ,在 消 息最 M 的 后 加 一 位 “ ” 接 着 在 这 位 “ ” 后 面 补 k个 … ,使 l, l 0
( 1 ( , D) B- j ( I B =( 0 ~B 、 D) ( 1 B C D) B C0 D) 2. . =( £) 3 . =( D) B ( ≤1 ) O≤ 9 (0≤f 3 ) 2 9 (O , 5 ) 4 9
信 息 处理 标 准 公布 ( 第一 代 S 即 HA 算 法 S HA一 ) 0。在
散 列值 由下 面 5个 3 的字 组 成 ,其 1 进 制 表 示 如下 : 2位 6
H ( 。 = 7 5 3 1; I x FC 420 H  ̄ l E DAB8 ; “ =0 9 H ” =啦 8 BADC FE ;
,
,
H = x0 5 6 H‘: CDEF 。 f 0 1 2 7 ; 0 3210 34 ” x =
块 ,每 块 5 2位 。然 后 每 组 5 2位 的输 入 块 可 以表 示 成 1 1 1 6个 3 2位的字 ,分 别 记为 : “ M , ,M , M。 , “ … 。 ”
2 23设 置初 始散 列值 (( .. H 。 )
在 安 全 散 列 算 法 开 始 其 核 1 散 列 迭 代 计 算 之 5的 前 ,还 必 须设 置 好 正 确 的 初 始 散 列 值 H 。 而 H 的 数 量 和 字 长取决 于消息 摘要 的选择 。对于 S HA一1 ,初始