- 单表替换密码
该算法的安全性,相对较低,因为不能抵抗对字母频率的统计分析。
- 维吉尼亚密码
维吉尼亚密码既克服了频率分析,又密钥空间比较大。
但是因为密钥的重复使用,使其容易受到攻击。
安全性依赖与密钥的更换频率和长度。
- DES
DES的安全性是比较高的,对于现在的硬件来说,还能暂时保证数据的安全,其不安全的地方,主要是密钥的长度太短,在一定分析的基础上,容易遭受穷举攻击。
算法:见附件(写的很不好)
- RC4
由于RC4算法加密是采用的xor,所以,一旦子密钥序列出现了重复,密文就有可能被破解。根据目前的分析结果,没有任何的分析对于密钥长度达到128位的RC4有效,所以,RC4的安全,在于密钥更新的周期。
RC4 的汇编实现:(附件有个lib 可以直接调用)
comment *
Algorithm : RC4 ( Stream Cipher )
Usage : invoke rc4_setkey,addr ptrInkey,addr ptrInkey_length
invoke rc4_crypt,addr ptrIndata,addr ptrIndata_length ( Encrypt & Decrypt )
comment *
.386
.model flat, stdcall
option casemap :none
.data
i dd 0
j dd 0
.data?
rc4keytable db 256 dup(?)
.code
rc4_setkey proc ptrInkey:DWORD, ptrInkey_length:DWORD
pushad
xor ebx,ebx
@_r1:
mov [rc4keytable+ebx],bl
inc ebx
cmp ebx,256
jnz @_r1
mov esi,ptrInkey
xor eax,eax
xor ebx,ebx
xor ecx,ecx
xor edi,edi
xor edx,edx
@_r3:
mov al,[rc4keytable+ecx]
add bl,byte ptr [esi+edi]
add bl,al
and ebx,00FFH
mov dl,[rc4keytable+ebx]
mov [rc4keytable+ecx],dl
mov [rc4keytable+ebx],al
inc edi
cmp edi,ptrInkey_length
jl @_r2
xor edi,edi
@_r2:
inc ecx
cmp ecx,256
jnz @_r3
popad
ret
rc4_setkey endp
rc4_crypt proc ptrIndata:DWORD, ptrIndata_length:DWORD
pushad
mov eax,i
mov edx,j
xor ebx,ebx
xor edi,edi
mov esi,ptrIndata
@_r1:
inc eax
and eax,00FFH
mov cl,[rc4keytable+eax]
add dl,cl
and edx,00FFH
mov bl,[rc4keytable+edx]
mov [rc4keytable+edx],cl
mov [rc4keytable+eax],bl
add bl,cl
and ebx,00FFH
mov bl,[rc4keytable+ebx]
xor [esi+edi],bl
inc edi
cmp ptrIndata_length,edi
jnz @_r1
mov i,eax
mov j,edx
popad
ret
rc4_crypt endp
End
SHA-512
SHA-512 达到512位的HASH值,所以不会受到生日攻击和穷举攻击,是安全的HASH算法。
算法见附件:(收集于网上)
[课程]Linux pwn 探索篇!