mật mã sinh trắc

67
 1 ĐẠI HC QUC GIA HÀ NI TRƯỜ NG ĐẠI HC CÔNG NGH VŨ THANH MINH NGHIÊN CỨ U TÌM HIU V MT MÃ SINH TRC KHOÁ LUN TT NGHIP ĐẠI HC HCHÍNH QUY Ngành: Công nghthông tin HÀ NI - 2010

Upload: khanh-nghien

Post on 04-Apr-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 1/67

 

1

ĐẠI HỌC QUỐC GIA HÀ NỘITRƯỜ NG ĐẠI HỌC CÔNG NGHỆ 

VŨ THANH MINH

NGHIÊN CỨ U TÌM HIỂU VỀ MẬT MÃ SINH TRẮC

KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY

Ngành: Công nghệ thông tin 

HÀ NỘI - 2010

Page 2: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 2/67

 

2

ĐẠI HỌC QUỐC GIA HÀ NỘITRƯỜ NG ĐẠI HỌC CÔNG NGHỆ 

VŨ THANH MINH

NGHIÊN CỨ U TÌM HIỂU VỀ MẬT MÃ SINH TRẮC

KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY

Ngành: Công nghệ thông tin 

Giáo viên hướ ng dẫn : TS Hồ Văn Hươ ng

HÀ NỘI - 2010

Page 3: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 3/67

 

3

LỜ I CÁM Ơ N

 Em xin chân thành cám ơ n toàn thể các thầ y cô giáo trong tr ườ ng Đại học Công

nghệ , Đại học Quố c gia Hà N ội đ ã hế t lòng d ạ y d ỗ  , chỉ bảo, t ạo đ iề u kiện t ố t cho

em trong suố t quá trình học t ậ p cũng như trong thờ i gian thự c hiện khoá luận t ố t nghiệ p này.

 Đặc biệt, em gử i lờ i cám ơ n chân thành và sâu sắ c t ớ i TS H ồ V ăn H ươ ng –Ban cơ   yế u chính phủ , ngườ i đ ã tr ự c tiế  p quan tâm, t ận tình hướ ng d ẫ n, giúp đỡ và t ạo

đ iề u kiện hế t sứ c thuận lợ i cho em trong quá trình thự c hiện khoá luận.

C ảm ơ n các bạn đồng khoá và gia đ ình đ ã động viên, giúp đỡ tôi r ấ t nhiề u trong

quá trình học t ậ p t ại Khoa Công nghệ cũng như  trong thờ i gian thự c hiện khoá

luận.

 Hà nội, ngày 21 tháng 05 năm 2010

VŨ THANH MINH

Page 4: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 4/67

 

4

DANH MỤC CÁC HÌNHTên hình Trang

Hình 1.1: Quá trình mã hóa và giải mã 8Hình 1.2: AddRoundKey bản rõ và khóa 9Hình 1.3: Bướ c SubBytes 10

Hình 1.4: Bướ c ShiftRow 10Hình 1.5: Bướ c MixColumns 11Hình 1.6: Bướ c InvShiftRow 11Hình 1.7: Hộp S-nghịch 12Hình 1.8: Sơ  đồ hệ mật RSA 13Hình 1.9: Chữ ký số RSA 14Hình 1.10:Quá trình băm thông điệp 15Hình 1.11:Quá trình ký số 15Hình 1.12:Gửi thông điệp 15Hình 1.13:Xác minh chữ ký số 16

Hình 1.14:Băm thông điệp 16Hình 1.15:Xác minh thông điệp 17Hình 1.16:Băm nhiều thông điệp cho ra cùng một kết quả băm 17Hình 1.17: Mảng 64 hằng số 32-bit Ki

{256} 22Hình 1.18 : Các giá trị khở i tạo của giá trị băm 23Hình 2.1: Một số vân tay tìm đượ c từ thờ i xưa 26Hình 2.2: Các loại vân tay 30Hình 2.3 : Số đếm các đườ ng vân 31Hình 3.1 : Tổng quan quá trình đăng ký của mã hóa sinh trắc học 44Hình 3.2 : Giai đoạn xử lý ảnh trong quá trình đăng ký 45Hình 3.3 : Thuật toán liên kết khóa 46Hình 3.4 : Tổng quan quá trình xác thực của mã hóa sinh trắc học 48Hình 3.5 : Giải thuật khôi phục khóa 49Hình 4.1 : Biểu đồ chức năng chươ ng trình ứng dụng 57Hình 4.2 : Giai đoạn xử lý ảnh 58Hình 4.3 : Sinh mảng số ngẫu nhiên 58Hình 4.4 : Tính hàm lọc lưu trữ Hstored 59

Hình 4.5 : Sinh khóa sinh trắc 59

Hình 4.6 : Quá trình mã hóa dữ liệu 60

Hình 4.7 : Quá trình giải mã dữ liệu 61

Hình 4.8 : Giao diện ứng dụng 62

Hình 4.9 : Hộp chọn ảnh sinh trắc 63

Hình 4.10 : Chức năng sinh khóa 63Hình 4.12 : Ví dụ ứng dụng 64

Page 5: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 5/67

Page 6: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 6/67

 

6

MỤC LỤC

Chươ ng 1: TỔNG QUAN VỀ MẬT MÃ .....................................................81.1.Hệ mật mã ..................................................................................................8

1.2.Hệ mật mã khóa đối xứng và thuật toán mã hóa AES...............................81.2.1 Hệ mật mã khóa đối xứng.........................................................81.2.2 Thuật toán mã hóa AES ............................................................9

1.3.Hệ mật mã khóa công khai.........................................................................121.4.Chữ ký số ...................................................................................................131.5.Hàm băm ....................................................................................................17

1.5.1.Hàm băm:.......................................................................................171.5.2.Hàm băm SHA - 256......................................................................19

1.5.2.1 Các tham số, ký hiệu và thuật ngữ .......................................191.5.2.2 Phép toán..............................................................................20

1.5.2.3 Chuyển đổi dữ liệu...............................................................201.5.2.4 Các thuật toán.......................................................................211.5.2.5 Các hàm chức năng sử dụng trong SHA-256 ......................211.5.2.6 Các hằng số sử dụng trong SHA-256 ..................................211.5.2.7 Quá trình tiền xử lý thông điệp M .......................................221.5.2.8 Thuật toán băm SHA-256 ....................................................23

1.6. Kết luận .....................................................................................................25

CHƯƠ NG 2. SINH TRẮC HỌC KẾT HỢ P VỚ I MẬT MÃ ....................262.1.Sinh trắc học:..............................................................................................26

2.2.Các khái niệm sinh trắc học về vân tay......................................................272.2.1 Khái niệm vân tay ...................................................................272.2.2 Các loại vân tay.......................................................................282.2.3.Các đặc trưng của vân tay.......................................................30

2.2.3.1 Đặc trưng tổng thể...................................................312.2.3.1 Đặc trưng cục bộ .....................................................32

2.3.Sinh trắc học kết hợ p vớ i mật mã: .............................................................342.4.Kết luận ......................................................................................................36

CHƯƠ NG 3:THUẬT TOÁN MÃ HÓA SINH TRẮC ...............................373.1 Xử lý ảnh nhận dạng .................................................................................373.2. Sự tươ ng quan ...........................................................................................373.3. Những yêu cầu của hệ thống.....................................................................383.4 Thiết kế hàm lọc........................................................................................383.5 Độ an toàn của hàm lọc.............................................................................403.6 Bộ lọc tạm thờ i..........................................................................................403.7 Thiết kế bộ lọc an toàn..............................................................................42

Page 7: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 7/67

 

7

3.8 Quá trình đăng ký và xác thực ..................................................................433.8.1 Quá trình đăng ký...........................................................................433.8.2 Quá trình xác thực..........................................................................47

3.9 Kết luận .....................................................................................................51

Chươ ng 4: XÂY DỰ NG Ứ NG DỤNG..........................................................524.1 Giớ i thiệu....................................................................................................524.2 Các thuật toán đượ c sử dụng......................................................................52

4.2.1 Xử lý ảnh........................................................................................524.2.2 Biến đổi Fourier rờ i rạc..................................................................534.2.3 Sinh mảng ngẫu nhiên....................................................................544.2.4 Các phép toán.................................................................................55

4.2.4.1 Các phép toán vớ i số phức............................................554.2.4.2 Các phép toán liên quan tớ i ma trận .............................55 

4.3 Xây dựng ứng dụng mật mã sinh trắc........................................................57

4.3.1 Sinh khóa sinh trắc.........................................................................574.3.2 Mã hóa sử dụng khóa sinh trắc................................................................ 60 4.4 Giao diện ứng dụng “mật mã sinh trắc” và cách sử dụng..........................614.1 Kết luận .............................................................................................................. 65

KẾT LUẬN…………………………………………………………………. 66TÀI LIỆU THAM KHẢO ………………………………………………… .67

Page 8: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 8/67

 

8

CHƯƠ NG 1 . TỔNG QUAN VỀ MẬT MÃ VÀ Ứ NG DỤNG

Vớ i sự phát triển nhanh chóng của Internet và việc lưu trữ các dữ liệu nhạy cảmtrên mạng, mật mã đang trở  thành một công cụ khá quan trọng của bảo mật máy tính.Nhiều thuật toán mã hóa đã đượ c sử dụng rất phổ biến trên thế giớ i để đảm bảo an toàn

cho thông tin. Hai hệ mật phổ biến nhất hiện nay là hệ mật khóa đối xứng và hệ mật khóacông khai.

1.1  Hệ mật mã

Hệ mật mã đượ c định ngh ĩ a là bộ 5 (P, C, K, E, D), trong đó:

P : tập hữu hạn các bản rõ có thể 

C : tập hữu hạn các bản mã

K : tập các khóa

E : tập các hàm lập mã

D : tập các hàm giải mã

Vớ i mỗi k ∈ K có một hàm lập mã e k ∈ E, e k  : P → C và một hàm giải mã d k ∈ D,d k  : C → P sao cho dk(ek(x)) = x vớ i ∀ x ∈ P.

 Hình 1.1 Quá trình mã hóa và giải mã 

1.2  Hệ mật mã khóa đối xứ ng và thuật toán mã hóa AES

1.2.1 Hệ mật mã khóa đối xứ ng

Hệ mật mã khóa đối xứng là hệ mật mã sử dụng khóa lập mã và khóa giải mãgiống nhau. Cứ mỗi lần truyền tin bảo mật cả ngườ i gửi A và ngườ i nhận B sẽ thỏa thuậnvớ i nhau một khóa chung k, sau đó ngườ i gửi sẽ dùng ek để lập mã cho thông báo gửi đi

Page 9: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 9/67

 

9

và ngườ i nhận sẽ dùng dk để giải mã thông điệp nhận đượ c từ ngườ i gửi A. Các hệ mậtmã dịch chuyển, thay thế là hệ mật mã khóa đối xứng, nhưng điển hình cho hệ mật mãkhóa đối xứng là hệ mã hóa chuẩn AES, DES. DES đượ c xây dựng tại Mỹ trong nhữngnăm 70 theo yêu cầu của Văn phòng quốc gia về chuẩn(NBS) và đượ c sự thẩm định củaủy ban an ninh quốc gia. DES kết hợ p cả hai phươ ng pháp thay thế và chuyển dịch. DES

thực hiện mã hóa trên từng khối bản rõ theo từng xâu 64bit vớ i khóa là xâu 56 bit và chora bản mã là xâu 64bits. Hiện nay DES và biến thể của nó 3DES vẫn đượ c sử dụng thànhcông trong nhiều ứng dụng.

1.2.2 Thuật toán mã hóa AES

Thuật toán mã hóa AES là thuật toán mã hóa khối đối xứng, xử lý các khối dữ liệucó độ dài 128 bit, sử dụng khóa mã có độ dài 128 bit, 192 bit hoặc 256 bit tươ ng ứng vớ i“AES-128”, “AES-192”, “AES-256”. Trong khóa luận này, chúng ta sử dụng thuật toánAES vớ i độ dài khóa là 256 bit tươ ng ứng vớ i “AES-256”.

Chuẩn mã hóa tiên tiến AES: AES là một thuật toán mã hóa khối đượ c chính phủ hoa kỳ áp dụng làm chuẩn mã hóa. AES có thể dễ dàng thực hiện vớ i tốc độ cao bằng

phần mềm hoặc phần cứng và không đòi hỏi nhiều bộ nhớ . Do AES là một tiêu chuẩn mã

hóa mớ i, nó đang đượ c tiến hành để sử dụng đại trà.

AES làm việc vớ i từng khối dữ liệu 4x4. Quá trình mã hóa bao gồm 4 bướ c:

•  AddRoundKey: mỗi byte của khối đượ c kết hợ p vớ i khóa con. Mỗi khóa con

trong chu trình khóa đượ c tạo ra từ khóa chính vớ i quá trình tạo khóa con Rijdael. Mỗi

khóa có độ dài như các khối. Quá trình đượ c thực hiện bằng phép XOR từng bit của khóacon vơ i khối dữ liệu.

 Hình 1.2: AddRoundKey bản rõ và khóa

Page 10: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 10/67

 

10

•  Bướ c SubBytes: các bytes đượ c thay thế thông qua bảng S-box. Đây chính là

quá trình phi tuyến của thuật toán. Hộp S-box này đượ c tạo ra trong từ nghịch đảo trong

trườ ng hữu hạn GF( 28 ) có tính chất phi tuyến. Để chống lại các tấn công trên các đặc

tính đại số, hộp S-box này đượ c tạo nên bằng cách kết hợ p nghịch đảo vớ i một phép biến

đổi affine khả nghịch.

 Hình 1.3: Bướ c SubBytes

•  Bướ c ShiftRow: các hàng đượ c dịch vòng một số vị trí nhất định. Đối vớ i AES

hàng đầu đượ c giữ nguyên. Mỗi byte của hàng thứ hai đượ c dịch sang trái một bit.

Tươ nng tự mỗi byte của hàng thứ 3 và thứ 4 lần lượ t đượ c dịch sang trái 2 hoặc 3 bit.

 Hình 1.4: Bướ c ShiftRow

•  Bướ c MixColumns: bốn byte trong từng cột đượ c kết hợ p lại theo một phép

tuyến tính khả nghịch. Mỗi khối 4 bytes đầu vào sẽ cho một khối 4 bytes ở  đầu ra vớ i

Page 11: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 11/67

 

11

tính chất mỗi byte ở   đầu vào đều ảnh hưở ng tớ i cả 4 bytes ở   đầu ra. Cùng vớ i bướ c

ShiftRow, MixColumns đã tạo ra tính chất khuếch tán cho thuật toán. Mỗi cột đượ c xem

như một đa thức trong trườ ng hữu hạn và đượ c nhân vớ i đa thức  f(x) = 3x3

+ x2

+ x +

2(modulo x4

+1 ). Vì thế bướ c này có thể  đượ c xem như là phép nhân ma trận trong

trườ ng hữu hạn.

 Hình 1.5: Bướ c MixColumns

Quá trình giải mã thuật toán mã hóa AES bao gồm các bướ c:

•  Bướ c InvShiftRow : là phép biến đổi ngượ c của ShiftRow, các byte trong ba từ cuối của trạng thái đượ c dịch vòng theo số bit khác nhau, trong phép biến đổinày hàng đầu tiên đượ c giữ nguyên, hàng 2,3,4 đượ c dịch lần lượ t 1, 2, 3 bit.

 Hình 1.6 : Bướ c InvShiftRow

•  Bướ c InvSubBytes : là nghịch đảo của phép thay thế theo byte SubBytes trongđó sử dụng một hộp S-nghịch bằng cách áp dụng phép biến đổi ngượ c của phép

Page 12: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 12/67

 

12

biến đổi affine sau khi thực hiện phép nghịch đảo trên trườ ng GF(28) cho bở ibảng:

 Hình 1.7 H ộ p S-nghịch

•  Bướ c InvMix Columns : là phép biến đổi ngượ c của bướ c MixColumns.InvMixColumns thao tác trên từng cột của trạng thái, xem mỗi cột như là mộtđa thức bốn hạng tử, đượ c coi như các đa thức trên trườ ng GF(28) va đượ c nhântheo modulo (x4+1) vớ i đa thức nghịch đảo của a(x) tức là a-1(x):

•  Bướ c InvAddRoundKey: là phép biến đổi nghịch đảo của bướ c AddRoundKey– là phép biến đổi thuận nghịch vì nó chỉ áp dụng một phép toán XOR nên nóđượ c thực hiện như bướ c AddRoundKey trong quá trình giải mã

1.3  Hệ mật mã khóa công khai

Khóa mã hóa còn gọi là khóa công khai dùng để mã hóa dữ liệu. Khóa giải mã còngọi là khóa bí mật dùng để giải mã dữ liệu. Trong hệ mật này khóa mã hóa và khóa giảimã là khác nhau. Về mặt toán học, khi biết khóa công khai ta khó có thể tính đượ c khóa bí 

mật. Khóa bí mật (private key) đượ c giữ bí mật trong khi khóa công khai (public key)đượ c công khai. Ngườ i gửi thông điệp A sẽ dùng khóa công khai kB để mã hóa dữ liệumuốn gửi tớ i ngườ i B và ngườ i B sẽ dùng khóa bí mật của mình để giải mã thông điệpnhận đượ c.

Có nhiều hệ thống mật mã sử dụng khóa công khai đượ c triển khai rộng rãi như hệ mật RSA, hệ mật Elgamal sử dụng giao thức trao đổi khóa Diffie – Hellman và nổi lên

Page 13: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 13/67

 

13

trong những năm gần đây là hệ mật dựa trên đườ ng cong Eliptic. Trong số những hệ mậtmã trên thì hệ mật mã RSA đượ c cộng đồng quốc tế chấp nhận rộng rãi trong việc thực thihệ mã hóa công khai.

Hệ mật RSA do Rivest, Shamir, và Adlman phát minh ra, đượ c công bố đầu tiên vào

tháng 8 năm 1977 trên tạp chí Scientific American. Tính bảo mật của hệ mật mã RSAđượ c bảo đảm bằng độ phức tạp của một bài toán số học nổi tiếng là bài toán phân tích 1số thành tích của các số nguyên tố.

Sơ  đồ hệ mật mã RSA:

 Hình 1.8 S ơ  đồ hệ mật RSA

1.4  Chữ ký số 

Mật mã khóa công khai có thể đượ c sử dụng theo nhiều cách khác nhau. Chữ ký số là một ví dụ minh chứng cho việc đảm bảo xác thực ngườ i dùng và toàn vẹn dữ liệu. Nếungườ i gửi A mã hóa thông điệp hay tài liệu vớ i khóa cá nhân của mình thì bất kỳ ai cũngcó thể giải mã thông điệp vớ i khóa công khai của A. Do đó, ngườ i nhận có thể chắc chắnrằng thông điệp là do A mã hóa, bở i chỉ có A mớ i biết đượ c khóa cá nhân của mình. Quátrình mã hóa thông điệp vớ i khóa cá nhân của ngườ i gửi là quá trình “ký số”.

Trong thực tế, quá trình ký số thườ ng khó hơ n. Thay bằng việc mã bản thông điệpgốc vớ i khóa cá nhân của ngườ i gửi thì chỉ có bản đại diện thông điệp (bản băm) có độ dài cố định đượ c mã hóa vớ i khóa cá nhân của ngườ i gửi và bản băm đượ c mã hóa nàyđượ c gắn vào vớ i thông điệp gốc. Ngườ i nhận B sau khi nhận đượ c thông điệp đầu tiên sẽ giải mã bản băm vớ i khóa công khai của ngườ i gửi, sau đó băm thông điệp đi kèm bằngthuật toán băm tươ ng ứng vớ i thuật toán băm ngườ i gửi đã sử dụng, B so sánh 2 giá trị băm, nếu giống nhau thì chắc chắn rằng thông điệp A gửi cho B còn nguyên vẹn và đồngthờ i xác thực đượ c ngườ i gửi thông tin là A.

Page 14: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 14/67

 

14

Tính toàn vẹn của thông điệp đượ c đảm bảo bở i vì chỉ thay đổi một bit trong thôngđiệp gửi đi thì kết quả hai giá trị băm sẽ khác nhau . Tính xác thực của ngườ i gửi cũng sẽ đượ c đảm bảo vì chỉ có ngườ i A mớ i có khóa bí mật để mã hóa bản băm. Chữ ký số cũngchứng minh đượ c tính chống chối bỏ bản gốc vì chỉ có A mớ i có khóa cá nhân dùng để kýsố.

Sơ  đồ chữ ký đượ c định ngh ĩ a là một 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ể 

A là tập hữu hạn các chữ ký có thể 

K là tập hữu hạn các khóa 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 k ∈ K, có một thuật toán ký Sigk ∈S, Sigk : P →A, và một thuật toánkiểm thử Verk ∈ V, Verk { P x A} → {đúng, sai} thỏa mãn điều kiện sau đây vớ i mọix ∈ P, y ∈ A:

Verk(x,y) đúng nếu y = Sigk(x)

Verk(x,y) sai nếu y ≠ Sigk(x)

RSA cũng là thuật toán đượ c dùng nhiều cho mục đích ký số. Sơ  đồ chữ ký RSAđượ c mô tả như sau :

 Hình 1.9 Chữ ký số RSA

Quá trình ký và kiểm tra chữ ký đượ c mô tả :

Giả sử A muốn gửi cho B một thông điệp x, A thực hiện các bướ c:

Page 15: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 15/67

 

15

1.  A băm thông điệp x bằng thuật toán băm h thu đượ c bản đại diện z = h(x) cókích thướ c cố định

 Hình 1.10 : Quá trình băm thông đ iệ p

2. A ký số trên văn bản đại diện z bằng khóa bí mật của mìnhthu đượ c bản ký số 

y = sigk(z)

 Hình 1.11: Quá trình ký số  

3. A gửi (x,y) cho B

 Hình 1.12 : Gử i thông đ iệ p

Page 16: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 16/67

 

16

Khi B nhận đượ c (x,y) , B thực hiện các bướ c sau:

1.  B kiểm tra chữ ký số để xác minh xem thông điệp mà mình nhận đượ c có phảiđượ c gửi từ A hay không bằng cách giải mã chữ ký số y bằng khóa công khaicủa A đượ c z

 Hình 1.13 : Xác minh chữ ký số  

2.  B dùng một thuật toán băm – tươ ng ứng vớ i thuật toán băm mà A dùng để bămthông điệp x đi kèm, nhận đượ c h(x)

 Hình 1.14 : Băm thông đ iệ p

3.  So sánh hai giá trị băm z hà h(x), nếu giống nhau thì chắc chắn rằng thông điệpz mà A gửi cho B còn nguyên vẹn bên cạnh đó cũng xác thực đượ c ngườ i gửithông tin là ai

Page 17: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 17/67

 

17

 Hình 1.15 : Xác minh thông đ iệ p

1.5  Hàm băm

1.5.1 Hàm băm

Việc sử dụng các hệ mật mã và các sơ  đồ ký số thườ ng là mã hóa và ký số trêntừng bit của thông tin. Thờ i gian để mã hóa và ký sẽ tỷ lệ thuận vớ i dung lượ ng của thôngtin. Thêm vào đó có thể xảy ra trườ ng hợ p : vớ i nhiều bức thông điệp đầu vào khác nhau,sau khi sử dụng hệ mật mã hoặc ký số thì cho ra kết quả là bản mã hay bản ký số giốngnhau ( ánh xạ nhiều – một):

 Hình 1.16 Nhiề u thông đ iệ p khác nhau cho cùng môt k ế t quả băm

Điều này sẽ dẫn tớ i một số rắc rối cho việc xác thực thông tin.

Page 18: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 18/67

 

18

Các sơ  đồ ký số thườ ng chỉ sử dụng để ký các bức thông điệp có kích thướ c nhỏ,và sau khi ký bản ký số có kích thướ c dài gấp đôi bản thông điệp gốc – ví dụ vớ i sơ  đồ kýsố chuẩn DSS ký trên các bức thông điệp có kích thướ c 160 bits, cho ra bản ký số có kíchthướ c 320 bits. Trong khi đó trên thực tế, ta cần phải ký các thông điệp có kích thướ c lớ nhơ n nhiều, hơ n nữa để đáp ứng nhu cầu xác thực sau khi thông tin tớ i ngườ i nhận, dữ liệu

truyền qua mạng không chỉ là bản thông điệp gốc mà còn bao gồm cả bản ký số( có dunglượ ng gấp 2 so vớ i bản thông điệp gốc). Có cách đơ n giản để giải quyết vấn đề trên, đó làchặt thông điệp góc thành nhiều đoạn 160 bit( vớ i sơ  đồ ký chuẩn DSS), sau đó ký lên cácđoạn độc lập của thông điệp. Tuy nhiên sử dụng phươ ng pháp trên có các vấn đề sau:

- Thứ nhất : Vớ i một thông điệp có kích thướ c a, sau khi kí sẽ có kích thướ c 2a(trong trườ ng hợ p sử dụng DSS), điều này làm tốn thờ i gian và đườ ng truyền dữ liệu.

- Thứ hai : Vớ i các chữ ký có độ an toàn cao thì có tốc độ mã hóa chậm bở i chúngdùng nhiều phép toán số học phức tạp ( như số mũ modulo, logarit ), nó làm cho quá trìnhmã hóa gặp nhiều khó khăn bở i lượ ng dữ liêu quá lớ n.

- Thứ ba : vấn đề nghiêm trọng hơ n là kết quả sau khi ký, nội dung các đoạn củathông điệp có thể bị xáo trộn vớ i nhau hoặc một số đoạn trong chúng có thể bị mất máttrong khi ngườ i nhận phải xác minh lại thông điệp, do đó ta cần phải bảo đảm tính toànvẹn cho thông điệp.

Giải pháp cho các vướ ng mắc đến chữ ký số là dùng hàm băm để trợ giúp cho việcký số. Hàm băm – hiểu theo một ngh ĩ a đơ n giản là hàm cho tươ ng ứng một mảng dữ liệuvớ i một mảng dữ liệu nhỏ hơ n – đượ c sử dụng rộng rãi trong nhiều ứng dụng khác nhaucủa tin học, không chỉ thuộc phạm vi mật mã.

Hàm băm đượ c đề cập tớ i trong phạm vi đồ án là hàm băm một chiều. Có tác dụngtrợ  giúp cho các sơ  đồ ký số nhằm làm giảm dung lượ ng của các dữ liệu cần thiết để truyền qua mạng. Hàm băm ở  đây đượ c hiểu là không dùng các khóa để mã hóa ( sử dụngthuật ngữ “ băm ” thay cho “mã hóa”), nó có nhiệm vụ băm thông điệp đượ c đưa vàotheo một thuật toán h một chiều nào đó rồi đưa ra một bản băm là văn bản đại diện chothông điệp đầu vào. Văn bản đại diện có kích thướ c cố định, giá trị của hàm băm là duynhất và không thể suy ngượ c lại đượ c nội dung thông điệp từ giá trị băm này. Hàm băm hcần có một số đặc tính quan trọng sau :

a.  Vớ i thông điệp đầu vào x thu đượ c bản băm (văn bản đại diện) z = h(x)là duy nhất.

b.  Nếu dữ liệu trong thông điệp x thay đổi hay bị xóa thành thông điệp x’thì h(x) ≠ h(x’), cho dù sự thay đổi trong x là rất nhỏ( ví dụ trên một bitnào đó trong x thì giá trị băm cũng thay đổi). Điều này có ngh ĩ a là : haithông điệp khác nhau thì cho hai giá trị băm khác nhau

Page 19: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 19/67

 

19

c.  Nội dung của thông điệp x không thể đượ c suy ra từ giá trị băm h(x).Ngh ĩ a là vớ i giá trị x ta có thể dễ dàng tính đượ c văn bản đại diện z =h(x) nhưng lại không thể ( thực chất là vô cùng khó) suy ngượ c lại x nếuchỉ biết giá trị băm z = h(x).

Một số hàm băm đượ c sử dụng rộng rãi hiện nay là : MD5, MD4, MD2 và hàmbăm chuẩn SHA-1, SHA – 256… và tiếp theo khóa luận sẽ trình bày về hàm băm SHA-256. Hàm băm này sẽ đươ c sử dụng trong quá trình tạo khóa sinh trắc của hệ thống mãhóa sinh trắc đượ c xây dựng trong chươ ng 4 của khóa luận.

1.5.2 Hàm băm SHA-256

SHA – Secure Hast Algorithm – hay giải thuật băm an toàn. SHA là một trongnăm giải thuật băm đượ c chấp nhận bở i FIFS – dùng để chuyển một đoạn dữ liệu nhấtđịnh thành một đoạn dữ liệu có chiều dài không đổi vớ i xác suất khác biệt cao.

Thuật toán băm SHA-256 có thể chia làm hai giai đoạn: tiền xử lý và tính toán băm. Giai

đoạn tiền xử lý đưa thông tin cần băm ( M ) về dạng chuẩn, phân tích M thành m-bitblock, và cài đặt giá trị ban đầu cho giai đoạn tính toán băm. Giai đoạn tính toán băm sinhra thông điệp liệt kê của M từ thông điệp chuẩn, và sử dụng liệt kê đó cùng vớ i các chứcnăng, các hằng số, các phép toán để sinh một dãy các giá trị băm. Giá trị băm cuối cùngsinh bở i giai đoạn tính toán băm đượ c sử dụng làm giá trị băm của M.

1.5.2.1 Các tham số, ký hiệu và thuật ngữ  

M thông điệp đượ c băm

a, b, c, …, h các biến thay đổi có độ dài w-bit sử dụng trong tính toán

giá trị băm

H(i) giá trị băm thứ i, H(0) là giá trị khở i tạo, H(N) là giá trị 

băm cuối cùng, sử dụng làm giá trị băm

H j(i) từ thứ j của giá trị băm thứ i, H0

(i) là từ trái nhất của giá

trị băm thứ i

Kt hằng số sử dụng cho vòng lặp thứ t của tính toán băm

k Số số 0 thêm vào thông điệp M trong quá trình tạo thôngđiệp chuẩn

l độ dài của thông điệp M tính theo bit

m số bit trong 1 block

Page 20: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 20/67

 

20

M(i) Block thứ i

M j(i) từ thứ j của block thứ i, M0

(i) là từ trái nhất của block i

w số bit của một từ 

T w-bit tạm thờ i sử dụng trong tính toán bămN số block của thông điệp chuẩn

Wt w-bit thứ t của thông điệp liệt kê

1.5.2.2 Phép toán

^ phép toán end

∨ phép toán or

⊕ phép toán cộng bit XOR

¬ phép phủ định

+ phép cộng theo modulo 2w

<< phép dịch trái, ở  đây x<<n có ngh ĩ a là x đượ c dịch trái n bit

>> phép dịch phải, x>>n có ngh ĩ a là x đượ c dịch phải n bit

1.5.2.3 Chuyển đổi dữ liệu

Một số ở dạng hexa là một mảng của tập {0, 1, 2, … 9, a, b, …, f}. Một số hex làsự biểu diễn của chuỗi 4 bit. Ví dụ số hex “7” là biểu diễn của 4 bit “0111”, số hex “a” làbiểu diễn của chuỗi 4 bit “1010”.

Một từ là chuỗi w-bit có thể sử dụng ở dạng hex. Để chuyển một từ sang dạng số hex, mỗichuỗi 4 bit đượ c tươ ng ứng chuyển sang số hex. Ví dụ vớ i chuối 32 bit :

“1010 0001 0000 0011 1111 1110 0010 0011”

Đượ c chuyển thành “a103fe23” dướ i dạng số hex

Một số nguyên có thể đượ c biểu diễn bằng một từ hoặc một số từ. Một số nguyên nằmgiữa 0 và 232 – 1 có thể biểu diễn như là chuỗi 32 bit. Ví dụ số nguyên 291 = 256 + 32 + 2+ 1 = 28 + 25 + 2 + 1 đượ c biểu diễn dướ i dạng 32 bit là :

“0000 0000 0000 0000 0000 0001 0010 0011”

Và đượ c biểu diễn dướ i dạng số hex là : “ 00000123”

Page 21: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 21/67

 

21

1.5.2.4 Các thuật toán

- Phép cộng modulo 2w: phép cộng modulo x+y đượ c định ngh ĩ a như sau: x,y làbiểu diễn của 2 số nguyên dươ ng X và Y vớ i 0 ≤ X < 2w và 0≤Y<2w tính Z = (X + Y)mod 2w, đượ c 0 ≤ Z < 2w, chuyển số nguyên Z thành chuỗi z đượ c phép cộng theo

modulo 2

w

: z = x + y- SHRn(x) : là phép dịch phải, vớ i x là từ w-bit và n là số nguyên dươ ng vớ i 0 ≤ n

< w đượ c định ngh ĩ a :

SHRn(x) = x >> n

- ROTRn(x) :

ROTRn(x) = (x>>n) v (x<<w-n)

- ROTLn(x) :

ROTLn(x) = (x<<n) v (x >> w-n)

1.5.2.5 Các hàm chứ c năng sử dụng trong SHA-256

SHA-256 sử dụng 6 hàm chức năng , mỗi hàm chức năng làm việc trên các từ 32-bit đượ c ký hiệu là x,y và z. Kết quả trả về của các hàm cũng là chuỗi 32-bit. Các hàmchức năng trong SHA-256 là :

Ch (x,y,z) = (x ^ y)⊕ (¬x ^ z)

Maj (x,y,z) = (x ^ y) ⊕ (x ^ z) ⊕ (y ^ z)

∑}256{

0)( x = ROTR2 (x) ⊕ ROTR13(x) ⊕ ROTR22(x)

∑}256{

1)( x = ROTR6(x) ⊕ ROTR11(x) ⊕ ROTR25(x)

σ}256{

0 (x) = ROTR 7(x) ⊕ ROTR 18(x) ⊕ SHR3(x)

σ }256{1 (x) = ROTR17(x) ⊕ ROTR19(x) ⊕ SHR10(x)

1.5.2.6 Các hằng số sử dụng trong SHA-256

SHA-256 sử dụng một mảng 64 hằng số 32-bit, K0{256}, K1

{256}…, K63{256}. Những

từ 32-bit này đượ c lấy từ 32 bit đầu tiên của phần phân số trong kết quả của phép lấy cănbậc 3 của 64 số nguyên tố đầu tiên

Ở hệ hex, những hằng số đó là (từ trái qua phải):

Page 22: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 22/67

 

22

 Hình 1.17 : M ảng 64 hằ ng số 32-bit K i{256}

 

1.5.2.7 Quá trình tiền xử lý thông điệp MThông điệp M sẽ đượ c xử lý vê dạng chuẩn trướ c khi tính toán băm. Quá trình xử 

lý này bao gồm ba phần : chuẩn hóa M, phân tích M thành các block và khở i tạo giá trị băm

- Chuẩn hóa M: Giả sử M có độ dài L bit. Thêm bit 1 vào sau thông điệp M, sau đóthêm k bit 0 , ở  đây k là số nguyên nhỏ nhất vớ i điều kiện

L + 1 + k = 448 mod 512.

Sau đó thêm 64-bit là biểu diễn nhị phân của L. Ví dụ thông điệp M là “abc” (biểu diễn

dướ i dạng 8 bit – ASCII) có độ dài 8x3 = 24 bit. Quá trình xử lý M sẽ thêm bit 1 vào sauthông điệp, sau đó thêm 448 – (24+1) = 423 bit 0, sau đó thêm 64-bit là biểu diễn nhị phân của 24. Ta thu đượ c thông điệp đã đượ c xử lý dạng :

Thông điệp M thu đượ c sẽ có độ dài là bội số của 512

- Phân tích thông điệp M : thông điệp M đượ c phân tích thành N khối 512 bit, M(1),M(2),…,M(N). Mỗi khối 512-bit có thể đượ c biểu diễn như là 16 từ 32-bit. 32 bit đầu tiêncủa block thứ i là M0

(i), 32 bit tiếp theo là M1(i) và tớ i M15

(i)

Page 23: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 23/67

 

23

- Cài đặt giá trị khở i tạo của giá trị băm (H(0)): trướ c khi tính toán băm bắt đầu giátrị băm H(0) cần đượ c cài đặt ở dạng hex như sau:

 Hình 1.18 : Các giá tr ị khở i t ạo của giá tr ị băm

Những giá trị trên đượ c lấy từ 32 bit đầu tiên trong kết quả của phép lấy căn bậchai của 8 số nguyên tố đầu tiên

1.5.2.8 Thuật toán băm SHA-256

SHA-256 có thể đượ c sử dụng để băm các thông điệp M có độ dài L bit, vớ i 0 ≤ L< 264. Thuật toán sử dụng :

1. 

Thông điệp M đã đượ c xử lý chuẩn hóa2.  Mảng 64 từ 32-bit W0

 , …, W63

3.  8 biến tạm có nhãn a, b, c, d, e, f, g, h, mỗi biến là một chuỗi 32-bit4.  Một giá trị băm ban đầu là 8 chuỗi 32-bit,có nhãn H0

(0),…, H7(0)

5.  Sử dụng 2 biến tính toán T1, T2 là các chuỗi 32-bit

Quá trình tính toán băm : Vớ i mỗi i từ 1 tớ i N

Bướ c 1 : Tính {Wt} theo công thức

Wt = Mt(i) vớ i 0 ≤ t ≤ 15

Wt = σ }256{1 (Wt-2) + Wt-7 + σ }256{

0 (Wt-15) + Wt-16  vớ i 16 ≤ t ≤ 63

Bướ c 2 :Gán 8 biến a, b, c, d, e, f, g, h bằng giá trị của giá trị băm thứ (i-1)

a = H0(i-1)

Page 24: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 24/67

 

24

b = H1(i-1) 

c = H2(i-1) 

d = H3(i-1) 

e = H4

(i-1)

 f = H5

(i-1) 

g = H6(i-1) 

h = H7(i-1) 

Bướ c 3 : Vớ i mỗi giá trị của t từ 0 tớ i 63 thực hiện các phép tính :

T1 = h + ∑}256{

1)(e + Ch (e, f, g) + Kt

{256} + Wt 

T2 = ∑}256{

0 )(a + Maj (a, b, c)

h = g

g = f 

f = e

e = d + T1 

d = c

c = bb = a

a = T1 + T2 

Bướ c 4: Tính giá trị băm thứ i hiện thờ i H(i) 

H0(i) = a + H0

(i -1)

H1(i) = b + H1

(i -1) 

H2(i)

= c + H2(i -1)

H3(i) = d + H3

(i -1)

H4(i) = e + H4

(i -1)

H5(i) = f + H5

(i -1)

Page 25: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 25/67

 

25

H6(i) = g + H6

(i -1)

H7(i) = h + H7

(i -1)

Sau khi vòng lặp chạy N lần, đượ c kết quả băm của M là :

H0(N)

|| H1(N)

|| H2(N)

|| H3(N)

|| H4(N)

|| H5(N)

|| H6(N)

|| H7(N)

Chuỗi bit này đượ c định ngh ĩ a như là bản băm của dư liệu đầu vào là thông điệp M

1.6  Kết luận

Trong chươ ng “Tổng quan về mật mã” chúng ta đã tìm hiểu về khái niệm mật mã,các hệ mật mã khóa đối xứng và hệ mật mã khóa công khai, chữ ký số… Chúng ta cũngđã tìm hiểu về chuẩn mã hóa AES – chuẩn mã hóa tiên tiến đang ngày càng đượ c sử dụngrộng rãi, thuật toán băm SHA-256 là thuật toán băm phổ biến ngày nay, nó đang đượ c sử dụng để thay thế thuật toán băm MD5. Các thuật toán mã hóa và thuật toán băm trên

chính là nền tảng cơ bản để xây dựng lên một hệ thống mật mã an toàn.

Page 26: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 26/67

 

26

CHƯƠ NG 2. SINH TRẮC HỌC KẾT HỢ P VỚ I MẬT MÃ

2.1 Sinh trắc học

Sinh trắc học đượ c định ngh ĩ a như là các đặc điểm sinh học duy nhất đo đượ c để 

nhận dạng tự động hoặc xác thực một ngườ i. Việc phân tích thống kê các đặc điểm sinhhọc này đượ c gọi theo tên khoa học là sinh trắc học. Ngày nay, công nghệ sinh trắc họcchủ yếu đượ c sử dụng để phân tích đặc điểm con ngườ i cho các mục đích an ninh. Cónăm dạng sinh trắc học điển hình nhất cho các mục đích an ninh là vân tay, bàn tay, mốngmắt, khuôn mặt và giọng nói.

Sử dụng các đặc điểm sinh trắc học như là phươ ng tiện xác thực không phải là mộtkhái niệm mớ i.

 Hình 2.1.M ột số vân tay tìm đượ c t ừ thờ i xư a 

Page 27: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 27/67

 

27

Năm 1926, các nhân viên của cơ quan tư pháp ở vài thành phố của Mỹ đã gợ i ýdùng thẻ vân tay cho FBI để tạo ra một kho lưu các mẫu vân tay của tội phạm. Cácchuyên gia trong l ĩ nh vực chấp pháp sau đó có thể nhận dạng các mẫu vân tay đã đượ c tậphợ p bằng tay ở nơ i xảy ra tội ác vớ i các mẫu vân tay đã đượ c lưu trong cơ sở dữ liệu tộiphạm để nhanh chóng tìm ra thủ phạm. Sau nhiều năm nghiên cứu phát triển sơ  đồ phân

loại đặc trưng vân tay và độ chính xác đã làm cho việc xử lý nhận dạng trở nên khả thibằng cách giảm tối đa thờ i gian tìm kiếm dữ liệu đượ c yêu cầu. Đầu những năm 1960 FBIđã đầu tư một thờ i gian và công sức lớ n vào việc phát triển hệ thống xác thực vân tay tự động. Sự tự động của việc xác thực sinh trắc học cho các mục đích chấp pháp này diễn rađồng thờ i vớ i việc phát triển các hệ thống đã đượ c tự động hóa cho các ứng dụng truy cậpbảo mật cao. Các hệ thống xác thực vân tay đã đượ c triển khai trong các hệ thống quản lýtruy cập từ cuối những năm 1960. Trong suốt những năm 1970, một sản phẩm sinh trắchọc dựa trên kích thướ c hình học của bàn tay đã đượ c giớ i thiệu trong một số các ứngdụng quản lý truy cập. Sự quan tâm nhận dạng sinh trắc học cũng đã chuyển từ các đặcđiểm của bàn tay sang các đặc điểm của mắt. Giữa những năm 1980 hệ thống đầu tiên đã

phân tích các mẫu dạng duy nhất của võng mạc đượ c giớ i thiệu đồng thờ i cũng thực hiệnphân tích các mẫu dạng mống mắt.

Những năm 1990, việc nghiên cứu tiếp tục phát triển các hệ thống nhận dạng dựatrên sự đa dạng phong phú các dạng sinh trắc học như là các dạng sinh trắc học truyềnthống : vân tay, hình ảnh bàn tay, mống mắt và võng mạc, kèm theo là phát triển của cáchệ thống nhận dạng giọng nói, chữ ký, hình ảnh lòng bàn tay và khuôn mặt. Thêm vào đó,các giải pháp có tính chất đổi mớ i cũng đang đượ c khảo sát cho việc phân tích sinh trắchọc như tai, DNA và mùi cơ thể.Tuy nhiên trong luận văn này, chúng ta chỉ tìm hiểu về dấu vân tay .

2.2 Các khái niệm sinh trắc học về vân tay

2.2.1 Khái niệm vân tay

Vân tay là những đườ ng vân và đườ ng rãnh có trên ngón tay ngườ i. Nó là mộttham số sinh học bất biến theo tuổi, đặc trưng cho mỗi ngườ i, ngh ĩ a là mỗi ngườ i chỉ cómột dạng vân tay duy nhất và nó tồn tại , không thay đổi trong suốt cuộc đờ i cho dù cóphải chịu những tổn thươ ng như đứt tay, bỏng… sau khi phục hồi dấu vân tay sẽ có dạngcũ, không thay đổi. Sự không thay đổi theo thờ i gian của vân tay đã đượ c khoa học chứngminh nhưng sự duy nhất của vân tay đến nay vẫn còn là một bài toán mở , kết luận nàyđượ c rút ra bằng kinh nghiệm hơ n 100 năm của ngành nghiên cứu vân tay.

Có nhiều hình thức thu thập ảnh vân tay khác nhau, tươ ng ứng vớ i các hình thứcthu thập ảnh vân tay, chúng ta có các loại ảnh vân tay khác nhau về chất lượ ng ảnh cũngnhư sự biến dạng. Sau đây chúng ta sẽ tìm hiểu về những dạng ảnh vân tay tiêu biểu nhất :

Page 28: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 28/67

 

28

- Ảnh mực (inked fingerprint) : Ảnh mực là ảnh thu đượ c bằng cách nhúng đầungón tay vào mực rồi lăn lên một vật trung gian, chẳng hạn như một tờ giấy. Ảnh này sauđó sẽ  đượ c số hóa bằng máy quét (Scanner) và lưu vào máy tính. Ảnh vân tay trongchứng minh thư nhân dân là ảnh mực

- Ảnh lăn tay : Là loại ảnh mực thu đượ c bằng cách lăn đầu ngón tay đã nhúngmực lên trên giấy, hay một vật gì khác. Vớ i ảnh lăn tay, vùng ảnh sẽ mở  rộng ra và cácđườ ng vân cũng giày hơ n thực tế. Do đó ảnh lăn tay có nhiều thông tin bị sai lệch

- Ảnh điểm chỉ : Ảnh điểm chỉ là loại ảnh mực thu đượ c bằng cách ấn đầu ngón tayđã nhúng mực lên trên tờ giấy, hay một vật trung gian khác. Ảnh điểm chỉ có vùng vântay nhỏ hơ n trên thực tế, nhưng lại có ít thông tin bị sai lệch hơ n so vớ i ảnh lăn tay

- Ảnh thu trực tiếp trên scanner : Ảnh thu trực tiếp trên máy quét là ảnh thu đượ cbằng cách ấn đầu ngón tay trực tiếp lên trên máy quét. Chất lượ ng của ảnh loại này cũngphụ thuộc vào điều kiện thu nhận, ví dụ như chất lượ ng của máy quét, tay sạch hay bẩn,

tay ướ t…Tuy nhiên do thu nhận trực tiếp nên ta có thể quan sát vân tay đượ c thu nhận, và do đó cóthể điều chỉnh đượ c chất lượ ng của ảnh vân tay. Nói chung, ảnh vân tay loại này có chấtlượ ng tốt hơ n anh mực và ảnh lấy ở hiện trườ ng rất nhiều

- Ảnh lấy tại hiện trườ ng (Ảnh Latent) : Trong l ĩ nh vực hình sự, một loại ảnh vântay đượ c đặc biệt là ảnh vân tay thu nhận tại hiện trườ ng, chẳng hạn dấu vân tay còn intrên mặt bàn, vỏ chai,… ảnh vân tay này do các đối tượ ng có liên quan để lại tại hiệntrườ ng. Ảnh vân tay loại này nói chung là không tốt, và thườ ng là không đầy đủ toàn bộ vân tay mà chỉ có một phần vân tay.

2.2.2  Các loại vân tay

Có nhiều cách định ngh ĩ a các lớ p vân tay. Ở mục này, luận văn sẽ trình bày các lớ pvân tay đượ c FBI sử dụng khi phân loại vân tay bằng phươ ng pháp thủ công do cácchuyên gia vân tay thực hiện. Theo cách phân loại này, có tất cả 8 lớ p vân tay chia làm 3nhóm chính như sau :

Nhóm các lớ p hình cung :

- Lớ p hình cung (Arch) : Loại vân tay này có các đườ ng vân xuất phát từ một cạnhcủa vân tay, chạy dọc sang tận cạnh bên kia. Ở phần giữa có thể xuất hiện các vân códạng gò thấp hoặc dạng sóng

- Lớ p hình mái vòm ( Tented Arch) : Vân tay loại này có các đườ ng vân phía ngoàichạy dài từ cạnh này sang cạnh kia nhưng các đườ ng vân ở giữa lại không xuất phát từ 

Page 29: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 29/67

 

29

cạnh. Các đườ ng vân ở giữa này hợ p vớ i nhau các góc nhỏ hơ n 900 và có ít nhất mộtđườ ng vân tạo ra điểm nhấn ở giữa

•  Nhóm các lớ p hình quai gồm các vân có đườ ng vân đủ cong, đồng thờ i cácđườ ng vân cong này cắt đườ ng nối giữa điểm tâm và điểm tam giác. Nhóm

gồm 2 lớ p :-  Lớ p hình quai trái ( Left Loop ) : hướ ng quai của đườ ng vân nghiêng về bên

trái.

-  Lớ p hình quai phải ( Right Loop) : hướ ng quai của đườ ng vân nghiêng về bênphải.

•  Nhóm các lớ p hình xoáy bao gồm :

-  Lớ p hình xoáy trơ n (Whorl): gồm các vân tay có 2 điểm tam giác và có ít nhấtmột đườ ng vân khép kín

-  Lớ p hình quai bao giữa (Central Pocket Loop) : gồm các vân tay có 2 điểm tamgiác và một đườ ng cong không cắt qua đườ ng thẳng nối 2 điểm tam giác đó(tức là một đườ ng cong tạo thành một đảo cô lập)

-  Lớ p hình quai đôi ( Double Loop) : Gồm các vân tay có 2 điểm tam giác và 2đoạn vân uốn ngượ c lại tươ ng ứng

-  Lớ p hình xoáy phụ ( Accidental Whorl) : Gồm các vân tay có đặc trưng của 2lớ p trở lên hoặc không có đặc trưng của bất kỳ lớ p nà0.

Page 30: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 30/67

 

30

 Hình 2.2 Các loại vân tay

2.2.3 Các đặc trư ng của vân tay

Để xử lý và phân tích hình ảnh vân tay, ngườ i ta sử dụng các đặc trưng nổi bậttrong ảnh. Có 2 loại đặc trưng đượ c định ngh ĩ a trong vân tay đó là :

Các đặc trưng tổng thể là các loại đặc trưng biểu diễn cấu trúc chung của toàn bộ vân tay

Các đặc trưng cục bộ : là các điểm đặc biệt trong các đườ ng vân của tay. Nó chỉ đại diện

cho cấu trúc đườ ng vân trong lân cận cục bộ vớ i nó mà thôi. Chính vì vậy tập hợ p cácđiểm đặc trưng cục bộ có tính cá nhân tức là mỗi tập các đặc trưng cục bộ chỉ xuất hiệntrong một vân tay duy nhất.

Nếu như đặc trưng cục bộ có tính cá nhân, thì các đặc trưng tổng thể đáng chú ý ở  tínhduy nhất và tổng quát của chúng. Mỗi vân tay chỉ có một số ít các đặc trưng tổng thể, dođó việc quản lý các đặc trưng này khá dễ dàng . Mặt khác do các đặc trưng tổng thể đại

Page 31: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 31/67

 

31

diện cho một lớ p các vân tay nên chúng có thể đượ c sử dụng để phân cụm, phân lớ p cũngnhư để tiến hành loại sơ bộ trong quá trình tìm kiếm vân tay

2.2.3.1 Đặc trư ng tổng thể 

Đặc trưng tổ ng thể là các đại lượ ng trích chọn từ ảnh vân tay, có tính chất đại

diện cho cấu trúc tổng thể của đườ ng vân trong vân tay. Có nhiều loại đặc trưng tổng thể khác nhau, trong đó có thể kể tớ i đặc trưng hướ ng ( orientation field), các điểm đơ n (singular point), các đườ ng chuẩn ( type line) hoặc số các đườ ng vân ( ridge count),khoảng cách trung bình giữa các đườ ng vân ( ridge space) …

Các loại đặc trưng đó khác nhau về hình thức, có loại đặc trưng chỉ là một điểm, cóloại là đườ ng thẳng… khác nhau về cách trích chọn : có loại đượ c trích chọn bằng kỹ thuật tìm kiếm, có loại xác định qua các bộ lọc… ; khác nhau về bản chất : có loại là đặctrưng hướ ng cấu trúc, có loại là đặc trưng hướ ng thống kê… tuy vậy, chúng có đặc điểmchung là :

- Biể u diễ n tính chấ t chung của ảnh vân tay

- Chúng có tính t ổ ng quát . Điều đó có ngh ĩ a là, các đặc trưng tổng thể giống nhaukhông đại diện cho một vân tay duy nhất mà đại diện cho một lớ p vân tay. Do đó, các đặctrưng này là đầu vào lý tưở ng để tiến hành phân lớ p ảnh vân tay

 Hình 2.3 : S ố  đế m các đườ ng vân

-  Đặc tr ư ng hướ ng

Ảnh vân tay là một loại ảnh đặc biệt, chúng là các ảnh đườ ng nét và có cấu trúchướ ng. Do đó, đặc trưng hướ ng là một loại đặc trưng tiêu biểu của ảnh vân tay. Thôngthườ ng, vớ i một ảnh vân tay có kích thướ c M x N, đặc trưng hướ ng đượ c định ngh ĩ a là

Page 32: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 32/67

 

32

ma trận kích thướ c M x N /w2, trong đó w là kích thướ c của khối sử dụng để ướ c lượ nghướ ng. Có thể nói ma trận hướ ng là hình ảnh biểu diễn mức thô của cấu trúc các đườ ngvân. Khi hướ ng đượ c trích chọn tốt, ta có thể nhận ra khá rõ nét hình dáng của các đườ ngvân chứa trong ảnh vân tay. Từ đặc trưng này ta có thể phát hiện ra cấu trúc tổng thể củađườ ng vân và nhiều đặc trưng khác. Đối vớ i hệ thống nhận dạng vân tay sử dụng các ký

thuật học máy, đặc trưng hướ ng có thể đượ c sử dụng trực tiếp làm đặc trưng nhận dạng.- Các đ iể m đơ n

Các điểm đơ n là các đặc trưng toàn thể dạng điểm trong ảnh vân tay. Mỗi vân taycó từ 1 tớ i 4 điểm đơ n gồm 2 loại khác nhau : các điểm tâm (core) và các điểm tam giác(delta). Số lượ ng và vị trí tươ ng quan của các điểm đơ n so vớ i nhau thay đổi theo lớ p củavân tay. Do vậy các điểm đơ n có khả năng đại diện cho cấu hình tổng thể các đườ ng vân.

Các điểm đơ n đượ c sử dụng nhiều trong các thuật toán trích chọn các đặc trưngthống kê đối vớ i hệ nhận dạng vân tay phi cấu trúc. Mặt khác, nó là một trong những yếu

tố chính để phân loại vân tay. Do vậy, việc trích chọn đúng và đủ các điểm đơ n là mộtyêu cầu quan trọng.

2.2.3.2 Đặc trư ng cục bộ 

Các đặc trưng cục bộ còn đượ c gọi là các điểm minutia. Các điểm minutia là cácđiểm bất thườ ng trong cấu trúc đườ ng vân, ví dụ như : điểm kết thúc, điểm rẽ nhánh củađườ ng vân, điểm gặp nhau của hai đườ ng vân…

Sau đây là một số loại điểm đặc trưng :

- Điểm kết thúc đườ ng vân : Xuất hiện khi đườ ng vân kết thúc một cách đột ngột

- Điểm rẽ nhánh của các đườ ng vân: Là điểm mà tại đó đườ ng vân rẽ ra làm 2 nhánh

- Những chấm nhỏ : Là những điểm đen gộp lại thành một dấu chấm ( chẳng hạn do mựcrơ i khi lăn tay)

Page 33: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 33/67

 

33

- Đoạn đườ ng vân ngắn : Một đoạn đườ ng vân ngắn nhưng không phải là quá ngắn để cóthể coi là một điểm

- Đườ ng lòng hồ : Một đườ ng vân rẽ ra làm hai nhánh sau đó khép lại tạo thành mộtvòng kín

- Nhánh nhỏ : Đườ ng vân chẽ ra một mẩu ngắn

- Đoạn cắt ngang : Do một vết nối 2 đườ ng vân lân cận nhau

Các loại điểm đặc trưng như đã nói ở  trên đều có thể quy về hai loại là điểm kếtthúc đườ ng vân và điểm rẽ nhánh. Ví dụ, một đoạn đườ ng vân ngắn thì có thể coi là gồm2 điểm kết thúc đườ ng vân, một đườ ng lòng hồ có thể coi là 2 điểm rẽ nhánh. Và trongthực tế, các hệ thống nhận dạng vân tay hầu như cũng chỉ quan tâm đến hai loại điểm đặctrưng là điểm kết thúc và điểm rẽ nhánh của đườ ng vân.

Page 34: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 34/67

 

34

2.3  Kết hợ p sinh trắc học vớ i mật mã

Thông thườ ng trong thực tế, hệ mật mã khóa đối xứng đượ c sử dụng để bảo mật dữ liệu, còn hệ mật mã khóa công khai đượ c sử dụng cho chữ ký số và thay đổi khóa bí mậtgiữa những ngườ i sử dụng. Tuy nhiên, bất kể hệ mật nào thì mức bảo mật cũng phụ thuộc

vào các khóa mã tươ ng ứng. Do độ dài khóa lớ n nên ngườ i dùng rất khó nhớ và nhập lạimỗi khi đượ c yêu cầu. Thay vào đó ngườ i ta sử dụng một mã dễ nhớ  để mã hóa khóa mã,khóa này sau đó có thể đượ c lưu trữ trên ổ cứng máy tính, khi cần sử dụng khóa ngườ i sử dụng chỉ cần nhập vào mã dễ nhớ  để giải khóa mã.

Tuy nhiên, trong thực tế nhiều ngườ i có xu hướ ng sử dụng các từ đơ n giản, dễ nhớ  hoặc các dữ liệu cá nhân hoặc ghi lại mật mã ra giấy để tránh quên mật mã. Điều này làmtăng nguy cơ rủi ro về bảo mật. Ngoài ra, vì không có sự liên kết trực tiếp giữa mật mã vàngườ i dùng nên hệ thống không thể phân biệt ngườ i dùng hợ p lệ vớ i kẻ tấn công đoạtđượ c mật mã.

Do vậy, sinh trắc học đượ c xem như là một sự lựa chọn để bảo mật khóa mã. Xácthực sinh trắc học đưa ra một cơ chế mớ i bằng cách sử dụng một đặc trưng sinh trắc họcđể bảo mật khóa mã. Việc nhập mật mã để truy nhập khóa mã đượ c thay bằng quá trìnhxác thực sinh trắc. Khi ngườ i dùng muốn truy nhập khóa mã thì họ sẽ đượ c yêu cầu mộtmẫu sinh trắc( trong khóa luận này chúng ta sử dụng dấu vân tay là đặc trưng sinh trắchọc), mẫu sinh trắc này cùng vớ i các thông tin định danh ngườ i dùng sẽ đượ c gửi đến nơ icó lưu trữ mẫu sinh trắc. Nếu mẫu xác thực này tươ ng đươ ng vớ i mẫu có trong cơ sở dữ liệu lưu trữ thì hệ thống sẽ cho phép truy nhập khóa mã từ nơ i lưu trữ an toàn và có thể dùng để mã hóa hoặc giải mã dữ liệu yêu cầu. Do đó xác thực sinh trắc học có thể thaythế cho việc sử dụng mật mã để bảo vệ mật khóa. Việc làm này có hai ưu điểm: thứ nhấtlà ngườ i dùng không phải nhớ mật mã và xác nhận bảo mật; thứ hai là chỉ có ngườ i sử dụng hợ p lệ mớ i có thể dùng đượ c khóa.

Hệ thống mật mã sinh trắc gồm hai quá trình : mã hóa và giải mã. Quá trình mãhóa bắt đầu bằng việc nhập bản rõ và sử dụng đặc trưng sinh trắc làm khóa mã. Quá trìnhnày kết thúc khi cho ra văn bản đã đượ c mã hóa. Quá trình giải mã đượ c thực hiện ngượ clại, đầu vào là đặc trưng sinh trắc và đầu ra là bản rõ. Tuy nhiên, quá trình này phải chịutrách nhiệm tính toán một lượ ng hữu hạn các hoán vị của khóa mẫu vớ i hi vọng là mộttrong những hoán vị đó có thể phù hợ p vớ i khóa gốc.

Có nhiều phươ ng pháp có thể triển khai để bảo mật khóa vớ i mẫu sinh trắc:

-  Phươ ng pháp thứ nhấ t : ảnh sinh trắc đượ c lấy và mẫu tươ ng ứng đượ c gửi tớ imột cơ sở bảo mật cho việc so sánh mấu. Khóa mã đượ c lưu trữ ở nơ i an toàn,khi cần truy xuất khóa ngườ i dùng sẽ đượ c yêu cầu cung cấp mẫu sinh trắc củamình để so sánh vớ i mẫu đã đăng ký trướ c đó. Nếu quá trình đối sánh thànhcông thì khóa sẽ đượ c truy xuất từ kho an toàn. Điều này cung cấp một cơ chế thuận tiện cho ngườ i dùng khi họ không nhớ mật mã. Đối vớ i phươ ng pháp

Page 35: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 35/67

 

35

này, đườ ng truyền dữ liệu cũng phải đượ c bảo mật để tránh tấn công lấy cắp dữ liệu. Tuy nhiên, đối vớ i việc sử dụng máy tính cá nhân, các khóa thườ ng đượ clưu trong ổ cứng hoặc các thiết bị lưu trữ và như vậy là không bảo mật.

-  Phươ ng pháp thứ hai: ẩn khóa mã vào trong chính các mẫu đượ c lấy thông qua

giải thuật thay thế tin cậy. Khi sử dụng khóa ngườ i dùng cung cấp mẫu sinhtrắc của mình. Hệ thống sẽ thực hiện đối sánh mẫu để xác thực ngườ i dùng.Nếu quá trình đối sánh thành công, giải thuật thay thế tin cậy sẽ lấy ra các bitkhóa từ các vị trí thích hợ p và đưa khóa vào trong hệ thống. Tuy nhiên, như vậycũng có ngh ĩ a là khóa mã sẽ đượ c khôi phục từ cùng một vị trí trong một mẫumỗi lần ngườ i dùng khác nhau đượ c xác thực bở i hệ thống. Do đó, nếu mộtngườ i tấn công tìm đượ c vị trí bit và xác định đượ c khóa thì cũng có thể khôiphục lại khóa nhúng từ bất kỳ mẫu của ngườ i dùng.

-  Phươ ng pháp thứ ba : sử dụng trực tiếp dữ liệu gốc từ một ảnh sinh trắc học.Các mẫu sinh trắc đượ c sử dụng trực tiếp như khóa mã, ngh ĩ a là mẫu sinh trắc

của ngườ i dùng chính là khóa mã. Tuy nhiên có hai vấn đề lớ n trong phươ ngpháp này. Thứ nhất, kết quả của sự thay đổi trong hình ảnh sinh trắc do các yếutố môi trườ ng và sinh lý, các mẫu sinh trắc không đủ chắc chắn để sử dụng như một khóa mã. Thứ hai, khi khóa mã bị phá, sau khi sử dụng sinh trắc sẽ mấttính cố định. Trong nhiều hệ thống, việc cập nhật khóa mã theo chu kỳ thườ ngđượ c yêu cầu, tuy nhiên việc làm này thực sự khó khăn

Cả ba phươ ng pháp trên đều có những nhượ c điểm lớ n, để khắc phục nhượ c điểmcủa các phươ ng pháp này Mytect Technology Inc ở Toronto Canada đã phát triển một kỹ thuật mớ i cho việc bảo mật khóa bằng cách sử dụng sinh trắc học. Giải pháp này khôngthực hiện độc lập hai giai đoạn xác thực ngườ i dùng và truy xuất khóa. Thay vào đó, khóađượ c liên kết vớ i sinh trắc tại mức cơ bản trong khi lấy mẫu và sau đó đượ c khôi phụcbằng cách sử dụng sinh trắc trong thờ i gian xác thực. Hơ n nữa, khóa hoàn toàn phụ thuộcvào dữ liệu sinh trắc, điều này có ngh ĩ a là việc sử dụng sinh trắc không mất tính cố địnhkhi khóa đã từng bị phá và khóa có thể dễ dàng sửa đổi và cập nhật. Trong suốt thờ i gianlấy mẫu, quá trình mã hóa sinh trắc kết hợ p hình ảnh sinh trắc vớ i một khóa số để tạo ramột khóa bảo mật cho dữ liệu đượ c gọi là BioScrypt. Khóa số có thể đượ c sử dụng như một khóa giải mã. Trong thờ i gian xác thực, thuật toán mã hóa sinh trắc lấy khóa mã bằngcách kết hợ p hình ảnh sinh trắc vớ i Bioscrypt. Do đó, mã hóa sinh trắc không đơ n giản làcung cấp câu trả lờ i có/không trong quá trình xác thực ngườ i dùng để thuận tiện cho việctruy xuất khóa, mà thay vào đó khóa chỉ đượ c lấy ra bằng cách kết hợ p hình ảnh sinh trắc

vớ i Bioscrypt.

Trong khóa luận này, chúng ta sẽ sử dụng phươ ng pháp của Mytect Technology Incđể bảo mật khóa và sử dụng khóa để mã hóa dữ liệu.

Page 36: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 36/67

 

36

2.4  Kết luận

Trong chươ ng này, chúng ta đã tìm hiểu về đặc trưng của vân tay. Dấu vân tay córất nhiều đặc trưng khác nhau, và hai dấu vân tay chỉ có thể trùng lặp đượ c ở một số đặctrưng. Do đó, sự trùng lặp dấu vân tay gần như là không xảy ra. Thêm vào đó là dấu vân

tay không thay đổi trong suốt cuộc đờ i của con ngườ i. Dựa vào hai đặc điểm này của dấuvân tay ta có thể sử dụng dấu vân tay vào mục đích bảo mật. Nội dung của chươ ng cũngđã đề cập tớ i các phươ ng pháp có thể triển khai để bảo mật khóa vớ i mẫu sinh trắc, đồngthờ i đã đề xuất sử dụng phươ ng pháp của Mytect Technology Inc để xây dựng ứng dụng.

Page 37: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 37/67

 

37

CHƯƠ NG 3. THUẬT TOÁN MÃ HÓA SINH TRẮC

3.1 Xử lý ảnh nhận dạng

Giải thuật mã hóa sinh trắc học xử lý toàn bộ hình ảnh của vân tay. Cơ chế của sự 

tươ ng quan đượ c sử dụng làm nền tảng của giải thuật. Các phần tiếp theo sẽ đưa ra cáchnhìn tổng quan về sự tươ ng quan này khi nó liên quan tớ i mã hóa sinh trắc học.

3.2 Sự tươ ng quan

Một ma trận ảnh hai chiều đầu vào đượ c ký hiệu bở i đa thức f(x) và phép biến đổiFourier tươ ng ứng của nó ký hiệu là F(u). Ở đây x biểu hiện miền không gian và u biểuhiện cho miền tần suất không gian. Các giá trị của F như một mảng trong miền biến đổiFourier. Chú ý : mặc dù những mảng xác định ở  đây là mảng hai chiều nhưng lại chỉ cómột tham số 

f 0(x) biểu thị một ảnh vân tay đầu vào trong quá trình đăng ký,

f 1(x) biểu thị ảnh vân tay thu đượ c của quá trình xác thực.

Một hàm lọc H(u) bắt nguồn từ một ảnh f 0(x)

c(x) là tươ ng quan giữa các đầu vào f 0(x) trong quá trình đăng ký và f 1(x) trong quátrình xác thực, đượ c xác định bở i công thức:

c(x) = ∫ ∞

∞−

+ dvv x f v f  )()( *01  

ở  đây * biểu diễn cho giá trị phức liên hợ p.Trong hệ thống tươ ng quan, thông tin đầu ra của hệ thống đượ c tính bằng cách

biến đổi Fourier ngượ c (FT-1) của tích của F1(u) và F0*(u). Khi đó,

c(x) = FT-1 {F1(u) F0*(u)} (3.1)

ở  đây F0*(u) là biểu diễn đại diện của hàm lọc H(u) bắt nguồn từ f 0(x)

Đối vớ i các hệ thống sinh trắc học dựa vào sự tươ ng quan, mẫu sinh trắc dùng cho việcnhận dạng hay xác thực là hàm lọc H(u).

Trong quá trình tươ ng quan thì hàm lọc H(u) đượ c thiết kế để tạo ra một tươ ngquan đỉnh đặc biệt tại hệ thống thông tin đầu ra. Một đỉnh tươ ng quan như vậy dễ dàng cóthể xác định trong một hệ thống tươ ng quan và vị trí của nó có thể đượ c dùng để nhận biếtmột đối tượ ng nào đó. Trong phần tiếp theo chúng ta sẽ thấy đượ c sự tươ ng quan đượ c sử dụng làm cơ sở cho thuật toán mã hóa sinh trắc học.

Page 38: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 38/67

 

38

3.3 Nhữ ng yêu cầu của hệ thống

Mục tiêu của giải thuật mã hóa sinh trắc là cung cấp một cơ chế cho sự liên kết vàsự phục hồi chìa khóa số sử dụng sinh trắc ( trong khóa luận này chúng ta sẽ sử dụng dấuvân tay). Khóa số này còn có thể đượ c sử dụng như là khóa giải – mã hóa. Hệ thống các

yêu cầu quan trọng đượ c ứng dụng và hệ thống phục hồi khóa sử dụng dấu vân tay bị biếndạng, sai lệch mà hệ thống vẫn phân biệt và bảo mật đượ c.

- Hệ thống có điều tiết phù hợ p vớ i những sự biến dạng hàng ngày của hình ảnh dấu vântay. Những biến dạng này là do những thay đổi của vị trí, góc quay cũng như do các tácđộng của môi trườ ng như nhiệt độ, độ ẩm của môi trườ ng và cũng có thể là do các tácđộng khác. Một hệ thống khôi phục khóa phải có khả năng lấy đượ c đúng khóa như trướ cdo dấu vân tay bị biến dạng của ngườ i sử dụng hợ p lệ.

- Hệ thống có khả năng phân biệt nhận dạng giữa ngườ i dùng hợ p lệ và không hợ p lệ.

- Hệ thống phải đảm bảo rằng ngay cả chìa khóa số cũng như dấu vân tay của ngườ i sử 

dụng hợ p lệ cũng không thể đượ c trích rút một các tự động từ bất kỳ thông tin đã đượ clưu trữ nào.

Để thỏa mãn ba yêu cầu này đồng thờ i, sự tươ ng quan đượ c sử dụng như là một cơ  chế liên kết và phục hồi khóa. Như đã trình bày ở  trên, sự tươ ng quan thườ ng đượ c sử dụng để cung cấp một giá trị vô hướ ng cho biết mức độ giống nhau giữa một tấm ảnhf 1(x) và một ảnh f 0(x) – đượ c đại diện bằng bộ lọc H(u). Trên thực tế, sự mã hóa sinh trắcthườ ng đượ c mã hóa vớ i chuỗi bít đầu ra là 256 bít để sử dụng như là mật mã cổ điển.Tuy nhiên nó không phải ngay lập tức đượ c áp dụng đượ c trong quá trình tươ ng quan.

3.4 Thiết kế hàm lọc

Hàm lọc sẽ đượ c tối ưu hóa cho hai yêu cầu :

- Đưa ra kết quả chính xác cho ngườ i sử dụng hợ p pháp

- Có khả năng phân biệt và khắc phục đượ c độ sai lệch trong ngưỡ ng cho phép của cácmẫu nhận dạng mà ngườ i dùng đưa vào.

Để cung cấp cho hệ thống có khả năng đáp ứng đượ c những biến dạng của dấu vântay, hàm lọc tính toán sẽ dựa trên một tập T ảnh huấn luyện vớ i T>=1 trong quá trìnhđăng ký. Ký hiệu tập ảnh T của dấu vân tay là {f 0

1(x), f 02(x), … , f 0

T(x)} vớ i chỉ số 0 biểuthị anh huấn luyện. Hàm lọc sẽ đượ c xây dựng từ những ảnh đó đượ c ký hiệu là H(u)

Áp dụng c0T(x) vớ i đầu vào f 0

T(x) ta có đượ c mẫu đầu ra như sau:

Biến đổi Fourier của ảnh huấn luyện : C0T(x) ≡ c0

T(x) . H(u)

Vớ i F0T(x) là biến đổi Fourier của ảnh huấn luyện f 0

T(x)

Page 39: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 39/67

 

39

Kí hiệu r(x) là mẫu đầu ra mong muốn của hệ thống, hàm lọc sẽ đượ c xác định như là một hàm ngẫu nhiên của r(x). Mẫu đầu ra c(x) sẽ đượ c sử dụng vừa để liên kết vớ i chìakhóa số trong quá trình lấy mẫu, vừa để tìm ra khóa số trong quá trình xác thực

Chọn 1≤ t ≤ T sao cho c0t(x) ≈ r(x) tức là các mẫu đầu ra của hệ thống gần vớ i hình

ảnh mẫu.Ta định ngh ĩ a một lỗi Esimilarity như sau:

Esimilarity =T 

1t =

1 | c0t(x) - r(x)|2 dx (3.2)

Esimilarity định ngh ĩ a như là đánh giá sự giống nhau của những mẫu tươ ng quan đầura, nếu Esimilarity = 0 có ngh ĩ a là những mấu tươ ng quan đầu ra đều đồng nhất cho tất cả những ảnh huấn luyện. Như vậy chúng ta phải tìm cách tối giản Esimilarity. Ngoài ra chúngta cũng phải giảm sự biến dạng cảu những ảnh đầu vào.

Nếu f 0t (x) = f 0s(x) + ε st input , (x)

Thì c0t(x) = c0

s(x) + εst 

input 

,(x)

Vớ i s,t ∈ {1,2,…,T}, t ≠ s và εst 

input 

,(x) là sai lệch biến dạng của hình ảnh.

Khi đó các lỗi do cộng thêm sự biến dạng hoặc những thay đổi trong f 0t(x) đượ c

xác định là :

Enoise = |H(u)|2 P(u) du

Vớ i

P(u) = )1(

2

−T T  

T T 

t sT 

,11,1

−+== |FT{ε

st 

input 

,(x)}|2 (3.3)

Ở đây P(u) là sự thay đổi giữa các hình ảnh nhận dạng.

Chúng ta muốn có hàm lọc Etotal ít lỗi nhất như sau:

Etotal = α Enoise + 2 1 α− Esimilarity vớ i 0≤ α ≤1

Khi cho α biến thiên từ 0 tớ i 1, ta có thể tối ưu hiệu suất của hàm lọc giữa sự chính xác và khả năng chịu đựng sự biến dạng. Vớ i biểu thức sau của H(u) :

H(u) = 2 1 α−}|)(|

11)({

)()(1

201

2

*0

1

uF t T 

uP

u RuF t T 

t T 

=−+

=

αα

(3.4)

Page 40: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 40/67

 

40

Đặt A0(u) =T t 

T 1

1= F

o (u) (3.5)

D0(u) = 201 |)(|

1uF t 

t T = (3.6)

Từ đó ra có

H(u) =)(1)(

)()(

02

*0

u DuP

u Ru A

αα −+  (3.7)

ở  đây R(u) là biến đổi fourier của r(x).

- Nếu α = 0, hàm lọc sẽ có đầu ra ct 

0 (x) tiệm cận vớ i R(x), hàm lọc sẽ có khả năngphân biệt rất tốt nhưng không phù hợ p vớ i sự biến dạng của ảnh đầu vào

- Nếu α = 1, hàm lọc sẽ thích nghi đối vớ i những sự biến dạng đầu vào nhưng khócó thể phân biệt giữa những ngườ i sử dụng khác nhau của hệ thống.

Tùy thuộc vào yêu cầu và mức độ bảo mật của hệ thống mà ta chọn các giá trị α  khác nhau. Tuy nhiên, đối vớ i một hệ thống thông thườ ng giá trị α tối ưu cho dấu vân tayxấp xỉ 0.3

3.5 Độ an toàn của hàm lọc

Phươ ng trình (3.7) định ngh ĩ a một hàm lọc mà cung cấp một sự cân bằng giữa khả năng phân biệt và sự biến dạng của vân tay. Tuy nhiên, theo yêu cầu thứ 3 của hệ thốngthì hàm lọc phải đượ c cất giữ như là một thành phần cua Bioscrypt và chống lại đượ c sự 

tấn công. Ví dụ, ảnh sinh trắc f(x) hay hàm đầu ra R(x) đều không thể độc lập khôi phụctừ bioscrypt. Bình thườ ng, trong một hệ thống tươ ng quan, hàm lọc H(u) đã đượ c địnhngh ĩ a ở trên sẽ đượ c lưu trữ trong bioscrypt.

Tuy nhiên để đảm bảo sự an toàn tối đa, một phiên bản sửa đổi của H(u) sẽ đượ clưu trữ. Phiên bản sửa đổi H(u) ký hiệu là Hstored(u). Đặc biệt, độ an toàn của Hstored(u) sẽ 

đạt tối đa nếu chỉ có thành phần eiθ  H (u) của H(u) đượ c lưu trữ là R(u) là ngẫu nhiên.

3.6 Bộ lọc tạm thờ i

Phần này sẽ mô tả cơ chế để tính toán tối ưu cho H(u) vớ i sự đồng bộ và lưu trữ 

phiên bản Hstored(u) để đảm bảo sự an toàn.Giả sử có mảng R(u) , R(u) có giá trị j ngẫu nhiên và 0 π2≤≤  j  

R(u) = ei )(u Rθ = ei2π U[0,1)

Page 41: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 41/67

 

41

ở  đây U[0,1) đại diện cho một mảng của các phần tử mà mỗi phần tử m ngẫu nhiên và

chạy trong khoảng 0 ≤m≤1, trong phần này ei )(u Rθ  đượ c dùng để đại diện cho hàm ngẫunhiên đượ c định ngh ĩ a ở  trên. Như vậy bằng cách sử dụng hình ảnh {{f 1

1(x), f 12(x), … ,

f 1T(x)}, H(u) đượ c tính lại như sau:

H(u) =)(1)(

)(

02

*0

u DuP

U  A

αα −+e )(ui  Rθ  

Khi một số hình ảnh đầu vào f t 

0 (x) vào hệ thống thì hàm H(u) đã đượ c tối ưu sẽ sinh ra

c0(x). Vớ i ảnh đầu vào f t 

0 (x) sẽ rạo ra hàm ct 

0 (x) ở  đầu ra như sau:

ct 

0 (x) = FT-1{ Ft 

0 (u))(1)(

|)(|

02

)(

00

u DuP

eu Aui  A

αα

θ

−+

e )(ui  Rθ }

Tươ ng tự vớ i ảnh đầu vào f t 

1 (x) sẽ tạo ra hàm ct 

1 (x) ở  đầu ra như sau:

ct 

1 (x) = FT-1{ Ft 

1 (u))(1)(

|)(|

02

)(

00

u DuP

eu Aui  A

αα

θ

−+

e )(ui  Rθ }

ở  đây chỉ số 1 đại diện cho một ảnh thu đượ c trong quá trình xác thực. Mẫu đầu ra ct 

1 (x) sẽ đượ c dùng để khôi phục khóa số trong quá trình xác thực. Rõ ràng vớ i ngườ i dùng hợ p lệ 

thì ct 

1 (x) càng gần vớ i ct 

o (x). Tất nhiên, nếu ảnh f t 

1 (x) đồng nhất vớ i ảnh f t 

0 (x) thì ct 

1 (x)→ c

o (x). Tuy nhiên vì những sự thay đổi theo hành vi, môi trườ ng và những thay đổi vật

lý nên f t 1 (x) sẽ không đồng nhất vớ i f t 

0 (x). Vì vậy trong quá trình đăng ký ta phải dùng Tảnh vân tay ( thườ ng T ≈6).

Sử dụng

A0(u) để đại diện cho Ft 

0 (u)

A1(u) để đại diện cho Ft 

1 (u)

Ta có

ct 

0 (x) = FT-1{ A0(u))(1)(

|)(|0

2

)(

00

u DuPeu A

ui  A

αα

θ

−+

e )(ui  Rθ }

ct 

0 (x) = FT-1{ A0(u))(1)(

|)(|

02

0

u DuP

u A

αα −+e )(ui  Rθ e )(

0ui  Aθ− }

Page 42: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 42/67

 

42

ct 

0 (x) = FT-1{ A0(u) . |H0(u)| . Hstored(u)} (3.8)

Tươ ng tự :

ct 

1 (x) = FT-1{ A1(u))(1)(

|)(|

02

)(

11

u DuP

eu Aui  A

αα

θ

−+

e )(ui  Rθ }

ct 

1 (x) = FT-1{ A1(u))(1)(

|)(|

02

1

u DuP

u A

αα −+e )(ui  Rθ e )(

1ui  Aθ− }

ct 

1 (x) = FT-1{A1(u) . |H1(u)| . Hstored(u)} (3.9)

như vậy Hstored(u) sẽ đượ c tính như sau:

Hstored(u) = e )(ui  Rθ e )(0

ui  Aθ− (3.10)

Trong phần tiếp theo, chúng ta sẽ đi sâu hơ n về khía cạnh an toàn của Hstored(u).Trong quá trình đăng ký và xác thực, khóa số sẽ đượ c liên kết vớ i c0(x) trong quá trìnhđăng ký và c1(x) trong quá trình xác thực.

3.7 Thiết kế bộ lọc an toànTrong phần trướ c, chúng ta đã đề cập tớ i bộ lọc Hstored(u). Nó đượ c yêu cầu phải an

toàn để chống lại các cuộc tấn công. Đến năm 1917 Gilbert Vernam phát minh ra hệ thống mã hóa vớ i độ bảo mật cao, đáp ứng đượ c cho các yêu cầu thiết kế bộ lọc an toàn.Hệ thống mã hóa như sau:

P = C = K = {0,1}n vớ i n≥1

Quá trình xử lý mã hóa bao gồm việc bổ sung hai module của hai chuỗi nhị phân n-bit gọira bản rõ và khóa. Dữ liệu mã hóa gọi là bản mã. P, C, K lần lượ t tươ ng ứng là bản rõ, bảnmã và không gian khóa. Trong hệ thống mã hóa khóa bí mật là ngẫu nhiên và chỉ sử dụng

một lần.

Xét một hệ thống mật mã nhị phân có hai cấp: 0 và π  

Cho P = K = C = {0, π }n khi n≥1

Quá trình mã hóa :

Page 43: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 43/67

 

43

e  piθ . e k iθ = e ciθ  

vớ i θ p ∈ P, θ k∈K và θ

c = θp + θ

k (mod 2π )

Quá trình giải mã

e ciθ . e k iθ− = e  piθ  

vớ i θ p = θ c - θ k ( mod 2π )

Tuy nhiên nếu

- θ k = θ k (mod 2π )

Giải mã sẽ là : e ciθ . e k iθ = e  piθ  

Các yếu tố của gian đoạn tạo ra nhị phân ei0

  và eiπ

có thể kết hợ p theo cách sau:ei0 . eiπ = eiπ . ei0 = eiπ  

eiπ . eiπ = ei0 . ei0 = ei0

Gọi τ là phép biến đổi : τ = { ei0 →0, eiπ  →1, và . → ⊕ }

Vớ i . là phép nhân còn ⊕ là phép toán loại trừ OR

Như vậy cách kết hợ p trên có thể chuyển đổi thành như sau:

0 ⊕ 1 = 1 ⊕ 0 = 1

0 ⊕ 0 = 1 ⊕ 1 = 0

3.8 Quá trình đăng ký và xác thự c

3.8.1 Quá trình đăng ký

Giai đoạn E-1: Xử lý ảnh, kết hợ p một tập dấu vân tay đầu vào vớ i một mảng ngẫu

nhiên để tạo ra hai mảng đầu ra : Hstored(u) và c0(x).Giai đoạn E-2 : Liên kết khóa(Key linking), dùng giải thuật liên kết hóa khóa mã

k0 vớ i mẫu c0(x)

Giai đoạn E-3: Tạo mã định danh, tạo ra một mã định danh id0 từ chìa khóa k0.

Page 44: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 44/67

 

44

 Hình 3.1 T ổ ng quan quá trình đăng ký của mã hóa sinh tr ắ c học

Mục đích của quá trình đăng ký là kết hợ p khóa N-bits vớ i dấu vân tay ngườ i dùngđể tạo ra Bioscrypt của ngườ i dùng.

Như trong hình vẽ, quá trình đăng ký cần 3 đầu vào là : tập dấu vân tay của ngườ idùng, R(u) đượ c tạo ngẫu nhiên và khóa mã k0 độ dài N-bits. R(u) đượ c tạo ra bằng sử dụng một bộ tạo số ngẫu nhiên ( random number generator – RNG). Chìa khóa k0 có thể sử dụng một chìa khóa đã có đượ c dùng làm đầu vào của giải thuật mã hóa sinh trắc, hoặccó thể sinh ra bở i RNG. Chú ý là khóa k0 và R(u) hoàn toàn độc lập vớ i ảnh sinh trắc.

Giai đ oạn E-1: X ử lý ảnh

Page 45: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 45/67

 

45

 Hình 3.2 : Giai đ oạn xử lý ảnh trong quá trình đăng ký 

Như trong hình trên, quá trình xử lý ảnh sẽ tạo ra mẫu c0(x) để chuyển cho giaiđoạn E-2 ( giai đoạn liên kết khóa) và sinh ra Hstored(u) – hàm lọc lưu trữ trong bioscrypt.Những dấu vân tay T đượ c thu nhận từ ngườ i sử dụng hệ thống ( khoảng 4 tớ i 6 ảnh đượ csử dụng), sau đó những ảnh này sẽ đượ c thực hiện biến đổi Fourier và sử dụng phươ ngtrình (3.4) và (3.5) ở trên để tính toán A0(u) và D0(u). Sau đó, tính e )(

0ui  Aθ từ A0(u) và liên

hợ p phức của nó. Tiếp theo ta tính đượ c hàm lọc lưu trữ Hstored(u) từ e )(0

ui  Aθ và R(u) theophươ ng trình (3.10). Theo phươ ng trình (3.8) ta tính đượ c mẫu c0(x). Hstored(u) đượ c lử trữ vào bioscrypt, c0(x) làm đầu vào cho giai đoạn liên kết của quá trình đăng ký.

Giai đ oạn E-2: Thuật toán liên k ế t 

Thuật toán liên kết có nhiệm vụ kết hợ p giữa mẫu đầu ra c0(x) vớ i khóa k0 N-bits dựa trênbảng tra cứu (Lookup table), tạo ra và lưu trữ chúng vào bioscrypt để sử dụng cho việckhôi phục khóa trong quá trình xác thực.

Một điều quan trọng là trong quá trình này là sự sai khác giữa mẫu đầu ra c0(x) vàmẫu cần kiểm tra c1(x), sự khác nhau này vì những sự thay đổi trong hàm lượ ng ẩm củangón tay ngườ i sử dụng, định vị ngón tay trên thiết bị …

Page 46: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 46/67

 

46

Có nhiều cách để liên kết k0 vớ i c0(x) , trong luận văn này sẽ đề cập đến cách sử dụng một cấu trúc lặp đơ n giản đơ n giản dùng để chỉnh sửa lỗi.

 Hình 3.3 : Thuật toán liên k ế t khóa

Như trong hình trên, giải thuật sẽ chọn lọc lấy một mảng 64x64 ở giữa của c0(x),nhị phân hóa và chọn lọc những giá trị L để đại diện cho mỗi bits khóa. Việc này có mụcđích để cung cấp các thông số đầu vào để tạo ra mẫu đăng ký nhị phân. Tiếp theo là kếthợ p phần số thực và số ảo đượ c nhị phân hóa của c0(x) để tạo ra mẫu đăng ký có kíchthướ c 128x64. Ví dụ: một mảng vớ i 128 cột và 64 hàng, nếu phần tử a+bi xuất hiện ở vị trí (x,y) của mảng 64x64 của c0(x), thì trong mẫu đăng ký phần số thực a sẽ xuất hiện tạivị trí (x,y) và phần số ảo b sẽ xuất hiện tại vị trí (x+64,y). Quá trình này làm chuyển đổimột mảng giá trị phức 64x64 thành một mảng giá trị thực 128x64. Mẫu đăng ký bây giờ  

chứa đựng 8192 giá trị thực D đượ c tạo ra từ các số thực a hay số ảo b tươ ng ứng. Nhị phân mỗi giá trị của mẫu đăng ký ta sẽ thu đượ c mẫu đăng ký nhị phân dùng để liên kếtvớ i k0. Quy tắc nhị phân mẫu đăng ký:

d → 1 nếu d ≥  0

d → 0 nếu d < 0

Page 47: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 47/67

 

47

Giả sử bit đầu tiên của k0 có giá trị là 0. Chọn vị trí của L ở trong mẫu đăng ký nhị phân mà có giá trị phần tử của nó bằng 0, ghi vào cột đầu tiên của lookup table. Tiếp tụcquá trình này vớ i các bits khác của khóa. Mỗi vị trí trong mẫu đăng ký nhị phân chỉ có thể đại diện cho một bit của chìa khóa. Cuối cùng Lookuptable sẽ bao gồm 128 cột mà mỗicột chứa vị trí L trong mẫu đăng ký nhị phân.

Giai đ oạn E-3: T ạo mã định danh

Một yêu cầu của giải thuật mã hóa sinh trắc học là khi một ngườ i tấn công vào hệ thống sử dụng Bioscrypt thì giải thuật sẽ sinh ra một khóa sai. Trên thực tế, để tiện lợ i chohệ thống thì giải thuật sẽ không sinh ra một khóa sai mà thay vào đó sẽ sinh ra thông báotừ chối và chuyển tớ i cho hệ thống mật mã. Việc này sẽ tránh cho hệ thống lãng phí tàinguyên vào việc giải mã bằng khóa sai. Do đó, cần phải có kịch bản để kiểm tra khóa choquá trình này. Rõ ràng chìa khóa k0 không thể lưu trữ trong bioscrypt để so sánh vớ i khóađượ c sinh ra bở i quá trình kiểm tra. Thay vào đó ta sẽ kết hợ p mã hóa tiêu chuẩn và giảithuật băm để tạo ra mã định danh id0. Tươ ng tự, quá trình kiểm tra sẽ sinh ra một mã định

danh id1, sau đó so sánh hai id này vớ i nhau để xác minh khóa đượ c sinh ra trong quátrình kiểm tra có đúng hay không.

Một phươ ng thức kiểm tra khóa thườ ng dùng là sử dụng khóa k0 N-bit như là khóamã để mã hóa S bit của dữ liệu. Sau đó dùng hàm băm một chiều để băm dữ liệu đã đượ cmã hóa để tạo ra mã định danh id0. Lưu mã định danh vào trong Bioscrypt.

S bit đượ c mã hóa có thể là S bit bất kỳ nào có trong quá trình đăng ký và xác thực.S bit này là khác nhau vớ i mỗi ngườ i dùng để đảm bảo an toàn tối đa cho thủ tục kiểm trakhóa. Để đảm bảo điều này ta sẽ sử dụng S bit ở hàm lọc lưu trữ Hstored(u) vì nó có ở trongcả quá trình đăng ký và quá trình xác thực. Ngoài ra còn vì Hstored(u) là tích số của dấu vân

tay và mảng ngẫu nhiên nên nó khác nhau vớ i mỗi ngườ i dùng. Do đó ta sẽ sử dụng S bitsđầu tiên của Hstored(u) làm dữ liệu đầu vào cho giải thuật mã hóa.

Việc chọn giải thuật mã hóa và hàm băm la độc lập vớ i quá trình mã hóa sinh trắchọc. Tiêu chí cho quá trình tạo ra mã định danh là đơ n giản và tính an toàn cao. Ở đây cóthể sử dụng mã hóa AES vớ i độ dài khóa là 256 và hàm băm SHA-256.

Bảng tra cứu và id0 đượ c thêm vào Hstored(u) để tạo thành Bioscrypt hoàn chỉnh, nócó thể lưu trữ trên bất cứ phươ ng tiện lưu trữ bình thườ ng hiện đang có trên thị trườ ng.

3.8.2 Quá trình xác thự c

Giai đoạn V-1: xử lý ảnh :

Lấy Hstored(u) từ bioscrypt, kết hợ p vớ i các dấu vân đầu vào để tạo thành c1(x)

Giai đoạn V-2 : tìm chìa khóa :

Page 48: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 48/67

 

48

Sử dụng giải thuật giải mã tìm chìa khóa k1 từ c1(x)

Giai đoạn V-3 : kiểm tra khóa :

Kiểm tra k1 bằng cách tạo ra một mã định danh mớ i id1 và so sánh vớ i id0 ở trên.

 Hình 3.4 : T ổ ng quan quá trình xác thự c của mã hóa sinh tr ắ c học

Mục tiêu của quá trình là khôi phục khóa N-bit cho ngườ i dùng hợ p lệ.

Như trong trình bày ở  trên, tập các ảnh sinh trắc của ngườ i dùng sẽ kết hợ p vớ iHstored(u), bảng tra cứu Lookup Table và id0 ở  trong bioscrypt để khôi phục và kiểm trakhóa N-bit của ngườ i dùng.

Giai đ oạn V-1 : X ử lý ảnh

Như trong hình trên, xử lý ảnh của quá trình xác thực cũng tươ ng tự như quá trinhđăng ký. Trướ c tiên lấy dấu vân tay T của ngườ i sử dụng, sau đó thực hiện biến đổiFourier và tính A1(u) và D1(u). Dựa theo phươ ng trình (3.9) tính c1(x) vớ i Hstored(x) lấyđượ c từ bioscrypt. Chuyển c1(x) sang giai đoạn V-2 của quá trình xác thực để khôi phụclại khóa N-bit.

Page 49: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 49/67

 

49

A0(u), D0(u) đượ c tính từ dấu vân tay đầu vào trong quá trình đăng ký.

A1(u), D1(u) đượ c tính từ dấu vân tay đầu vào trong quá trình xác thực.

Như vậy ta có:

- Nếu là ngườ i sử dụng hợ p lệ thì

A1(x) ≈ A0(x), D1(x) ≈ D0(x) và e )(1

ui  Aθ . e )(0

ui  Aθ−   ≈ 1

- Nếu là ngườ i tấn công thì

A1(x) ≠ A0(x), D1(x) ≠ D0(x) và e )(1

ui  Aθ . e )(0

ui  Aθ−   ≠ 1

Giai đ oạn V-2 : Thuật toán khôi phục

 Hình 3.5 : Giải thuật khôi phục khóa

Page 50: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 50/67

 

50

Thuật toán khôi phục chịu trách nhiệm chính trong việc khôi phục khóa ngẫu nhiên(đã đượ c ẩn vào trong lookup table trong quá trình đăng ký) từ mẫu c1(x) trong quá trìnhxác thực. Giải thuật khôi phục khóa sẽ sử dụng hàm lọc lưu trữ Hstored và Lookup Table đãđượ c lưu trữ trong bioscrypt và mẫu c1(x) lấy đượ c từ quá trình xác thực. Các bướ c dướ iđây sẽ mô tả chi tiết từng bướ c của quá trình khôi phục khóa N – bit liên kết vớ i c0(x) sử 

dụng giải thuật liên kết đã đề cập phía trên.Giải thuật khôi phục khóa:

1.  Lấy một mảng kích thướ c 64x64 ở giữa c1(x).

2.  Tươ ng tự giai đoạn E-2, kết hợ p số thực và số ảo để tạo ra mẫu kiểm tra 128x64,nhị phân hóa mẫu này sẽ tạo thành mẫu xác thực nhị phân – tươ ng ứng vớ i mẫuđăng ký nhị phân.

3.  Sử dụng bảng tra cứu để lấy ra các bit cần thiết trong mẫu xác thực nhị phân để tạokhóa. Định ngh ĩ a k1 như là một vector N-thành phần. Vớ i phần tử thứ n của k1,

cộng tổng các bit L của mẫu xác thực nhị phân có chỉ số ở trong cột n của bảng tracứu. Nếu tổng các bit đó lớ n hơ n L/2 thì phần tử thứ n của k1 bằng 1, nếu tổng cácbit đó nhỏ hơ n hoặc bằng L/2 thì phần tử thứ n của k1 bằng 0. Hay nói cách khác,dùng quy tắc đa số để gán giá trị cho bit thứ n của k1.

4.  Xác định tính hợ p lệ của khóa khôi phục đượ c. Quá trình này sẽ đượ c mô tả ch tiếtở giai đoạn V-3.

5.  Nếu k1 tìm đượ c là đúng, đưa ra khóa k1. Nếu k1 sai, trở lại c1(x) và lấy một mảng64 x 64 khác cách vị trí cũ 1 pixel. Tiếp tục quá trình từ bướ c 2 tớ i bướ c 5 vớ i tấtcả phần 64 x 64 có vị trí bắt đầu cách vị trí trung tâm nhỏ hơ n 16 pixel. Nếu bất kỳ 

vị trí nào mà khóa khôi phục đượ c xác minh là đúng thì ngừng quá trình và đưa rakết quả là khóa k1. Trong trườ ng hợ p còn lại, nếu tất cả các vị trí đều là khóa sai thìđưa ra thông báo từ chối.

Chú ý rằng, trong bướ c 5 của giải thuật khôi phục khóa đòi hỏi những mảng 64x64đượ c lấy ra từ dấu vân tay trong quá trình đăng ký và xác thực phải không lệch vị trí quánhiều. Thông thườ ng, ta chỉ cần tìm ± 16 pixel của kích thướ c 128x128. Trong khoảngnày, nếu không có vị trí nào trùng khớ p thì quá trình sẽ đượ c dừng lại, không cần tiếp tụckiểm tra thêm nữa.

Giai đ oạn V-3 : Kiể m tra khóa

Bướ c 4 của giải thuật trên yêu cầu khóa k1 cần phải đượ c kiểm tra tính hợ p lệ. Khóahợ p lệ chỉ khi nó phù hợ p hoàn toàn vớ i khóa k0 ( trong quá trình đăng ký). Để kiểm tratính hợ p lệ của khóa k1, ta sẽ tính mã định danh id1 rồi so sánh id1 vớ i id0 đã đượ c lưu trữ trong bioscrypt. Mã định danh id1 đượ c tính tươ ng tự id0 , trải qua các bướ c :

-  Coi k1 là khóa mã, mã hóa S-bit của hàm lọc lưu trữ.

Page 51: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 51/67

 

51

-  Sau đó băm dữ liệu mã hóa sẽ đượ c id1.

-  So sánh id1 vớ i id0 , nếu id1=id0 thì k1=k0 tức là khóa tìm đượ c là chính xác.Ngượ c lại nếu id1  ≠ id0 thì k1  ≠ k0, hệ thống sẽ ra thông bào từ chối hay làthuật toán khôi phục sẽ tiếp tục quay lại bướ c 1 trong giai đoạn V-2 vớ i một vị 

trí khác.3.9  Kết luận

Trong chươ ng 3 chúng ta đã tìm hiểu về các thuật toán mã hóa sinh trắc, biếtđượ c cấu trúc của hệ thống đăng ký khóa sinh trắc và hệ thống xác thực và truy xuất khóa.Cùng vớ i đó là các công thức toán học, các bướ c thực hiện để xây dựng nên hệ thống mãhóa sinh trắc.

Qua chươ ng này chúng ta cũng nhận thấy sự an toàn của khóa sinh từ các đặc trưng sinhtrắc nói riêng cũng như ảnh vân tay nói chung ở các điểm sau :

-  Khóa sinh trắc có tính ngẫu nhiên rất cao ( do sự tham gia của hai dãy số ngẫunhiên ở quá trình xử lý ảnh và mã hóa hàm lọc lưu trữ ), gây khó khăn lớ n choviệc tấn công khóa. Điều này trái ngượ c vớ i các khóa thông thườ ng : thườ ng lànhững từ khóa dễ nhớ , có liên quan tớ i bản thân hoặc ngườ i thân nên dễ tấncông hơ n.

-  Hệ thống sử dụng khóa sinh trắc có khả năng xác thực ngườ i sử dụng, chỉ cóngườ i sử dụng hợ p lệ mớ i có thể sử dụng khóa. Những ngườ i sử dụng khônghợ p lệ ( không có dấu vân tay trùng khớ p) không thể truy xuất khóa sinh trắc.Đặc điểm này chính là sự khác biệt lớ n nhất giữa hệ thống sử dụng khóa sinhtrắc và hệ thống sử dụng khóa thườ ng. Ở những hệ thống mật mã bình thườ ng,

bất kỳ ai nhập vào chuỗi khóa đúng ( kể cả kẻ tấn công khóa) cũng có quyềncủa chủ nhân của chúng. 

Page 52: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 52/67

 

52

CHƯƠ NG 4 : XÂY DỰ NG Ứ NG DỤNG “MẬT MÃ SINH TRẮC”

4.1 Giớ i thiệu

Chươ ng này sẽ tập trung vào việc mô tả chi tiết các thuật toán đã đượ c sử dụng và

kết quả thực thi của chúng. Nó mô tả các bướ c cần thiết để có thể tạo ra một khóa sinhtrắc và sử dụng khóa sinh trắc đó vào việc mã hóa. Chươ ng trình đượ c viết bằng ngôn ngữ lập trình hướ ng đối tượ ng Java, vớ i các form đượ c thiết kế đơ n giản, vớ i hai chức năng làsinh khóa sinh trắc và mã hóa khóa sinh trắc, ngoài ra còn có các chức năng để thực thimột số thuật toán con như : lấy màu của từng pixel ảnh, biến đổi Fourier của một ma trậnảnh, tính toán các sai lệch….

4.2 Các thuật toán đượ c sử dụng

4.2.1 Xử lý ảnh

Mục đích của phần này là xử lý ảnh đăng ký và đưa ra đượ c màu sắc của các điểmảnh. Chươ ng trình ứng dụng xử lý ảnh đen trắng có kích thướ c 128 x 128 pixel, là ảnh củabộ scan vân tay thông thườ ng. Trướ c tiên chúng ta sẽ tìm hiểu xem vớ i ngôn ngữ lập trìnhJava, ảnh và các điểm ảnh đượ c biểu diễn như thế nào?

Một bức ảnh số là một mảng dữ liệu 2 chiều của nhiều hạt ảnh ( pixels), chúng ta sẽ gọi một hạt ảnh là một Pixel. Mỗi pixel chứa 3 số nguyên có giá trị từ 0 cho tớ i 255, 3 số nguyên này mang 3 giá trị màu của màu đỏ, xanh lục và xanh dươ ng trong pixel đó. Gọi r,g, b lần lượ t là các giá trị màu của màu đỏ, xanh lục và xanh dươ ng trong pixel. Nếu mộtpixel có 3 giá trị màu bằng nhau thì pixel đó có màu xám. Nếu giá trị r,g,b trong một pixelcàng lớ n thì pixel đó có màu càng sáng và ngượ c lại nếu r, g, b có giá trị càng nhỏ thì

pixel có giá trị càng tối. Dướ i đây là một số màu cơ bản :R,G,B: ---------------> Màu:0, 0, 0 ---------------> Đen0, 0, 255 ---------------> Xanh dươ ng (blue)0, 255, 0 ---------------> Xanh lục (green)255, 0, 0 ---------------> Đỏ (red)0, 255, 255 ---------------> Xanh lam (cyan)255, 255,0 ---------------> Vàng255,0,255 ---------------> Tím255,255,255 -------------> Trắng.

Quá trình xử lý ảnh trong quá trình đăng ký sẽ đưa ra một ma trận các phần tử 0, 1có kích thướ c 128 * 128. Ở đây, 0 biểu diễn điểm ảnh tươ ng ứng có màu đen, 1 biểu diễnđiểm ảnh tươ ng ứng có màu trắng.

Page 53: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 53/67

 

53

4.2.2  Biến đổi Fourier rờ i rạc

Trong toán học, phép biến đổi Fourier rờ i rạc còn đượ c gọi là phép biến đổi Fourierhữu hạn. Đầu vào của biến đổi là một chuỗi hữu hạn các số thực hoặc số phức. Dãy củaN số x0, …, xN-1 ( x có thể là số thực hoặc là số phức) đượ c biến đổi thành chuỗi của N số 

phức X0, ... , XN-1 bở i công thức sau đây:

Vớ i e là cơ sở của logarit tự nhiên, i là đơ n vị ảo ( i2 = -1) , phép biến đổi đượ c ký hiệu làF:

X = F{X}

Phép biến đổi Fourier rờ i rạc ngượ c đượ c cho bở i công thức:

Tuy nhiên trong quá trình xây dựng ứng dụng, việc tính toán vớ i hàm mũ cơ số e là rấtmất thờ i gian, vì vậy ta áp dụng công thức Euler ( công thức đồng nhất Euler) là một côngthức toán học trong giải tích đượ c xây dựng bở i nhà toán học ngườ i Thụy S ĩ  : LeonhardEuler. Công thức chỉ ra mối liên hệ giữa hàm số lượ ng giác và hàm số mũ phức. Cụ thể,vớ i mọi số thực x ta có :

Khai triển từ công thức trên, sin(x) và cos(x) có thể đượ c viết như sau:

Từ đó, công thức Euler đượ c biến đổi thành :

Xk = ∑−

=

−1

0

2 N 

n

kn N 

i

n e x

π

 

Xk = ∑−

=

−+−1

0

))2

sin()2

(cos( N 

n

n kn N 

iikn

 N 

i x

ππ 

Page 54: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 54/67

 

54

Sau khi biến đổi Fourier cho ma trận biểu diễn màu của ảnh đầu vào, ta đượ c mộtma trận số phức, có kích thướ c 128 * 128. Mỗi phần tử của ma trận phức là một số phứcđượ c biểu diễn dướ i dạng :

x = a + bi

trong đó, a là phần thực, b là phần ảo và i là đơ n vị ảo.

4.2.3  Sinh mảng ngẫu nhiên

Một bộ sinh số ngẫu nhiên RNG (Random Number Generator) là một bộ tính toánđể tạo ra dãy số ngẫu nhiên. Có rất nhiều phươ ng pháp để tạo ra số ngẫu nhiên, từ thờ i cổ đại đã có những phươ ng pháp như : tung đồng xu, súc sắc, rút thẻ… ngày nay các phươ ngpháp sinh số ngẫu nhiên dựa vào hệ thống phần cứng đượ c sử dụng phổ biến. Các bộ số ngẫu nhiên có ứng dụng nhiều trong cờ bạc, lấy mẫu thống kê, mô phỏng máy tính, mật

mã … nhằm tạo ra một kết quả xử lý không thể đoán trướ c.Trong khóa luận này, bộ số ngẫu nhiên cũng đóng vai trò quan trọng trong quá trình

đăng ký đượ c xây dựng. Bộ số ngẫu nhiên giúp chúng ta giấu các thông tin của ảnh đầuvào, làm khóa cho quá trình mã hóa dữ liệu thu đượ c khi xử lý ảnh … nhằm tăng độ bảomật cho dữ liệu.

Có 3 phươ ng pháp sinh ra một số ngẫu nhiên:

-  Phươ ng pháp vật lý : như đã kể trên, phươ ng pháp vật lý là phươ ng phápra đờ i sớ m nhất để tạo ra sự ngẫu nhiên bao gồm tung đồng xu, súc sắc… Những phươ ng pháp này vẫn đượ c sử dụng ở hiện tại trong các ứngdụng về cờ bạc và một số trò chơ i. Tuy nhiên vớ i phươ ng pháp này cóxu hướ ng quá chậm đối vớ i hầu hết các ứng dụng trong thống kê và mậtmã

-  Phươ ng pháp tính toán : PRNGs là thuật toán có thể tạo ra dãy số ngẫunhiên, chuỗi giá trị ngẫu nhiên này đượ c tạo ra bở i một hạt giống. Mộttrong những PRNGs phổ biến nhất là bộ tuyến tính sử dụng modulo để tạo ra các con số :

Xn+1 = (a Xn + b) mod m

Vớ i m là số nguyên tố lớ n, a và b là 2 số nguyên dươ ng cho trướ c. Bộ PRNGs sử dụng modulo nên có độ ngẫu nhiên khá tốt, có thể sử dụngcho mật mã và thống kê. Trong khóa luận này, chúng ta sử dụng bộ PRNGs này đế sinh các số ngẫu nhiên.

-  Phươ ng pháp dựa vào phân bố xác suất : các phươ ng pháp này tạo ra bộ số ngẫu nhiên dựa trên một hàm mật độ xác suất. Những phươ ng pháp

Page 55: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 55/67

 

55

này có thể làm việc tốt trong việc tạo ra bộ số ngẫu nhiên cũng như giả ngẫu nhiên.

4.2.4  Các phép toán

Quá trình xử lý và tính toán trong “mật mã sinh trắc” là khá phức tạp. Quá trìnhtính toán sử dụng khá nhiều thuật toán liên quan tớ i số phức, ma trận…

4.2.4.1  Các phép toán liên quan tớ i số phứ c

Giả sử có hai số phức x và x’ đượ c biểu diễn dướ i dạng :

x = a + bi

x’ = a’ + b’i

trong đó a, b là hai số thực, a biểu diễn phần thực, b biểu diễn phần ảo và i là đơ n vị ảovớ i i2 = -1.

- Phép cộng vớ i hai số phức x và x’ :x + x’ = (a +a’) + (b + b’) i

- Phép trừ vớ i hai số phức x và x’:

x – x’ = (a – a’) + (b – b’) i

- Phép nhân vớ i hai số phức x, x’ :

x * x’ = ( a* a’ - b * b’) + ( a*b’ + a’*b) i- Số phức liên hợ p của số phức x là :

Xlh = a – bi

- Modulo của số phức x :

M(x) = a2 + b2

- Trung bình của hai số phức x và x’:

(x + x’)/2 = (a + a’)/2 + (b+b’) * i / 2

4.2.4.2  Các phép toán liên quan tớ i ma trận

Gỉa sử M và N là hai ma trận có kích thướ c n x n.

Page 56: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 56/67

 

56

-  Phép cộng hai ma trận M và N cho kết quả là một ma trận P có kíchthướ c n x n là kết quả của đoạn giả mã sau :

For ( int i = 0; I < n; i++){

For ( int j =0; j < n; j++){

P[i][j] = M[i][j] + N[i][j];

}

}

Return P;

-  Tươ ng tự phép cộng hai ma trận, phép trừ ma trận M cho ma trận Ncũng cho kết quả là một ma trận có kích thướ c n x n;

Phép nhân ma trận M vớ i ma trận N cho kết quả là ma trận P có kíchthướ c n x n đượ c mô tả như sau :

int tg = 0;

For ( int i = 0;i<n;i++){

For ( int j =0;j<n;j++){

For (int k = 0; k<n; k++){

tg =tg + M[i][k] + N[k][j];

}P[i][j] = tg;

}

}

Return P;

-  Ma trận nghịch đảo của ma trận M là ma trận P đượ c định ngh ĩ a :

M * P = 1;

-  Chia ma trận M cho ma trận N – khả nghịch đượ c kết quả là ma trận P :

P = M/N = M*N-1 vớ i N-1 là ma trận nghịch đảo củama trận N

Page 57: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 57/67

 

57

4.3  Xây dự ng ứ ng dụng mật mã sinh trắc

Như đã đề cập ở trên, ứng dụng “mật mã sinh trắc” sẽ gồm hai chức năng là “Sinhkhóa sinh trắc” và “Mã hóa sử dụng khóa sinh trắc”. Trong đó chức năng “Mã hóa sử dụng khóa sinh trắc” bao gồm hai chức năng nhỏ hơ n là : “Mã hóa” và “Giải mã”.

 Hình 4.1 : Biể u đồ chứ c năng chươ ng trình ứ ng d ụng

4.3.1  Sinh khóa sinh trắc

- Mục đích : tạo ra một định danh Id cho ảnh vân tay đầu vào và sử dụng Id này

như là khóa sinh trắc.

- Dữ liệu đầu vào : 1 bức ảnh vân tay đen trắng có kích thướ c 128 x 128 pixel.

- Quá trình thực hiện : gồm 4 giai đoạn

Giai đ oạn 1 : X ử lý ảnh

Quá trình xử lý ảnh trải qua 3 bướ c : xử lý ảnh, biến đổi Fourier, tính số phức liên

hợ p. Ảnh đầu vào là ảnh đen trắng, có kích thướ c 128 x 128 pixel sẽ đượ c xử lý, đưa ra

Page 58: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 58/67

 

58

ma trận màu của nó là một ma trận các số 0, 1. Sau đó , ma trận các số 0, 1 này sẽ đượ c

biến đổi Fourier tạo ra một ma trận các số phức A. Ma trận phức liên hợ p A' sẽ đượ c tính

từ ma trận phức A bằng cách : vớ i mỗi số phức là thành phần của A ta tính số phức liên

hợ p của nó. Kết quả của quá trình là một ma trận phức A' là ma trận phức liên hợ p của ma

trận phức A. Ma trận này sẽ là đầu vào cho quá trình tạo hàm lọc lưu trữ ở giai đoạn 3.

 Hình 4.2 : Giai đ oạn xử lý ảnh

Giai đ oạn 2 : Sinh mảng số ngẫ u nhiên.

 Hình 4.3 : sinh mảng số ngẫ u nhiên

Bộ sinh số ngẫu nhiên trong chươ ng trình ứng dụng đượ c thiết kế để tạo ra một ma

trận ngẫu nhiên các số 0, 1. Ma trận này cũng có kích thướ c 128 x 128 như ma trận màu

của ảnh đầu vào. Ma trận các số ngẫu nhiên 0, 1 sẽ đượ c biến đổi Fourier tạo ra một ma

Page 59: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 59/67

 

59

trận số phức R. Đây là kết quả của giai đoạn này. Nó sẽ là đầu vào cho quá trình tạo hàm

lọc lưu trữ ở giai đoạn 3.

Giai đ oạn 3 : Sinh hàm lọc lư u tr ữ . 

 Hình 4.4 : Tính hàm lọc lư u tr ữ H stored 

Giai đoạn này sử dụng kết quả của hai giai đoạn xử lý ảnh và sinh số ngẫu nhiên.

Hai ma trận phức sẽ đượ c nhân vớ i nhau tạo ra ma trận số phức Hstored . Ma trận này là

đầu vào của quá trình sinh khóa dướ i đây.

Giai đ oạn 4 : Sinh khóa sinh tr ắ c

 Hình 4.5 : Sinh khóa sinh tr ắ c

Page 60: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 60/67

 

60

Trướ c tiên, bộ sinh số ngẫu nhiên sẽ sinh ra một khóa k có độ dài 256 – bit, khóa k

là ngẫu nhiên. Sau đó khóa k sẽ đượ c sử dụng làm khóa mã của thuật toán mã hóa AES,

sử dụng để mã hóa hàm lọc lưu trữ Hstored tạo ra một bản mã hóa, bản mã hóa này sẽ đượ c

đưa vào hàm băm SHA-256 cho kết quả băm là 256 bit. Chuỗi bit này sẽ đượ c sử dụng

như là khóa sinh trắc của ngườ i sử dụng.

4.3.2  Mã hóa sử dụng khóa sinh trắc

Chức năng “ Mã hóa sử dụng khóa sinh trắc” thực ra chỉ là sử dụng lại thuật toánmã hóa AES để mã hóa dữ liệu, và giải mã bản mã thành bản dữ liệu gốc. Nó gồm hai quátrình mã hóa và giải mã vớ i cùng một khóa k là khóa sinh trắc đã đượ c sinh từ chức năng“Sinh khóa sinh trắc”.

 Mã hóa d ữ liệu :

 Hình 4.6 : Quá trình mã hóa d ữ liệu

Quá trình mã hóa dữ liệu trải qua 4 giai đoạn :

•  Giai đoạn 1 : Lấy dữ liệu cần mã hóa từ giao diện của ứng dụng.

•  Giai đoạn 2 : Lấy 256 – bit khóa sinh trắc đã đượ c tạo ra từ chức năng sinhkhóa sinh trắc làm khóa mã cho thuật toán mã hóa.

•  Giai đoạn 3 : Sử dụng thuật toán mã hóa AES cho dữ liệu vừa lấy đượ c vớ ikhóa là khóa sinh trắc có độ dài 256 – bit.

•  Giai đoạn 4 : Lấy kết quả của quá trình mã hóa, ta đượ c bản mã hóa của dữ liệu, hiển thị ra giao diện ứng dụng.

Sau khi quá trình mã hóa kết thúc, bản mã hóa dữ liệu, khóa sinh trắc đều đượ c lưutrữ nhằm phục vụ cho quá trình giải mã dữ liệu.

Page 61: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 61/67

 

61

Giải mã d ữ liệu :

 Hình 4.7 : Quá trình giải mã d ữ liệu

Cũng giống vớ i quá trình mã hóa dữ liệu, quá trình giải mã dữ liệu cũng trải qua 4 giaiđoạn :

•  Giai đoạn 1 : Lấy bản mã hóa dữ liệu đã đượ c lưu trữ trong giao diện của ứngdụng.

•  Giai đoạn 2 : Lấy khóa sinh trắc làm khóa giải mã dữ liệu

•  Giai đoạn 3 : Sử dụng thuật toán giải mã của AES vớ i dữ liệu cần giải mã làbản mã hóa dữ liệu, khóa giải mã là khóa sinh trắc.

•  Giai đoạn 4 : Thu nhận kết quả của quá trình giải mã là bản rõ của dữ liệu, hiểnthị dữ liệu ra giao diện ứng dụng.

4.4  Giao diện ứ ng dụng “mật mã sinh trắc” và cách sử dụng.

Giao diện của ứng dụng “ mật mã sinh trắc” đượ c xây dựng khá đơ n giản, dễ sử dụng, tách biệt các module và thể hiện rõ quá trình xây dựng ứng dụng vớ i 3 modulechính là “Sinh khóa ”, “Mã hóa dữ liệu” và “ Giải mã”.

Page 62: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 62/67

 

62

 Hình 4.7 : Giao diện ứ ng d ụng

Ở chức năng sinh khóa, giao diện ứng dụng giúp chúng ta có thể chọn ảnh vân tayđể đưa vào quá trình sinh khóa bằng hộp chọn :

Page 63: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 63/67

 

63

 Hình 4.8 : H ộ p chọn ảnh sinh tr ắ c

Sau khi chọn đượ c ảnh vân tay dùng để sinh khóa sinh trắc, kích vào nút “Sinh Khóa” để đưa ảnh vào chươ ng trình xử lý và đưa ra khóa sinh trắc. Khóa sau khi đượ c sinh ra sẽ đượ c hiển thị trên một nhãn, nhằm không cho ngườ i sử dụng thay đổi dữ liệu, anh vân taysẽ đượ c hiển thị ngay trên nút chọn.

 Hình 4.9: Chứ c năng sinh khóa

Page 64: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 64/67

 

64

Giao diện ứng dụng có 3 trườ ng text, trườ ng “bản rõ” sử dụng để nhập dữ liệu cầnmã hóa, trườ ng “Bản Mã” sử dụng để in ra chuỗi mã hóa thu đượ c khi mã hóa dữ liệuđượ c nhập bằng thuật toán AES-256 vớ i “khóa sinh trắc” vừa thu đượ c trong quá trìnhsinh khóa. Trườ ng text còn lại để hiển thị chuỗi thu đượ c khi giải mã chuỗi mã vớ i “khóasinh trắc”. Các nút bấm “Mã Hóa” và “Giải Mã” lần lượ t thực hiện các chức năng “Mã

hóa dữ liệu” và “Giải mã”. Dướ i đây là một ví dụ về quá trình sinh khóa, mã hóa dữ liệuvà giải mã dữ liệu của chươ ng trình ứng dụng :

 Hình 4.10 : Ví d ụ ứ ng d ụng

Page 65: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 65/67

 

65

4.5  Kết Luận

Trong chươ ng “Xây dựng ứng dụng mật mã sinh trắc”, chúng ta đã biết đượ cnhững thuật toán xử lý ảnh, cách áp dụng công thức Euler vào biến đổi Fourier nhằm rútngắn thờ i gian thực thi chươ ng trình, các phép toán liên quan tớ i số phức và ma trận. Tất

cả chúng đều phục vụ cho quá trình sinh khóa sinh trắc. Ngoài ra,chươ ng còn làm rõ cácbướ c để sinh ra đượ c khóa sinh trắc. Cùng vớ i đó là quá trình xây dựng ứng dụng “ Mậtmã sinh trắc” vớ i các chứng năng là : “Sinh khóa sinh trắc”, “Mã hóa sử dụng khóa sinhtrắc” và giao diện của ứng dụng và cách sử dụng giao diện đó.

Page 66: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 66/67

 

66

KẾT LUẬN

Khóa luận tốt nghiệp “Mật mã sinh trắc” đã đạt đượ c một số kết quả như sau:

•  Khoá luận trình bày tổng quan về mật mã, các hệ mật mã phổ biến như hệ mật mã khóa đối xứng ( AES), hệ mật mã khóa công khai (RSA), cùng vớ iứng dụng băm (SHA).

•  Khóa luận đã trình bày về sinh trắc học, các đặc trưng của ảnh vân tay, vàcác phươ ng pháp ứng dụng sinh trắc học vào việc bảo mật khóa bằng mẫusinh trắc học là ảnh vân tay.

•  Áp dụng lý thuyết đã nghiên cứu ở trên, khóa luận cũng đã đề xuất giải pháp,các thuật toán, các công thức toán học và các bướ c thực hiện quá trình đăng

ký và xác thực khóa sinh trắc.•  Cài đặt thành công ứng dụng “Mật mã sinh trắc” bao gồm hai chức năng

“Sinh khóa sinh trắc” và “Mã hóa sử dụng khóa sinh trắc”. Chức năng “sinhkhóa sinh trắc” bao gồm hai giai đoạn “Xử lý ảnh” và “ Sinh khóa” của quátrình xác thực, khóa sau khi đượ c sinh từ ảnh sinh trắc ( ảnh vân tay ) sẽ đượ c sử dụng làm khóa mã và khóa giải mã trong chức năng “Mã hóa sử dụng khóa sinh trắc”.

•  Chươ ng trình ứng dụng đã có thể sinh ra khóa sinh trắc, sử dụng khóa sinh

trắc để mã hóa và giải mã dữ liệu.Tuy nhiên, do lần đầu tiếp cận vớ i vấn đề mớ i, thờ i gian có hạn và khả năng

hạn chế nên đề tài chỉ mớ i dừng lại ở mức nghiên cứu các giải pháp bảo vệ khóa sử dụng đặc trưng sinh trắc học và phươ ng pháp thực thi. Khóa luận chưa áp dụng cácnghiên cứu để xây dựng chươ ng trình trong thực tế. Nếu có thờ i gian và điều kiệncho phép, tác giả sẽ  đi sâu vào nghiên cứu và lập trình, xây dựng, cài đặt cácmodule phức tạp khác để chươ ng trình ứng dụng ngày một hoàn thiện.

Hướ ng phát triển của khóa luận :

Mật mã sinh trắc có thể đượ c ứng dụng rất nhiều trong thực tế như : thươ ng mạiđiện tử, kết hợ p mật mã sinh trắc vớ i hệ thống PKI tạo ra hệ thống Bio-PKI, ứngdụng mật mã sinh trắc vớ i hệ thống OpenCA,….

Page 67: Mật mã sinh trắc

7/30/2019 Mật mã sinh trắc

http://slidepdf.com/reader/full/mat-ma-sinh-trac 67/67

 

TÀI LIỆU THAM KHẢO

Tiếng Việt

[1] Lươ ng Mạnh Bá, Nguyễn Thanh Thủy. Nhập môn xử lý ảnh số. Nhà xuất bản khoahọc kỹ thuật 1999.

[2] Ngô Quốc Tạo. Tập bài giảng “ Nhập môn xử lý ảnh”.

Tiếng Anh

[1] D.Maltoni, D.Maio, A.K.Jain, “Handle book of fingerprint reconigtion”, Springer,NewYork 2003.

[2] “Biometric for network security”, Prentice Hall PTR, December 30, 2003.

[3] Anil K.Jain et all, “Biometric Crytosystems : Isues and Challenges”, Proceeding of the IEEE, vol. 92, No. 6, June 2004.

[4] F.Hao, R.Anderson, J.Daugman, “ Combining Cryptography with Biometriceffectively”, University Cambridge, Technical Report N. 40, July 2005.

[5] Yoshifumi Ueshige, “ A study on Biometrics Authentification in BioPKI”, Institute& System Information Technologies/ KYUSHU, 2005.

[6] Biometric Security. Idea biometric fingerprint door lock and safes, Home SecurityStore, 2007.