加密与认证技术

news2025/1/20 6:00:19

加密与认证技术

  • 密码技术概述
  • 密码算法与密码体制的基本概念
          • 加密算法与解密算法
    • 秘钥的作用
    • 什么是密码
    • 密钥长度
  • 对称密码体系
    • 对称加密的基本概念
    • 典型的对称加密算法
      • DES加密算法
      • 3DES加密算法
  • 非对称密码体系
    • 非对称加密基本概念

密码技术概述

密码技术是保证网络安全的核心技术之一,密码学包括密码编码学与密码分析学,人们利用加密算法和秘钥来对信息编码进行隐藏,而密码分析学试图破解算法和秘钥。两者相互对立,又相互促进的向前发展。
无加密沟通
这种直接进行沟通,中间没有对信息进行处理,若被不法分子获取到沟通的信息,非常容易造成信息泄露。
有加密沟通同
这种对信息进行处理,即使不法分子获取到沟通的信息,也很难直接从这些信息中获取到对他们有用的信息,难以造成信息泄露。

这也说明了密码学对社会的重要性。

密码算法与密码体制的基本概念

加密算法与解密算法

加密的基本思想是伪装明文以隐藏其真实内容,即将明文X伪装成密文Y。

加密算法:伪装明文的操作称之为加密,加密时所采用的变换规则则称之为加密算法。
解密算法:由密文恢复出原文的过程称之为解密,解密时所采用的变换规则称之为解密算法。

秘钥的作用

加密算法与解密算法的操作通常都是在一组秘钥控制下进行的,密码体制是指一个系统所采用的基本工作方式以及它的两个基本构成要素,即加密/解密算法和秘钥。

传统密码体制所用的加密密钥和解密密钥相同,也称为“对称密码体制”。如果加密容钥和够密者明不相同,则称为“非对称密码体制”。加密算法是相对稳定的。在这种意义上,可以把加密算法视为常量,而密钥则是一个变量。可以根据事先约定的规则,对应每一个新的信息改变一次密街、或者定期更换密钥。这里可以以最古老的凯撒密码的例子来说明秘钥保存的重要性。

凯撒密码

在密码学中,恺撒密码(英语:Caesar cipher),或称恺撒加密、恺撒变换、变换加密,是一种最简单且最广为人知的加密技术。它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推。这个加密方法是以罗马共和时期恺撒的名字命名的,当年恺撒曾用此方法与其将军们进行联系。

凯教密码属于种“置位密码”,它是将一组明文字母用另一 组伪装的字母表示,例如

明文:今 天 的 天 气 不 错 你 觉 得 呢
密文:做 低 还 算 得 迷 删 这 年 体 制

当然,这里做介绍得时候举例是按照我自己的想法举例,为了说明凯撒密码这个案例。根据上面的密码表,如果我们得文字内容是:今 天 的 天 气 不 错 你 觉 得 呢,这是后我们通过加密,就会获得这样一条语句:做 低 还 算 得 迷 删 这 年 体 制,这样一条消息我想你很难看出来原本的意思吧,但是如果这时候我们把加密的秘钥给你了,通过查看秘钥,你就能获得正确的信息。

这种方法称为“单字母替换法”,秘钥就是这个明文与密文的对应关系,我们按照英文字母来进行介绍,整个替换的方式有16!个,这样的加密方法虽然简单,但是破译者要想完全破译,即使是1us测试一个秘钥,也需要数年时间来完成完全破译。

这样看起来这种加密方法是很安全的,但是人们通过字母频率很容易就能反向破译出来。下面附录英文字母的使用频率排序:

字母使用频率字母使用频率字母使用频率字母使用频率字母使用频率
A8.167%B1.492%C2.782%D4.253%E12.702%
F2.228%G2.015%H6.094%I6.966%J0.153%
K0.772%L4.025%M2.406%N6.749%O7.507%
P1.929%Q0.095%R5.987%S6.327%T9.056%
U2.758%V0.978%W2.360%X0.150%Y1.974%
Z0.074%

从这个表就可以看出,在英文中各英文字母出现的频率是有一定区别的,抓住这一特点,能加快破译。

另外一种加密方法是“易位密码法”,它首先是选择一个秘钥,这个秘钥的特点是采用一个组成的字母不重复的单词或词组,例如:MEGABUCK。使用这个秘钥字母出现的顺序重新对明文字母的顺序进行排序,从未加大破译的难度。整个过程如下图所表示:

原文:It is a lovely day

加密过程:  
           7  4  5  1  2  8  3  6
           M  E  G  A  B  U  C  K
	       i  t  i  s  a  l  o  v
		   e  l  y  d  a  y

这时候获得的解密后的文本为:saotivildalyey

易位加密的批结难度从加密过程就可以看出,相比单字母加密,这个难度高出了很多。

从上文中提到的例子中其实可以看得出来,加密算法实际上是很难做到绝对保密的,现代密码学的一个基本原则是“一切秘密寓于秘钥之中”。秘钥可以视为加密算法中的可变参数,从数学的角度来看,改变了秘钥,实际上也就改变了明文于密文之间的等价的数学关系。在设计加密系统时,加密算法可以是公开的,真正需要保密的是秘钥。

什么是密码

加密技术可以分为秘钥和加密算法两个部分,其中,加密算法是用来加密的数学函数,密码是明文经过加密算法运算后的结果。加密算法可以公开,而密钥只能由通信双方持有。如果在网络传输过程中,传输的是经过加密处理后的数据信息,那么即使有人窃取了这样的数据信息,由于不知道相应的密钥与解密方法,也很难将密文转换为明文,从而可以保证信息在传输与存储中的安全。

密钥长度

对于同样一种加密算法,密钥的位数越长,破译的难度就越大,安全性也就越好。在给定的环境下,为了确保加密的安全性,人们也一直在讨论密钥长度,也就是密钥的位数。密钥位数越多,密钥空间越大,也就是密钥的范围也就越大,那么攻击者也就不容易通过蛮力攻击来破译。

蛮力破解:破译者通过穷举法对密钥的所有组合进行猜测,直到成功的解密。

下面给出一定密钥长度下需要破解尝试的密钥个数:

密钥长度组合个数密钥长度组合个数
401 099 511 627 7761125.192 296 858 535 * 10^33
567.205759403793 * 10^161283.402 823 669 209 * 10^38
641.844 674 407 371 * 10^19

使用长的密钥,可以使破解的难度成倍增长,但是在加密和解密上花费的时间也就越多。我们的目标是让破译密码所需要的成本要比破译完成后所获得的信息价值还要大,这样才算是有效的保护措施。

对称密码体系

目前常用的加密技术可以分为两类,即对称加密与非对称加密。在传统的对称密码系统中,加密用的密钥与解密用的密钥是相同的,密钥在通信中需要严格保密。在非对称加密系统中,加密用的公钥与解密用的私钥是不同的,加密用的公钥可以公开,而解密用的私钥需要保密。

对称加密的基本概念

对称加密技术对信息的加密和解密使用的都是相同的密钥,使用对称加密,加密方和解密方必须使用同一种加密算法和相同的密钥,需要注意以下几个问题:
对称加密图解

由于通信双方加密解密使用同一个密钥,如果密钥被泄露,那么就会造成失密,也就是说信息交换双方存在着密钥交换的问题,需要确保密钥交换是安全的。

如果一个用户需要跟N个用户进行加密通信时,那么该用户将要维护N个用户的密钥信息,当网络中有N个用户之间进行加密通信时,则需要有N*(N-1)个密钥,才能保证通信。

由于信息传递需要双方均获取密钥,密钥的安全传输问题变成了十分复杂的问题

即使当前系统所使用的密钥算法十分安全,但是密钥保护做的不好,那么该系统也将不是一个安全的系统。

典型的对称加密算法

DES加密算法

DES算法(Data Encryption Standard)是一种常见的分组加密算法。分组加密算法是将明文分成固定长度的组,每一组都采用同一密钥和算法进行加密,输出也是固定长度的密文。
由IBM公司在1972年研制,1976年被美国联邦政府的国家标准局确定为联邦资料处理标准(FIPS),随后在国际上广泛流传开来。
在DES算法中,密钥固定长度为64位。明文按64位进行分组,分组后的明文组和密钥按位置换或交换的方法形成密文组,然后再把密文组拼装成密文。
密钥的每个第八位设置为奇偶校验位,也就是第8、16、24、32、40、48、56、64位,所以密钥的实际参与加密的长度为56位。

DES算法采用了64位密钥的长度,其中8位用于奇偶性校验,用户可以使用剩下的56位,DES算法并不是非常安全的,入侵者往往可以使用算力足够的计算机进行破解,但是破解时间是较长的,只要破译时间大于密文的有效期,那么密钥就是安全有效的。

3DES加密算法

3DES,也称为 3DESede 或 TripleDES,是三重数据加密算法,相当于是对每个数据库应用三次DES的对称加密算法。
由于DES密码长度容易被暴力破解,所以3DES算法通过对DES算法进行改进,增加DES的密钥长度来避免类似的攻击,针对每个数据块进行三次DES加密;因此,3DES加密算法并非什么新的加密算法,是DES的一个更安全的变形,它以DES为基本模块,通过组合分组方法设计出分组加密算法。。
3DES是DES向AES过渡的加密算法,它使用2个或者3个56位的密钥对数据进行三次加密。相比DES,3DES因密钥长度变长,安全性有所提高,但其处理速度不高。因此又出现了AES加密算法,AES较于3DES速度更快、安全性更高。

该算法的加解密过程分别是对明文/密文数据进行三次DES加密或解密,得到相应的密文或明文。
假设EK()和DK()分别表示DES的加密和解密函数,P表示明文,C表示密文,那么加解密的公式如下:
加密:C = EK3( DK2( EK1(P)) ),即对明文数据进行,加密 --> 解密 --> 加密的过程,最后得到密文数据;
解密:P = DK1( EK2( DK3(C)) ),即对密文数据进行,解密 --> 加密 --> 解密的过程,最后得到明文数据;

当然,还有一些对称加密算法,包括IDEA算法,RC2算法、RC4算法与Skipjack算法等。

非对称密码体系

非对称密码体系对信息的加密和解密使用不同的密钥,用来加密的密钥是可以直接公开的,用来解密的私钥则需要保密,因此该技术又称为 公钥加密(public key encryption)
非对称加密图示

非对称加密基本概念

非对称加密在现在密码学中是非常重要的,按照一般的理解,加密主要是解决信息在传输过程中的保密性问题,但是还存在着另外一个问题,就是如何对发送人和接收人的真实性进行验证,防止所发出信息和接收信息的用户在时候抵赖,并且能够保证数据的完整性。

在非对称密钥体系中,加密的公钥和解密的私钥是不相同的,人们可以把公钥公开,谁都可以用,而解密的私钥只有解密人自己知道。

由于采用了两个密钥,并且从理论上可以保证要从公钥和密文中分析出明文和解密的私钥在计算机上是不可行的。那么以公钥为加密密钥,接收方使用私钥解密,则可以实现多个用户发送的密文只能由一个持有私钥的用户解读。

如果以用户的私钥作为加密密钥,而以公钥作为解密密钥,那么可以实现一个用户加密的消息由多个用户进行解读,这样非对称密钥密码就可以用于数字签名。

非对称加密技术可以大大简化密钥的管理,网络中N个用户进行通信加密,只需要使用N对密钥就可以了。

非对称加密技术与对称加密技术相比,其优势在于不需要共享通用的密钥,用于解密的私钥不需要发往任何地方,公钥在传递和发布过程中即使被截获,由于没有与公钥相匹配的私钥,截获的公钥对入侵者也没有太大的意义;公钥加密的缺点主要在于加密算法复杂,加密与解密过程比较慢。

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

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

相关文章

【windows Server 2019系列】 构建IIS服务器

个人名片: 对人间的热爱与歌颂,可抵岁月冗长🌞 Github👨🏻‍💻:念舒_C.ying CSDN主页✏️:念舒_C.ying 个人博客🌏 :念舒_C.ying Web服务器也称为WWW(World W…

电子厂测试题——难倒众多主播——大司马也才90分

一、选择题 1、1-2 ( ) A.1 B.3 C.-1 D.-3 2、|1-2|( ) A.1 B.3 C. -1 D.-3 3、1x2x3( ) A.5 B.6 C.7 D.8 4、3643( ) A.29 B.16 C.8 D.3 5、55x5( ) A.15 B.30 C.50 D.125 二、填空题(请填写阿拉伯数字) 6、110100 1000_______ 7、一个三角形砍去1个角&#…

Feign的两种最佳实践方式介绍

何谓最佳实践呢?就是企业中各种踩坑,最后总结出来的相对比较好的使用方式; 下面给大家介绍两种比较好的实践方案: 方式一(继承):给消费者的FeignClient和提供着的Controller定义一个统一的父接…

在逆变器中驱动和保护IGBT

在逆变器中驱动和保护IGBT 介绍 ACPL-339J是一款先进的1.0 A双输出,易于使用,智能的手机IGBT门驱动光耦合器接口。专为支持而设计MOSFET制造商的各种电流评级,ACPL-339J使它更容易为系统工程师支持不同的系统额定功率使用一个硬件平台通过…

全面解析若依框架(springboot-vue前后分离--后端部分)

1、 若依框架分解 - 启动配置 前端启动 # 进入项目目录 cd ruoyi-ui# 安装依赖 npm install# 强烈建议不要用直接使用 cnpm 安装,会有各种诡异的 bug,可以通过重新指定 registry 来解决 npm 安装速度慢的问题。 npm install --registryhttps://regist…

算法刷题打卡第47天:排序数组---归并排序

排序数组 难度:中等 给你一个整数数组 nums,请你将该数组升序排列。 示例 1: 输入:nums [5,2,3,1] 输出:[1,2,3,5]示例 2: 输入:nums [5,1,1,2,0,0] 输出:[0,0,1,1,2,5]归并排…

用CSS给健身的侣朋友做一个喝水记录本

前言 事情是这样的,由于七八月份的晚上时不时就坐在地摊上开始了喝酒撸串的一系列放肆的长肉肉项目。 这不,前段时间女朋友痛下决心(心血来潮)地就去报了一个健身的私教班,按照教练给的饮食计划中,其中有一…

卵巢早衰与微生物群,营养治疗新进展

卵巢早衰 卵巢早衰(premature ovarian insufficiency,简称POI)在生殖系统疾病中位居首位,这些疾病可能会损害多个功能系统,降低生活质量,最终剥夺女性患者的生育能力。 目前的激素替代疗法不能改善受孕或降…

NR PDSCH(七) DL SPS

非动态调度,除了PUSCH configured grant type 1和2的传输,还有PDSCH SPS 传输,两者的流程基本类似,也有些小区别。在实网并没有见过配置DL SPS PDSCH传输的log,但还是按顺序理一遍相关内容。 RRC/MAC 先看下MAC 38.32…

文件上传,还存储在应用服务器?

一般项目开发中都会有文件、图片、视频等文件上传并能够访问的场景。要实现这样的场景,要么把文件存储在应用服务器上,要么搭建文件服务来存储。但是这两种方式也有不少的缺点,增加运维的成本。 因此,追求用户体验的项目可能会考…

Tomcat安装配置全解

👌 棒棒有言:也许我一直照着别人的方向飞,可是这次,我想要用我的方式飞翔一次!人生,既要淡,又要有味。凡事不必太在意,一切随缘,缘深多聚聚,缘浅随它去。凡事…

数据库分库分表

文章目录为什么要分库分表?数据切分垂直切分水平切分(每个表的结构相同)范围拆分取模拆分(一般为业务主键)分库分表带来的问题数据倾斜问题热点问题事务问题聚合查询问题分页问题非分区业务查询分库分表实现或工具hash…

DSP篇--C6701功能调试系列之 UART串口测试

目录 1、原理 2、测试 调试的前期准备可以参考前面的博文:DSP篇--C6701功能调试系列之前期准备_nanke_yh的博客-CSDN博客 UART串口收发数据存在两种模式:通常的串口模式(McBSP in Serial Port Mode)和GPIO模式(McBS…

哈希表及其与Java类集的关系

目录 1.哈希表的概念 2.哈希冲突 3.如何避免哈希冲突? 3.1哈希函数设计 3.2 负载因子的调节 4.解决哈希冲突 4.1闭散列 4.1.1线性探测 4.1.2二次探测 4.2开散列(哈希桶) 5.HashMap 6.HashSet 1.哈希表的概念 假设有一组数据,要让你去搜索其中的一个关键码,这种场…

JWT快速入门及所需依赖

目录 1.JWT 1.1什么是JWT 1.2JWT的构成 jwt的头部 payload signature 1.3JWT快速入门案例 2Jwt认证(微服务) 2.1微服务下统一权限认证 2.2应用认证 3.无状态的JWT令牌如何实现续签功能? 3.1不允许改变Token令牌实现续签 3.2允许改…

计算机毕业设计django基于python大学生多媒体学习系统

项目介绍 随着计算机多媒体技术的发展和网络的普及。采用当前流行的B/S模式以及3层架构的设计思想通过Python技术来开发此系统的目的是建立一个配合网络环境的大学生多媒体学习系统的平台,这样可以有效地解决数据学习系统混乱的局面。 本文首先介绍了大学生多媒体学习系统的发…

eslint Parsing error: The keyword ‘export‘ is reserved

报错 原因 ECMAScript modules(import/export) 是 es6 的语法。 根据 eslint 官方文档 Configure language options ,eslint 默认使用 es5 语法: 解决 要让 eslint 知道我在使用 es6 的 modules 语法。有下面几种方法: 设置 env 为 es6&am…

喜讯 | 第三届国际科创节,企企通喜提两项大奖

近日,第三届国际科创节暨数服会STIF奖评选活动重磅揭晓,旨在向科技创新与数字化转型引领者致敬。企企通作为作为数字化采购平台领军者,凭借业内领先的技术实力与优秀的服务口碑,经过层层筛选和专业评审,企企通最终荣膺…

【LeetCode每日一题:1785. 构成特定和需要添加的最少元素~~~数组公式推导+防止整型溢出+向上取整+贪心】

题目描述 给你一个整数数组 nums &#xff0c;和两个整数 limit 与 goal 。数组 nums 有一条重要属性&#xff1a;abs(nums[i]) < limit 。 返回使数组元素总和等于 goal 所需要向数组中添加的 最少元素数量 &#xff0c;添加元素 不应改变 数组中 abs(nums[i]) < limi…

内存管理:虚拟地址空间和堆

准备用一个系列来总结一下内存管理涉及到的相关知识&#xff0c;范围从底层的数据结构和算法&#xff0c;到上层的API的使用&#xff0c;这里的内存管理&#xff0c;目前打算主要是侧重在堆的管理&#xff0c;本文作为一个引子&#xff0c;先粗略讲一下虚拟地址空间、堆管理、a…