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

Một phần của tài liệu LUẬN VĂN: NGHIÊN CỨU TÌM HIỂU VỀ MẬT MÃ SINH TRẮC doc (Trang 53 - 67)

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 Fourier hữ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ủa N 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ất mấ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ông thứ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ĩ : Leonhard Euler. 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 ne x π Xk = ∑− = − + − 1 0 )) 2 sin( ) 2 (cos( N n n kn N i i kn N i x π π

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ột ma 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ương phá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 đầu và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ảo mậ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áp ra đờ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 ứng dụ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ật mã

- Phương pháp tính toán : PRNGs là thuật toán có thể tạo ra dãy số ngẫu nhiên, chuỗi giá trị ngẫu nhiên này được tạo ra bởi một hạt giống. Một trong 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ụng cho 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ộ

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ình tí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ị ảo vớ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

- Phép cộng hai ma trận M và N cho kết quả là một ma trận P có kích thướ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 N cũ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ích thướ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ủa ma trận N

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à “Sinh khó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

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

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ữ Hstored

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

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án mã 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 sinh khó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ới khó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ưu trữ nhằm phục vụ cho quá trình giải mã dữ liệu.

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 ứng dụ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ển thị 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 module chính là “Sinh khóa ”, “Mã hóa dữ liệu” và “ Giải mã”.

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

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 tay sẽđược hiển thị ngay trên nút chọn.

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ần mã 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ình sinh 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óa sinh 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ệu và giải mã dữ liệu của chương trình ứng dụng :

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 được nhữ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út ngắ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ác bướ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ật mã 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 sinh trắc” và giao diện của ứng dụng và cách sử dụng giao diện đó.

KT LUN

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ẫu sinh 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 “sinh khó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ác nghiê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ện cho 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ác module 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 trin ca khóa lun :

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, ứng dụng mật mã sinh trắc với hệ thống OpenCA,….

TÀI LIU THAM KHO

Tiếng Vit

[1] Lương Mạnh Bá, Nguyễn Thanh Thủy. Nhập môn xử lý ảnh số. Nhà xuất bản khoa họ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 Biometric effectively”, 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 Security

Một phần của tài liệu LUẬN VĂN: NGHIÊN CỨU TÌM HIỂU VỀ MẬT MÃ SINH TRẮC doc (Trang 53 - 67)

Tải bản đầy đủ (PDF)

(67 trang)