ĐẠI HỌC CÔNG NGHỆ
ĐẠI HỌC QUỐC GIA HÀ NỘI
BÁO CÁO MÔN HỌC
MẬT MÃ VÀ AN TOÀN DỮ LIỆU
XÁC THỰC TÍNH TOÀN VẸN CỦA DỮ LIỆU
BẰNG “CHỮ KÝ SỐ”
Lớp môn học:
Giảng viên:
Mật mã và an toàn dữ liệu
PGS.TS Trịnh Nhật Tiến
Học viên thực hiện :
Vũ Minh Đức - 12025209
1
HÀ NỘI – 2014
2
MỤC LỤC
XÁC THỰC TÍNH TOÀN VẸN CỦA DỮ LIỆU BẰNG “CHỮ KÝ SỐ”
Họ tên : Vũ Minh Đức
Ngày sinh : 22/12/1988
Mã học viên : 12025209
Email :
Điện thoại : 0975645716
1 Khái niệm chữ ký số
Những năm 80 của thế kỷ 20, các nhà khoa học đã phát minh ra “chữ ký số” để
chứng thực một “tài liệu số”. Đó chính là “bản mã” của xâu bít tài liệu.
Người ta tạo ra “chữ ký số” (chữ ký điện tử) trên “tài liệu số” giống như tạo ra
“bản mã” của tài liệu với “khóa lập mã”.
Như vậy “ký số” trên “tài liệu số” là “ký” trên từng bit tài liệu. Kẻ gian khó thể
giả mạo “chữ ký số” nếu nó không biết “khóa lập mã”.
Để kiểm tra một “chữ ký số” thuộc về một “tài liệu số”, người ta giải mã “chữ
ký số” bằng “khóa giải mã”., và so sánh với tài liệu gốc.
“Ký số” thực hiện trên từng bit tài liệu, nên độ dài của “chữ ký số” ít nhất cũng
bằng độ dài của tài liệu. Do đó thay vì ký trên tài liệu dài, người ta thường dùng “hàm
băm” (trình bày ở phần sau) để tạo “đại diện” cho tài liệu, sau đó mới “Ký số” lên “đại
diện” này.
1.1 Sơ đồ chữ ký số
Sơ đồ chữ ký là bộ năm (P, A, K, S, V ), trong đó:
P là tập hữu hạn các văn bản có thể.
3
A là tập hữu hạn các chữ ký có thể.
K là tập hữu hạn các khoá có thể.
S là tập các thuật toán ký.
V là tập các thuật toán kiểm thử.
Với mỗi khóa k thuộc K, có thuật toán ký Sig k thuộc S, Sig k : P ánh xạ vào
A, có thuật toán kiểm tra chữ ký Ver k thuộc V, Ver k : P x A -> {đúng, sai}, thoả mãn
điều kiện sau với mọi x thuộc P, y thuộc A:
Đúng, nếu y = Sig k (x)
Ver k (x, y) =
Sai, nếu y khác Sig k (x)
Chú ý
Người ta thường dùng hệ mã hóa khóa công khai để lập “Sơ đồ chữ ký số”. Ở đây
khóa bí mật a dùng làm khóa “ký”, khóa công khai b dùng làm khóa kiểm tra “chữ
ký”. Ngược lại với việc mã hóa, dùng khóa công khai b để lập mã., dùng khóa bí mật
a để giải mã. Điều này là hoàn toàn tự nhiên, vì “ký” cần giữ bí mật nên phải dùng
khóa bí mật a để “ký”. Còn “chữ ký” là công khai cho mọi người biết, nên họ dùng
khóa công khai b để kiểm tra.
2 Hàm băm và đại diện thông điệp của tài liệu
Các tài liệu (bản tin) có thể dưới dạng văn bản, hình ảnh, âm thanh, …và kích
thước của chúng tùy ý (vài KB đến vài chục MB), qua các thuật toán băm: như MD4,
MD5, SHA, các “đại diện” tương ứng của chúng có kích thước cố định, ví dụ 128 bit
với dòng MD, 160 bit với dòng SHA.
“Đại diện” của tài liệu chính là giá trị của “hàm băm” trên tài liệu, nó còn được
gọi là “tóm lược” hay “bản thu gọn” của tài liệu.
Với mỗi tài liệu (đầu vào), qua “hàm băm” chỉ có thể tính ra được một “đại
diện”- giá trị băm tương ứng - duy nhất. “Đại diện” của tài liệu được xem là “đặc thù”
của tài liệu (thông điệp), giống như dấu vân tay của mỗi người.
4
Trên thực tế, hai tài liệu khác nhau có hai “đại diện” khác nhau.
2.1 Khái niệm hàm băm
Hàm băm là thuật toán không dùng khóa để mã hóa (ở đây dùng thuật ngữ “băm”
thay cho “mã hóa”), nó có nhiệm vụ “lọc” (băm) tài liệu (bản tin) và cho kết quả là một
giá trị “băm” có kích thước cố định, còn gọi là “đại diện tài liệu” hay “đại diện bản tin”,
“đại diện thông điệp”.
2.2 Tính chất hàm băm
1/. Hàm băm h là hàm một chiều (One-way Hash):
Tính xuôi thì “dễ”, nhưng tính ngược thì “khó”. Tức là:
Với thông điệp x thì “dễ” tính được z = h(x), nhưng “khó” tính ngược lại được
x = h -1(z) nếu chỉ biết giá trị băm h(x) (Kể cả khi biết hàm băm h).
Nội dung của bản tin gốc “khó” thể suy ra từ giá trị hàm băm của nó.
2/. Với bản tin đầu vào x, chỉ thu được giá trị băm duy nhất z = h(x).
3/. Nếu dữ liệu trong bản tin x bị thay đổi hay bị xóa để thành bản tin x’, thì giá trị băm
h(x’) ≠ h(x).
Cho dù chỉ là một sự thay đổi nhỏ, ví dụ chỉ thay đổi 1 bit dữ liệu của bản tin gốc
x, thì giá trị băm h(x) của nó cũng vẫn thay đổi. Điều này có nghĩa là: hai thông điệp
khác nhau, thì giá trị băm của chúng cũng khác nhau.
5
3 Quy trình ký số và kiểm tra chữ ký số, tính toàn vẹn được đảm bảo
3.1 Quy trình ký số
Tại bước 1, tài liệu gốc được cho đi qua hàm băm để ra được giá trị băm.
Bước 2, giá trị này được ký số bằng khóa riêng của người gửi để tạo thành chữ ký
số.
Tiếp đó, văn bản và chữ ký số được gửi qua mạng đến cho người nhận
3.2 Quy trình xác thực chữ ký số
Tại máy của người nhận diễn ra quy trình xác thực chữ ký.
Bước 1, tài liệu gửi đến được cho qua một hàm băm cùng loại với hàm băm tại
quá trình ký số, ta sẽ có được giá trị băm 1 của tài liệu
Bước 2, chữ ký số được giải mã bằng khóa công khai của người gửi ta có được giá
trị băm 2
Bước 3, so sánh 2 giá trị băm 1 và băm 2, nếu chúng giống nhau thì tức là tài liệu
đã được chuyển toàn vẹn từ người gửi sang người nhận.
Quá trình xác thực chữ ký số dựa vào tính duy nhất của giá trị băm đối với mỗi tài
liệu và tính liên kết giữa khóa riêng và khóa công khai của người gửi. Cụ thể, nếu giả sử
tài liệu bị một bên thứ ba thay đổi thì khi đó giá trị băm của tài liệu sẽ bị thay đổi so với
giá trị băm đầu vào của chữ ký số của văn bản. Từ đó ta có thể biết ngay tài liệu có bị
6
thay đổi không tại bước 3 trong quy trình xác thực chữ ký. Chữ ký số này mặt khác lại
không thể bị làm giả do khóa riêng của người gửi được người gửi giữ an toàn và khóa
công khai của người gửi nếu giải mã một chuỗi không phải chuỗi bit được khóa riêng
tương ứng mã hóa thì sẽ không khôi phục được giá trị băm của tài liệu.
7