Tài liệu Nhập môn mật mã học  - Pdf 97

Nhậpmônmậtmãhọc

1. Khái niệm mã hóa và giải mã

Mật mã và bảo mật trong hệ thống viễn thông là một lĩnh vực có nhiều thuật ngữ có thể làm cho
nhiều người "ngơ ngác": như "hash function", "one-time pad" hay Rijndael Thread này nhằm
giải thích các khái niệm thường dùng trong ngành mật mã học (cryptography) với hy vọng có thể
giúp ích cho những ai mong muốn tìm hiểu về lĩnh vực này.

Trước tiên mật mã học (crypto) là một nghệ thuật nhằm giấu thông tin, bằng cách chuyển đổi
(encrypt) thông tin thành dạng thông tin không đọc được (cipher text). Chỉ có những người giữ
chìa khóa (key) bí mật mới có thể giải mã (decrypt) thông tin thành dạng thông tin có thể hiểu
được (plain text). Thông tin đôi khi bị giải mã mà không cần biết khóa bí mật. Ngành học nghiên
cứu về việc bẻ khóa (attack/crack/hack) này còn gọi là cryptanalysis. (Xem hình 1)

Hình 1: Sơ đồ mã hóa và giải mã

Cryptosystem (viết tắt của cryptographic system): hệ thống mã hóa thông tin, có thể là phần
mềm như PGP, Ax-Crypt, Truecrypt giao thức như SSL, IPsec dùng trong Internet hay đơn
giả
n là một thuật toán như DES.

Encrypt (encipher, encryption): mã hóa – đó là quá trình biến đổi thông tin từ dạng ban đầu - có
thể hiểu được thành dạng không thể hiểu được, với mục đích giữ bí mật thông tin đó.

Decrypt (decipher, decryption): giải mã – đó là quá trình ngược lại với mã hóa, khôi phục lại
thông tin ban đầu từ thông tin đã được mã hóa.

Plain text/message: là dữ liệu gốc (chưa được mã hóa).

Cipher text/message: là dữ liệu đã được mã hóa.

• Tính k
h
đã gửi h
o
(electro
n

• Tính n
h
chứng m
những c
h
liên qua
n
võng mạ
c

Trong b

mật cho
m
chúng ta
một mối
- Tính đ

- Tính b

có ngh
ĩ
a

n
. Tính chất
n
thay đổi thì
Các hàm
m
t
oàn vẹn ch
o
á
c thực (au
t
a
có thể dụn
g
sẻ giữa hai
n
chiều (mult
u
h
ôn
g
chối
b
o
ặc nhận th
ô
n
ic signature
)


h
ản xạ: Tôi
c
niệm về c
r
d: mật khẩ
u

c tế, mật k
h
g
thuật toán.
u
yển đổi mậ
t

ng được gọ
i
đ
ó chính là t
c
ơ bản củ
a
i
dentialit
y
/
p
h

b
ỏ (non-rep
u
ô
ng tin. Thô
n
)
.
dentificati
o
n
tity) như l
à
a
người dùn
g

i chung là c
r
h
anh

t điều quan
t
hì phải tin t
ư
o
àn toàn và
o
ô

n
h
p
rivacy): tí
n
h
chất này đ

đ
ảm bảo thô
n
được thông
n
e-way func
t
n
): người g

o
rd, một ch
a
c
thực. Sự x
á
c
ation).
u
diation):
n
n

o ông bác s
anh A, anh
B
.
vào chính
m
y
nhiều từ
m
à

i
d
ùng tạo r
a
n
g bất cứ hệ
ầu thành ch
ì
v
ation, key s
t
n
g cho qui t
r
h
bảo mật
n
h chất này
đ

ho phép củ
a
d
entity có t
h
ư
u ý đó là s

h
ả năng duy
m
à tạo ra kh
ó
n
g:
ĩ, nhưng liệ
u
A tin tưởng
m
ình không?
à
người dùn
g
a
thường kh
thống
m
ã h
ó
ì

c nhận sau
c
thực hiện t
h
t
hệ thống,
m
(primary ke
y
a
người dùn
g
h
ể là login,
d

tin tưởng l

t
r
ì bí mật c

ó
a riêng (pr
i
u
ông bác sĩ
vào vợ anh
(không phả
i

MAC đượ
c
t
hể chứng
m

t toán
m
ã
h
h
iện một ch
i
này không
t
h
ông qua m

m
ột tài nguy
ê
y
). identity
n
g
cũng như
c
d
ấu vân tay,
A

đ
ổi
m
à khôn
g
khi nó bị n
g
b
ị nghe lén
h
c

d
ùng để đ

m
inh đúng họ
h
óa hoặc mộ
t
i
ều (one-wa
y
t
hể chối bỏ
v

t chữ ký đi

ê

o cũng phả
i

c tạo chìa
k
g
bị
g
he
h
oặc

m
.
t

y
)
v
iệc

n tử

t
ịnh
n
h
đ

m

chìa khóa có thể có. Đây là phương pháp tấn công thô sơ nhất và cũng khó khăn nhất. Theo lý
thuyết, tất cả các thuật toán hiện đại đều có thể bị đánh bại bởi brute-force nhưng trong thực tiễn
việc này chỉ có thể thực hiện được trong thời gian dài. Vì thế có thể coi một thuật toán là an toàn
nếu như không còn cách nào khác để tấn công nó dễ hơn là brute-force. Ngoài ra để chống lại tấn
công này, chìa khóa bị mật được thay đổi một cách thường xuyên hơn.

4. Thuật toán mã hóa

a. Cổ điển(cái này ngày nay vẫn hay dùng trong trò chơi tìm mật thư). • Substitution: thay thế – phương pháp mã hóa trong đó từng kí tự (hoặc từng nhóm kí tự) của
văn bản ban đầu được thay thế bằng một (hay một nhóm) kí tự khác. Tuy không còn được sử
dụng nhưng ý tưởng của phương pháp này vẫn được tiếp tục trong những thuật toán hiện đại

• Transposition: hoán vị – phương pháp mã hóa trong đó các kí tự trong văn b
ản ban đầu chỉ
thay đổi vị trí cho nhau còn bản thân các kí tự không hề bị biến đổi.

b.Hiện đại

b.1. Symmetric cryptography: mã hóa đối xứng, tức là cả hai quá trình mã hóa và giải mã đều
dùng một chìa khóa. Để đảm bảo tính an toàn, chìa khóa này phải được giữ bí mật. Vì thế các
thuật toán loại này còn có tên gọi khác là secret key cryptography (hay private key
cryptography), tức là thuật toán mã hóa dùng chìa khóa riêng (hay bí mật). Các thuật toán loại
này lý tưởng cho mục đích mã hóa dữ liệu của cá nhân hay tổ ch
ức đơn lẻ nhưng bộc lộ hạn chế
khi thông tin đó phải được chia sẻ với một bên thứ hai.

Giả sử nếu Alice chỉ gửi thông điệp đã mã hóa cho Bob mà không hề báo trước về thuật toán sử

toán khố
i
Chamele

b.2. As
ym
với nhau
dùng để
g
thể được
công kh
a
dùng chì
a
ElGama
l

Quay lại
công kh
a
khác (th
ô
mình và
g
của mìn
h
Alice và
vậy cho
p
mật nào


c
hưa được b
i
i
với kích t
h
on
m
metric cr
y
về mặt toá
n
g
iải
m
ã (pri
v
giải
m
ã với
a
i (không bí
m
a
khóa côn
g
l
, Diffie Hel
l

t toán khối

liệu khác
c
Ví dụ thuật
D
ES, 3DES,
h
uật toán dò
n

c độ nhanh
i
ết t
r
ước, ví
d
h
ước mỗi kh

y
pto
g
raph
y
n
học, một c
h
v
ate key).

ì
nh 2: Thuậ
t
. Kh
ó
à
nh hai nhó
m
– trong đó
t
c
ó cùng độ d
toán 3-Way
RC5, RC6,
n
g – trong đ
ó
hơn các thu

d
ụ trong kế
t

i là 1 bit.
M
y
: mã hóa b

h
ìa công kh

m

t
toán
m
ã hó
a
ó
a này được
m
phụ:
t
ừng khối d

ài. Độ dài
m
có kích thư

3-Way, C
A
ó

d
ữ liệu đầ
u

t toán khối
,
t
nối không

c
thông điệ
p
c
ông thì bức
hai người c
h
dịch trong
k
m
ã được th
ô
a
đối xứng
xây dựng s
a

liệu trong
v
m
ỗi khối gọi

c khối bằn
g
A
ST, Cameli
a
u
vào được
m

a
đó chính l
à
A
lice dùng
n
p
đã mã hóa
a
thông điệp
đ
h
ưa từng qu
e
k
hi không c
h
ô
ng điệp Ali
c
a
o cho
v
ăn bản ban
là block siz
e
g
96 bit. M

a

g là : RSA
,

t tới Bob,
c
à
của Bob c
h
n
ó để mã hó
a
a
nh ta sẽ dù
n
đ
ó đúng là
d
e
n biết. Một
h
ia sẻ t
r
ước
m
c
e
m
ã hóa g



ó
h
uật toán m
ã
,
Elliptic Cu
r
c
ô ta sẽ tìm
c
h
ứ không củ
a
a
thông điệp
n
g chìa bí
m
d
ành cho Bo
b
hệ thống n
h
m
ột thông ti
n

i
h
ay

b
.
h
ư
n


Trong ví
public

Một tro
n
thực tế n
g
toán đối
x
bất đối x

khóa bí
m

5. Một
s

a. One-t
i

OTP xu

là cái ch

người ta
k
n
g những hạ
n
g
ười ta thư

x
ứng, chỉ c
ó

ng. Hay n
ó
m
ật rồi sau
đ
s
ố thuật t
o
i
me Pad (O

t hiện từ đầ
u
é
n thánh củ
a
không thể
p

như vậy c
ũ
Hìn
h
h
ấy khóa pu
b
k
hông thể tì
m
n
chế của cá
c

ng sử dụng
ó
chìa dùng
đ
ó
i một cách
k
đ
ó
d
ùng thu

o
án nổi tiế
n
TP):

o
ra một số
n
o
m Number
h
ân hay bức
ũ
ng hết sức
k
h
3: Thuật t
o
b
lic và khóa
m
ra được k
h
c
thuật toán
một hệ thố
n
đ
ể thực hiện
k
hác là ngư


t toán đối x


Generator).
xạ nền vũ t
r
k
hó khăn.

o
án
m
ã hóa
b
private phả
i
h
óa private.
m
ã hóa bất
đ
n
g lai tạp tro
n
việc
m
ã hó
a

i ta
d
ùng th
u

i
đáp ứng

đ
ối xứng là
t
n
g đó dữ liệ
u
a
này
m
ới đ
ư
u
ật toán bất
a
khóa bí
m

Vernam Ci
p

t toán duy
n
t
ận (tức là c
ó
T
P, tất cả nh

r
ên để tru
y
p
her, OTP đ
n
hất chứng
m
ó
thể chống

ng điều ki

ày khó có t
h
phải cần m


t bộ tạo số
n
g
nguồn ng


, chuyển gi
a

và từ
m
, do đó tron

u nhiên vật
a
o và bảo vệ
khóa
g

t
huật
o
án
a

n
.
anh


c
ông
đ
ược

t
hực

một
Dễ dàng hơn, Alice cũng có thể dùng một bộ tạo số ngẫu nhiên ảo (PRNG - Pseudo Random
Number Generator) nhưng khi đó mức độ bảo mật giảm xuống gần bằng zero hay cùng lắm chỉ
tương đương với một thuật toán dòng như RC4 mà thôi.


này)

d. RSA: là một thuật toán mã hóa bất đối xứng được sử dụng rất rộng rãi trong giao dịch điện tử.
Cái tên RSA có nguồn gốc từ ba chữ cái đầu của tên ba người đồng thiết kế ra nó: Ronald Rivest,
Adi Shamir và Leonard Adleman.

6. Hàm hash

Hàm hash (hash function) là hàm một chiều mà nếu đưa một lượng dữ liệu bất kì qua hàm này sẽ
cho ra một chuỗi có độ dài cố định ở đầu ra.
Ví dụ, từ "Illuminatus" đi qua hàm SHA-1 cho kết quả
E783A3AE2ACDD7DBA5E1FA0269CBC58D. Ta chỉ cần đổi "Illuminatus" thành "Illuminati"
(chuyển "us" thành "i") kết quả sẽ trở nên hoàn toàn khác (nhưng vẫn có độ dài cố định là 160
bit) A766F44DDEA5CACC3323CE3E7D73AE82.

Hai tính chất quan trọng của hàm này là:

• Tính một chiều: không thể suy ra dữ liệu ban đầu từ kết quả, điều này tương tự như việc bạn
không thể chỉ dựa vào một dấu vân tay lạ mà suy ra ai là chủ của nó được.

• Tính duy nhất: xác suất để có một vụ va chạm (hash collision), tức là hai thông điệp khác nhau
có cùng một kết quả hash, là cực kì nhỏ.

Một số ứng dụng của hàm hash:

• Chống và phát hiện xâm nhập: chương trình chống xâm nhập so sánh giá trị hash của một file
với giá trị trước đó để kiểm tra xem file đó có bị ai đó thay đổi hay không.

• Bảo vệ tính toàn vẹn của thông điệp được gửi qua mạng bằng cách kiểm tra giá trị hash của
thông điệp trước và sau khi gửi nhằm phát hiện những thay đổi cho dù là nhỏ nhất.

- Thông tin được mã hóa bằng khóa bí mật thì chỉ có thể giải mã bằng khóa công khai.

Các bước tạo khóa công khai và bí mật

1. Dùng 2 số nguyên tố khác nhau (số nguyên tố lớn), ta gọi là p và q. đặt N là tích của chúng
N=p*q

2. Tìm bội số chung nhỏ nhất L của (p-1) và (q-1)

3. Tìm số nguyên dương bất kỳ e sao cho e và L là 2 số nguyên tố cùng nhau. (ước chung của e
và L = 1)

4. Tìm số nguyên dương d sao cho e*d chia cho L có số dư là 1
Tóm lại là e và L, d và L đều là nguyên tố cùng nhau.

Như vậy, ta sẽ được:
Khóa công khai: e, n
Khóa bí mật: d
Đặc điểm: từ e, n để tìm ra d thì cực kỳ khó khăn.

ta gọi
Thông tin ch
ưa mã hóa: M
Thông ti
n

Mã hóa:

Giải mã:



hơn n (0~
n
n
-1) vì khi c
h
h
ia cho n, sẽ nhận được
s
s

d
ư


Nhờ tải bản gốc
Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status