Khóa luận Nghiên cứu tìm hiểuvề mật mã sinh trắc

Hệmật mã khóa đốixứng làhệmật mãsửdụng khóalập mã và khóa giải mã giống nhau.Cứmỗilần truyền tinbảomậtcả ngườigửi A và người nhận Bsẽ thỏa thuận với nhaumột khóa chung k, sau đó ngườigửisẽ dùngek đểlập mã cho thông báogửi đi 9 và người nhậnsẽ dùngdk để giải mã thông điệp nhận đượctừ ngườigửi A. Cáchệmật mãdịch chuyển, thay thế làhệmật mã khóa đốixứng, nhưng điển hình chohệmật mã khóa đốixứng làhệ mã hóa chuẩn AES, DES. DES được xâydựngtạiMỹ trong những năm 70 theo yêucầucủaVăn phòng quốc giavề chuẩn(NBS) và đượcsự thẩm địnhcủa ủy ban an ninh quốc gia. DESkếthợpcả hai phương pháp thay thế và chuyểndịch. DES thực hiện mã hóa trêntừng khốibản rõ theotừng xâu 64bitvới khóa là xâu 56 bit và cho rabản mã là xâu 64bits. Hiện nay DES và biến thểcủa nó 3DESvẫn đượcsửdụng thành công trong nhiều ứngdụng.

pdf67 trang | Chia sẻ: lvbuiluyen | Ngày: 17/11/2013 | Lượt xem: 1789 | Lượt tải: 1download
Bạn đang xem nội dung tài liệu Khóa luận Nghiên cứu tìm hiểuvề mật mã sinh trắc, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
1 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜ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 2 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜ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 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 4 DANH MỤC CÁC HÌNH Tên hình Trang Hình 1.1: Quá trình mã hóa và giải mã 8 Hình 1.2: AddRoundKey bản rõ và khóa 9 Hình 1.3: Bước SubBytes 10 Hình 1.4: Bước ShiftRow 10 Hình 1.5: Bước MixColumns 11 Hình 1.6: Bước InvShiftRow 11 Hình 1.7: Hộp S-nghịch 12 Hình 1.8: Sơ đồ hệ mật RSA 13 Hình 1.9: Chữ ký số RSA 14 Hình 1.10:Quá trình băm thông điệp 15 Hình 1.11:Quá trình ký số 15 Hình 1.12:Gửi thông điệp 15 Hình 1.13:Xác minh chữ ký số 16 Hình 1.14:Băm thông điệp 16 Hình 1.15:Xác minh thông điệp 17 Hình 1.16:Băm nhiều thông điệp cho ra cùng một kết quả băm 17 Hình 1.17: Mảng 64 hằng số 32-bit Ki{256} 22 Hình 1.18 : Các giá trị khởi tạo của giá trị băm 23 Hình 2.1: Một số vân tay tìm được từ thời xưa 26 Hình 2.2: Các loại vân tay 30 Hình 2.3 : Số đếm các đường vân 31 Hình 3.1 : Tổng quan quá trình đăng ký của mã hóa sinh trắc học 44 Hình 3.2 : Giai đoạn xử lý ảnh trong quá trình đăng ký 45 Hình 3.3 : Thuật toán liên kết khóa 46 Hình 3.4 : Tổng quan quá trình xác thực của mã hóa sinh trắc học 48 Hình 3.5 : Giải thuật khôi phục khóa 49 Hình 4.1 : Biểu đồ chức năng chương trình ứng dụng 57 Hình 4.2 : Giai đoạn xử lý ảnh 58 Hình 4.3 : Sinh mảng số ngẫu nhiên 58 Hì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 63 Hình 4.12 : Ví dụ ứng dụng 64 5 Ký hiệu các cụm từ viết tắt Viết tắt Tiếng Anh Tiếng Việt AES Advanced Encryption Standard Chuẩn mã hóa tiên tiến Bio Biometric Sinh trắc CA Certificate Authority Chủ quyền chứng nhận DES Data Encryption Standard Chuẩn mã hóa dữ liệu DSS Data Security Standard Chuẩn bảo mật dữ liệu FT Fourier Tranform Biến đổi Fourier rời rạc MD Message Degist Thuật toán băm PKI Public Key Infrastructure Hạ tầng khóa công khai RSA Rivest-Shamir-Adlman Tên các nhà khoa học SHA Secure Hash Algorithm Thuật toán băm an toàn 6 MỤC LỤC Chương 1: TỔNG QUAN VỀ MẬT MÃ .....................................................8 1.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 ...............................8 1.2.1 Hệ mật mã khóa đối xứng .........................................................8 1.2.2 Thuật toán mã hóa AES ............................................................9 1.3.Hệ mật mã khóa công khai.........................................................................12 1.4.Chữ ký số ...................................................................................................13 1.5.Hàm băm ....................................................................................................17 1.5.1.Hàm băm:.......................................................................................17 1.5.2.Hàm băm SHA - 256......................................................................19 1.5.2.1 Các tham số, ký hiệu và thuật ngữ .......................................19 1.5.2.2 Phép toán..............................................................................20 1.5.2.3 Chuyển đổi dữ liệu...............................................................20 1.5.2.4 Các thuật toán.......................................................................21 1.5.2.5 Các hàm chức năng sử dụng trong SHA-256 ......................21 1.5.2.6 Các hằng số sử dụng trong SHA-256 ..................................21 1.5.2.7 Quá trình tiền xử lý thông điệp M .......................................22 1.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Ã ....................26 2.1.Sinh trắc học:..............................................................................................26 2.2.Các khái niệm sinh trắc học về vân tay......................................................27 2.2.1 Khái niệm vân tay ...................................................................27 2.2.2 Các loại vân tay.......................................................................28 2.2.3.Các đặc trưng của vân tay .......................................................30 2.2.3.1 Đặc trưng tổng thể...................................................31 2.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ã: .............................................................34 2.4.Kết luận ......................................................................................................36 CHƯƠNG 3:THUẬT TOÁN MÃ HÓA SINH TRẮC ...............................37 3.1 Xử lý ảnh nhận dạng .................................................................................37 3.2. Sự tương quan ...........................................................................................37 3.3. Những yêu cầu của hệ thống.....................................................................38 3.4 Thiết kế hàm lọc........................................................................................38 3.5 Độ an toàn của hàm lọc.............................................................................40 3.6 Bộ lọc tạm thời ..........................................................................................40 3.7 Thiết kế bộ lọc an toàn..............................................................................42 7 3.8 Quá trình đăng ký và xác thực ..................................................................43 3.8.1 Quá trình đăng ký...........................................................................43 3.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..........................................................52 4.1 Giới thiệu....................................................................................................52 4.2 Các thuật toán được sử dụng......................................................................52 4.2.1 Xử lý ảnh........................................................................................52 4.2.2 Biến đổi Fourier rời rạc..................................................................53 4.2.3 Sinh mảng ngẫu nhiên....................................................................54 4.2.4 Các phép toán.................................................................................55 4.2.4.1 Các phép toán với số phức ............................................55 4.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.........................................................................57 4.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..........................61 4.1 Kết luận .............................................................................................................. 65 KẾT LUẬN…………………………………………………………………. 66 TÀI LIỆU THAM KHẢO ………………………………………………… .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ảm trê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óa cô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ận vớ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 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ật mã 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ững nă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à cho ra 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ành cô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ệu có độ 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án AES 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óa con vơi khối dữ liệu. Hình 1.2: AddRoundKey bản rõ và khóa 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 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 đổi nà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 12 biến đổi affine sau khi thực hiện phép nghịch đảo trên trường GF(28) cho bởi bả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ân theo 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òn gọ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ải mã 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ệu muố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ệp nhậ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 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ật mã 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 thi hệ 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 1 số 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ếu ngườ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ũng có 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ắn rằ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ệp gố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ằng thuậ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à đồng thời xác thực được người gửi thông tin là A. 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ũng chứ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án kiểm thử Verk Î V, Verk { P x A} ® {đúng, sai} thỏa mãn điều kiện sau đây với mọi x Î 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: 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ình thu đượ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 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 khai củ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ăm thô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ệp z 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ửi thông tin là ai 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ên từ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ông tin. 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ống nhau ( á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. 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ích thướ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ớn hơ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ó dung lượ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ó
Luận văn liên quan