密码学【第一节:密码学概述】

news2024/11/26 17:31:12

前言

在区块链的整个体系中大量使用了密码学算法,比如用于 PoW 的哈希算法,用于完整性验证的 Merkle Tree,用于交易签名与验证的数字签名算法,用于隐私保护的零知识证明等等。

可以说密码学是保证区块链安全的基石,而区块链的广泛应用也推进了密码学的发展。在区块链内核 CITA 的 v0.18 中,新增了「基于 Rust 语言的国密算法库」新特性。这次更新,使用户在尊重版权的前提下,即可自由调用 Rust 实现的国密算法库,来匹配业务场景所需的国密签名算法,大幅降低企业用户及开发者获得高性能区块链底层设计服务的成本,方便用户打造最贴近业务需求的区块链。

现代信息安全的基本要求:

  • 信息的保密性 Confidentiality:防止信息泄漏给未经授权的人(加密解密技术)
  • 信息的完整性 Integrity:防止信息被未经授权的篡改(消息认证码,数字签名)
  • 认证性 Authentication:保证信息来自正确的发送者(消息认证码,数字签名)
  • 不可否认性 Non-repudiation:保证发送者不能否认他们已发送的消息(数字签名)

一、什么是密码学

密码学的英语单词是 Cryptograghy,是由希腊单词 Kryptos(隐藏)和 Graphin(写)派生出来的,最初代表的意思是用来隐秘的传递信息。隐藏和写就是隐写,在古典密码学的发展中就有一门称为隐写术的技术,比如说藏头诗就是一种隐写术。在《巨人的陨落》中,艾瑟尔和弟弟比利就是通过每隔两个单词就会加一个单词来作为加密后的密文,这也是隐写术的一个例子。隐写术发展到今天演变为数字水印技术,一般在文件中加一个标识信息(即数字水印),可以起到追踪溯源,防伪和版权保护的作用。

密码学是网络安全、信息安全、区块链等产品的基础,常见的非对称加密、对称加密、散列函数等,都属于密码学范畴。

密码学一开始的功能是在有恶意攻击者存在的环境下,保护双方通信安全,现在是用来保护信息安全的核心技术。

所以密码学旨在保护协议免受攻击者攻击的一种安全措施,使之成为安全协议

二、密码学发展阶段

密码学发展大致分为三个阶段:

前两个阶段又称为传统密码。

古典密码时期

起始时间:从古代到19世纪末,长达几千年。
    技术工具:手工。
    通信手段:信使。
    密码体制:纸、笔或者简单器械实现的代换及置换,是一种艺术(富有创造性的方式、方法)。
    典型密码:凯撒密码、维吉尼亚密码等

近代密码时期(不讨论)

起始时间:从20世纪初到20世纪50年代,即一战及二战时期。
    技术工具:机械设备。
    通信手段:电报。
    密码体制:手工或电动机械实现复杂的代换及置换,仍是一门艺术。
    典型密码:Vernam密码、转轮密码等。

现代密码时期

起始时间:从1949年至今。
    技术工具:计算机(针对二进制的比特位,而不是字符)   1字=2字节=16位=16比特
    通信手段:无线通信、有线通信、计算网络等。
    密码体制:对称密码(分组密码、序列密码)和非对称密码(公钥密码),有坚实的数学理论基础,成为一门科学。
    典型密码:DES、AES、RC4、RSA、SHA等。

三、密码主要功能

机密性

-我与你说话时,别人能不能偷听?

-别人偷听到了能不能听懂?

机密性是指保证信息不泄露给非授权的用户或实体,确保存储的信息和传输的信息仅能被授权的各方得到,而非授权用户即使得到信息也无法知晓信息内容,不能使用。

完整性

-收到的传真不太清楚?
-传送过程过程中别人篡改过没有?

完整性是指信息未经授权不能进行改变的特征,维护信息的一致性,即信息在生成、传输、存储和使用过程中不应发生人为或非人为的非授权篡改(插入、替换、删除、重排序等),如果发生,能够及时发现。

认证性

-我不认识你!
-你是谁?
-我怎么相信你就是你?
-要是别人冒充你怎么办?

    认证性是指确保一个信息的来源或源本身被正确地标识,同时确保该标识的真实性,分为实体认证和消息认证。
    消息认证是指能向接收方保证该信息确实来自于它所宣称的源
    实体认证是指参与信息处理的实体是可信的,即每个实体的确是它所宣称的那个实体,使得任何其它实体不能假冒这个实体。

不可否认性

-我收到货后,不想付款,想抵赖,怎么样?
-我将钱寄给你后,你不给发货,想抵赖,如何?

不可否认性是防止发送方或接收方抵赖所传输的信息,要求无论发送方还是接收方都不能抵赖所进行的行为。因此,当发送方发送一个信息时,接收方能证实该信息的确是由所宣称的发送方发来的;当接收方收到一个信息时,发送方能够证实该信息的确送到了指定的接收方。

四、密码系统的组成

一个密码系统(System)是由明文(Plaintext)、密文(Ciphertext)、密钥(Key)、加密算法(Encryption Algorithm)和解密算法(Decryption Algorithm)五部分组成的,即s={M,C,K,E,D}。

  • 信息的原始形式称为明文。
  • 明文经过编码变换所生成的称为密文。
  • 密钥是指控制明文与密文之间相互变换的,分为加密密钥和解密密钥。
  • 对明文进行编码变换生成密文的过程称为加密,编码的规则称为加密算法。
  • 将密文恢复出明文的过程称为解密,恢复的规则称为解密算法。

五、重点导学

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

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

相关文章

AIRIOT亮相IOTE2023深圳物联网展,产品创新力再获“IOTE金奖”

9月20-22日,IOTE 2023第二十届深圳国际物联网展在深圳国际会展中心(宝安)圆满落幕。作为物联网领域年度最重要的行业盛会之一,本届展会以“IoT构建数字经济底座”为主题,汇聚全球来自工业、物流、基建、智慧城市、智慧…

java项目之旅游景点线路网站(ssm源码+文档)

项目简介 旅游景点线路网站实现了以下功能: 管理员:个人中心、会员管理、景点分类管理、旅游景点管理、旅游线路管理、系统管理。会员:个人中心、旅游景点管理、旅游线路管理、我的收藏管理等操作。 💕💕作者&#x…

OSPF特殊区域NSSA和Totally NSSA详解及配置

本文主要介绍OSPF中的另外一种特殊区域:NSSA以及Totally NSSA区域。 如下图: 当AR1和AR3同时连接到某一外部网络,AR3引入外部路由到OSPF域,AR1所在的Area 1为减小LSDB规模被设置为Stub或Totally Stub区域。这时,由于…

滴答定时器SysTick和os_cpu_a.asm(UCOS的移植)

一、滴答定时器SysTick 滴答定时器是一个 24 位的倒计数定时器,当计到 0 时,将从 RELOAD 寄存器中自动重装载定时器初值,只要不把它在 SysTick 控制以及状态寄存器中的使能位清零,就将永久不息。SysTick 的最大使命,就…

Windows Server 2022 安全功能重大更新

这篇文将介绍 Windows Server 2022 中的一些新增的安全功能,在 Windows Server 2019 的强大基础之上引入了许多创新功能。 文章目录 一、传输:Windows Server 2022 上默认启用 HTTPS 和 TLS 1.3二、安全 DNS:通过基于 HTTPS 的 DNS 实现 DNS…

基于SpringBoot的CSGO赛事管理系统springboot20

大家好✌!我是CZ淡陌。一名专注以理论为基础实战为主的技术博主,将再这里为大家分享优质的实战项目,本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目,希望你能有所收获,少走一些弯路…

功率放大器是不是越大越好用

功率放大器的大小是个相对的概念,没有绝对的“越大越好用”的说法。不同的应用场景和需求需要不同大小的功率放大器,因此选择适合的功率放大器是很重要的。 我们需要明确功率放大器的作用是对信号进行放大,使其能够驱动负载。因此&#xff0c…

c++均值滤波:cv::blur

c均值滤波:cv::blur cv::blur 是 OpenCV 中用于进行均值滤波的函数。均值滤波是一种基本的图像平滑处理方法,它用于减小图像中的噪声,平滑图像并模糊细节。 以下是 cv::blur 的一般形式: void cv::blur(cv::InputArray src, cv…

百分比组件

//组件 <template><div :class"className" :style"{ height: height, width: width }" style"overflow: hidden;" /> </template><script> export default {props: {className: {type: String,default: "chart&quo…

springboot+vue+java天气预报管理系统1439

本天气管理系统使用了开源框架SpringBoot开发实现了天气管理系统&#xff0c;并且使用了开发工具idea和数据库MySQL。在开发实现天气管理系统之前&#xff0c;需要对系统进行需求分析和调研&#xff0c;从而分析出天气管理系统需要具备什么样的功能&#xff0c;设计出对应的总体…

U盘数据防泄密软件(U盘防泄密加密软件都有哪些?)

随着科技的发展&#xff0c;U盘已经成为了我们日常生活中不可或缺的一部分。然而&#xff0c;U盘的便捷性也带来了安全隐患。为了保护您的数据安全&#xff0c;U盘防泄密加密系统应运而生。本文将从三个方面为您介绍U盘防泄密加密系统是什么、有哪些以及能做什么。 一、U盘防泄…

DataX: Ⅱ

序言 这里使用的是master分支,因为官网上并没有release分支,所以先用master分支吧,可能会有问题cuiyaonan2000163.com 参考资料: https://github.com/alibaba/DataXhttps://github.com/alibaba/DataX/blob/master/introduction.md --插件说明文档 源码打包 首先下载 Git…

二、VXLAN BGP EVPN基本原理

VXLAN BGP EVPN基本原理 1、BGP EVPN2、BGP EVPN路由2.1、Type2路由——MAC/IP路由2.2、Type3路由——Inclusive Multicast路由2.3、Type5路由——Inclusive Multicast路由 ————————————————————————————————————————————————…

static const char* 和const char*有报错,发生访问冲突

const char *srcfilere aByteArray.data(); 当重复某一操作时&#xff1a;有报错&#xff0c;发生访问冲突 const char *srcfilere aByteArray.data(); 即可解决访问冲突问题。 困扰了至少一天吧 应该是static的问题&#xff0c;吃了基础不好的亏。

CMD命令终端快捷键学习

很多环境需要安装并且指定环境变量才可用终端访问 比如一些数据库、一些环境、例如&#xff1a;nodejs Oracle、mysql 在一个文件夹按住shift鼠标右键可以快速在当前目录运行终端&#xff01;免去cd 目录的烦恼 快捷键 当你学习和使用命令终端&#xff08;如 Windows 的 CMD&…

如何让IPad Pro变成你的生产力工具?在IPad上用Vscode写代码搞开发

文章目录 前言1. 本地环境配置2. 内网穿透2.1 安装cpolar内网穿透(支持一键自动安装脚本)2.2 创建HTTP隧道 3. 测试远程访问4. 配置固定二级子域名4.1 保留二级子域名4.2 配置二级子域名 5. 测试使用固定二级子域名远程访问6. ipad pro通过软件远程vscode6.1 创建TCP隧道 7. ip…

如何用芯片ate测试设备测试芯片过压保护和过流保护?

过压保护和过流保护是指被保护的产品或电路在电压/电流超过正常运行的最大值时&#xff0c;使输入断开或内部电压/电流降低的一种保护方式。过压保护和过流保护是为了防止电路中电压/电流过大从而损坏产品&#xff0c;因此过压/过流保护电压值和电流值也是电子测试中不可或缺的…

树莓派(Linux系统通用)交叉编译(环境搭建、简单使用)

概念 交叉编译是指在一台计算机上编译运行在另一台计算机上的程序。&#xff08;编译是指&#xff0c;在一个平台上生成在该平台上的可执行程序&#xff09;通常情况下&#xff0c;编译器和目标平台的架构是不同的&#xff0c;例如&#xff0c;在一台x86平台上编译运行在ARM平…

Go 语言史诗级更新-循环Bug修复

背景 前两天 Golang 的官方博客更新了一篇文章&#xff1a;Fixing For Loops in Go 1.22 看这个标题的就是修复了 Go 循环的 bug&#xff0c;这真的是史诗级的更新&#xff1b;我身边接触到的大部分 Go 开发者都犯过这样的错误&#xff0c;包括我自己&#xff0c;所以前两年我也…