加密与认证技术

news/2024/5/20 1:32:38/文章来源:https://blog.csdn.net/weixin_43071717/article/details/106747629

加密与认证技术

  • 密码技术概述
  • 密码算法与密码体制的基本概念
          • 加密算法与解密算法
    • 秘钥的作用
    • 什么是密码
    • 密钥长度
  • 对称密码体系
    • 对称加密的基本概念
    • 典型的对称加密算法
      • 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  6M  E  G  A  B  U  C  Ki  t  i  s  a  l  o  ve  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.luyixian.cn/news_show_236297.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Jmeter(十六):jmeter场景的运行架构(本地运行和远程运行)配置远程负载机

jmeter场景的运行架构(本地运行和远程运行) 运行方式: GUI运行:通过图形界面方式运行,该运行方式的可视化界面及监听器动态展示 结果都比较消耗负载机资源,建议大并发时不用,一般进行脚本调试; 命令行运行…

Jina 开箱即用的云原生多模态系统解决方案

Jina 是一个基于云原生的多模态应用框架,开发者使用 Jina 可以轻松构建、部署和维护高性能的云原生应用。你可能认为这些都只是空泛的营销口号,甚至产生疑问,到底什么是云原生?对构建多模态应用有什么帮助?它是否只是 …

2022年总结:道阻且长,行则将至

前言 今年是第四个年头写总结了,直到这个时候,我仍未想出今年的标题是什么。 2019年总结,平凡的我仍在平凡的生活 2020年总结,所有努力只为一份期待 2021年总结:前路有光,初心莫忘 如果非得用一句话来…

Spark 3.0 - 12.ML GBDT 梯度提升树理论与实战

目录 一.引言 二.GBDT 理论 1.集成学习 2.分类 & 回归问题 3.梯度提升 4.GBDT 生成 三.GBDT 实战 1.数据准备 2.构建 GBDT Pipeline 3.预测与评估 四.总结 一.引言 关于决策树前面已经介绍了常规决策树与随机森林两种类型的知识,本文主要介绍梯度提…

微服务调用工具

微服务调用工具目录概述需求:设计思路实现思路分析1.A2.B3.C参考资料和推荐阅读Survive by day and develop by night. talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait for change,challenge Survive…

华为二面,原来是我对自动化测试的理解太肤浅了..

如何使用Python实现自动化测试 如果你入职一家新的公司,领导让你开展自动化测试,作为一个新人,你肯定会手忙脚乱,你会如何落地自动化测试呢?资深测试架构师沉醉将告诉你如何落地自动kan化测试,本次话题主要…

事业编招聘:南方科技大学附属实验学校2022年·面向应届毕业生招聘在编教师公告

南方科技大学是在中国高等教育改革发展背景下创建的一所高起点公办创新型大学,2022年2月14日,教育部等三部委公布第二轮“双一流”建设高校及建设学科名单,南方科技大学入选“双一流”建设高校名单。 南方科技大学附属实验学校,地…

大学生静态HTML网页源码 我的校园网页设计成品 学校班级网页制作模板 web课程设计 dreamweaver网页作业

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

Jenkins持续集成项目搭建与实践——基于Python Selenium自动化测试(自由风格)

📌 博客主页: 程序员二黑 📌 专注于软件测试领域相关技术实践和思考,持续分享自动化软件测试开发干货知识! 📌 公号同名,欢迎加入我的测试交流群,我们一起交流学习! 目录…

艾美捷CpG ODN——ODN 1720 (TLRGRADE)说明书

艾美捷CpG ODN系列——ODN 1720 (TLRGRADE):具有硫代磷酸酯骨架的GpC寡脱氧核苷酸。 艾美捷CpG ODN 丨ODN 1720 (TLRGRADE)化学性质: 序列:5-tccatgagcttcctgatgct-3(小写字母表示硫代磷酸酯键)。 MW:638…

MySQL -2 指令

客户端SQL指令记录: -- 针对 数据库和针对数据表 (一)数据库 1. 查看当前所有数据库:show databases; 2. 创建数据库:create database 数据库名 DEFAULT CHARSET utf8 COLLATE utf8_general_ci; 3. 删除数据库&#…

微信公众号开发——实现用户微信网页授权流程

😊 作者: 一恍过去💖 主页: https://blog.csdn.net/zhuocailing3390🎊 社区: Java技术栈交流🎉 主题: 微信公众号开发——实现用户微信网页授权流程⏱️ 创作时间: …

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

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

嵌入式软件工程师技能树——Linux应用编程+网络编程+驱动开发+操作系统+计算机网络

文章目录Linux驱动开发1、Linux内核组成2、用户空间与内核的通讯方式有哪些?3、系统调用read/write流程4、内核态用户态的区别5、bootloader内核 根文件的关系6、BootLoader的作用7、BootLoader两个启动阶段1、汇编实现,完成依赖于CPU体系架构的设置&…

异常检测方法总结

在数据挖掘中,异常检测(英语:anomaly detection)对不匹配预期模式或数据集中其他项目的项目、事件或观测值的识别。 通常异常项目会转变成银行欺诈、结构缺陷、医疗问题、文本错误等类型的问题。异常也被称为离群值、新奇、噪声、…

[Android移动安全渗透基础教程] 易受攻击的移动应用程序

也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大 少走了弯路,也就错过了风景,无论如何,感谢经历 0x01 如何设置 GoatDroid (FourGoats) 1.1 简介(概述&#…

第十四届蓝桥杯集训——JavaC组第十三篇——for循环

第十四届蓝桥杯集训——JavaC组第十三篇——for循环 目录 第十四届蓝桥杯集训——JavaC组第十三篇——for循环 for循环(重点) 倒序迭代器 for循环死循环 for循环示例 暴力循环 等差数列求和公式 基础循环展开 循环控制语句 break结束 continue继续 for循环(重点) f…

MySQL主从复制太慢,怎么办?

本文分析了MySQL主从延迟的原因以及介绍了MTS方案。点击上方“后端开发技术”,选择“设为星标” ,优质资源及时送达mysql主从同步延迟原因导致备库延迟的原因主要有如下几种:通常备库所在机器的性能要比主库所在的机器性能差,执行…

nodejs092学生考勤请假管理系统vue

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.3 B/S结构 4 2.4 MySQL数据库 4 前端技术:nodejsvueelementui 前端:HTML5,CSS3、JavaScript、VUE 系统…

ChatGpt详细注册流程

ChatGpt详细注册流程ChatGpt的网址:直接点击我 点击链接后向下滑动看到TRY CHATGPT如下图所示: 点击TRY CHATGPT后会跳转如下图界面: 点击Log in(登录)如下图: 因为首次登录你肯定是没有账号的所以需要先点击红框框出的Sign up…