每日扩展 | 密码学

admin 2024年10月4日23:04:42评论27 views字数 22593阅读75分18秒阅读模式

安全君呀设为"星标️"

第一时间收到文章更新

声明: 安全君呀 公众号文章中的技术只做研究之用,禁止用来从事非法用途,如有使用文章中的技术从事非法活动,一切后果由使用者自负,与本公众号无关。

文章声明:本篇文章内容部分选取网络,如有侵权,请告知删除。

1、密码学概述

1.1、什么是密码学

是一门研究信息安全保护的科学,以实现信息的保密性、完整性、可用性及抗抵赖性

1.2、密码学组成

加密学:研究信息的变换处理以实现信息的安全保护(研究加密)

解密学:研究通过密文获取对应的明文信息(研究解密)

目前,密码成为网络与信息安全的核心技术和基础支撑

1.3、密码学历史

古典密码学

现代密码学

1.3.1、古典密码学

其中,古典密码学,作为一种实用性艺术存在,其编码和破译通常依赖于设计者和敌手的创造力与技巧,并没

有对密码学原件进行清晰的定义.古典密码学主要包含以下几个方面:

替换加密

换位加密

奇奇怪怪的加密方式

1.3.1.1、替换加密(恺撒密码)

凯撒密码(Caesar Cipher或称恺撒加密、恺撒变换、变换加密、位移加密)是一种替换加密,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文.例,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推

每日扩展 | 密码学

1.3.1.1.1、凯撒密码实例

例如,当偏移量是左移 3 的时候(解密时的密钥就是 3):

明文字母表:ABCDEFGHIJKLMNOPQRSTUVWXYZ
密文字母表:DEFGHIJKLMNOPQRSTUVWXYZABC

使用时,加密者查找明文字母表中需要加密的消息中的每一个字母所在位置,并且写下密文字母表中对 应的字母。需要解密的人则根据事先已知的密钥反过来操作,得到原来的明文。例如:

明文:THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
密文:WKH TXLFN EURZQ IRA MXPSV RYHU WKH ODCB GRJ

1.3.1.1.2、凯撒密码解密作业

--凯撒密码已知密文解密--
xmer aerk kem hm ly fes xe dlir li ces

1.3.1.1.3、在线解密

https://www.xarg.org/tools/caesar-cipher/

https://planetcalc.com/1434/

1.3.1.2、换位加密(栅(zhà)栏密码)

栅栏密码(Rail-fence Cipher)就是把要加密的明文分成N个一组,然后把每组的第1个字符组合,每组第2个

字符组合...每组的第N(最后一个分组可能不足N个)个字符组合,最后把他们全部连接起来就是密文,这里以2栏、栅栏加密为例.

- 明文: The quick brown fox jumps over the lazy dog
- 去空格: Thequickbrownfoxjumpsoverthelazydog
- 分组: Th eq ui ck br ow nf ox ju mp so ve rt he la zy do g
- 第一组: Teucbonojmsvrhlzdg
- 第二组: hqikrwfxupoeteayo
- 密文: Teucbonojmsvrhlzdghqikrwfxupoeteayo

1.3.2、现代密码学

而现代密码学则起源于 20 世纪中后期出现的大量相关理论,1949 年香农(C. E. Shannon)发表了题为《保密系统的通信理论》的经典论文标志着现代密码学的开始.现代密码学主要包含以下几个方面:

1.3.2.1、现代密码学分支

对称加密(Symmetric Cryptography),以 DES,AES,RC4 为代表.

非对称加密(Asymmetric Cryptography),以 RSA,ElGamal,椭圆曲线加密为代表.

哈希函数(Hash Function),以 MD5,SHA-1,SHA-512 等为代表.

数字签名(Digital Signature),以 RSA 签名,ElGamal 签名,DSA 签名为代表.

1.3.2.2、对称加密两种方式

分组密码(Block Cipher),又称为块密码.

序列密码(Stream Cipher),又称为流密码.

1.3.2.3、密码学的目标

一般来说,密码设计者的根本目标是保障信息及信息系统的

机密性(Confidentiality)

完整性(Integrity)

可用性(Availability)

认证性(Authentication)

不可否认性(Non-repudiation)

1.3.2.4、信息安全的三要素

机密性、完整性、可用性)被称为信息安全的 CIA 三要素

2、字符集

字符集,从字面看,是多个字符的集合。字符是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。因此不同的字符组合在一起就可以认为是不同的字符集。当然不是瞎组合。国人常见字符集如下:

每日扩展 | 密码学

2.1、ASCII

ASCII编码即美国信息交换标准代码(American Standard Code for Information Interchange)是一套 共有128个字符的编码,它基于阿拉丁字母,主要作用是用来表示英语和西欧语言字符。ASCII规范编码 第一次公布于1967年,ascii码在1986年完成最后一次更新。ASCII码对照表等同于国际标准 ISO/IEC 646,ASCII码对照表是世界最通用的信息交换标准。

每日扩展 | 密码学

2.2、Unicode

统一码(Unicode),也叫万国码、单一码,由统一码联盟开发,是计算机科学领域里的一项业界标 准、UNICODE 就是要将所有的字符全部编码在一个字符集里面、比如 1-10000 编码简体中文、10001- 20000 编码繁体中文,依次类推,这样就构成了 UNICODE 字符集。但是 UNICODE 字符集并没说要怎么编 码、只是说某个数字代表某个字符、即之规定了数字到字符的的字典、但是没有规定在计算机中怎么编码。

每日扩展 | 密码学

3、常见编码

3.1、什么是字符编码

大家都知晓,计算机只认 0 和 1 组成的二进制数。所以整数通过进制转换转为二进制就可以被计算机处理。然而像文本、音频、视频等这样的信息,如何转为二进制被计算机处理呢?这就需要进行编码。

编码(encode)是把数据从一种形式转换为另外一种形式的过程,它是一套算法解码(decode)就是编码的逆过程。

比如对于 ASCII 字符集中的字符 1,转换为二进制是 00110001,这就是一次编码;将 00110001 显示为1,涉及到一次解码。

字符编码,顾名思义,是对字符进行编码,是字符和二进制数据之间转换的算法,它们之间必须一一对应,这是本文需要讨论的主题。一个二进制叫做位,8 位称为“字节”,根据计算一个字节一共可组合出 256(2 的 8 次方)种不同的状态。

3.1.1、ASCII

关于字符集和字符编码,使用 ASCII 进行总结说明:

ASCII 字符集是字母、数字、标点符号以及控制符(回车、换行、退格)等组成的 128 个字符。

ASCII 字符编码是将这 128 个字符转换为计算机可识别的二进制数据的一套规则(算法)。

因此当我们说 ASCII 时,一般同时指 ASCII 字符集和 ASCII 字符编码。通常,字符集会同时定义一套同名的字符编码规则。然而万事都有特例,比如 Unicode 就只是代表字符集,对应的字符编码有多种,比如 UTF-8、UTF-16 等

每日扩展 | 密码学

3.1.2、UTF

现在知道了 Unicode 只是代表字符集,它的编码规则是通过 UTF 系列定义的。

Unicode 为每一个字符提供了一个唯一的数字编码(代号),叫做 Code Point(码点)。这里可以查找你要查询某个字符的码点(Code Point):https://www.unicode.org/cgi-bin/GetUnihanData.pl

注意这里的码点不是字符编码,只是字符集而已、所以,Unicode 字符集一个最主要的工作就是维护这样一个表,可以把它想象成是一个数据库表,里面存储着每一个字符对应的唯一 ID(即 Code Point),统一用 U+XXXX 来表示(X 为 16 进制的字符,因为字符很多,并不一定所有的字符都是 4 个 16 进制数,比

如笑哭的 Emoji 表情,Code Point 是 U+1F602),如 「徐」U+5F90、「新」U+65B0。现在这个数据表已经拥有 100 多万的字符,还在不停的更新。

UTF 系列:

UTF 是 Unicode Transformation Format (Unicode 转换格式)的首字母缩写,专门解决 Unicode 的编码问题。根据编码规则的不同有 UTF-8、UTF-16 和 UTF-32 等几种具体的方案。

每日扩展 | 密码学

3.1.3、base64

3.1.3.1、什么是base64

Base64 是一种基于 64 个可打印字符来表示二进制数据的表示方法,每 6 个比特为一个单元,对应某个可打印字符

Base64 常用于在通常处理文本数据的场合,表示、传输、存储一些二进制数据,包括 MIME 的电子邮件及 XML 的一些复杂数据。

Base64 编码要求把 3 个 8 位字节(3*8=24)转化为 4 个 6 位的字节(4*6=24),之后在 6 位的前面补两个 0,形成 8 位一个字节的形式。 如果剩下的字符不足 3 个字节,则用 0 填充,输出字符使用 =,因此编码后输出的文本末尾可能会出现 1 或 2 个 =。

Base64 制定了一个编码表,以便进行统一转换。编码表的大小为 64,这也是 Base64** 名称的由来。

在 Base64 中的可打印字符包括字母 A-Z、a-z、数字 0-9,这样共有 62 个字符,此外两个可打印符号在不同的系统中而不同。

每日扩展 | 密码学

3.1.3.2、Base64 编码的基本步骤:

将数据划分为 3 个字节一组(24位)。

将每个字节转换为 8 位二进制形式。

将 24 位数据按照 6 位一组进行划分,得到 4 个 6 位的组。

将每个 6 位的组转换为对应的 Base64 字符。

如果数据不足 3 字节,进行填充。

将所有转换后的 Base64 字符连接起来,形成最终的编码结果。

3.1.3.3、示例1(abc)

假设有字符串“abc", 我们要对其进行base64编码,最后结果会是什么呢?

每日扩展 | 密码学

字符串abc对应3个字节,一共24位,按6位为一组可分为4组,在每组的高位补上00,经过转换,abc 的 base64 编码是 YWJj, 由原来的3个字母变成了4个,所以base64会比原字符串更长。那问题来了,假设 原始字符串不够3个字节,只有一个字节或者两个字节怎么办?

3.1.3.4、示例2(ab)

以例1参照, 按照上面的转换逻辑,经过编码转换,第三个字节只有4位,需要在第三组前后都要加两个 0,转换后的字符串是 YWI。 为了凑齐4个字节,还要在末尾补上一个"="号,最后得到的base64编码就 是: "YWI="

每日扩展 | 密码学

3.1.3.5、示例3(a)

如果原始字符只有一个字节,原理是类似的,第二个字节除了前面补两个0,还要在后面补4个0,得到的 字符串是YQ,剩下两个字节也用等号“=”来凑。所以a的base64编码就是 YQ==

每日扩展 | 密码学

Base64 编码具有以下特点:

编码后的数据长度总是比原始数据长约 1/3。

编码后的数据可以包含 A-Z、a-z、0-9 和两个额外字符的任意组合。

Base64 编码是一种可逆的编码方式,可以通过解码还原原始数据。

3.1.3.6、base64使用场景

3.1.3.6.1、网页图片

图片: <img src="data:image/jpeg;base64,...">

data:image/jpeg;base64, 是数据 URI 方案头。

/9j/4AAQSkZ... 是编码后的 base64 数据。

<img
src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gHYSUNDX1BST0ZJTEUAAQEAAA
HIAAAAAAQwAABtbnRyUkdCIFhZWiAH4AABAAEAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAACRyWFlaAAABFAAAABRnWFlaAAABKAAAAB
RiWFlaAAABPAAAABR3dHB0AAABUAAAABRyVFJDAAABZAAAAChnVFJDAAABZAAAAChiVFJDAAABZA
AAAChjcHJ0AAABjAAAADxtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAAgAAAAcAHMAUgBHAEJYWVog
AAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9Y
WVogAAAAAAAA9tYAAQAAAADTLXBhcmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAA
AAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACAAAAAcAEcAbwBvAGcAbABlACAASQBuAGMA
LgAgADIAMAAxADb/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfG
hsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgo
KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAcABwDASIAAhEBAxEB/
8QAGgAAAgIDAAAAAAAAAAAAAAAABwgDBgAEBf/EACoQAAEDAwIGAQQDAAAAAAAAAAECAwQAB
RESMQYTIUFxgQcUIjJCUWGh/8QAFwEAAwEAAAAAAAAAAAAAAAAAAAQFAv/EACERAAICAgEEAwAA
AAAAAAAAAAECAwQAERITFCExIlFh/9oADAMBAAIRAxEAPwBpgcJ69qpN4+S7BbJCmQ49McQcK+nQ
CAfJIB9Vny3c3rZwg6I6y25KcDGtO6QQSf8ABj3QTYbg2+1xH5cITZMsKcQh1a0NtthZT+pBJyg98YxWEj
nsyiGuPP7jdaShGjyXGPx14Hs7w+cNcaWa/rLUGQpL4GeU6nSrH9dj6qzdP4oJ8OW2zSYcK8QIKor6XS
nSl9w6XE4267dRvRmivJcjNOba0BWPIpSG0e4epMNOnvC2kHFZqpPFvvOB8hWBfEPDT8RkgSQQ40V
bah29jI90v6phgpTab/bHXFxnDy0hfJdbzuM4IIz128Gmn7VoTrdBnaFTYceQUK+3mthWnxmm9vG3W
iOmGRbNLrtzB0cHXC9vdlQosSPFTFaQNSkIJIbzvknc0RzAZWlsKT+CQgdewqeOhDaNLaEoSNgkYFSG
p1SgYWeadubudk5UkfkixDwF9Z//2Q==" alt=""/>

3.1.3.6.2、邮件:

每日扩展 | 密码学

3.1.3.7、Base64 隐写

Base64 编码要求把 3 个 8 位字节(3*8=24)转化为 4 个 6 位的字节(4*6=24),如果剩下的字符不 足 3 个字节,则用 0 填充

====P====01010000====
UA== 010100 000000
UB== 010100 000001
UC== 010100 000010
UD== 010100 000011
UE== 010100 000100
UF== 010100 000101
UG== 010100 000110
UH== 010100 000111
UI== 010100 001000
UJ== 010100 001001
UK== 010100 001010
UL== 010100 001011
UM== 010100 001100
UN== 010100 001101
UO== 010100 001110
UP== 010100 001111
====Q====
UQ==
UR==
US==
UT==
UU==
UV==
UW==
UX==
UY==
UZ==
bWFpbigpe2ludCBpLG5bXT17KCgoMSA8PDEpPDwgKDE8PDEpPDwoMTw8Cm==
ICAgICAgIDEpPDwoMTw8KDE+PjEpKSkrKCgxPDwxKTw8KDE8PDEpKSksKCgoMQp=
ICAgICAgIDw8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxKQq=
ICAgICAgIDw8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMQp=
ICAgICAgIDw8MSk8PCgxPDwxKTw8ICAgICAgICAgKDE8PDEpKS0oKDE8PDEpPDwoCr==
ICAgIAkxPDwxKTw8KDE8PDEpKSsgICAgICAgICgoMTw8MSk8PCgxPDwoMT4+Ch==
ICAgICAgIDEpKSkrKDE8PCgxPj4xKSkpICAgICAgICAgICAgICAgICAgICAgICAgLAq=
ICAgICAgICgoKDE8PDEpPDwoMTw8MSkgICAgICAgICAgICAgICAgICAgICAgICA8PAo=
ICAgICAgICgxPDwxKTw8KDE8PDEpKS0oKDEgPDwxKTw8KDE8PDEpIDw8KDE8PCgxCl==
ICAgICAgID4+MSkpKS0oKDE8PDEpPDwoMTw8KDE+PjEpKSkpLCgoKDE8PDEpCp==
ICAgICAgIDw8KCAgICAxPDwgICAgICAgICAgICAgICAgICAgICAgICAgIDEpCt==
ICAgICAgIDw8KCAgICAxPDwgICAgICAgICAgICAgICAgICAgICAgICAgIDEpCu==
ICAgICAgIDw8KCAxPDwxKSktKCgxIDw8MSk8PCAoMSA8PDEpPDwoMSA8PAr=
ICAgICAgICgxPj4xKSkpLSgoMTw8MSk8PCgxPDwoMT4+MSkpKSksKCgoMTw8MSk8PAo=
ICAgICAgICgxPDwxKTw8KDE8PDEpPDwoMTw8MSkpLSgoMTw8MSk8PCgxPDwxKTw8KAr=
ICAgICAgIDE8PCgxPj4xKSkpLSgxPDwoMT4+ICAgICAgICAgIDEpKSksKCgoMTw8MSk8PAq=
ICAgICAgICgxPDwxKTw8KDE8PDEpKSsgICAgKCgxPDwxKSAgICA8PCgxPDwxKTw8Ch==
ICAgICAgICgxPDwoMT4+MSkpKS0oKCAgICAgMTw8MSk8PCggICAgICAxPDwoMT4+Co==
ICAgICAgIDEpKSkpLCgoMTw8MSk8PCAgICAgICgxPDwxKSAgICAgICAgPDwoMTw8MSkpCl==
ICAgICAgICwoKCgxPDwxKTw8KDE8PCAgICAgIDEpPDwoICAgICAgIDE8PDEpPDwoMTw8MSkpLQr=
ICAgICAgICgoMTw8MSk8PCgxPDwxKSAgICAgKS0oMTw8KDE+PjEpICAgICAgKSksKCgoCj==
ICAgICAgIDE8PDEpPDwoMTw8MSk8PCggICAgMTw8MSk8PCgxPDwxKSktICAgICgoMQp=
ICAgICAgIDw8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQq=
ICAgICAgICkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PAp=
ICAgICAgICgxPDwxKTw8KDE8PCgxPj4xKSkpLSgxPDwoMT4+MSkpKSwgKCgoMTw8MQp=
ICAgICAgICk8PCgxPDwxKTw8KDE8PDEpPDwoMTw8MSkpLSgoMTw8MSk8PCAoMSAgCk==
ICAgICAgIDw8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCp==
ICAgICAgICkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8Cn==
ICAgICAgICggICAgIDE8PCgxPj4xKSkpKyAgICAoMTw8MSkpLCgoKDEgICAgIDw8Cj==
ICAgICAgIDEpICAgIDw8KDE8PDEpPDwgICAgICAoMTw8MSk8PCgxICAgICAgIDw8Ck==
ICAgICAgIDEgICAgICkpLSgoMTw8MSk8PCAgICAoMTw8MSk8PCgxICAgICAgIDw8Cj==
ICAgICAgICggICAgIDE+PjEpKSktKCgxICAgICAgPDwxKTw8KDE8PCAgICAgICAoCj==
ICAgICAgIDEgICAgID4+MSkpKSksKCgoMSAgICAgPDwxKTw8KDEgICAgICAgIDw8Cg==
ICAgICAgIDEgICAgICk8PCgxPDwxKTw8KCAgICAgMTw8MSkpLSgoMSAgICAgIDw8Cm==
ICAgICAgIDEgICAgICk8PCgxPDwxKTw8ICAgICAoMTw8MSkpKygoICAgICAgICAxCv==
ICAgICAgIDw8MSk8PCgxPDwoMT4+MSkpKSksKCgoMTw8MSk8PCgxPDwxKSA8PCgxCm==
ICAgICAgIDw8MSkpKygxPDwoMT4+MSkpKSwoKCgxPDwxKTw8KDE8PDEpKSArKCgxCs==
ICAgICAgIDw8MSk8PCAoMTw8KDE+PjEpKSkgKyAoMTw8ICgxPj4xKSkpfSA7Zm9yCn==
ICAgICAgIChpPSgxPj4xKTtpPCgoKDE8PDEpPDwoMSA8PDEpKSsoKDEgPDwxKTw8KAr=
ICAgICAgIDE8PCgxPj4xKSkpKygxPDwxKSk7aSsrKSAgcHJpbnRmKCIlYyIsbltpXSk7fQp=

隐写解码:等号前一位(m==)--》查 Bash64编码表 --》100110 --》两个等号,取后四位 --》0110 --》保留,取下一行,重复操作。(p=)--》101001 --》01 --》加上上面四位:011001 --》(q=)--》101010 --》10 --》01100110 --》与ASCII编码表比较:( f )(下面同理)

p= --> 101001 --> 01 --> r== --> 101011 --> 1011 --> h==--> 100001 --> 0001 --> 01101100 ( l )

q= --> 101010 --> 10 --> o= --> 101000 --> 00 --> l== --> 100101 --> 0101 --> 01100001 ( a )

3.1.3.8、练习

1、解码上边图片

2、找到一个网页源码里有使用

3、邮件里找到带base64 编码的邮件

3.1.3.9、base64在线编码-解码

https://www.bchrt.com/tools/base64-encode/

https://base64.us/

http://tool.chinaz.com/Tools/Base64.aspx

3.1.3.10、其他base 编码

Base16 密文由16个字符(0-9,A-F)组成

Base32 密文由32个字符(A-Z,2-7)组成

Base36 密文由36个字符(0-9,a-z)组成

Base58 Base58是用于Bitcoin中使用的一种独特的编码方式,主要用于产生Bitcoin的钱包地址

Base62 密文由62字符(0-9,a-z,A-Z)组成

Base85 base85 也称为Ascii85,是Paul E. Rutter为btoa实用程序开发的一种二进制文本编码形式

Base91 密文由91个字符(0-9,a-z,A-Z,!#$%&()*+,./:;<=>?@[]^_`{|}”)组成

base92 密文由92个字符(0-9,a-z,A-Z,!#$%&()*+,./:;<=>?@[]^_`{|}”)组成比base91多一个

Base100 (也被称为emoji表情符号编码解码)

3.1.4、Escape/Unescape

Escape/Unescape又叫 %u 编码、采用 UTF-16BE 模式,就是字符对应 UTF-16 16 进制表示方式前面加 %u、如: 字符 "中",UTF-16BE 是:"6d93", 因此 Escape 是 "%u6d93".

Unescape 解码 / 解密, 就是去掉 "%u" 后, 将 16 进制字符还原后, 由 utf-16 转码到自己目标字符. 如: 字符 "中",UTF-16BE 是:"6d93", 因此 Escape 是 "%u6d93".

例外字符: @ * / +

源文本: The
编码后: %u0054%u0068%u0065
%u5929%u738B%u76D6%u5730%u864E%u5B9D%u5854%u9547%u6CB3%u5996
%u5982%u679c%u8fd9%u662f%u8003%u8bd5%u9898%u76ee%u4f60%u4f1a%u505a%u4e48%uff1f

3.1.4.1、在线工具

http://web.chacuo.net/charsetescape

3.1.5、HTML 实体编码(HtmlEncode)

HTML实体编码,也即HTML中的 转义字符

常见的实体编码:

每日扩展 | 密码学

3.1.6、URL编码

url 编码又叫百分号编码, 是统一资源定位 (URL) 编码方式。URL 地址 (常说网址) 规定了常用地数字、字 母可以直接使用、 另外一批作为特殊用户字符也可以直接用( /,:@等 )、 剩下的其它所有字符必须通过 %xx 编码处理. 现在已经成为一种规范了、 基本所有程序语言都有这种编码, 如 js: 有 encodeURI、 encodeURIComponent,PHP 有 urlencode、urldecode 等. 编码方法很简单, 在该字节 ascii 码的的 16 进制字符前面加 %

如 空格字符, ascii 码是 32, 对应 16 进制是 '20' , 那么 urlencode 编码结果是:%20.

在该字节 ascii 码的的 16 进制字符前面加 %
===源文本===
The quick brown fox jumps over the lazy dog
===编码后===
%54%68%65%20%71%75%69%63%6b%20%62%72%6f%77%6e%20%66%6f%78%20%6a%75%6d%70%73%20
%6f%76%65%72%20%74%68%65%20%6c%61%7a%79%20%64%6f%67
%D5%E2%D2%BB%CC%E2%D3%A6%B8%C3%B8%F8%B6%E0%C9%D9%B7%D6

3.1.6.1、在线工具

http://web.chacuo.net/charseturlencode

https://meyerweb.com/eric/tools/dencoder/

http://tool.oschina.net/encode?type=4

http://www.mxcz.net/tools/Url.aspx

3.1.7、shellcode

shellcode是一段用于利用软件漏洞而执行的代码,shellcode为16进制的机器码,因为经常让攻击者获得shell而得名

十六进制机器码的本质是机器码,是cpu可以识别和执行的代码,这些代码是用十六进制数表示的

每日扩展 | 密码学

===源文本===
The quick brown fox jumps over the lazy dog
===编码后===
x54x68x65x7fx71x75x69x63x6bx7fx62x72x6fx77x6ex7fx66x6fx78x
7fx6ax75x6dx70x73x7fx6fx76x65x72x7fx74x68x65x7fx6cx61x7ax79
x7fx64x6fx67
20X660EX5929X661FX671FX4E94X660EX5929X8003X8BD5X

每日扩展 | 密码学

在线:十六进制到ASCII

https://www.bchrt.com/tools/hex-to-ascii/

3.1.8、Unicode四种表现形式

&# 、 &#x 、 u 都可以用来表示一串 unicode 编码

U 、U+开头和 &#x 开头是一样的 都是16进制 unicode字符的不同写法,&# 则是 unicode字符的10进制的写法

====源文本: The====
&#x [十六进制]: &#x0054;&#x0068;&#x0065; //html-unicode--
http://web.chacuo.net/charsethtmlunicode
&# [十进制]: &#00084;&#00104;&#00101; //html-unicode--
http://web.chacuo.net/charsethtmlunicode
U [十六进制]: U0054U0068U0065 //js-unicode--
http://web.chacuo.net/charsetjsascii
U+ [十六进制]: U+0054U+0068U+0065

解码题:

NTkyOSU3MzhCJTc2RDYlNTczMCU4NjRFJUZGMEMlNUI5RCU1ODU0JTk1NDclNkNCMyU1OTk2

NjYyNVxYNzcyMFxYNEUwRFxYODlDOVxYNjY1M1xYRkYwQ1xYNTkwNFxYNTkwNFxYOTVGQlxYNTU3Q1
xYOUUxRlxYMzAwMlxYNTkxQ1xYNjc2NVxYOThDRVxYOTZFOFxYNThGMFxYRkYwQ1xYODJCMVxYODQz
RFxYNzdFNVxYNTkxQVxYNUMxMVxYMzAwMlxY

5ZCO6L656L+Z5LiA5q615a2X5q+N5L6d54S25piv57yW56CB6Kej5a+G5Ye65p2l5omN566X5oiQ5Y
qfOml2d3NhaQ==

PCFEb2N0eXBlIGh0bWw+CjxodG1sIGxhbmc9InpoX2NuIj4KPGhlYWQ+CjxtZXRhIGh0dHAtZXF1aX
Y9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04IiAvPgo8dGl0
bGU+JiN4NjhkMjsmI3g2OGQyOyYjeDdjZDY7JiN4NGUwMDsmI3g0ZTJhOzwvdGl0bGU+CjwvaGVhZD
4KPGJvZHk+CjxwIHRpdGxlPSIiPiYjeDgxZWE7JiN4NWRmMTsmI3g0ZTcwOyYjeGZmMDE7PC9wPgo8
L2JvZHk+CjwvaHRtbD4=

4、哈希(hash)

4.1、什么是哈希

一般翻译做散列、杂凑,或音译为哈希、给定任意长度的输入数据,通过特定的哈希算法,能得到固定 长度的输出 (哈希值Hash Value)

每日扩展 | 密码学

4.2、哈希算法的特性

输入可以任意长度,输出是固定长度

计算 hash 值的速度比较快

防碰撞特性

做单向性(不可逆)

4.3、碰撞

在计算机科学中,碰撞或冲突是指两个不同的元素具有相同的哈希值、校验和,数字指纹时发生的情况。当数据量足够多(例如将所有可能的人名和计算机文件名映射到一段字符上)时,碰撞是不可避免的。

4.4、盐(Salt)

在密码学中,是指在哈希之前将哈希内容(例如:密码)的任意固定位置插入特定的字符串。这个在哈希中加入字符串的方式称为“加盐”。其作用是让加盐后的哈希结果和没有加盐的结果不相同,在不同的应用情景中,这个处理可以增加额外的安全性。

在大部分情况,盐是不需要保密的。盐可以是随机产生的字符串,其插入的位置可以也是随意而定。如果这个散列结果在将来需要进行验证(例如:验证用户输入的密码),则需要将已使用的盐记录下来。

4.4.1、加盐实现原理

加盐的实现过程通常是在需要散列的字段的特定位置增加特定的字符,打乱原始的字符串,使其生成的哈希结果产生变化。比如,用户使用了一个密码:

x7faqgjw //密码
58ecbf2b3136ceda7fddfd986ba8bd8d59b2d73779691e839f3f176ce2c04b84 /SHA256

但是由于用户密码位数不足,短密码的哈希结果很容易被彩虹表破解,因此,在用户的密码末尾添加特 定字符串:

x7faqgjwabcdefghijklmnopqrstuvwxyz //加盐abcdefghijklmnopqrstuvwxyz
7b5001a5a8bcdcfa1b64d41f6339cfa7a5c0eca04cca6ff6a6c1d6aad17794cc //加盐后

以上就是加盐过程的简单描述,在实际使用过程中,还需要通过特定位数插入、倒序或多种方法对原始 密码进行固定的加盐处理,使得哈希的结果更加不容易被破解或轻易得到原始密码

4.5、目前常见的散列算法

每日扩展 | 密码学

4.5.1、MD5

MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16个字符(BYTES))的散列值(hash value),用于确保信息传输完整一致。MD5由美国密码学家罗纳德·李维斯特(Ronald Linn Rivest)设计,于1992年公开,用以取代MD4算法。这套算法的程序在 RFC 1321 中被加以规范。

将数据(如一段文字)运算变为另一固定长度值,是散列算法的基础原理。

1996年后被证实存在弱点,可以被加以破解,对于需要高度安全性的资料,专家一般建议改用其他算法,如SHA-2。2004年,证实MD5算法无法防止碰撞攻击,因此不适用于安全性认证,如SSL公开密钥认证或是数字签名等用途。

------
MD5("The quick brown fox jumps over the lazy dog")
= 9e107d9d372bb6826bd81d3542a419d6
-----MD5散列被表示为32位十六进制

每日扩展 | 密码学

4.5.1.1、缺陷:

2004年的国际密码讨论年会(CRYPTO)尾声,王小云及其研究同事展示了寻找MD5、SHA-0及其他相关散列函数的散列冲撞的新方法。所谓散列冲撞指两个完全不同的消息经散列函数计算得出完全相同的散列值。根据鸽巢原理,以有长度限制的散列函数计算没有长度限制的消息是必然会有冲撞情况出现的。在此之前,已有一些研究者在有约束条件下找到多对哈希冲撞

2009年,中国科学院的谢涛和冯登国,破解了MD5的碰撞抵抗,该攻击在普通计算机上运行只需要数秒钟。2011年,RFC 6151 禁止MD5用作密钥散列消息认证码。

4.5.1.2、在线网站

https://www.cmd5.com/

4.5.2、SHA-1(安全散列算法1)

SHA-1(英语:Secure Hash Algorithm 1,中文名:安全散列算法1)是一种密码散列函数,美国国家安全局设计,并由美国国家标准技术研究所发布为联邦资料处理标准。SHA-1可以生成一个160位(20字节)散列值,散列值通常的呈现形式为40个十六进制数。

2005年,密码分析人员发现了对SHA-1的有效攻击方法,这表明该算法可能不够安全,不能继续使用 [4],自2010年以来,许多组织建议用SHA-2或SHA-3来替换SHA-1[5][6][7]。Microsoft[8]、Google[9]以及Mozilla[10][11][12]都宣布,它们旗下的浏览器将在2017年停止接受使用SHA-1算法签名的SSL证书。

2017年2月23日,CWI Amsterdam与Google宣布了一个成功的SHA-1碰撞攻击[13][14],发布了两份内容不同但SHA-1散列值相同的PDF文件作为概念证明。[15]

2020年,针对SHA-1的选择前缀冲突攻击已经实际可行。

4.5.3、SHA算法对比

每日扩展 | 密码学

4.5.4、Hash算法应用

4.5.4.1、文件校验

http://win.zxianedu.cn/index.html

每日扩展 | 密码学

4.5.4.2、用户密码的加密

kali-Shadow文件/ect/shadow

每日扩展 | 密码学

密码域由三部分组成: salt$encrypted

其中id值指的是加密算法,salt指的是随机数,encrypted指的是加密密文。

id为1时,采用md5算法加密。

id为5时,采用SHA256算法加密。

id为6时,采用SHA512算法加密。

id为2、2y、y时,采用Blowfish对称加密分组算法加密。

kali--对称加密分组算法 Blowfish--$y$---
┌──(root㉿kali)-[~]
└─# cat /etc/shadow
root:$y$j9T$DjiA8uF9/jTePfVE5UHSF0$CQF1ww4ZSRaAngrad2ArMkWMiWtK9bVduRTo038w4d
0:19482:0:99999:7:::
centos7----SHA512算法加密--$6$
[root@localhost ~]# cat /etc/shadow
root:$6$GuqVvLFwzMnMKvNZ$Glsufs44K4B6huH1ZyZVOZ2MOPMUE7D.tfHaRB9V2BVBBq7LLMQD
RQQolHGnDbA3LtHrnYdqTwTbTJwSfPPzK.::0:99999:7:::
┌──(root㉿kali)-[~]
└─# openssl passwd -6 --salt GuqVvLFwzMnMKvNZ 123456
$6$GuqVvLFwzMnMKvNZ$Glsufs44K4B6huH1ZyZVOZ2MOPMUE7D.tfHaRB9V2BVBBq7LLMQDRQQol
HGnDbA3LtHrnYdqTwTbTJwSfPPzK.

4.5.4.3、网盘-数据识别-hash

文件上传网盘时,先计算该文件的MD5值,然后与网盘中所有的文件MD5值的list进行对比(得益于哈希查找不依赖序列大小的特性,即使网盘中文件巨多,也能在极短的时间内找到。如果已经有该文件那么就把这个文件映射到你的网盘中。实际上就是多人共享一份文件。

如果没有该文件,那么就把文件上传网盘,并将MD5值更新进list中。

每日扩展 | 密码学

4.5.4.4、数字签名

Hash算法也是现代密码体系中的一个重要组成部分。由于非对称算法的运算速度较慢,所以在数字签名 协议中,单向散列函数扮演了一个重要的角色。对Hash值,又称"数字摘要"进行数字签名,在统计上可 以认为与对文件本身进行数字签名是等效的。

每日扩展 | 密码学

1.对二进制计算hash值。

2.签发方对hash值进行rsa加密。

3.接收方解密获取hash值并且对二进制文件计算hash值,hash值相同则证明是原始文件。

在这里对hash值进行rsa加密后的数据就叫做这个二进制文件的数字签名。

4.5.5、彩虹表

彩虹表是用于加密散列函数逆运算的预先计算好的表,常用于破解加密过的密码散列。彩虹表常常用于

破解长度固定且包含的字符范围固定的密码(如信用卡、数字等)。这是以空间换时间的典型实践,比

暴力破解(Brute-force attack)用的时间少,空间更多;但与储存密码空间中的每一个密码及其对应的

哈希值(Hash)实现的查找表相比,其花费的时间更多,空间更少。使用加盐的密钥派生函数可以使这

种攻击难以实现。

彩虹表不是 密码-->明文 的简单存储、要从c=hash(m)逆向得到原始明文m,有三种办法:

暴力破解法:时间成本太高。

字典法:提前构建一个“明文->密文”对应关系的一个大型数据库,破解时通过密文直接反查明文。

但存储一个这样的数据库,空间成本是惊人的。

构建彩虹表:在字典法的基础上改进,以时间换空间。是现在破解哈希常用的办法

http://project-rainbowcrack.com/table.htm

每日扩展 | 密码学

5、现代密码学

5.1、对称加密

对称加密、又称为对称密钥算法(英语:Symmetric-key algorithm)、私钥加密、共享密钥加密,是密码学中的一类加密算法。这类算法在加密和解密时使用相同的密钥,或是使用两个可以简单地相互推算的密钥。事实上,这组密钥成为在两个或多个成员间的共同秘密,以便维持专属的通信联系。与公非对称加密相比,要求双方获取相同的密钥是对称密钥加密的主要缺点之一。

对称加密的速度比非对称快很多,在很多场合都需要对称加密。

对称算法的安全性依赖于密钥,它要求发送方和接收方在安全通信之前,商定一个密钥,泄漏密钥就意味着任何人都可以对他们发送或接收的消息解密,所以密钥的保密性对通信的安全性至关重要。

每日扩展 | 密码学

5.1.1、对称加密-AES

高级加密标准(英语:Advanced Encryption Standard,缩写:AES),是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院(NIST)于2001年11月26日发布于FIPS PUB 197,并

在2002年5月26日成为有效的标准。现在,AES已然成为对称密钥加密中最流行的算法之一。AES共有128、192和256三种安全等级,以密钥长度作为安全级别的区分

5.1.2、AES 加密的五种模式

(这五种工作模式主要是在加密器的使用上有所区别。)

1.电码本模式(Electronic Codebook Book (ECB));

2.密码分组链接模式(Cipher Block Chaining (CBC));

3.计算器模式(Counter (CTR));

4.密码反馈模式(Cipher FeedBack (CFB));

5.输出反馈模式(Output FeedBack (OFB))

加密时候填充模式

None:不填充

PKCS7:填充字符串由一个字节序列组成,每个字节填充该字节序列的长度

Zeros:填充字符串由设置为零的字节组成

ANSIX923:填充字符串由一个字节序列组成,此字节序列的最后一个字节填充字节序列的长度,其余字节均填充数字零

ISO10126:填充字符串由一个字节序列组成,此字节序列的最后一个字节填充字节序列的长度,其余字节填充随机数据

5.1.2.1、电码本模式(Electronic Codebook Book (ECB))

这种模式是将整个明文分成若干段相同的小段,然后对每一小段进行加密。

优点: 1.简单; 2.有利于并行计算; 3.误差不会被扩散;

缺点: 1.不能隐藏明文的模式; 2.可能对明文进行主动攻击;

因此,此模式适于加密小消息。

每日扩展 | 密码学

5.1.2.2、密码分组链接模式(Cipher Block Chaining (CBC))

这种模式就是上面一轮加密的结果与下一轮的明文进行异或,然后进行加密。因为第一个明文分组没有 前面的密文与之异或,故需要一个初始向量IV。

优点: 不容易主动攻击,安全性好于ECB,适合传输长度长的报文,是SSL、IPSec的标准。

缺点: 1.不利于并行计算; 2.误差传递; 3.需要初始化向量IV

每日扩展 | 密码学

5.1.2.3、计算器模式 CTR

一直加密计数器,得到加密的结果与明文进行异或得到密文。

每日扩展 | 密码学

5.1.2.4、密码反馈模式CFB

将数据进行加密的结果与明文进行异或得到密文,然后再将密文进行加密再与明文异或得到下一个密 文,依次类推。同理,在最开始的时候需要一个初始向量IV。

每日扩展 | 密码学

5.1.2.5、输出反馈模式OFB

将一个初始向量一直加密,每加密一次的结果与明文进行异或得到密文。

每日扩展 | 密码学

5.1.3、AES-256-CBC应用

RAR使用AES-256-CBC加密。其原理是在通信过程中,数据发送方将原始数据分割成固定大小的块,经 过密钥和加密算法逐个加密后,发送给接收方;接收方收到加密后的报文后,结合密钥和解密算法解密 组合后得出原始数据。 其优点在于加解密的高速度和使用长密钥时的难破解性。假设两个用户需要使用对称加密方法加密然后 交换数据,则用户最少需要2个密钥并交换使用,如果企业内用户有n个,则整个企业共需要n×(n-1) 个密钥。

每日扩展 | 密码学

5.1.4、在线工具

https://oktools.net/aes

https://tool.oschina.net/encrypt/

AES Encryption Easily encrypt or decrypt strings or files在线AES加密解密、AES在线加密解密、AES encryption and decryption--查错网

5.1.5、DES

数据加密标准(英语:Data Encryption Standard,缩写为 DES)是一种对称密钥加密块密码算法,1976年被美国联邦政府的国家标准局确定为联邦资料处理标准(FIPS),随后在国际上广泛流传开来。

它基于使用56位密钥的对称算法。这个算法因为包含一些机密设计元素,相对短的密钥长度以及怀疑内含美国国家安全局(NSA)的后门而在开始时有争议,DES因此受到了强烈的学院派式的审查,并以此推动了现代的块密码及其密码分析的发展。

DES现在已经不是一种安全的加密方法,主要因为它使用的56位密钥过短。1999年1月,distributed.net与电子前哨基金会合作,在22小时15分钟内即公开破解了一个DES密钥。也有一些分析报告提出了该算法的理论上的弱点,虽然在实际中难以应用。为了提供实用所需的安全性,可以使用DES的派生算法3DES来进行加密,3DES也存在理论上的攻击方法。DES标准和3DES标准已逐渐被高级加密标准(AES)所取代。

每日扩展 | 密码学

在线工具

https://oktools.net/des

http://tool.chacuo.net/cryptdes

5.1.6、3DES

密码学中,三重数据加密算法(英语:Triple Data Encryption Algorithm,缩写为TDEA,Triple DEA),或称3DES(Triple DES),是一种对称密钥加密块密码,相当于是对每个数据块应用三次数据加密标准(DES)算法。由于计算机运算能力的增强,原版DES由于密钥长度过低容易被暴力破解;

3DES即是设计用来提供一种相对简单的方法,即通过增加DES的密钥长度来避免类似的攻击,而不是设计一种全新的块密码算法。

每日扩展 | 密码学

在线工具

在线3DES加密解密、3DES在线加密解密、3DES encryption and decryption--查错网

5.2、非对称性加密

非对称式加密、也称公开密钥密码学(英语:Public-key cryptography)是密码学的一种算法,它需要两个密钥,一个是公开密钥,另一个是私有密钥;公钥用作加密,私钥则用作解密。使用公钥把明文加密后所得的密文,只能用相对应的私钥才能解密并得到原本的明文,最初用来加密的公钥不能用作解密。由于加密和解密需要两个不同的密钥,故被称为非对称加密;不同于加密和解密都使用同一个密钥的对称加密。

公钥可以公开,可任意向外发布;私钥不可以公开,必须由用户自行严格秘密保管,绝不透过任何途径向任何人提供,也不会透露给被信任的要通信的另一方。

基于非对称式加密的特性,它还能提供数字签名的功能,使电子文件可以得到如同在纸本文件上亲笔签署的效果。

非对称加密基础建设、透过信任数字证书认证机构的根证书、及其使用公钥加密作数字签名核发的公钥认证,形成信任链架构,已在 TLS 实现并在万维网的 HTTP 以 HTTPS、在电子邮件的 SMTP 以 SMTPS或 STARTTLS 引入。

每日扩展 | 密码学

5.2.1、非对称加密算法RSA

RSA加密算法是一种非对称加密算法,在公开密钥加密和电子商业中被广泛使用。RSA是由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)在1977年一起提出的。当时他们三人都在麻省理工学院工作。RSA 就是他们三人姓氏开头字母拼在一起组成的。

对极大整数做因数分解的难度决定了 RSA 算法的可靠性。换言之,对一极大整数做因数分解愈困难,RSA 算法愈可靠。假如有人找到一种快速因数分解的算法的话,那么用 RSA 加密的信息的可靠性就会极度下降。但找到这样的算法的可能性是非常小的。今天只有短的 RSA 钥匙才可能被强力方式破解。到2020年为止,世界上还没有任何可靠的攻击RSA算法的方式。只要其钥匙的长度足够长,用RSA加密的信息实际上是不能被破解的。

5.2.2、RSA密钥长度

在密码学中,密钥大小或密钥长度是加密算法(如密码)使用的密钥中的比特数。因为所有的算法都可能会被暴力破解法破解,所以密钥长度通常指出了一个加密算法的安全性上限密钥长度问题:

RSA密钥对包含公钥(模数、公钥指数),私钥(模数、私钥指数)RSA密钥长度指的是模数的位数,如2048位RSA密钥指的是模数为2048比特的RSA密钥对,常规选值为:1024、2048、4096等。

5.2.2.1、推荐的密钥长度

目前推荐的密钥长度是:

对称密钥加密使用至少128位元的密钥长度

椭圆曲线密码学使用至少224位元的密钥长度

RSA非对称加密算法使用至少2048位元的密钥长度

这样的组合在2030年以前是安全的

在线工具:

https://oktools.net/rsa

每日扩展 | 密码学

5.2.3、已知的攻击方法

5.2.3.1、大数因数分解

针对RSA最流行的攻击一般是基于大数因数分解。1999年,RSA-155(512 bits)被成功分解,花了五个月时间 RSA-155表示如下:

39505874583265144526419767800614481996020776460304936454139376051579355626529450683609

727842468219535093544305870490251995655335710209799226484977949442955603

= 3388495837466721394368393204672181522815830368604993048084925840555281177×
116588234066712599031483765583832708181310122581463926004395209941313443341629
24536139

每日扩展 | 密码学

5.2.4、加密性勒索软件-rsa

在2006年中,勒索软件开始运用更加复杂的RSA加密手段,甚至加长密钥的长度,像是Gpcode、TROJ.RANSOM.A、Archiveus、Krotten、Cryzip、MayArchive等病毒。

2006年6月发现的Gpcode.AG使用了660位的RSA公钥。

2008年6月,发现了该病毒的新变种Gpcode.AK。该变种使用了1024位的RSA公钥,据信在不使用分布式计算的情况下,破解该密钥对单一电脑来说,将是徒劳无功的。

2013年尾开始出现行踪的CryptoLocker,该病毒最大的差异在于利用新时代的比特币进行勒索。2013年12月,ZDNet估计该病毒单单在该月(12月)15日至18日间,就利用比特币从受害者身上汲取了2700万美元的钜额。CryptoLocker的手法在紧接着的几个月内被多种病毒所效仿,包括CryptoLocker 2.0(被认为和原始的CryptoLocker无关)CryptoLocker病毒使用2048位的RSA加密密钥,并将其回传至主控病毒行动的服务器。关于加密文件,该病毒使用白名单以只对特定的扩展名加密。CryptoLocker威胁受害者,若不以比特币或付费卡在三天内缴款,就会将所有加密文件删除。由于其使用了极大长度的密钥,被其加密的文件一般是认为无法撤销的。尽管付款期限已过,解密的密钥仍能利用其提供的在线工具获取,但是价格会增加为10BTC,相当于2300美元(2013年11月汇率)

2014年8月一个专门针对群晖科技(Synology)生产的网络附加存储(NAS)设备进行攻击的病毒。

在2014年尾,High-Tech Bridge信息安全公司甚至发现了将整个服务器上网站都加密的RansomeWeb病毒。

在2015年,刊载了一份详尽的报告,枚举出不同的勒索软件所使用的加密技术、弱点,及可能的防范措施等。

2017年5月,勒索软件WannaCry(2048位的RSA密钥)大规模感染了包括西班牙电信在内的许多西班 牙公司、英国国民保健署、联邦快递和德国铁路股份公司。据报道,至少有99个国家的其他目标在同一 时间遭到WanaCryptor 2.0的攻击。俄罗斯联邦内务部、俄罗斯联邦紧急情况部和俄罗斯电信公司 MegaFon共有超过1000台计算机受到感染。国内高校也出现大规模的感染,感染甚至波及到了公安机关 使用的内网,使得河南省洛阳市的公安系统遭到破坏。国家互联网应急中心亦发布通报。 2020年12月23日,美国各级政府部门、北约、英国政府、欧洲议会、微软等至少200个政府单位、组织 或公司遭遇数据泄露,影响范围甚广。

每日扩展 | 密码学

6、数字签名

数字签名(英语:Digital Signature,又称公钥数字签名)是一种功能类似写在纸上的普通签名、但是使 用了公钥加密领域的技术,以用于鉴别数字信息的方法。一套数字签名通常会定义两种互补的运算,一 个用于签名,另一个用于验证。法律用语中的电子签名与数字签名代表之意义并不相同。电子签名指的 是依附于电子文件并与其相关连,用以识别及确认电子文件签署人身份、资格及电子文件真伪者;数字 签名则是以数学算法或其他方式运算对其加密而形成的电子签名。意即并非所有的电子签名都是数字签 名。 数字签名不是指将签名扫描成数字图像,或者用触摸板获取的签名,更不是落款。 数字签名了的文件的完整性是很容易验证的(不需要骑缝章、骑缝签名,也不需要笔迹鉴定),而且数 字签名具有不可抵赖性(即不可否认性),不需要笔迹专家来验证。

每日扩展 | 密码学

7、时间戳

时间戳(Timestamp)是一种表示某个时间点的数据类型,通常用于在计算机系统中记录某个事件发生的时间。Unix时间戳是从1970年1月1日00:00:00至当前时间的总秒数。

7.1、时间戳类型怎么转换成天数

时间戳转换成天数,通俗的讲,只需将时间戳除以86400(即606024)即可得到天数。

7.2、时间戳类型是什么意思

时间戳类型是Unix时间戳的缩写,是指从1970年1月1日00:00:00至当前时间的总秒数,也称为UNIX时间、POSIX时间或Epoch时间。

时间戳类型通常用于在计算机系统中记录某个事件发生的时间,是一种表示某个时间点的数据类型。

7.3、时间戳类型的日期有啥用

时间戳类型的日期可以用于记录和计算时间间隔、进行时间排序、进行时间比较等操作。在实际应用中,常用于记录系统日志的时间、网站用户注册时间、记录数据更新时间等。

https://oktools.net/timestamp

每日扩展 | 密码学

原文始发于微信公众号(安全君呀):每日扩展 | 密码学

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年10月4日23:04:42
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   每日扩展 | 密码学https://cn-sec.com/archives/3232510.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息