Tải bản đầy đủ (.doc) (51 trang)

VẤN ĐỀ MÃ HOÁ THÔNG TIN

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (246.31 KB, 51 trang )

MỤC LỤC
Chương 1: VẤN ĐỀ MÃ HỐ THƠNG TIN………………………………..4
1.1 KHÁI NIỆM MÃ HOÁ…………………………………………………..4
1.1.1 Định nghĩa………………………………………………………….4
1.1.2 Phân loại……………………………………………………………6
1.2 HỆ MÃ HOÁ ĐỐI XỨNG…………………………………………….....7
1.2.1 Hệ mã hoá đối xứng cổ điển....……………………………………...7
1.2.1.1 Mã dịch vòng……………………………………………………7
1.2.1.2 Mã thay thế……………………………………………………...8
1.2.1.3 Mã Affine…………………………………………………….....9
1.2.1.4 Mã Vigenere…………………………………………………...10
1.2.1.5 Mã Hill………………………………………………………...11
1.2.1.6 Mã hốn vị…………………………………………………….12
1.2.1.7 Mã dịng……………………………………………………….13
1.2.2 Hệ mã hố đối xứng hiện đại………………………………………14
1.2.2.1 Mã theo chuỗi bit………………………………………………14
1.2.2.2 Mã theo chữ……………………………………………………14
1.2.2.3 Mã theo khối…………………………………………………...15
1.2.2.4 Mã mũ…………………………………………………………15
1.2.2.5 DES……………………………………………………………16
1.3 HỆ MÃ HỐ CƠNG KHAI……………………………………………..17
1.3.1 Hệ mật mã RSA…………………………………………………....17
1.3.1.1 Định nghĩa sơ đồ hệ mật……………………………………….17
1.3.1.2 Thực hiện hệ mật………………………………………………18
1.3.1.3 Các phương pháp tấn công hệ mật……………………………..18
1.3.2 Hệ Elgamal……………………………………………………........19

1


Chương 2: VẤN ĐỀ GIẤU TIN………………………………………………..20


2.1 KHÁI NIỆM VỀ GIẤU TIN....…………………………………………..20
2.1.1 Khái niệm thơng tin “số hố”……………………………………..20
2.1.2 Khái niệm giấu tin…………………………………………………21
2.1.3 Mơ hình giấu tin…………………………………………………....22
2.1.3.1 Mơ hình giấu tin vào phương tiện chứa………………………..22
2.1.3.2 Mơ hình tách tin từ phương tiện chứa………………………….23
Một số thuật ngữ cơ bản……………………………………………………...24
2.1.4 Phân loại kỹ thuật giấu tin………………………………………...25
2.1.4.1 Phân loại theo phương tiện chứa……………………………….25
2.1.4.2 Phân loại theo cách thức tác động lên phương tiện…………….25
2.1.4.3 Phân loại theo mục đích sử dụng………………………………25
2.1.5 Các thành phần trong kỹ thuật giấu tin…………………………..26
2.1.5.1 Phương tiện chứa tin…………………………………………...26
2.1.5.2 Thông tin cần che giấu…………………………………………27
2.1.5.3 Khoá giấu tin…………………………………………………..27
2.2 CÁC GIAO THỨC GIẤU TIN…………………………………………..28
2.2.1 Giấu tin thuần t………………………………………………….28
2.2.2 Giấu tin sử dụng khố bí mật……………………………………...29
2.2.3 Giấu tin với khố cơng khai……………………………………….30
2.3 GIẤU TIN TRONG DỮ LIỆU ĐA PHƯƠNG TIỆN…………………..31
2.3.1 Giấu tin trong ảnh…………………………………………………31
2.3.2 Giấu tin trong audio……………………………………………….32
2.3.2 Giấu tin trong video……………………………………………….33

2


2.4 PHƯƠNG PHÁP GIẤU TIN TRONG MÔI TRƯỜNG ĐA PHƯƠNG TIỆN….34
2.4.1 Một số ký hiệu…………………………………………………….34
2.4.2 Nguyên lý giấu tin bằng cách thay thế……………………………35

2.4.3 Thay đổi các bit ít quan trọng nhất……………………………….37
2.4.4 Phương pháp giấu tin vào các vùng của phương tiện chứa……...41
2.4.5 Hoán vị giả ngẫu nhiên…………………………………………….44
2.4.6 Giảm chất lượng ảnh để giấu tin…………………………………..46
2.4.7 Giấu tin trong ảnh màu……………………………………………47
2.4.7.1 Giấu tin trong các định dạng ảnh dùng bảng màu……………...47
2.4.7.2 Giấu tin trong các ảnh màu thông thường……………………...49
Những thuật ngữ viết tắt……………………………………………………...50

3


Chương 1

VẤN ĐỀ MÃ HỐ THƠNG TIN

1.1 KHÁI NIỆM MÃ HOÁ
1.1.1 Định nghĩa
Đối tượng cơ bản của mật mã là tạo ra khả năng liên lạc trên một kênh
không mật cho hai người sử dụng (có thể gọi là S (Sender) và R (Receiver)) sao
cho đối phương T không hiểu được thơng tin được truyền đi. Kênh này có thể là
một đường dây điện thoại hoặc một mạng máy tính. Thơng tin mà S muốn gửi
cho R (bản rõ) có thể ở bất kỳ dạng dữ liệu nào. S sẽ mã hoá bản rõ bằng một
khoá đã được xác định trước và gửi bản mã trên kênh. T có bản mã thu trộm
được trên kênh, song “khó” thể xác định được nội dung bản rõ. R (là người
biết khố) có thể giải mã và thu được bản rõ.
Định nghĩa hệ mật mã
Hệ mật mã là một bộ 5 (P, C, K, E, D) thoả mãn các điều kiện sau:
1. P là một tập hữu hạn các bản rõ có thể.
2. C là tập hữu hạn các bản mã có thể.

3. K (khơng gian khố) là tập hữu hạn các khố có thể.
4. Đối với mỗi k ∈ K có một quy tắc mã: P → C và một quy tắc giải
mã tương ứng dk ∈ D. Mỗi ek: P → C và dk: C → P là những hàm mã:
dk (ek (x)) = x với mọi bản rõ x ∈ P.
Tính chất 4 là tính chất chủ yếu. Nội dung của nó là nếu một bản rõ x
được mã hố bằng ek và bản mã nhận được sau đó được giải mã bằng d k thì ta
phải thu được bản rõ ban đầu x. S và R sẽ áp dụng thủ tục sau dùng hệ mật khoá
riêng. Trước tiên họ chọn ngẫu nhiên một khoá k ∈ K. Điều này thực hiện khi
họ ở cùng một chỗ và không bị T theo dõi, hoặc khi họ có một kênh mật trong
trường hợp ở xa nhau. Sau đó giả sử S muốn gửi một thông báo cho R trên một
kênh không mật và ta xem thông báo này là một chuỗi: x = x 1, x2, …, xn với số
nguyên n ≥ 1 nào đó.

4


Ở đây mỗi một ký hiệu của bản rõ x ∈ P, 1 ≤ i ≤ n. Mỗi xi sẽ được mã
hoá bằng quy tắc mã ek với khoá k xác định trước đó.
Bởi vậy, S sẽ tính y = e k (x i ), 1 ≤ i ≤ n và chuỗi bản mã nhận được
y = y1y2…yn , sẽ được gửi trên kênh. Khi R nhận được y = y 1y2…yn anh ta sẽ giải
mã dk và thu được bản rõ gốc x1x2…xn.

T

S

Bộ mã hố

Bộ giải mã


R

Kênh an tồn

Nguồn khố
Hình 1: Kênh liên lạc

Rõ ràng là trong trường hợp này hàm mã hoá e k phải là hàm đơn ánh (tức
là ánh xạ 1 - 1). Nếu không việc giải mã sẽ không thể thực hiện được một cách
tường minh.

5


1.1.2 Phân loại
Các hệ thống mã hoá phổ biến thuộc một trong hai loại sau:


Mã hố với khố đối xứng (Symmetric-key Encryption)



Mã hố với khố cơng khai (Public-key Encryption)

Mã hóa đối xứng là hệ mã hoá mà biết được khoá lập mã thì “dễ ” tính
khố giải mã và ngược lại. Trong một số trường hợp, hệ mã hoá khoá đối xứng
có khố lập mã và khố giải mã trùng nhau.
Mã hóa với khố cơng khai sử dụng hai khóa khác nhau thực sự, để
mã hóa và giải mã thơng tin. Tức là biết khố này “khó” tính được khố kia.
Mỗi hệ thống mã hóa có ưu nhược điểm riêng. Mã hóa với khố đối xứng

xử lí nhanh, nhưng độ an tồn khơng cao. Mã hóa với khố cơng khai xử lí chậm
hơn, nhưng độ an tồn và tính thn tiện trong quản lí khóa cao.
Trong các ứng dụng mã hóa hiện tại, người ta thường kết hợp các ưu điểm
của cả hai loại mã hóa này.

6


1.2 HỆ MÃ HỐ ĐỐI XỨNG
1.2.1 Hệ mã hố đối xứng cổ điển
1.2.1.1 Mã dịch vịng
Ta sẽ mơ tả mã dịch vòng dựa trên số học module.
Ta định nghĩa Zm là tập các số nguyên từ 0 đến m – 1, ký hiệu đó cũng
dùng cho các số nguyên từ 0 đến m – 1 với các phép cộng và nhân theo mod m.
Việc cộng và nhân trong Zm được thực hiện giống như cộng và nhân các số thực
ngoại trừ một điểm là các kết quả sẽ được rút gọn theo module m.
Mã dịch vòng được xác định trên Z25 (do có 26 chữ cái trên bảng chữ cái
tiếng Anh) mặc dù vậy có thể xác định nó trên Zm với module m tuỳ ý.
Định nghĩa:
Giả sử P = C = Z26 với 0 ≤ k ≤ 25
ek(x) = x + K mod 26

dk(x) = y – K mod 26
(x, y ∈ Z26)
Trong trường hợp K = 3, hệ mật mã thường được gọi là hệ mã Caesar đã
được Julius Caesar sử dụng.
Ta sẽ sử dụng mã dịch vòng (với module 26) để mã hoá một văn bản tiếng
Anh thông thường bằng cách thiết lập sự tương ứng giữa các kí tự và các thặng
dư theo module 26 như sau: A ⇔ 0, B ⇔ 1, …, Z ⇔ 25.
A

0
N
13

B
1
O
14

C
2
P
15

D
3
Q
16

E
4
R
17

F
5
S
18

G

6
T
19

7

H
7
U
20

I
8
V
21

J
9
W
22

K
10
X
23

L
11
Y
24


M
12
Z
25


1.2.1.2 Mã thay thế
Một hệ mã nổi tiếng khác là hệ mã thay thế.
Định nghĩa:
Cho P = C = Z26. K chứa mọi hốn vị có thể của 26 kí hiệu 0, 1, …, 25
Với mỗi phép hoán vị π ∈ K, ta định nghĩa:
eπ(x) = π (x)
dπ(y) = π-1(y)



trong đó π-1 là hốn vị ngược của π.
Sau đây là một ví dụ về phép hốn vị ngẫu nhiên π tạo nên một hàm mã
hố (các kí hiệu của bản rõ được viết bằng chữ thường cịn các kí tự của bản mã
là chữ in hoa).
a
X
n
S

b
N
o
F


c
Y
p
L

d
A
q
R

e
H
r
C

f
P
s
V

g
O
t
M

h
G
u
U


i
Z
y
E

j
Q
w
K

k
W
x
J

l
B
y
D

m
T
z
I

Như vậy, eπ(a) = X, eπ(b) = N,…hàm giải mã là phép hoán vị ngược. Điều
này được thực hiện bằng cách viết hàng thứ hai lên trước rồi sắp xếp theo thứ tự
chữ cái. Ta nhận được:
A


B

C

D

E

F

G

H

I

J

K

L

M

d

l

r


y

v

o

h

e

z

x

w

p

T

N

O

P

Q

R


S

T

U

V

W

X

Y

Z

b

g

f

j

q

n

m


u

s

k

a

c

I

Bởi vậy dπ(A) = d, dπ(B) = l,…

1.2.1.3 Mã Affine

8


Mã dịch vòng là một trường hợp đặc biệt của mã thay thế chỉ gồm 26
trong số 26! các hoán vị có thể của 26 phần tử. Một trường hợp đặc biệt khác
của mã thay thế là mã Affine được mô tả dưới đây. Trong mã Affine, ta giới hạn
chỉ xét các hàm mã có dạng: e(x) = a * x + b mod 26 (a, b ∈ Z26. Các hàm này
được gọi là hàm Affine, chú ý rằng khi a = 1 ta có mã dịch vịng).
Định nghĩa:
Cho P = C = Z26 và giả sử
K = {(a, b) ∈ Z26 × Z26: UCLN (a, 26) = 1}
Với K = (a, b) ∈ K ta định nghĩa:
ek(x) = a * x + b mod 26



dk(y) = a-1 (y - b) mod 26

với x, y ∈ Z26
Để có được phép giải mã tương ứng, tức để cho phương trình:
a * x + b = c mod 26
có lời giải đối với x (với bất kì c cho trước) thì điều kiện cần và đủ là a
nguyên tố với 26, tức UCLN(a, 26) = 1.
Khi UCLN (a, 26) = 1, thì có số a-1 ∈ Z26 sao cho a * a-1 = a-1 * a = 1 mod 26
và do đó, nếu y = a * x + b mod 26, thì x = a-1 (y - b) mod 26 và ngược lại.

1.2.1.4 Mã Vigenere

9


Trong cả hai hệ mã dịch vòng và mã thay thế (một khi đã được chọn) mỗi
kí tự sẽ được ánh xạ vào một kí tự duy nhất. Vì lý do đó, các hệ mật mã cịn lại
được gọi là hệ thay thế đơn biểu. Bây giờ ta sẽ trình bày một hệ mật mã không
phải là bộ chữ đơn, đó là hệ mật mã Vigenere nổi tiếng. Mật mã này lấy tên của
Blaise de Vigenere sống vào thế kỷ 16.
Sử dụng phép tương ứng A ⇔ 0, B ⇔ 1,…, Z ⇔ 25 mơ tả ở trên, ta có
thể gắn cho mỗi khố K với một chuỗi kí tự có độ dài m được gọi là từ khố. Mã
Vigenere sẽ mã hố đồng thời m kí tự: Mỗi phần tử của bản rõ tương đương với
m kí tự.
Định nghĩa:
Cho m là một số nguyên dương cố định nào đó.
P = C = K = (Z26)m. Với khoá K = (k1, k2,…, km) ta xác định:
ek(x1, x2,…, xm) = (x1 + k1, x2 + k2,…, xm + km)



dk(y1, y2,…, ym) = (y1 – k1, y2 – k2,…, ym - km)

trong đó tất cả các phép tốn được thực hiện trong Z26.

1.2.1.5 Mã Hill
10


Trong phần này sẽ mô tả một hệ mật thay thế đa biểu khác đựoc gọi là
mật mã Hill. Mật mã này do Lester S.Hill đưa ra vào năm 1929. Giả sử m là một
số nguyên dương, đặt P = C = (Z26)m. Ý tưởng ở đây là lấy m tổ hợp tuyến tính
của m kí tự trong một phần tử của bản rõ để tạo ra m kí tự ở một phần tử của bản
mã. Như vậy, khoá sẽ được cho bởi một ma trận cấp m, tức là một phần tử của
Z26m*n. Để phép biến đổi tuyến tính xác định bởi ma trận K ∈ Z26m*n có phép
nghịch đảo, ma trận K cũng phải có phần tử nghịch đảo K -1 ∈ Z26m*n. Điều kiện
cần và đủ để ma trận K có ma trận nghịch đảo là định thức của nó, kí hiệu det K
ngun tố với m.
Định nghĩa:
Cho m là số nguyên dương. P = C = Z26m,
К = {K ∈ Z26m*n: (det K, 26) = 1 }
Với mỗi K ∈ К, ta có:
ek (x1, x2, …, xm) = (x1, x2, …, xm) * K


dk (y1, y2, …, ym) = (y1, y2, …, ym) * K-1.

1.2.1.6 Mã hoán vị
11



Tất cả các hệ mật mã trên ít nhiều đều xoay quanh phép thay thế: các kí tự
của bản rõ được thay bằng các kí tự khác trong bản mã. Ý tưởng của mã hốn vị
là giữa các kí tự của bản rõ không thay đổi nhưng sẽ thay đổi vị trí của chúng
bằng cách sắp xếp lại các vị trí này. Mã hốn vị (cịn được gọi là mã chuyển vị)
đã được dùng từ hàng trăm năm nay. Thật ra thì sự phân biệt giữa mã hốn vị và
mã thay thế đã được Giovani Porta chỉ ra từ những năm 1563. Không giống như
mã thay thế, ở đây không có các phép tốn đại số nào cần thực hiện khi mã hố
và giải mã nên thích hợp hơn cả là dùng ln các kí tự mà khơng dùng các thặng
dư theo module 26.
Định nghĩa:
Cho m là một số nguyên dưong xác định nào đó.
Cho P = C = (Z26)m và К gồm tất cả các hoán vị của {1, …, m}.
Đối với một khoá π (tức là một hoán vị) ta xác định:
eπ (x1, …, xm) = (xπ(1), …, xπ(m))


dπ (y1, …, ym) = (yπ-1(1), …, yπ-1(m))

trong đó π-1 là hốn vị ngược của π.

1.2.1.7 Mã dịng
12


Trong các hệ mật mã nghiên cứu ở trên, các phần tử liên tiếp của bản rõ
đều được mã hoá bằng cùng một khoá K. Tức xâu bản mã y nhận được có dạng:
y = y1y2y3…. = ek (x1) ek (x2)….
Các hệ mật mã thuộc dạng này thường được gọi là các mã khối. Một quan

điểm sử dụng khác là mật mã dòng. Ý tưởng cơ bản ở đây là tạo ra một dịng
khố z = z1z2… và dùng nó để mã hoá một xâu bản rõ x = x1x2…. theo quy tắc:
y = y1y2y3…. = e z (x1) e z (x2)….
1

2

Mã dòng hoạt động như sau: Giả sử k ∈ K là khoá và x1x2.... là xâu bản
rõ. Hàm fi được dùng để tạo zi (zi là phần tử thứ i của dịng khố) trong đó fi là
một hàm của khố K và i – 1 kí tự đầu tiên của bản rõ.
z = fi (K, x1, …, xi - 1)
Phần tử zi của dịng khố được dùng để mã xi tạo ra yi = ezi (xi). Bởi vậy,
để mã hố xâu bản rõ x1x2.... ta phải tính liên tiếp: z1, y1, z2, y2…
Việc giải mã xâu bản mã y1y2…. có thể được thực hiện bằng cách tính liên
tiếp: z1, x1, z2, x2….
Định nghĩa:
Mật mã dòng là một bộ (P, C, K, L, F, E, D) thoả mãn các điều kiện sau:
1. P là tập hữu hạn các bản rõ có thể
2. C là tập hữu hạn các bản mã có thể
3. K là tập hữu hạn các khố có thể (khơng gian khố)
4. L là tập hữu hạn bộ chữ của dịng khố
5. F = (f1f2….) là bộ toạ dịng khố. (Với i ≥ 1) fi : K × P-1 → L
6. Với mỗi z

∈ L có một quy tắc mã ez ∈ E và một quy tắc giải mã tương

ứng dz ∈ D. (ez : P → C và dz : C → P là một hàm thoả mãn dz (ez (x)) = x
với mọi bản rõ x ∈ P ).
1.2.2 Hệ mã hoá đối xứng hiện đại


13


1.2.2.1 Mã theo chuỗi bit
Trong hệ mã theo chuỗi bit, thơng điệp là các bit và khố được phát sinh
bởi một bộ phát sinh bit ngẫu nhiên. Bản rõ được mã hoá theo từng bit một để
được bản mã:
M

0 1 1 0 0 0 1 1 1 1 1 1 1 0 1 0…

K
C

1 0 0 1 1 0 0 1 0 0 0 1 0 1 1 1…
1 1 1 1 1 0 1 0 1 1 1 0 1 1 0 1…
Khoá được cung cấp cho bộ phát sinh bit ngẫu nhiên để tạo ra dãy tín

hiệu nhị phân. Chuỗi bit khố K sau đó được trộn với bản rõ M, thường theo
phép XOR (phép cộng mod 2), để sinh ra bản mã C. Giải mã được thực hiện
bằng cách XOR bản mã với cùng khoá K do sử dụng bộ phát sinh chuỗi bit ngẫu
nhiên tạo ra:
C

1 1 1 1 1 0 1 0 1 1 1 0 1 1 0 1…

K
M

1 0 0 1 1 0 0 1 0 0 0 1 0 1 1 1…

0 1 1 0 0 0 1 1 1 1 1 1 1 0 1 0…

1.2.2.2 Mã theo chữ
Các hệ mã ban đầu thường dựa trên cơ sở phép biến đổi một chữ cái trong
bản rõ thành một chữ cái khác trong bản mã. Kỹ thuật mã hố này cịn được gọi
là mã thay thế, do một ký tự được chuyển thành một ký tự khác bằng cách thay
thế. Để thực hiện phương pháp này, cần định nghĩa một bảng mã (như bảng mã
ASCII) để số hố bản rõ, vì các phép tốn này làm việc trên các số thay vì các
ký tự.
Minh hoạ:
A B C D E F G H I K L…R S

T U V W X Y Z

00 01 02 03 04 05 06 07 08 09 10 …17 18 19 20 21 22 23 24 25

1.2.2.3 Mã theo khối

14


Trong mã khối, bản rõ và bản mã được chia thành từng khối ký tự trước
khi thi hành mã hóa và giải mã. Kỹ thuật mã theo khối được mô tả như sau:
- Chia văn bản M thành nhiều khối, M = M1M2…Mj, mỗi khối Mi, 1 ≤ i ≤j
là một khối n ký tự.
- Chuyển các ký tự thành các số tương đương và xây dựng bản mã:
Ci = AMi + B( mod n), i = 1,2,…,j
Trong đó, (A, B) là khoá, A là một ma trận khả nghịch cấp n, với
gcd(det(A), n) = 1, B = (B1, B2,…, Bn)T, C = (c1, c2, …, cn) và Mi = (m1, m2,…, mn)T.
- Để giải mã, ta thi hành phép tốn:

Mi = A-1(Ci - B)(mod n).
trong đó A-1 là ma trận nghịch đảo của A.
1.2.2.4 Mã mũ
Mã mũ do Pohlig và Hellman giới thiệu năm 1976, có thể được mơ tả như
sau. Chọn p là số nguyên tố, M là một số tương ứng của bản rõ với mỗi ký tự
trong bản rõ được thay thế bằng mã tương ứng như trong bảng (có mở rộng để
xử lý ký tự trắng):
‘‘ A B C D E F G H I K L … R S

T U V W X Y Z

00 01 02 03 04 05 06 07 08 09 10 11 …18 19 20 21 22 23 24 25 26
- Chia M thành các khối Mi, 0 < Mi < p. Gọi k là một số nguyên thoả mãn
0 < k < p và gcd (k, p-1) = 1.
- Mã hoá khối Mi thành:
Ci = E(k,Mi)

≡ Mik (mod p)

- Ci được giải mã theo cơng thức
Mi = D(v,Ci)
trong đó, kv





Civ

1 (mod p-1).


1.2.2.5 DES
15



(Mik)v



Mi (mod p)


Mơ hình mã khố bí mật (mã hố đối xứng) phổ biến nhất đang được sử
dụng là DES – Data Encryption Standard - được IBM đề xuất và được uỷ ban
Chuẩn Quốc gia Mỹ, hiện gọi là Viện Quốc gia về chuẩn và công nghệ (NIST),
chấp nhận như một chuẩn chính thức.
DES sử dụng một phép tốn hốn vị, thay thế, và một số toán tử phi tuyến.
Các phép toán tử phi tuyến này được áp dụng (16 lần) vào từng khối của thông
điệp 32 bit. Bản rõ, trước hết, được chia thành các khối thơng điệp 64 bit. Khố
sử dụng 56 bit nhận được từ khố bí mật 64 bit, có chứa 8 bit kiểm tra chẵn lẻ.
Thuật giải giải mã được thực hiện theo chiều ngược lại, với cùng một khố bí
mật đã dùng khi mã hóa.

16


1. 3 HỆ MÃ HỐ KHỐ CƠNG KHAI
Phương pháp mã hố cơng khai là sự phối hợp giữa một khố riêng
(Private Key) và một khố cơng khai (Public Key). Khố riêng chỉ được biết bởi

mỗi máy tính, trong khi khố cơng khai được máy tính này cung cấp cho các
máy tính khác giao tiếp với nó. Để giải mã một thơng điệp đã mã hố, máy tính
nhận thơng điệp phải dùng khố bí mật.
1.3.1 Hệ mật mã RSA
1.3.1.1 Định nghĩa sơ đồ hệ mật
Hệ mật mã RSA sử dụng các tính tốn trong Z n, trong đó n là tích của 2 số
nguyên tố phân biệt p và q. Ta nhận thấy rằng φ(n) = (p - 1)(q - 1).
Định nghĩa:
Cho n = p * q với p, q là số nguyên tố lớn. Đặt P = C = Zn
Chọn b nguyên tố với φ(n) , φ(n) = (p - 1)(q - 1).
K = {(n, a, b): a * b



1 (mod φ(n) )}.

Giá trị n và b là công khai, và a là bí mật
Với mỗi K = (n, a, b), mỗi x ∈ P, y ∈ C, ta có:
Hàm mã hoá:
y = ek(x) = xb mod n
Hàm giải mã:
dk (x) = ya mod n

17


1.3.1.2 Thực hiện hệ mật
Có nhiều khía cạnh cần thảo luận về hệ mật mã RSA, bao gồm các chi tiết
về việc thiết lập hệ mật mã, tính hiệu quả của phép mã và giải mã và độ mật của
hệ. Để thiết lập hệ thống, R sẽ tuân theo các bước sau:

1. R tạo 2 số ngưyên tố lớn p và q
2. R tính n = p * q và φ(n) = (p - 1)(q - 1)
3. R chọn một số ngẫu nhiên b (1 < b < φ(n) ) sao cho UCLN(b, φ(n) ) =

1
4. R tính a = b-1 mod φ(n) dùng thuật toán Euclide mở rộng
5. R công bố n và b trong một danh bạ và dùng chúng làm khố cơng khai.

1.3.1.3 Các phương pháp tấn công hệ mật
Cách tấn công dễ thấy nhất đối với hệ mật mã này là thám mã cố gắng
phân tích n ra các thừa số nguyên tố. Nếu thực hiện được phép phân tích này thì
có thể dễ dàng tính được φ(n) = (p -1)*(q - 1) và tính số mũ a và b đúng như R
làm.
Vì thế để hệ RSA được coi là mật thì nhất thiết n = p*q phải là một số đủ
lớn để việc phân tích nó sẽ khơng có khả năng về mặt tính tốn.
Vì vậy để đảm bảo an toàn, nên chọn các số p và q có chừng 100 chữ số,
khi đó n sẽ có tới 200 chữ số. Phép mã (hoặc giải mã) sẽ xoay quanh phép lấy
luỹ thừa theo module n. Vì n là một số rất lớn nên ta phải sử dụng số học lấy
chính xác nhiều lần để thực hiện các tính tốn trong Zn và thời gian tính toán cần
thiết sẽ phụ thuộc vào số các bit trong biểu diễn nhị phân của n.

18


1.3.2 Hệ Elgamal
Năm 1985, Elgamal đề nghị một hệ mã khố cơng khai dựa trên bài tốn
logarithm rời rạc. Chúng ta sẽ bắt đầu bằng việc mơ tả bài tốn này khi thiết lập
một trường hữu hạn Zp, p là số nguyên tố.
Bài toán logarithm rời rạc trong Zp là đối tượng trong nhiều cơng trình
nghiên cứu và được xem là bài tốn khó nếu p được chọn cẩn thận. Cụ thể là

khơng có một thuật tốn thời gian đa thức nào cho bài tốn logarithm rời rạc. Để
gây khó khăn cho các phương pháp tấn công đã biết, p phải có ít nhất 150 chữ số
và p – 1 phải có ít nhất một thừa số ngun tố lớn. Lợi thế của bài toán
logarithm rời rạc trong xây dựng hệ mật là khó tìm được các logarithm rời rạc,
song bài tốn ngược lấy luỹ thừa lại có thể tính tốn hiệu quả cao theo thuật tốn
nhân và bình phương. Nói cách khác, luỹ thừa theo module p là hàm một chiều
với các số nguyên tố p thích hợp.
Elgamal đã phát triển một hệ khố cơng khai dựa trên bài toán logarithm
rời rạc. Hệ mật mã Elgamal là một hệ mật mã khơng tất định vì bản mã phụ
thuộc vào bản rõ x lẫn giá trị ngẫu nhiên k do người gửi chọn. Bởi vậy, sẽ có
nhiều bản mã được mã từ cùng bản rõ.
Định nghĩa:
Cho p là số nguyên tố sao cho bài toán logarithm rời rạc trong Z p là khó
giải. Cho

α ∈Z

*
p

là phần tử nguyên thuỷ. Giả sử P = Zp*, C = Zp* × Zp*. Ta định

nghĩa:
K = {(p, α, a, β): β



α a(mod p) }

Các giá trị p, α, β được cơng khai, cịn a giữ bí mật.

Với K = (p, α, a, β) và một số ngẫu nhiên bí mật k ∈ Zp - 1, ta xác định:
ek(x, k) = (y1, y2)
trong đó:

y = α k mod p



y2 = x * βk mod p
19


với y1, y2 ∈ Zp* ta xác định: dk (y1, y2) = y2 (y1a)-1 mod p.

Chương 2

VẤN ĐỀ GIẤU TIN

2.1 KHÁI NIỆM VỀ GIẤU TIN
2.1.1 Khái niệm thông tin “số hố”
Thơng tin là một khái niệm trừu tượng, thể hiện dưới nhiều dạng thức
khác nhau. Thơng tin có thể phát sinh, được lưu trữ, được biến đổi trong những
vật mang tin. Thơng tin có thể được truyền đi, được sao chép hoặc xử lý, để cho
chúng ta các thông tin có ý nghĩa thiết thực. Thơng tin được biểu hiện bằng các
tín hiệu vật lý.
Máy tính khơng thể hiểu được từ ngữ, sách báo tranh ảnh theo nghĩa
thông thường. Máy tính chỉ lưu trữ, xử lý những thơng tin đã được số hoá thành
từng bit – giá trị nhỏ nhất của thơng tin, hoặc thành một nhóm bit gọi là byte.
Bit có thể có hai giá trị tắt-off/mở-on, hoặc hai giá trị có/khơng, 0 – zero/1- one.
Máy tính được chế tạo với các thiết bị chuyển mạch (switching device),

có thể chuyển trạng thái dữ liệu sang dạng những số 0 và 1 của hệ thống số nhị phân.
Đó là hệ thống số bao gồm tất cả các số biểu diễn bởi hai ký hiệu 0 và 1.

20


2.1.2 Khái niệm giấu tin
Giấu tin là giấu (hoặc nhúng) một lượng thông tin số vào trong đối
tượng dữ liệu số khác. “Giấu tin” nhiều khi không phải chỉ hành động giấu theo
nghĩa thông thường, mà chỉ mang ý nghĩa quy ước.
 Mục đích của giấu tin
Giấu tin phục vụ cho hai mục đích trái ngược nhau:
- Bảo mật cho những dữ liệu được giấu trong đối tượng chứa.
- Bảo đảm an tồn (bảo vệ bản quyền) cho chính đối tượng chứa dữ liệu giấu
trong đó.
Hai mục đích giấu tin phát triển thành hai lĩnh vực với yêu cầu và tính
chất khác nhau :
- Giấu thơng tin bí mật (Steganography).
- Thuỷ vân số (Watermarking).

Giấu thơng tin
<Information hiding>

Giấu thơng tin bí mật
<Steganography>

Thuỷ vân số
<Watermarking>

Hình 2: Hai lĩnh vực của giấu tin


21


2.1.3 Mơ hình giấu tin
2.1.3.1 Mơ hình giấu tin vào phương tiện chứa

Thông tin cần
giấu M

Phương
tiện chứa
tin C

Phương
tiện chứa
tin đã
được giấu
(S)

Bộ nhúng
thơng tin

Phân phối

Khố giấu tin
Hình 3: Sơ đồ giấu tin

Đầu vào:
- Thơng tin cần giấu: Tuỳ theo mục đích của người dùng, nó có thể là thơng điệp

(với giấu tin bí mật) hay là các logo, hình ảnh bản quyền.
- Phương tiện chứa: các file ảnh, text, audio…là môi trường để giấu tin.
- Khố: thành phần để góp phần làm tăng độ bảo mật.
Bộ nhúng thông tin: là chương trình thực hiện việc giấu tin.
Đầu ra: là phương tiện chứa, đã có tin giấu trong đó.

22


2.1.3.2 Mơ hình tách tin từ phương tiện chứa
Diễn ra theo quy trình ngược lại với giấu tin: đầu ra là các thơng tin được
giấu và phương tiện chứa.

Khố giấu tin

Phương tiện
chứa tin đã
được giấu (S)

Bộ nhúng
thông tin

Thông tin đã
giấu M
Hình 4: Sơ đồ tách tin

23

Phương tiện
chứa tin C



Một số thuật ngữ cơ bản:
Giấu dữ liệu (Datahiding) (Information hiding):
Kỹ thuật giấu thơng tin nói chung bao gồm: Giấu tin bí mật (steganography)
và giấu tin thuỷ vân (watermaking).
Giấu tin (Steganography):
Kỹ thuật giấu tin mật trong một đối tượng.
Kỹ thuật thuỷ vân (watermaking):
Kỹ thuật giấu tin (kiểu đánh dấu), được dùng để bảo vệ chính đối tượng
chứa tin giấu.
Phương tiện chứa (Cover Object):
Phương tiện được lựa chọn để giấu (hoặc nhúng) thơng tin vào trong đó.
Phương tiện chứa sau khi đã giấu tin (Stego Object):
Phương tiện chứa tin, sau khi đã giấu thơng tin vào trong đó.
Thơng điệp (Message):
Thơng tin được giấu trong phương tiện chứa, để chuyển đi.

24


2.1.4 Phân loại kỹ thuật giấu tin
Có nhiều cách để tiến hành phân loại các phương pháp giấu thông tin theo
các tiêu chí khác nhau, như theo các phương tiện chứa tin, các phương pháp tác
động lên phương tiện chứa tin, hay phân loại theo các ứng dụng cụ thể.
2.1.4.1 Phân loại theo phương tiện chứa tin
- Giấu thông tin trong ảnh.
- Giấu thông tin trong các file âm thanh.
- Giấu thông tin trong video.
- Giấu thông tin trong văn bản dạng text.

2.1.4.2 Phân loại theo cách thức tác động lên phương tiện
- Phương pháp chèn dữ liệu: tìm vị trí trong file dễ bị bỏ qua, và chèn các
dữ liệu cần giấu vào đó (vd: dữ liệu được giấu sau các ký tự EOF) .
- Phương pháp thay thế: thay thế các phần tử không quan trọng của
phương tiện chứa, bằng các dữ liệu của thông điệp cần giấu (vd: thay thế các bit
ít quan trọng, thay thế trong miền tần số, các kỹ thuật trải phổ, thống kê…)
- Phương pháp tạo các phương tiện chứa: Từ thông điệp cần chuyển đi, sẽ
tạo ra hợp lý phương tiện chứa, để phục vụ cho việc truyền thơng tin đó.
2.1.4.3 Phân loại theo mục đích sử dụng
- Giấu thơng tin bí mật.
- Giấu thông tin thuỷ vân.

25


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×