单向散列函数【密码学】(一)

news2024/9/21 16:52:07

目录

一、前言:密码学有什么用?

 二、单向散列函数

1、单向函数 

2、散列函数 

3、单向散列函数 

三、怎么解决完整性问题 

四、如何设置合适的安全强度 


一、前言:密码学有什么用?

 二、单向散列函数

单向散列函数就是用来解决“信息完整性”这一问题的。

下面先介绍一下单向函数散列函数

1、单向函数 

概念:正向计算容易,逆向计算困难的函数。

2、散列函数 

概念:把任意大小的输入,转成固定长度的数据的函数。

通常把转换后的数据称为散列值(哈希值)。

散列值碰撞:存在两个或多个数据的散列值相同。

如何降低散列值碰撞的可能?让散列值长度更长。

但同时也要权衡好性能问题(一个好的散列函数,散列值应该是均匀分布的)。

3、单向散列函数 

既是单向函数,又是散列函数。

核心:

☆逆向运算困难

☆构造碰撞困难

雪崩效应

输入数据的微小变化,就会导致输出数据的巨大变化。

严格雪崩效应指的是,如果输入数据的一位反转,输出数据的每一位都有50%的概率会发生变化。

一个使用于密码学的单向散列函数,就应该具有雪崩效应的特点,如果一个单向散列函数具有雪崩效应,那么对于给定的数据,构造出一个新的、具有相同散列值的数据是困难的。

三、怎么解决完整性问题 

完整性是什么?

数据未经授权,不可更改。

由于逆向运算困难,虽然存在具有相同散列值的两个或者多个数据,但是对于一个好的单向散列函数来说,刻意寻找这样的数据是困难的。如果困难程度足够大,我们就有足够信心认为,如果散列值没有变化,它对应的输入数据也没有变化。


所以,单向函数和散列函数的组合,单向散列函数,就可以帮助我们解决完整性问题。


假如我们收到了一段数据,我们就可以重新计算这段数据的散列值。如果我们还可以获得数据发送者计算的散列值,我们就可以对比新计算的散列值和接收到的散列值

如果两个散列值是相同的,我们就可以认为这段数据是完整的;否则,这段数据就是被篡改过的。

该选择什么样的单向散列函数,它的破解难道才能足够大?稍后讲解

怎么能够安全地获得数据发送者计算的散列值? 晚些讲解

四、如何设置合适的安全强度 

通常用“位”来表述。

N位的安全强度表示破解一个算法需要2^N(2的N次方)次运算。

18位,按现在的计算机运算速度计算,大约只需要4.34分钟。

64位,破解成本大概是5万美元左右。

128位,按现有的计算能力,破解它需要一千万个十亿年。

安全强度会变吗?

 一个算法的安全强度表示一成不变的,随着安全分析的进步,几乎所有密码学算法的安全强度都会衰减。一个好的安全协议,一个考虑备份计划和应急计划。

使用多大的安全强度? 

推荐指标:

美国的NIST

德国的BSI

欧洲的ECRYPT-CSA

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/659299.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

article-6-pss 并联六自由度机构轨迹规划

建模 ** [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-djltxj90-1687070335773)(data:image/svgxml;utf8, )] ** 程序如下: % clc % clear all % function []PSS1(XP,YP,ZP) tic %%%%%鍒濆浣嶇疆鐨勪綅濮?%%%%% % XP 0; %鍔ㄥ钩鍙…

存储笔记6 SAN

SAN(Storage Area Networks) SAN 优势 benefitsSAN 组件 componentsSAN连接选项 connective optionsFC协议 FC寻址 protocol addressing\FC拓扑 topologie SAN优缺点 光纤通道 fibre channel SAN组件 FC三种互联 FC端口类型 fabric 企业需要和科技…

RFID期末复习总结

一.概念部分 1.基础概念 射频识别无线电频率识别RFID 应答器:存放识别信息的电子数据载体 阅读器:将识别信息从应答器中读出(还可以写入数据) 应答器是统称,在各种专业场合有专业名字,比如射频卡&#…

pikachu靶场-PHP反序列化

在理解这个漏洞前,你需要先搞清楚php中serialize(),unserialize()这两个函数。 序列化serialize() 序列化说通俗点就是把一个对象变成可以传输的字符串,比如下面是一个对象: class S{public $test"pikachu";}$snew S(); //创建一个对象serialize($s); //…

FPGA时序约束--进阶篇(主时钟约束)

在FPGA设计中,时序约束的设置对于电路性能和可靠性都至关重要。在上一篇的文章中,已经详细介绍了FPGA时序约束的基础知识。 本文将重点讲解主时钟约束设置,给出详细的约束命令,并介绍了在Vivado中如何写入主时钟约束。 一、主时…

一文详解!接口测试(http与rpc)总结

目录 前言: 一、了解一下HTTP与RPC 二、HTTP接口测试 三、RPC接口测试 四、接口测试用例设计 五、测试思路总结 前言: 在接口测试方面,常见的接口类型有HTTP接口和RPC接口。这两者的测试方法略有不同,在测试前需要进行技术选…

[INFO] [copilotIgnore] inactive,github copilot没反应怎么解决

在使用github copilot的时候,插件不工作,后台出现了这种输出, 这种情况下就是它的激活出现了问题,如果账号的使用权没有问题的话,就将该插件disable之后再重新enable,重新观察输出,就会看到copi…

LAMP架构搭建实操

目录 一、LAMP架构概述 二、LAMP框架搭建 1.准备工作 2.部署apache 3.部署mysql 4.部署php 三、部署BBS论坛 一、LAMP架构概述 LAMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和相关软件,能够提供动态Web站点服务及其应用…

win11系统提示msvcp140.dll丢失的三个解决方法,简单实用

Win11系统在运行photoshop或其他软件,游戏的时候,电脑提示“找不到msvcp140.dll”,“msvcp140.dll丢失”,“无法定位输入点msvcp140.dll”等问题,都是由于Windows11系统中的msvcp140.dll文件丢失或者损坏了。 问题场景…

数据结构 串

串 术语概念 在数据结构中,串(String)是由零个或多个字符组成的有限序列。它是一种常见的数据类型,常用于表示文本、字符串和符号序列等信息。串可以包含任意字符,包括字母、数字、符号以及空格等。 主串&#xff08…

CANDENCE : 如何绘制元器件

如何绘制元器件 绘制元器件之前先新建一个原理图库。 step1:打开某一个原理图工程 step2:在该工程系下新建一个库文件,如下图: 新建完成,如下图: 右键点击保存:save。 命名并保存,保存的位置自己决定 …

AI - stable-diffusion 艺术化二维码

系列文章: 《AI - stable-diffusion(AI 绘画)的搭建与使用》《AI - AI 绘画的精准控图(ControlNet)》 一、介绍 近日,AI 绘画(stable-diffusion)用来艺术化二维码算是比较火热的事了,这个 idea 是由国人用 Checkpoi…

Spring Security 实战篇

文章目录 前言内存版(memory)数据库库版(jdbc)自定义登录 - 单体(custom-login-single)自定义登录 - 前后分离会话一致性方案方案一方案二方案三为什么不用JWT 登录改json方式登录(custom-login-json)认证密码加密登录&#xff08…

【欧瑞博智能家居】ZigBee Mini网关、超静音智能开合帘电机 添加操作流程

目录 一、添加ZigBee Mini网关 二、添加超静音智能开合帘电机 参考资料 一、添加ZigBee Mini网关 1. 下载《智家365》APP 2. 网关通电,用网线连接路由器的网线接口 3. 再次扫描产品手册里面的二维码添加ZigBee Mini网关,注意手机wifi要在同一个网络…

Nucleo-F411RE (STM32F411)LL库体验 10 - RT-Thread nano finsh的移植

Nucleo-F411RE (STM32F411)LL库体验 10 - RT-Thread nano finsh的移植 1、Makefile中添加finsh的编译 编译报错如下: 在rtconfig.h添加#include “finsh_config.h” 继续编译,继续报错: 这里是个WEAK函数&#xff…

【python中对点云PCL库的下载安装与配置】

需要的资料: python_pcl-0.3.1-cp36-cp36m-win_amd64.whl 压缩包:pcl-1.12.1-pdb-msvc2019-win64 pcl程序:PCL-1.12.1-AllInOne-msvc2019-win64 网盘链接:https://pan.baidu.com/s/184yY7fc5rqwwd9F4cMncDw 提取码&#xff1a…

SpringSecurity(一):权限管理设计与实现(官文英解+源码调试+基本环境搭建)

权限管理设计与实现 前言权限管理认证授权安全管理框架 整体架构认证AuthenticationManagerAuthenticationSecurityContextHolder 授权AccessDecisionManagerAccessDecisionVoterConfigAttribute 环境搭建技术栈创建项目整合Spring Security 实现原理官方文档解读A Review of F…

Jmeter多接口测试之参数传递

目录 前言: 接口示例 正则表达式提取器 正则表达式提取实例 Json提取器 Json提取器实例 前言: 在进行多接口测试时,有些情况下需要将前一个接口返回数据作为后一个接口的参数,以模拟实际场景。JMeter作为一款常用的性能测试…

【百问百答】可靠性基础知识第六期

1.跌落试验需要确认哪些试验条件? 试验条件包括:释放高度,释放方法和试验表面。 2.什么是跌落试验的试验表面? 试验表面应该是混凝土或者是钢制的平滑坚硬的刚性表面,必要时,可按照相关规范规定其他表面。 3.什么是跌落高度? 指…

云安全技术(二)之云计算参考架构

云计算参考架构 1.1 描述云计算参考架构 Describe Cloud Reference Architecture 多个主要组件组合在一起形成云架构(Cloud Architecture)和云实现的全貌。涉及的组件包括管理和运营云环境的活动(Activity)、角色(Role)和能力(Capability),以及基于云托管和服务交…