密码学 May 08, 2020

RC4校验算法研究

Words count 8.3k Reading time 8 mins.

一、RC4算法原理

1、概念

rc4是一种基于密钥流的加密算法,它的密钥长度可变,密钥长度在1-256字节范围,主要是因为这个算法的非线性度良好,因为加解密使用的是相同的密钥,所以也是对称加密算法。

2...

Read article

密码学 January 03, 2020

消息验证码MAC和数字签名研究

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

MD5加密和Hash函数分析

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

RSA算法体系研究

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

tea、xtea、xxtea算法研究

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

Base64加密算法小研究

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

Diffie-Hellman算法

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,有:

  • a^x mod p 一定属于 {1, ...
Read article

密码学 January 03, 2020

DES加密算法和AES加密算法初探

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
0%