js逆向第一课 密码学介绍

什么是密码学?

密码学(Cryptology)是一种用来混淆的技术,它希望将正常的、可识别的信息转变为无法识别的信息。

目前密码学的研究,一种是偏应用,把现有的,别人研究出来的密码学算法,放在一个合适的地方,使这些算法能够发挥出更大的作用;另一种是偏理论的,研究新的密码学算法,或者研究现有密码学算法的安全性,对现有密码学算法进行安全性、效率等改进,比如众所周知的密码学两大分支密密码编码学和密码分析学。

密码编码学是指为了达到隐藏消息含义目的,按约定的规则将表示明文信息的消息变换为秘密信息的科学,其有三个分支:对称密码学,非对称密码学和密码协议。

密码分析学指的是研究密码、密文或密码系统,着眼于找到其弱点,在不知道密匙和算法的情况下,从密文中得到原文的学科。如图所示,密码分析的方法有很多,包括数学分析法,穷举法、差分分析法等等,其中最有效的攻击手段是社会工程学。

密码学主要研究信息的安全传输和安全存储,集中于密码算法的选择使用、密码学协议的设计以及密钥生命周期的管理(包括产生、传输、存储、使用、销毁等)等方面。密码学的加密方式基于数学理论,加密手段主要采用计算机加密。

密码学与网络安全的关系:

前两年,一位名为Peter Shor 的数学家表达了他对量子计算机出现会对银行体系、支付系统造成毁灭性的打击。因为它的出现会RSA变得更好破解,而那些重要的金融系统都依赖RSA加密算法。

尽管我们很难感受密码学的运用,但密码学是网络安全的基石。

密码学在金融、民生、教育、电子商务、物联网、工业制造等方面,通过公开密码算法,统一密码协议,秘密密钥的方式进行安全保护。

密码学专业现状及学习难度

密码学涉及的有计算机、网络安全、信息安全、数学、物理等。由于密码学的教学教研门槛很高,因此国内只有少数军校以及重点院校开设密码学。

在网络安全领域,网络攻防的门槛较低,不需要懂太多的数学,熟悉代码,就可以入门,打比赛经验越多,能力越强。必须不断学习前沿的东西,看懂越来越复杂的代码。

而密码学,门槛则高很多。首先,需要一定的英语水平,能够熟读英文教材;还要有扎实的数学基础(线性代数、信息安全数学基础、数论、近世代数等),才可以看懂那些厉害的理论类文章。

为什么需要密码?

在现代社会中,很多信息都存储在计算机里,这让信息的增删改查变得非常方便,信息可以通过多种方式传递给任何人。因此,保护好自己的秘密信息变得非常困难。为了解决这些问题,人们开发出形形色色的“密码技术”。

从密码、认证、应用技术三方面介绍。

首先看一下历史上著名的密码,第一个是恺撒密码,恺撒密码是将明文中所使用的字母表按照一定位数平移得到密文。在我们得到一串密文之后,可通过穷举的方式进行暴力破解,因为恺撒密码的密钥空间为 26,很容易被破解出来。

Enjoy it while it lasts  平移三位得到密文

e->H  n->Q  j->M  o->R  y->B  i->L  w->Z  h->K  l->O  t->W  a->D s->V

HQMRB LW ZKLOH LW ODVWV

对应关系是不定的,所以如果用暴力破解的话,密钥空间为 26*25*.. 即使每秒遍历 10 亿个密钥,也要遍历 120 亿年,所以极难破解。但是使用频率分析法破解就非常容易,统计密文中字符出现的频率,从其他样文中寻找规律,比如一篇文章出现最多的字符是e,就可把密文中出现最多的字符替换为e。文中经常会出现 is  the this 这样的字眼,根据这些规律进行替换尝试。密文越长的话越容易被破解。

以上可知加密算法应要保证密钥空间强度,密文及密钥也不应有一定规律。

DES (Data Encryption Standard) 是 1977 年美国联邦信息处理标准(FIPS)中所采用的一种对称密码(FIPS 46-3)。DES 一直以来被美国以及其他国家的政府和银行所使用。

1997 年 DES Challenge I 比赛中用了 96 天破解了 DES 密钥,1998 年的 DES Challenge II-1 比赛中用了 41 天就破解了密钥。1998 年的 DES Challenge II-2 比赛中用了 56 个小时,1999 年的 DES Challenge III 比赛中只用了 22 小时 15 分钟。目前来说,DES 已经不再安全了。除了用来解密以前老的 DES 密文以外,不再使用 DES 进行加密了。

DES 是一种把 64 位明文加密成 64 位密文的对称加密算法。它的密钥长度为 64 比特,但是除去每 7 个二进制位会设置一个用于错误检测的位以外,实际上密钥为 56 比特。DES 会以 64 个二进制为一个分组进行加密。以分组为单位进行处理的密码算法成为分组密码。

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

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

相关文章

C语言用awtk开发界面访问http接口

AWTK全称为Toolkit AnyWhere,是ZLG倾心打造的一套基于C语言开发的GUI框架。旨在为用户提供一个功能强大、高效可靠、简单易用、可轻松做出炫酷效果的GUI引擎,并支持跨平台同步开发,一次编程,终生使用。 1. 初识AWTK | AWStudio社区…

react中hooks闭包

import React, { useState } from react;function Counter() {const [count, setCount] useState(0);return (<div><p>Count: {count}</p><button onClick{() > setCount(count 1)}>Increment</button></div>); }在上面的 React 组件…

常见的Elasticsearch操作

在Elasticsearch中&#xff0c;增删改查操作具有明显的标识&#xff0c;通常使用HTTP方法和URI来表示不同的操作类型。以下是一些常见的Elasticsearch操作及其标识&#xff1a; 增&#xff08;Create/Index&#xff09;&#xff1a; HTTP方法&#xff1a; 通常使用PUT或POST方法…

2023年中国调速器产量、销量及市场规模分析[图]

调速器行业是指生产、销售和维修各种调速器设备的行业。调速器是一种能够改变机械传动系统输出转速的装置&#xff0c;通过调整输入和输出的转速比来实现转速调节的功能。 调速器行业分类 资料来源&#xff1a;共研产业咨询&#xff08;共研网&#xff09; 随着工业自动化程度…

CentOS | 添加普通用户并授权sudo

sudo -i adduser peter passwd peter whereis sudoers nano /etc/sudoers添加一行新用户到root组 ## Allow root to run any commands anywhere root ALL(ALL) ALL peter ALL(ALL) ALL如果提升权限后无法cd到其他目录等&#xff0c;修改 /etc/passwd 文件&…

海外跨境商城电商源码-进出口电商平台网站-多语言多商户多货币平台

一、海外跨境商城电商源码简介 海外跨境电商已成为全球经济发展的重要推动力。而海外跨境商城电商源码则是实现全球化电商的关键工具。本文将详细介绍海外跨境商城电商源码及其相关内容。 二、如何理解海外跨境商城电商源码 海外跨境商城电商源码是指一套已经开发好并可直接应用…

ZKP6.2 Discrete-log-based Polynomial Commitments (KZG10)

ZKP学习笔记 ZK-Learning MOOC课程笔记 Lecture 6: Discrete-log-based Polynomial Commitments (Yupeng Zhang) 6.2 KZG polynomial commitment and its variants KZG: [Kate-Zaverucha-Goldberg 2010]Procedure Soundness: q-Strong Bilinear Diffie-Hellman (q-SBDH) a…

致敬技术与创新·20231024程序员节

每年的10月24日&#xff0c;全球的程序员们都会欢庆属于他们的节日——1024程序员节。这个节日旨在致敬那些用代码改变世界的程序员们&#xff0c;以及他们对于技术创新的执着追求。在这一天&#xff0c;让我们一起来了解这个节日的由来、意义&#xff0c;以及如何庆祝这个特殊…

MySQL MVCC机制探秘:数据一致性与并发处理的完美结合,助你成为数据库高手

一、前言 在分析 MVCC 的原理之前&#xff0c;我们先回顾一下 MySQL 的一些内容以及关于 MVCC 的一些简单介绍。&#xff08;注:下面没有特别说明默认 MySQL 的引擎为 InnoDB &#xff09; 1.1 数据库的并发场景 数据库并发场景有三种&#xff0c;分别是&#xff1a; 读-读…

竞赛选题 深度学习人脸表情识别算法 - opencv python 机器视觉

文章目录 0 前言1 技术介绍1.1 技术概括1.2 目前表情识别实现技术 2 实现效果3 深度学习表情识别实现过程3.1 网络架构3.2 数据3.3 实现流程3.4 部分实现代码 4 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 深度学习人脸表情识别系…

算法学习(三)利用前序遍历的思想求解层序遍历

给定一个二叉树&#xff0c;返回该二叉树层序遍历的结果&#xff0c;&#xff08;从左到右&#xff0c;一层一层地遍历&#xff09; 例如&#xff1a; 给定的二叉树是{3,9,20,#,#,15,7}, 我的解法&#xff1a; 在前序遍历的基础上&#xff0c;增加一个深度参数&#xff0c;结果…

rapidocr_paddle[gpu]:GPU端推理库来了

简介 rapidocr_paddle系列包是基于PaddlePaddle框架作为推理引擎的&#xff0c;支持CPU和GPU上推理。值得说明的是&#xff0c;这个包和PaddleOCR相比&#xff0c;代码基本都是一样的&#xff0c;只不过这个库将里面核心推理代码抽了出来&#xff0c;更加精简而已。 推荐GPU上…

《java核心卷Ⅰ》知识点总结(可作面试题)

&#x1f6eb; JDK和JRE傻傻分不清?&#x1f6eb; HelloWorld的输出都经历了啥&#xff1f;&#x1f6eb; Java的三个版本都是啥&#xff1f;&#x1f6eb; 关于main方法你都知道啥&#xff1f;main方法被声明为private会怎样&#xff1f;&#x1f6eb; 强制and自动类型转换都…

8.1 矢量图层符号化整体说明

文章目录 前言符号化与图层渲染符号符号层渲染器 总结 前言 地图制图是QGIS的优势所在&#xff0c;QGIS包含完整的地图制图功能&#xff0c;如标注与注记、符号化与地图综合等多种功能。 符号化&#xff08;Symbolization&#xff09;是指利用符号将地理事物或现象抽象化。 QGi…

强化学习代码实战---多臂赌博机---AttributeError: ‘EntryPoints‘ object has no attribute ‘get‘

1.问题 配置window10&#xff0c;python3.7&#xff0c;tensorflow1.14.0&#xff0c;运行第一节多臂赌博机代码时遇到AttributeError: ‘EntryPoints‘ object has no attribute ‘get‘。 2.解决 执行以下代码&#xff1a; pip install frozenlist1.3.1 geopy2.2.0 humanize…

小知识(5) el-table行样式失效问题

一、实现效果 子级呈现不同颜色去区分 二、最初代码 tips: 我这里使用的vue3 elementplus <el-table :row-class-name"tableRowClassName" >... </el-table>function tableRowClassName({ row, rowIndex }) {if (row.children.length 0) {return …

Java面试题:链表-反转链表

问题描述 给定一个单链表的头结点pHead(该头节点是有值的&#xff0c;比如在下图&#xff0c;它的val是1)&#xff0c;长度为n&#xff0c;反转该链表后&#xff0c;返回新链表的表头。 如当输入链表{1,2,3}时&#xff0c;经反转后&#xff0c;原链表变为{3,2,1}&#xff0c;…

Django 地址接口开发

应用 Mixin 混合类进行收货地址接口开发 python ../manage.py startapp address继承了mixins扩展类&#xff0c;进到里面可以稍微看下源码 该方法帮我们实现了获取验证及保存的功能 address/views from rest_framework.generics import GenericAPIView from rest_framewo…

移动端滚动穿透与滚动溢出解决方案

滚动穿透 问题描述 在移动端 WEB 开发的时候&#xff08;小程序也雷同&#xff09;&#xff0c;如上录屏所示&#xff0c;如果页面超过一屏高度出现滚动条时&#xff0c;在 fixed 定位的弹窗遮罩层上进行滑动&#xff0c;它下面的内容也会跟着一起滚动&#xff0c;看起来好像事…

PC连wifi,网线连接旭日X3派以共享网络

PC电脑连好wifi&#xff0c;找到【控制面板->网络和Internet->网络和共享中心->查看网络状态和任务->更改适配器设置】 找到WLAN&#xff0c;右键【属性->共享】勾上允许&#xff0c;然后【确定】。 现在去与PC通过网线连接好的X3派上配置&#xff1a; 参考&a…