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 个二进制为一个分组进行加密。以分组为单位进行处理的密码算法成为分组密码。

相关推荐
真滴book理喻1 小时前
Vue(四)
前端·javascript·vue.js
程序员_三木1 小时前
Three.js入门-Raycaster鼠标拾取详解与应用
开发语言·javascript·计算机外设·webgl·three.js
开心工作室_kaic3 小时前
springboot476基于vue篮球联盟管理系统(论文+源码)_kaic
前端·javascript·vue.js
川石教育3 小时前
Vue前端开发-缓存优化
前端·javascript·vue.js·缓存·前端框架·vue·数据缓存
搏博3 小时前
使用Vue创建前后端分离项目的过程(前端部分)
前端·javascript·vue.js
温轻舟3 小时前
前端开发 之 12个鼠标交互特效上【附完整源码】
开发语言·前端·javascript·css·html·交互·温轻舟
web135085886353 小时前
2024-05-18 前端模块化开发——ESModule模块化
开发语言·前端·javascript
LCG元4 小时前
javascript页面设计案例【使用HTML、CSS和JavaScript创建一个基本的互动网页】
javascript
技术程序猿华锋5 小时前
Gemini 2.0 Flash 体验版实测:日常视觉识别的最佳选择,关键在于其API Key现在是免费调用
开发语言·javascript·ecmascript·googlecloud·gemini
TttHhhYy5 小时前
uniapp+vue开发app,蓝牙连接,蓝牙接收文件保存到手机特定文件夹,从手机特定目录(可自定义),读取文件内容,这篇首先说如何读取,手机目录如何寻找
开发语言·前端·javascript·vue.js·uni-app