密码学的一些常识01

news2024/9/20 14:51:59

作为一个小白,对称加密,非对称加密,数字签名,数字证书,CA,diff-helman,DES,AED,RSA……这些都不会。所以,百度启动,先初步了解。

实际应用

我是个小白……0基础的,所以,搞点实际应用吧,这个比数学公式好理解。

网页1

Enigma密码机是如何工作的?_哔哩哔哩_bilibili

这是一个3D建模的动画。

从这里,可以发现,它是对称的,如果Y->E,那么也有E->Y。因为,同一条电线,电流从这头流入那就一定会从那头流出,从那头流入那就一定会从这头流出。

网页2

【自制中字】二战德军 Enigma 密码机原理演示与破解

加密的演示:

【【自制中字】二战德军 Enigma 密码机原理演示与破解】 【精准空降到 01:07】 

7c69d3779984735e9a0d243262f235ce.gif 8f63f2b3537f914f1f04026fdc1db643.png

解密的演示:

【【自制中字】二战德军 Enigma 密码机原理演示与破解】 【精准空降到 05:30】

差不多,就是倒过来。

网页3

不是视频,是个长文

《模仿游戏》中艾伦图灵是如何破译英格玛的? - 十一点半的回答 - 知乎

机器创造出来的密码怪兽,只有机器才能战胜。

初步了解,百度

【直播回放】《图解密码技术》译者分享:有趣&有用的密码学_哔哩哔哩_bilibili

顺着这个视频,来初步百度一下这些概念吧,先忽略细节,这里只知道个大概就可以了。

历史上的密码

上面见过的……

现代密码

存在的问题与解决方法

对称加密

至少,你知道了,密钥,是一串数字

对称加密原理 - 一种古老的加密方式_哔哩哔哩_bilibili

具体的和异或有关

用了自反

异或的自反,这里用棋子翻转,解释的很形象

非对称加密

密钥也是个数字

这个流程图挺好的

幂指,是这样的,这个流程图,也很形象

这个视频底下的评论挺形象的……大概有点点感觉了。

四分钟搞明白非对称加密_哔哩哔哩_bilibili

这个是一个更具体的流程图

在互联网上, 如何保密的传输信息. 小学生都懂的RSA加密算法原理._哔哩哔哩_bilibili

 因为模运算不大可逆,所以逆着来不行;那么,能不能把密钥猜出来,正着搞?

数学不好也能听懂的算法 - RSA加密和解密原理和过程_哔哩哔哩_bilibili

  • D和E,T有关
  • E在公钥里,是已知的,所以只要求出T
  • T和p,q有关,而且N=pq,N在公钥里是已知的,所以只要从N推导出pq就可以了,怎么搞——把N给因式分解掉就可以了。但是这个计算量不小,不大做的来,所以正着搞也不行。

总结,反着搞,正着搞,都不行。

还有啊,那个pq,好像是随机生成的

哈希与完整性

实际例子:

一些特点

单向:把它看成一个有损压缩,长变短了嘛!所以没办法还原

抽屉原理,7个抽屉8个球,必然重复。好的哈希没有这个问题。

应用:不用明文存密码了

加随机数【盐】,是为了防止字典攻击,也就是提前计算在那里等着。比如提前计算好123456这个常用密码,守株待兔。

消息认证码

防止消息被中间人第三方篡改,和上面的那个加盐再过哈希差不多

但是还有问题:中间人录下来重放多次……

数字签名

相当于签名

把公钥加密,私钥解密给反过来了

还有个对比的过程?消息和数字签名都发过来了啊

还有个问题:消息太长,数字签名【密文】也很长,不好传输。

所以,就有了先对消息哈希值算摘要,对摘要进行签名这么回事,签名后的摘要解密以后就得到了摘要,然后把消息再过一遍哈希,匹配的话就可以了。

这个更具体一点

数字签名 及 数字证书 原理_哔哩哔哩_bilibili

和手写签名,成对的看,会好理解一点。签名,防止不认账的么? 

可以用来防止下载的app被篡改,植入其它的玩意

但是也有问题。和公钥私钥有关的,都会有中间人攻击的问题。数字签名是反过来的公钥私钥,所以也存在的。

中间人,隐身人;经常遇到的,因为上网会经过很多代理服务器

怎么办?我怎么知道这个公钥是bob而不是中间人的?找个机构认证一下——数字证书

数字证书

trent会不会被中间人截了?搞个trent的trent,套娃……

最后套出来了个根认证中心,没几个,不多。

可行根证书,RCA,不多,所以所有的都预先埋在操作系统里了。有了这个公钥,就可以层层往下验证,看是否可靠。

所以,不要装啥魔改的,盗版的操作系统。

一个更具体的流程图:

数字签名 及 数字证书 原理_哔哩哔哩_bilibili

 

 

小结

五大工具

密码学应用:STL/TLS

好像是个混合加密的过程,具体的说是让看书。

一些建议

相关的书

这个是书:

后记

大概有了个初步了解了。

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

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

相关文章

sklearn中精确率、召回率及F1值得micro,macro及weighted算法

为什么要用精确率和召回率 有这样一个训练集,1000个人参加了结直肠癌CRC的检测,实际有0.5%的人得了CRC(即5个人)。用神经网络算法得到检测这样一个训练集能达到99%的准确率。从数值上判断该算法是不错的,因为只有1%的误…

springboot+disruptor再体验

Disruptor是一个高性能队列,常见的还有kafka、rabbitmq等,下面体验一下~ 1、Disruptor简介 Disruptor 是英国外汇交易公司LMAX开发的一个高性能队列,研发的初衷是解决内存队列的延迟问题(在性能测试中发现竟然与I/O操作处于同样的…

[C++]STL之string的模拟实现

上一章我们对string的常见接口及使用进行了讲解,接下来我们将对一些常见的接口,包括构造函数,析构函数,运算符重载等等进行模拟实现.方便我们理解string接口实现的原理. 在讲解之前先说一下string的成员变量. 首先是字符串内容_…

微信小程序picker组件遇到的问题以及解决办法

一、picker基本概念二、遇到的问题三、如何解决四、延伸五、效果图一、picker基本概念 先来看一下官方文档中picker的基本概念: 从底部弹起的滚动选择器,现支持三种选择器,通过mode来区分,分别是普通选择器,时间选择器…

Bochs下载安装

文章目录下载Bochs配置BochsBochs Bochs是一个x86硬件平台的开源模拟器。它可以模拟各种硬件的配置。Bochs模拟的是整个PC平台,包括I/O设备、内存和BIOS。更为有趣的是,甚至可以不使用PC硬件来运行Bochs。事实上,它可以在任何编译运行Bochs的…

【Unity3D编辑器扩展】Unity3D中实现Text的字体的替换

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 在开发中会遇到要将场景中的Text的字体全部替换的情况。 所以…

NetInside网络分析帮您解决系统性能问题(一)

前言 某大学信息中心负责人表示,有用户反馈,在通过VPN访问某一IP的80端口时连接时断时续。同时信息中心给到的信息是通过VPN:XXX.XXX.253.5访问IP地址XXX.XXX.130.200的80端口出现访问时断时续问题。 需要通过分析系统看一下实际情况&#…

云原生周刊 | 人类、机器人与 Kubernetes

近日 Grafana 官网发表了一篇博客介绍了 2022 年比较有意思、脑洞大开的一些 Grafana 使用案例,比如监控特斯拉 Model 3 的充电状态、OTA 更新状况等等。 海事技术供应商 Royal IHC 利用 Grafana 展示客户船队的关键性能指标,例如燃料消耗、服务时间、大…

Allegro174版本新功能介绍之打开坐标超链接功能

Allegro174版本新功能介绍之打开坐标超链接功能 Allegro在升级到174的时候默认打开时,报表中的坐标是不带超链接的,如下图 直接点击坐标,是无法自动跳转到坐标所在位置的 但是Allegro174是开放了打开超链接的功能的,具体操作如下 选择Setup选择User Preferences

【 Vue3 + Vite + setup语法糖 + Pinia + VueRouter + Element Plus 第一篇】(持续更新中)

【 Vue3 Vite setup语法糖 Pinia VueRouter Element Plus 第一篇】(持续更新中) 1.使用 Vite脚手架创建 Vue3 项目 终端输入命令 npm create vite 项目名选择 Vue项目并回车根据自己的爱好,选择配置即可 2. 开启 Network 访问地址 npm run dev后 提示 use -…

磨金石教育||商业插画的发展现状如何?学习插画可以月入过万吗?

商业插画是什么?现如今,商业插画已经在生活中随处可见。你买的所有带包装的产品,上面的各种有趣的产品插图,就是插画师做的产品插画。特别是一些零食类的产品,在包装箱上,我们常可以看到各种大眼睛拟人化的…

电脑出现0xc00000e9错误代码的解决方法

每当假期结束回来,经常发现Windows系统的电脑一段时间不开机,开机就出现0xc00000e9的错误代码。为什么明明没有任何操作却出现错误呢?驱动人生带大家一文了解。 出现0xc00000e9错误代码的原因 先来了解一下电脑出现0xc00000e9错误代码的主要…

数字孪生架构

很多同学对数字孪生特别感兴趣,经常有同学问我:数据孪生系统怎么做?有没有教程?除了Unity开发,开发数字孪生还需要掌握什么技能?有人介绍了一个数字孪生的外包,从来没做过,能不能接&…

Spring 中常用的几个工具类

AnnotatedElementUtils 类 获取某个类的某个方法上是否有标注注解,并可以通过其他 API 获取到这个类注解上的属性值,该工具类其他 API 下面截图可以查看。 public static boolean isBeanAnnotated(Method method) {return AnnotatedElementUtils.hasAn…

Redis 应用问题解决

缓存穿透 key 对应的数据在数据源并不存在,每次针对此key的请求从缓存中获取不到,请求会都压到数据源,从而可能压垮数据源。 解决方案 一个一定不存在的缓存及查询不到的数据,由于缓存是不命中时被动写的,并且处于容…

docker 19.03构建跨平台的镜像包并推送到私有仓库

默认的docker构建image镜像是不能跨平台的,如果需要构建跨平台的镜像,需要docker的版本在19.03版本以上,并开启buildx。以下为具体的步骤 版本:docker 19.03。 一.安装/开启 buildx 1.1.手动开启dockerx开关 docker 19.3 暂默认不开启dockerx,需要手动开启 vim /etc/pro…

Scala 数据结构-集合

文章目录Scala 数据结构-集合一、集合简介1、不可变集合继承图2、可变集合继承图二、数组1、不可变数组(1) 创建数组(2) 访问数组(3) 遍历数组(4) 添加元素Scala 数据结构-集合 一、集合简介 1)Scala的集合有三大类:序列seq,集合Set&#x…

解决fstab丢失,重启系统变为只读模式

现象描述: 背景:openEuler20.03 在/etc/fstab文件丢失、重启系统后,系统变为只读模式 [rootlocalhost ~]# echo 111 > 1.txt -bash: 1.txt: Read-only file system 解决方法: 查看系统信息,确认挂载信息&#…

【C进阶】数据在内存中的存储

数据在内存中的存储前言一、数据类型介绍(一)基本概念(二)类型的基本归类1.整型家族2.浮点型家族3.构造类型4.指针类型5.空类型二、整形在内存中的存储(一)原码、反码、补码1.概念2.为什么内存中存的是补码…

android input 事件分发 --- 注册input

android input 事件分发 --- 注册input应用注册input事件应用注册input事件 应用如果要监听input的事件,那么肯定就存在一个注册监听input事件的过程,跟随着addView方法我们跟着走一下frameworks/base/core/java/android/view/WindowManagerImpl.java Ov…