SHA1详解

这篇具有很好参考价值的文章主要介绍了SHA1详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、介绍

二、与MD5的区别

1、对强行攻击的安全性

2、对密码分析的安全性

3、速度

三、应用

1、文件指纹

2、Git中标识对象

四、算法原理

1、填充消息

2、消息处理

3、数据运算

(1)链接变量

(2)步函数


一、介绍

SHA1又称安全哈希算法(Secure Hash Algorithm)。

对于长度小于2^64位的消息,SHA1会产生一个160位(20个字节)的消息摘要。SHA1是不可逆的,防冲突,并具有良好的雪崩效应。

二、与MD5的区别

1、对强行攻击的安全性

最显著和最重要的区别是SHA-1摘要比MD5摘要长32 位。使用强行技术,产生任何一个报文使其摘要等于给定报摘要的难度对MD5是2^128数量级的操作,而对SHA-1则是2^160数量级的操作。这样,SHA-1对强行攻击有更大的强度。

2、对密码分析的安全性

由于MD5的设计,易受密码分析的攻击,SHA-1显得不易受这样的攻击。

3、速度

在相同的硬件上,SHA-1的运行速度比MD5慢。

三、应用

1、文件指纹

这个作用和MD5的作用类似,如果文件被篡改,那么对应的SHA1值就会变化

2、Git中标识对象

用过Git的应该都知道,Git中的对象没有名字,唯一标识就是对象的SHA1值

四、算法原理

1、填充消息

与md5一致

MD5详解_xcxhzjl的博客-CSDN博客

2、消息处理

每64个字节(512位)一组,分成多个组(n个)。 
每个组再分为16个子分组,每个子分组为32位。之后将这16个子分组扩充到80个子分组。扩充方法为:

Wt=Mt,当0≤t≤15

Wt=((Wt-3)^(Wt-8)^(Wt-14)^(Wt-16))<<<1,当16≤t≤79

3、数据运算

数据加密要经过4轮运算,每一轮共有20个步骤,共80步,之后产生160位摘要,这160位摘要存放在5个32位链接变量里,分别记为ABCDE。

(1)链接变量

初始值表示如下:

A=0x67452301

B=0xEFCDAB89

C=0x98BADCFE

D=0x10325476

E=0xC3D2E1F0

(2)步函数

SHA1的4轮运算共80个步骤,使用同一个操作程序,如下:

A,B,C,D,E<-[(A<<<5)+Ft(B,C,D)+E+Wt+Kt],A,(B<<<30),C,D

A.Ft(B,C,D)为逻辑函数

每个函数ft (0 <= t <= 79)都操作32位字B,C,D并且产生32位字作为输出。Ft(B,C,D)可以如下定义

ft(B,C,D) = (B AND C) or ((NOT B) AND D) ( 0 <= t <= 19)

ft(B,C,D) = B XOR C XOR D (20 <= t <= 39)

ft(B,C,D) = (B AND C) or (B AND D) or (C AND D) (40 <= t <= 59)

ft(B,C,D) = B XOR C XOR D (60 <= t <= 79).

B.Wt为子明文分组W[t]

 见2消息处理章节

C.Kt为固定常数

这个程序的意义如下:

●将[(A<<<5)+Ft(B,D,C)+E+Wt+Kt]的结果赋给A

●将链接变量A初始值赋给链接变量B

●将链接变量B初始值循环左移30位赋给C

●将链接变量C初始值赋给链接变量D

●将链接变量D初始值赋给链接变量E

在处理完所有的消息后,消息摘要是一个160位的字符串。文章来源地址https://www.toymoban.com/news/detail-709338.html

到了这里,关于SHA1详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • CTF-Crypto学习记录-第四天 “ “ --- SHA1安全散列算法,实现原理。

    MD5学习MD5加密算法 SHA-1(Secure Hash Algorithm1,安全散列算法1)是一种密码散列函数。 SHA-1可以生成一个被称为消息摘要的160位(20字节)散列值,散列值通常的呈现形式为40个十六进制数。 SHA-1的历史: 2005年,密码分析人员发现了对SHA-1的有效攻击方法,这表明该算法可能不够

    2024年02月07日
    浏览(42)
  • 【区块链学习笔记01】BTC-密码学原理-哈希函数

    区块链中最基础的密码学原理就是哈希算法,以下为哈希函数的简单介绍: 哈希函数是一种只只能加密但是不能解密的算法,哈希函数可以将任意长度的信息转化为固定长度的字符串。类似“8b46ec792e943de34605981980751a3c1e008218f77eeb27e474b594f7685019”这样。 当输入相同的值时,得到

    2024年02月03日
    浏览(44)
  • Shiro-05-shiro 基础知识补充密码学+哈希散列

    密码术是隐藏或混淆数据的过程,因此窥探眼睛无法理解它。 Shiro的加密目标是简化JDK的加密支持并使之可用。 需要特别注意的是,密码通常不是特定于主题的,因此Shiro API的其中一个领域不是特定于主题的。 即使未使用“主题”,您也可以在任何地方使用Shiro的加密支持。

    2024年02月21日
    浏览(49)
  • 第六章 消息认证和哈希函数 —— 现代密码学(杨波)课后题答案解析

    1.6.1.3节的数据认证算法是由CBC模式的DES定义的,其中初始向量取为0,试说明使用CFB模式也可获得相同的结果。 解:设需认证的数据分为64比特长的分组, D 1 , D 2 ,…, D N ,其中 D N 不够64比特则右边补0,由题设,数据认证算法相当于在CBC模式中初始向量取为0,并按如下关系

    2024年02月05日
    浏览(63)
  • Android 获取应用sha1和sha256

    在 Android 应用开发中,SHA-1(Secure Hash Algorithm 1)值是一种哈希算法,常用于生成应用的数字签名。这个数字签名用于验证应用的身份,并确保应用在发布到设备上时没有被篡改。 以下是生成 Android 应用的 SHA-1 值的步骤: 生成密钥库(KeyStore): 首先,你需要创建一个密钥库

    2024年02月07日
    浏览(59)
  • [虚幻引擎插件说明] DTSha – 蓝图SHA加密节点, SHA1, SHA224, SHA256, SHA384, SHA512加密

    本插件可以在虚幻引擎中使用蓝图对字符串或者文件进行SHA加密。 目录 1. 节点说明 SHA-1 Encrypt SHA-224 Encrypt SHA-256 Encrypt SHA-384 Encrypt SHA-512 Encrypt SHA-1 Of File SHA-224 Of File SHA-256 Of File SHA-384 Of File SHA-512 Of File 2. 案例演示 ​编辑 3. 插件下载 SHA-1 Encrypt 字符串进行SHA-1加密,字符串

    2024年02月16日
    浏览(71)
  • Python hashlib 加密方法(MD5、SHA1、SHA256、SHA52)

    Python 提供了 hashlib 模块来进行加密操作。在下面的文章中,我们将介绍 hashlib 模块的常用加密算法。 hashlib 模块是 Python 中用于加密的标准库。它包含了所有常见的哈希函数,例如 SHA1、SHA224、SHA256、SHA384、SHA512、MD5 等。这些哈希函数都是单向的,即只能对信息进行加密,而

    2024年02月07日
    浏览(48)
  • 【11.10】现代密码学1——密码学发展史:密码学概述、安全服务、香农理论、现代密码学

    参考:密码学发展简史 骆婷老师的《现代密码学(32H)》课程,笔记+查找的资料补充 期末为闭卷考试的形式 密码学早在公元前400多年就已经产生,人类使用密码的历史几乎与使用文字的时间一样长,密码学的发展大致可以分为 3 个阶段: 1949年之前的古典密码学阶段; 1949 年

    2024年02月04日
    浏览(51)
  • 【密码学】量子安全的密码学算法以及原理介绍

    (1)“代数格密码套件”(CRYSTALS)包含两个密码原语Kyber和Dilithium。Kyber是一种抗适应性选择密文攻击(IND-CCA2)安全密钥封装机制,Dilithium是一种高度不可伪造性(EUF-CMA)安全数字签名算法。两种密码都是为了应对量子计算机的攻击,并且在操作过程中只需更改几个参数即

    2024年02月11日
    浏览(64)
  • 【现代密码学】笔记4--消息认证码与抗碰撞哈希函数《introduction to modern cryphtography》

    主要在 哈工大密码学课程 张宇老师课件 的基础上学习记录笔记。 内容补充:骆婷老师的PPT 《introduction to modern cryphtography》–Jonathan Katz, Yehuda Lindell(现代密码学——原理与协议)中相关章节 密码学复习笔记 这个博主好有意思 初步笔记,如有错误请指正 快速补充一些密码

    2024年01月18日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包