[\[\
BÁO CÁO ĐỒ ÁN: MÔN HỌC BẢO MẬT
THÔNG TIN
ĐỀ TÀI: CHỮ KÝ SỐ
Chữ ký số - Các thuật toán và tấn công
2009
Nhóm DSII [BDHT] Page 1
A. Danh sách nhóm
STT
MSSV
Tên
Email
SDT
1.
406170001
01698815297
2.
406170006
0983728190
3.
406170015
0938170788
4.
406170046
0932613917
B. Nội dung nghiên cứu
I.
II. và so sánh
III.
IV.
V.
VI.
C. Chi tiết nội dung
I. Tổng quan về chữ ký số
1.
-
Chữ ký số - Các thuật toán và tấn công
2009
Nhóm DSII [BDHT] Page 2
-
không có cách nào
sau:
:
C.
2.
-
-
-
-
3.
Chữ ký số - Các thuật toán và tấn công
2009
Nhóm DSII [BDHT] Page 3
i)
-
encryption)
Chữ ký số - Các thuật toán và tấn công
2009
Nhóm DSII [BDHT] Page 4
.
các
ii)
ài.
K
xa
ay
X
K
xa
ay
.
X,
Chữ ký số - Các thuật toán và tấn công
2009
Nhóm DSII [BDHT] Page 5
.
(1) X A: M||E(K
xa
, [ID
X
||H(M)])
(2) A Y: E(K
ay
, [ID
X
||M||E(K
xa
, [ID
X
||H(M)])||T])
(1) X A: ID
X
||E(K
xy
, M)||E(K
xa
, [ID
X
||H(E(K
xy
, M))])
(2) A Y: E(K
ay
,[ID
X
||E(K
xy
, M)])||E(K
xa
, [ID
X
||H(E(K
xy
, M))||T])
(1) X A: ID
X
||E(PR
x
, [ID
X
||E(PU
y
, E(PR
x
, M))])
(2) A Y: E(PR
a
, [ID
X
||E(PU
y
, E(PR
x
, M))||T])
(c)
X
Y
A
M
T
II. Các thuật toán tạo chữ ký số
1. ElGamal
Chữ ký số - Các thuật toán và tấn công
2009
Nhóm DSII [BDHT] Page 6
o
i)
p
Z
*
p
(g odulo p)
ii)
k 1 ≤ k ≤ p
v = g
k
(mod p)
công khai là (p,g,v)
iii) DD 1<D<p
1<e<p và gcd(e, p-1) =1
Tính r = g
e
(mod p)
Tính s = (D – k.r)e
-1
(mod p-1)
D (s,r)
iv)
0 < r < p và 0 < s < p − 1
g
D
(mod p) = v
r
r
s
(mod p)
N
g
k
≡ v (mod p)
v và g
D
x và y v
x
x
y
≡ g
D
(mod p)
log
g
(v)x + y log
g
(x) ≡ D (mod p − 1)
toán log
g
(v) và log
g
(x) y.
Chữ ký số - Các thuật toán và tấn công
2009
Nhóm DSII [BDHT] Page 7
2
vào
2. DSA (Digital Signature Algorithm)
Các thao tác
i) o khóa
L-1
<p<2
L
(p-1)/q
-
(p-1)/q
mod p>1
x
mod p
ii)
k
mod p) mod q
Tính s = [k
-1
(H(M) + x.r] mod q
iii)
-1
mod q
v = [g
u1
y
u2
mod p] mod q
Chữ ký số - Các thuật toán và tấn công
2009
Nhóm DSII [BDHT] Page 8
So sánh ElGamal và DSA:
r = g
e
(mod p) -1
r = (g
k
mod p) mod q -1
-1
3. RSA
(ANS) X9.31 và Public Key Cryptography Standard (PKCS) #1.
i)
gcd(v, (p - 1)(q - 1)) = 1
Công khai N = p*q và v
ii)
Tính s sao cho:
s
(mod N)
Chữ ký số - Các thuật toán và tấn công
2009
Nhóm DSII [BDHT] Page 9
iii) Xác minh:
Tính S
v
mod N
công khai.
t tóan RSA không dùng
4. ECDSA(Elliptic Curve Digital Signature Algorithm)
ISO 1998, ANSI 1999, IEEE 2000.
i)
- 1]
Khóa chung Q : Q = d*G
ii)
1. e = SHA-1(M)
2.
3.
4. s = k
-1
iii) Xác minh:
1. -
2. e = sha-1(m)
Chữ ký số - Các thuật toán và tấn công
2009
Nhóm DSII [BDHT] Page 10
3. w = s
-1
(mod n)
4. u1 = ew (mod n)
5. u2 = rw (mod n)
6. (x1, y1) = u1*G + u2*Q
7. r = x
1
(mod n
.
5. GGH
Goldwasser
vector problem
6. NTRU(n-th degree truncated polynomial ring)
.
i)
C
g * F = q
Tính h = f
-1
* g (mod q)
Chữ ký số - Các thuật toán và tấn công
2009
Nhóm DSII [BDHT] Page 11
Công khai khóa h
ii)
Tính:
v2 = (-D1 * g + D2 * f) / q
Tính: s = v1 * f + v2 * F
iii)
Tính t = h * s (mod q)
3
2
) phép toán. Các phép toán
III. Lý thuyết về cách tấn công chữ ký số
gian nên
Chữ ký số - Các thuật toán và tấn công
2009
Nhóm DSII [BDHT] Page 12
-
-
g
key cryptography)
brute-
. Hàm
máy tính.
-0, MD4, MD5, HAVAL-128, và
-1
i)
-
Chữ ký số - Các thuật toán và tấn công
2009
Nhóm DSII [BDHT] Page 13
-
static byte[] vec1 =
{
0xd1, 0x31, 0xdd, 0x02, 0xc5, 0xe6 , 0xee , 0xc4 , 0x69 , 0x3d, 0x9a
, 0x06 , 0x98 , 0xaf , 0xf9 , 0x5c , 0x2f , 0xca , 0xb5 , /**/0x87 , 0x12 , 0x46 , 0x7e ,
0xab , 0x40 , 0x04 , 0x58 , 0x3e , 0xb8 , 0xfb , 0x7f , 0x89 , 0x55 , 0xad , 0x34 , 0x06 ,
0x09 , 0xf4 , 0xb3 , 0x02 , 0x83 , 0xe4 , 0x88 , 0x83 , 0x25 , /**/0x71 , 0x41 , 0x5a,
0x08 , 0x51 , 0x25 , 0xe8 , 0xf7 , 0xcd , 0xc9 , 0x9f , 0xd9 , 0x1d , 0xbd , /**/0xf2 , 0x80
, 0x37 , 0x3c , 0x5b , 0xd8 , 0x82 , 0x3e
, 0x31 , 0x56 , 0x34 , 0x8f , 0x5b , 0xae , 0x6d , 0xac , 0xd4 , 0x36 , 0xc9 , 0x19 , 0xc6
, 0xdd , 0x53 , 0xe2 , /**/0xb4 , 0x87 , 0xda , 0x03 , 0xfd , 0x02 , 0x39 , 0x63 , 0x06 ,
0xd2 , 0x48 , 0xcd , 0xa0 , 0xe9 , 0x9f , 0x33 , 0x42 , 0x0f , 0x57 , 0x7e , 0xe8 , 0xce ,
0x54 , 0xb6 , 0x70 , 0x80 , /**/0xa8 , 0x0d , 0x1e , 0xc6 , 0x98 , 0x21 , 0xbc , 0xb6 ,
0xa8 , 0x83 , 0x93 , 0x96 , 0xf9 , 0x65 ,/**/ 0x2b , 0x6f , 0xf7 , 0x2a , 0x70}
static byte[] vec2 =
{
0xd1 , 0x31, 0xdd , 0x02 , 0xc5 , 0xe6 , 0xee , 0xc4 , 0x69 , 0x3d ,
0x9a , 0x06 , 0x98 , 0xaf , 0xf9 , 0x5c, 0x2f , 0xca , 0xb5 , /**/0x07 , 0x12 , 0x46 , 0x7e ,
0xab , 0x40 , 0x04 , 0x58 , 0x3e , 0xb8 , 0xfb , 0x7f , 0x89 , 0x55 , 0xad , 0x34 , 0x06 ,
0x09 , 0xf4 , 0xb3 , 0x02 , 0x83 , 0xe4 , 0x88 , 0x83 , 0x25 ,/**/ 0xf1 , 0x41 , 0x5a ,
0x08 , 0x51 , 0x25 , 0xe8 , 0xf7 , 0xcd , 0xc9 , 0x9f, 0xd9 , 0x1d , 0xbd , /**/0x72 , 0x80
, 0x37 , 0x3c , 0x5b, 0xd8 , 0x82 , 0x3e , 0x31 , 0x56 , 0x34 , 0x8f , 0x5b , 0xae , 0x6d ,
0xac , 0xd4 , 0x36
, 0xc9 , 0x19 , 0xc6 , 0xdd , 0x53 , 0xe2 , /**/0x34 , 0x87 , 0xda , 0x03 , 0xfd , 0x02 ,
0x39 , 0x63 , 0x06 , 0xd2 , 0x48 , 0xcd , 0xa0, 0xe9 , 0x9f , 0x33 , 0x42 , 0x0f , 0x57 ,
0x7e , 0xe8 , 0xce , 0x54 , 0xb6 , 0x70 , 0x80 , /**/ 0x28 , 0x0d , 0x1e, 0xc6 , 0x98 ,
Chữ ký số - Các thuật toán và tấn công
2009
Nhóm DSII [BDHT] Page 14
0x21 , 0xbc , 0xb6 , 0xa8 , 0x83 , 0x93 , 0x96 , 0xf9 , 0x65 , /* flag byte*/0xab , 0x6f ,
0xf7 , 0x2a , 0x70 }
-
-
-
Chữ ký số - Các thuật toán và tấn công
2009
Nhóm DSII [BDHT] Page 15
-
không :
Chữ ký số - Các thuật toán và tấn công
2009
Nhóm DSII [BDHT] Page 16
Chữ ký số - Các thuật toán và tấn công
2009
Nhóm DSII [BDHT] Page 17
Chữ ký số - Các thuật toán và tấn công
2009
Nhóm DSII [BDHT] Page 18
ii) -1
y
thành SHA--.
-
-
cách trên, và
2005.
-1 sau
-force.
Bruce Schneier và Jo
-force.
-
-224, SHA-256, SHA-384 và SHA-512.
64 vòng:
492068657265627920736F6C656D6E6C792070726F6D69736520746F2066696E69736
8206D7920506844207468657369732062792074686520656E64206F662032303035200
A0AEACBD7029E9F219821F0F0FF9213E43DF407CA4A69067368507F397C77DDD
F45C152AC0AB09D1511CFA15FDC789F4D86215D1D41F3C2A73C6AC2B5D3A11
EBB7DEEFFC27FB55C31535C8FB13DCEC26A4B890E82D2608CE731FB383B24D9
37FBECA9F5E390B6C12315D5C1A48ABE9AD3C1DFF6D550C96BD9572D
Chữ ký số - Các thuật toán và tấn công
2009
Nhóm DSII [BDHT] Page 19
492068657265627920736F6C656D6E6C792070726F6D69736520746F2066696E69736
8206D7920506844207468657369732062792074686520656E64206F662032303036600
A0AB88BD702DE7F21987350F0FF9293E43DB427CA4A6826736830FF397C769DDF
458392AC0AF3DD1511EDA15FDC7BDF4D86639D1D41B002A73C48C2B5D3A25E
BB7DBCBFC27FF5BC31530E2FB13DCE426A4BC92E82D261ACE7319BB83B24D8
77FBECEB35E390F5812315F7C1A48ABDDAD3C19D36D5508AABD9570F
E9069CCAB770EC16F9ED4E3AD6FD5A866F829F0C
hereby solemnly promise to finish my PhD thesis by the end of
nhau.
IV. Giới thiệu về Rainbow Crack Tool
1. Rainbow Crack là gì?
a. Ngun gc: RainbowCrack là mt thành phn trong d án FASTER TIME-
MEMORY TRADE-OFF TECHNIQUE ca Philippe Oechslin. Nó phá v
rainbow tables.
b. Các ch
- H tr rainbow table ca bt c thu-
- H tr phc hi bt k ký t nào (ch cái, s, ký t c bit).
- H tr h ng trên nn 32bit.
- S dng bng cách gõ lnh hoc dùng giao din.
c. Ti v ta ch:
2. Rainbow Crack ho nào?
a. Hong da trên Rainbow table.
- Rainbow table là mt bng tra cc s d khôi phc li plaintext t mt
ng m
- c thit k bi thut thun bi Martin Hellman, nó
c s d c li mt hash bng cách tra cu các chuc tính toán
c.
b. Cu trúc ca mt rainbow table.
- Mt Rainbow table là mt chui các record (bn ghi). Mi record có 2 fields, mi
field 8 bytes, tng cng m c ca mt bng
cu vòng là mt bi s ca 16. Mi din bi mt chain (chuu
Chữ ký số - Các thuật toán và tấn công
2009
Nhóm DSII [BDHT] Page 20
tiên là ch s trong không gian khóa (Keyspace) ca tt c plaintext do rainbow table thit
lt con s ngu nhiên gic ca keyspace -1. Field th
hai là plaintext ca cùng ca 1 chain, thc ra nó là ch s ch t s là m
c sp xp da trên field th 2: record vi hash thp nhu tiên
trong bng vi hash cui cùng cao nht.
3. Các thông s ca mt rainbow table:
Thông s ca mi din bi tên ca nó:
hash_algorithm charset plaintext_len_min plaintext_len_max table_index chain_len
chain_num part_index.
Tên:
hash_algorithm
Thut gi
charset
Tt c các ký t nh
plaintext_len_min
S ký t ít nht gic.
plaintext_len_max
S ký t nhiu nht gic.
table index
chain_len
chain_num
4 thông s này th hi nói
qua:
Table index: Ch s s ln s dng Reduce Function trong
Chữ ký số - Các thuật toán và tấn công
2009
Nhóm DSII [BDHT] Page 21
part_index
rainbow table
dài ca mt rainbow chain trong rainbow
table, m
nh nht trong rainbow table, mt rainbow table cha rt
nhiu rainbow chain
Chain_num: s ng ca rainbow chain trong rainbow
table
m b u cho mt rainbow
c to
Ví d:
Tên:
hash_algorith
m
Md5
charset
loweralpha-numeric =
[abcdefghijklmnopqrstuvwxyz0123456789]
plaintext_len_
min
1
plaintext_len_
max
7
chain_len
3800
chain_num
33554432
Tên file Rainbow table s có dng:
"md5_loweralpha-numeric#1-7_0_3800x33554432_0.rt"
V. Demo dùng Rainbow Crack Tool để tấn công chữ ký số.
Chữ ký số - Các thuật toán và tấn công
2009
Nhóm DSII [BDHT] Page 22
1.
2.
3. Hacker dùng các thông tin côn
4.
5.
6.
M'.
Demo cách s d bin mt m
Chữ ký số - Các thuật toán và tấn công
2009
Nhóm DSII [BDHT] Page 23
Chữ ký số - Các thuật toán và tấn công
2009
Nhóm DSII [BDHT] Page 24