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

tiểu luận môn an toàn bảo mật thông tin đề tài Hàm băm và chữ ký số

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 (196.59 KB, 9 trang )

ĐẠI HỌC BÁCH KHOA HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN

----

----

BÀI TẬP LỚN
MÔN MẬT MÃ VÀ ỨNG DỤNG

Giáo viên hướng dẫn
Học biên thực hiện

: TS. Trần Đức Khánh
: Nhóm 8

1. Nguyễn Văn Phương
2. Trương Thủy Phương
3. Nguyễn Thị Nụ
4. Tôn Văn Trưởng
5. Trần Đăng Minh
LỚP

: CNTT 2 - 2012B

HÀ NỘI – 2012


Bài tập lớn môn: Bảo mật và ứng dụng

I.



Hàm băm

1. Định nghĩa:
Hàm băm là hàm chuyển đổi một thông điệp có độ dài bất kỳ thành một dãy
bit có độ dài cố định. Các hàm băm nhận một chuỗi bit có chiều dài tùy ý (hữu
hạn) làm dữ liệu đầu vào và tạo ra một chuỗi bit mới có chiều dài cố định n bit (n
> 0), được gọi là giá trị băm hay mã băm.
Hàm băm là các thuật toán không sử dụng khóa để mã hóa, nó có nhiệm vụ
băm thông điệp được đưa vào theo một thuật toán h một chiều nào đó, rồi đưa ra
một bản băm – văn bản đại diện – có kích thước cố định. Do đó người nhận không
biết được nội dung hay độ dài ban đầu của thông điệp đã được băm bằng hàm băm.
2. Đặc tính của hàm băm:
Một vấn đề cần bàn ở đây là tính đụng độ của hàm Băm. Theo nguyên lý
Diricle: nếu có n+1 con thỏ được bỏ vào n cái chuồng thì phải tồn tại ít nhất một
cái chuồng mà trong đó có ít nhất là hai con thỏ ở chung. Rõ ràng với không gian
giá trị Băm nhỏ hơn rất nhiều so với không gian tin về mặt kích thước thì chắc
chắn sẽ tồn tại đụng độ, nghĩa là có hai tin x ≠ x’ mà giá trị Băm của chúng là
giống nhau, tức h(x) = h(x’).
Sau đây chúng ta sẽ xét các dạng tấn công có thể có, từ đó rút ra các tính chất
của hàm Băm:
Dạng tấn công thứ nhất là người C bắt đầu với một bức điện được ký có giá
trị (x, y), trong đó y = sigK(h(x)) (cặp (x, y) có thể là bất kỳ bức điện trước đó mà
B đã ký). Sau đó, C tính z = h(x) và cố gắng tìm x ≠ x’ để h(x) = h(x’). Nếu C làm
được điều này thì cặp (x’, y) sẽ là một bức điện được ký có giá trị (một bức điện
giả mạo có giá trị). Để ngăn cản việc này, hàm Băm h phải thoả mãn tính chất sau:
Tính chất 1:
Một hàm Băm h có tính phi đụng độ cao khi với một bức điện x cho trước ,
không tìm ra một bức điện x ≠ x’ sao cho h(x’) = h(x). [5]. Một dạng tấn công khác
mà người C có thể làm là: đầu tiên anh ta tìm 2 bức điện x ≠ x’ sao cho h(x) =

h(x’). Sau đó C đưa bức điện x cho B và thuyết phục B ký vào cốt bức
điện h(x); và vì vậy, anh ta tìm được y. Như vậy, cặp (x’, y) là một cặp chữ ký giả
có giá trị. Điều này là nguyên nhân mà việc thiết kế hàm Băm phải thoả mãn tính
chất 2;
Tính chất 2:
Một hàm Băm h có tính đụng độ cao khi không thể tìm ra những bức điện x
và x’ sao cho x ≠ x’ và h(x’) = h(x). [5]
2


Bài tập lớn môn: Bảo mật và ứng dụng

Dạng tấn công thứ 3 là chọn một giá trị cốt z ngẫu nhiên. Người C sẽ tính một
chữ ký với một giá trị ngẫu nhiên z, sau đó anh ta tìm một bức điện x sao cho z =
h(x). Nếu anh ta làm được điều này thì cặp (x, y) là cặp chữ ký giả có giá trị. Như
vậy một tính chất nữa mà h cần thoả mãn là tính một chiều:
Tính chất 3:
Một hàm Băm h có tính một chiều khi với cốt của một bức điện z cho trước
không thể tìm được một bức điện x sao cho h(x) = z. [5]
3. Cấu trúc cơ bản của hàm băm:
Thành phần chính của một hàm băm là một hàm nén và các hàm biến đổi
khác. Hàm nén được thực thi nhiều lần để băm thông điệp ban đầu của hàm băm
thành một chuỗi có chiều dài cố định. Các hàm biến đổi khác nhận vào các chuỗi
bit sau lần cuối cùng thực thi hàm nén và cho kết quả chính là mã băm cuối cùng
của hàm băm.

Hình 1: Cấu trúc cơ bản của hàm băm
Có rất nhiều thuật toán hàm băm cho đến nay đều sử dụng chung một cấu trúc
cơ bản. Cụ thể một hàm băm thường gồm các bước như sau:


3


Bài tập lớn môn: Bảo mật và ứng dụng

- Trước tiên thông điệp đầu vào m có chiều dài hữu hạn tùy ý sẽ được
phân thành các khối thông điệp con liên tiếp có chiều dài cố định r
(giả sử là m1 , m2 , ..., mk ).
- Do m có chiều dài bất kỳ nên luôn có một bước thêm các bit phụ sao
cho chiều dài chuỗi mới m’ chia hết cho r (trong các bit thêm thường
có kèm 64 bit để lưu lại chiều dài ban đầu của chuỗi trước khi thêm).
- Mỗi khối thông điệp con m1 , m2 , ..., mk sẽ lần lượt đi qua một hàm
nén f của hàm băm h(m);
- Kết quả của khối thứ mi−1 sau khi đi qua hàm nén f sẽ là nguần dữ
liệu đầu vào cho bước thứ i tiếp theo.
Giả sử nếu gọi IV (initial value) là giá trị khởi tạo ban đầu thì quá trình lặp xử
lý các khối con m1 , m2 , ..., mk được mô tả như sau:
H0 = IV
Hi = f (Hi−1 , mi ), với i = 1, ..., k.
h(m) = g(Hk )
4


Bài tập lớn môn: Bảo mật và ứng dụng

Người ta thường gọi Hi (kết quả trung gian sau bước thứ i) là các biến dây
chuyền. Hàm g(x) lấy biến dây chuyền cuối cùng để tạo ra mã băm cần tìm. Trong
hầu hết các thuật toán, g(x) là ánh xạ đồng nhất, nghĩa là g(Hk ) = Hk . Khâu then
chốt trong xây dựng hàm băm thường là thiết kế hàm nén f
4. Phân loại hàm băm:

Nhìn chung, hàm băm có thể được chia làm 2 lớp, lớp các hàm băm có khóa
(keyed hash functions ) và lớp các hàm băm không có khóa (unkeyed hash functions ).
Các hàm băm không khóa là hàm băm có dữ liệu đầu vào chỉ có một thông điệp.
Trong khi đó, các hàm băm có khóa ngoài thông điệp ra còn có đầu vào khác là một
khóa bí mật (secret key ), nếu không có khóa bí mật này thì không thể băm thông
điệp đầu vào theo đúng quy định được.
Nếu phân chia theo chức năng thì hàm băm cũng được chia thành hai lớp chức
năng là MDC (modification detection code - mã phát hiện thay đổi ) là lớp con của
các hàm băm không khóa và MAC (message authentication code - mã xác nhận
thông điệp ) là lớp con của các hàm có khóa.

Các MDC được sử dụng để tạo ra ảnh đặc trưng (representative image ) của
thông điệp, đảm bảo sự toàn vẹn của dữ liệu. Bản thân các MDC cũng được chia làm
5


Bài tập lớn môn: Bảo mật và ứng dụng

hai lớp hàm sau:
• OWHF (one-way hash function - hàm băm một chiều ) có nghĩa là với một mã
băm biết trước, khó có thể tính toán để tìm ra thông điệp đưa vào có mã băm bằng với
mã băm đã cho. Hàm băm một chiều thỏa tính chất: kháng tiền ảnh và kháng tiền ảnh
thứ hai.
• CRHF (collision resistant hash function - hàm băm kháng xung đột ) có nghĩa là
khó có thể tính toán để tìm ra hai thông điệp khác nhau và có cùng giá trị mã
băm. Hàm băm kháng xung đột thỏa tính chất: kháng tiền ảnh thứ hai và kháng
xung đột.
Các MAC được sử dụng trong việc đảm bảo về nguồn gốc của thông điệp lẫn tính
toàn vẹn của nó. MAC có hai tham số chức năng phân biệt là thông điệp và khóa bí
mật. Một trong những tính chất quan trọng của MAC là tính kháng tính toán. Nghĩa là,

cho trước một hoặc nhiều cặp (mi , hkey (mi )), khó có thể tính toán để tìm thêm được
một cặp (m, hkey (m)) nào khác sao cho m ≠ mi
5. Một số ƣng dung cua hàm Băm
Như đã trình bày ở đầu chương, ứng dụng chính của các hàm băm là sử dụng với
các hệ chữ ký điện tử , trong đó thay vì ký trực tiếp lên các văn bản, thông điệp người
ta sẽ ký lên giá trị hàm băm đại diện cho toàn bộ văn bản đó. Điều này đực biệt quan
trọng và hiệu quả bởi vì chúng ta biết rằng các hệ chữ ký điện tử đều làm việc với các
phép tính số học số lớn nên bản thân chúng đã tương đối chậm, việc dùng hàm băm
thay cho toàn bộ văn bản là giải pháp toàn diện khắc phục được yếu điểm này của các
hệ chữ ký điện tử . Ngoài việc xử dụng với các hệ chữ ký điện tử hàm băm còn được
sử dụng vào các mục đích khác: xác thực hóa thông điệp, xác thực hóa người dùng
Đối với các ứng dụng không cần giữ bí mật thông điệp mà chỉ cần đảm bảo
thông điêp không bi thay đôi trên đường truyền người ta sẽ sử dụng hàm băm với
mục đích xác thực tính nguyên vẹn của thông điệp đó . Chăng han chung ta co môt
phân mêm ma
nguôn mơ ơ dang setup muôn phân phôi cho ngƣơi dung , rõ ràng việc gửi phần
6


Bài tập lớn môn: Bảo mật và ứng dụng

mềm
đó
tơi may tinh cua ngƣơi dung la không cân phai ma hoa , tuy nhiên nêu nhƣ phân
mêm
đo
bị thay đổi trên đƣờng truyền (chăng han nhƣ bi găn thêm cac spyware , virus … )
thì sẽ
rât nguy hiêm . Đê đam bao chung ta se cung câp gia tri băm cua phân mêm đ
ó

(khi
đo
phân mêm chinh la thông điêp ). Ngƣơi dung se download ca phân mêm va gia tri
băm
nhân đƣơc , sau đo tiên hanh băm lai , đôi sanh gia tri băm nhân đƣơc vơi gia tri
băm
đƣơc cung câp cung vơi phân mêm , nêu hai gi á trị này khớp nhau thì có thể
đảm bảo phân mêm không bi sƣa đôi trên đƣơng truyên . Hiên nay đa sô cac phân
mêm ma nguôn mơ đêu đƣơc phân phôi theo cach nay.
Trong cac hê thông yêu câu co xac thƣc ngƣơi dung nhƣ cac hê quan tri cơ sơ


liêu, hê điêu hanh , các ứng dụng web , ứng dụng dạng desktop application , để lƣu
mật
khâu ngƣơi dung ngƣơi ta cung sƣ dung cac ham băm hoăc cac hê ma trong cac vai
tro
của hàm băm (không sƣ dung khoa ). Khi đo môi tai khoan cua ngƣơi dung thay vi
lƣu
dƣơi dang tên truy câp (username) và mật khẩu (password) sẽ đƣợc lƣu dƣới
dạng
:
tên
ngƣơi dung , giá trị băm của mật khẩu . Khi môt ngƣơi dung đăng nhâp vao hê
thông
,

thông se lây tên truy câp , mât khâu ho nhâp vao , kiêm tra xem co tên truy câp nao
nhƣ
vây hay không . Nêu co se tiên hanh băm gia tri mât khâu do ngƣơi dung nhâp vao ,
đôi sánh với giá trị băm tƣơng ứng lƣu trong cơ sở dữ liệu

(có thể ở dạng
file text , xml, hay
file cơ sơ dƣ liêu cua môt hê quan tri cơ sơ dƣ liêu nao đo ). Nêu kêt qua đôi
sanh
la
khơp
thì ngƣời dùng đó là hợp lệ , ngƣơc lai nêu không khơp co nghia la sai mât khâu .
Hiên
nay tât ca cac hê quan tri cơ sơ dƣ liêu đêu đƣơc trang bi cac ham băm đê cho
phep
ngƣơi dung tao ra cac gia tri băm cua mât khâu ngƣơi dung va lƣu lai cac gia
tri
băm
nay.
Viêc lƣu cac gia tri băm đam bao chung ta khôn g bi lô mât khâu do mât khâu đƣơc
lƣu
ơ
dạng nguyên bản trên má y tinh hoăc khi truyên qua hê thông mang . Hê điêu hanh
Unix
sƣ dung nguyên tăc lƣu mât khâu nhƣ trên vơi ham băm la hê ma DES đƣơc
lăp lai
25
lân, mât khâu của ngƣời dùng đƣợc sử dụng nhƣ khóa của hệ mã , bản rõ đem
mã hóa là xâu 64 bit 0.
7


Bi tp ln mụn: Bo mt v ng dng

Ngay nay vi s phat triờn manh m cua thng mai iờn t

, cac
giao dich u
c thc hiờn t xa , trờn cac hờ thụng mang nờn viờc ng dung cua cac hờ
ch ky iờn
t va i kem vi o la cac ham bm ngay cang tr nờn quan trong
. Moi
thụng tin trong
cac giao dich thng mai iờn t u cõn c bao vờ bng cac ch ky
, ham bm . Vỡ
thờ co thờ noi rng ụi khi cac ham bm con quan trong hn ca cac hờ ma mõt.

ng dửng cừa hm bm
Ton vàn dỳ liằu
nh ngha 4. Ton vàn dỳ liằu l mởt thuởc tớnh cho biát dỳ liằu cha hã
b thay ời theo bĐt cự mởt phng thực no k tứ khi nú ủc tÔo ra, truyãn tÊi, hoc
lu trỳ bi chớnh nguỗn tÔo ra nú.
Ton vàn dỳ liằu chỳ trồng chừ yáu cỏc khối dỳ liằu nh phõn. Cỏc thao tỏc
lm

cho

khối dỳ liằu khụng cũn ton vàn nỳa bao gỗm: chốn thờm mởt số bit, xúa bợt mởt số
bit, thay ời trêt tỹ mởt số bit, thay thá mởt số bit, v tĐt cÊ cỏc thao tỏc kát hủp
khỏc.
Mởt trong nhỳng phng phỏp Êm bÊo sỹ ton vàn dỳ liằu l sỷ dửng mó
chựng

thỹc

thụng iằp (MAC). Khi thụng iằp m ủc tÔo ra, giỏ tr MAC cừa thụng iằp h key

(m)
cng s ủc tớnh toỏn, vợi key l mởt khúa bớ mêt ủc chia s giỳa cỏc bờn sỷ dửng
thụng iằp. Thụng iằp mhkey (m) s ủc bờn gỷi gỷi i thay cho thụng iằp gốc
ban Ưu. Khi bờn nhên nhên ủc thụng iằp, thụng iằp m v giỏ tr MAC cừa nú l
hkey

(m) s ủc tỏch ra. Sau ú giỏ tr MAC cừa m s ủc tớnh lÔi mởt cỏch ởc lêp,

v sỹ ton vàn dỳ liằu cừa thụng iằp s ủc kim tra bơng cỏch so sỏnh hai giỏ tr
MAC vợi nhau.
Tuy nhiờn, viằc sỷ dửng khúa bớ mêt l khụng thuên tiằn ối vợi viằc Êm bÊo tớnh

8


Bài tập lớn môn: Bảo mật và ứng dụng
toàn vµn dú li»u, nó đòi häi các bên ph£i b£o qu£n tèt khóa bí mªt và ph£i cªp nhªt

9



×