「 密码学 」
January 03, 2020
Words count
1.1k
Reading time
1 mins.
一、MAC的原理和分析
MAC算法结合了md5和sha算法的优势,并加入密钥的支持,是一种更为安全的消息摘要算法,MAC是含有密钥的散列函数算法,兼容了md5和sha算法的特性,并在此基础上加入了密钥。
经过mac算法得到的摘要值也可以用16进制编码表示,其摘要值长度与参与实现的摘要值长度相同,例如,HmacSHA1算法得到的摘要长度就是SHA1算法得到的摘要长度,都是160位二进制,换算成十六进制编码为40位。
多对一函数的话,可以知道一般比较难破译,正常来说,可以分为3种类型,如图所示:
...
Read article
「 密码学 」
January 03, 2020
Words count
111k
Reading time
1:41
一、MD5加密算法的原理分析
md5的输入是512位的倍数,输出是128位,首先填充消息,使其长度为与448 mod 512同余,即长度是512的倍数减去64,填充的消息第一位是1,后面全部都是0,即使原来的消息长度刚好与448 mod 512同余(64),仍然需要填充,即使原来的消息长度刚好是512的整数倍,仍需要填充。
再将这剩余的64位填充为原来消息的长度(二进制),如果原来的消息长度大于64位,则只填充低64位,之后的序列长度就是512的倍数了,这里每一个512位称为一个分组,又...
Read article
「 密码学 」
January 03, 2020
Words count
23k
Reading time
21 mins.
在打0CTF时看到了RSA的那题,但是不会做,于是先学习一波RSA吧,算做入门,自己也喜欢数学,正好积累下,RSA是非对称加密,相对于DES对称加密而言的,下面进去正题。
一、欧拉定理:
如果两个正整数a和n互质,则n的欧拉函数 φ(n) 可以让下面的等式成立:
这是个很重要的公式,先来理解下,首先n = pq(q和p互为质数),欧拉函数 φ(p) = p-1(表示与p互质的数的个数为p-1个,下同), φ(q) = q-1,所以 得到
推理1:φ(n) = φ(p)φ(q) = (p-1)(...
Read article
「 密码学 」
January 03, 2020
Words count
47k
Reading time
43 mins.
一、Tea
先来看一波C语言实现的代码,通过代码学习更快理解原理:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| #include <stdio.h> #include <stdint.h>
void encrypt (uint32_t* v, uint32_t* k) { uint32_t v0=v[0], v1=v[1], sum=0, i; |
Read article
「 密码学 」
January 03, 2020
Words count
28k
Reading time
25 mins.
1、先了解一波什么是Base64编码的加密与解密:
1、Base64使用A–Z,a–z,0–9,+,/ 这64个字符.
2、编码原理:将3个字节转换成4个字节( (3 X 8) = 24 = (4 X 6) )先读入3个字节,每读一个字节,左移8位,再右移四次,每次6位,这样就有4个字节了.
3、解码原理:将4个字节转换成3个字节.先读入4个6位(用或运算),每次左移6位,再右移3次,每次8位.这样就还原了.
Base64是一种很常见的编码规范,其作用是将二进制序列转换为人类可读的ASCII字符...
Read article
「 密码学 」
January 03, 2020
Words count
4.2k
Reading time
4 mins.
一、原理分析
离散对数问题
假定 a, p 均是素数,下面两个集合相等,证明过程请参考 Cryptography and Network Security 第八章:
1
| { a^1 mod p, a^2 mod p, ..., a^(p-1) mod p } = {1, 2, ... , p-1 } {} 表示集合
|
上述式子可概括成以下三点,对于 1 <= x,y <= p - 1,有:
Read article
「 密码学 」
January 03, 2020
Words count
225k
Reading time
3:25
一、DES加密算法原理分析
1、所需要的参数:
key:8个字节共64位的工作密钥
data:8个字节共64位的需要被加密或者被解密的数据
mode:DES工作方式,加密或者解密(CBC模式和ECB模式)
2、初始置换
DES算法使用64位的密钥key将64位的明文输入块变成64位的密文输出块,并将输出块分为L0和R0两部分,每部分均为32位。初始置换规则如下:
注意:这里的数字表示的是原数据的位置,不是数据
1 2 3 4 5 6 7 8
| 58,50,42,34,26,18,10,2, 60,52,44,36,28... |
Read article