Để sử dụng đặc trưng sinh trắc học vào việc mã hóa dữ liệu, ta cần phải có phương pháp trích xuất những thông tin mang tính chất cố định từ dữ liệu sinh trắc học sao cho kết quả trích xu
Trang 1
BK
TP.HCM
NGUYỄN VĂN ĐÔNG
MÃ HÓA DỮ LIỆU TRÊN THIẾT BỊ DI ĐỘNG DÙNG ĐẶC
Trang 3
Tp Hồ Chí Minh, ngày 21 tháng 1 năm 2013
NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ và tên học viên: Nguyễn Văn Đông MSHV: 11070444
Ngày, tháng, năm sinh: 2 tháng 1 năm 1985 Nơi sinh: Sông Bé
Chuyên ngành: Khoa học máy tính Mã số: 60.48.01
I TÊN ĐỀ TÀI: Mã hóa dữ liệu trên thiết bị di động dùng đặc trưng sinh trắc học
II NHIỆM VỤ VÀ NỘI DUNG:
- Tìm hiểu các nghiên cứu liên quan trong việc mã hóa dữ liệu dùng đặc trưng sinh
trắc học
- Đề xuất phương pháp sử dụng đặc trưng sinh trắc học vào việc mã hóa, chú ý đến
khả năng triển khai trên thiết bị di động
- Hiện thực phương pháp, đánh giá kết quả thực nghiệm
III NGÀY GIAO NHIỆM VỤ : 21/01/2013
IV NGÀY HOÀN THÀNH NHIỆM VỤ: 21/06/2013
V CÁN BỘ HƯỚNG DẪN: PGS.TS Đặng Trần Khánh
Tp HCM, ngày 13 tháng 9 năm 2013
TRƯỞNG KHOA
Trang 4Em xin chân thành cảm ơn tất cả các thầy, cô trong bộ môn Khoa Học Máy Tính trường Đại học Bách Khoa – Đại học Quốc Gia thành phố Hồ Chí Minh vì những kiến thức mà các thầy cô đã truyền đạt cho chúng em, các thầy cô luôn là tấm gương về tinh thần cống hiến hết mình cho khoa học, tinh thần làm việc chuyên nghiệp, không mệt mỏi cho chúng em noi theo Xin cảm ơn tất cả các bạn lớp cao học Khoa Học Máy Tính khóa 2011 và các khóa khác – những người đã đồng hành cùng tôi trong suốt khóa học
Xin cảm ơn anh Nguyễn Xuân Hoàng, anh Ngô Minh Quân và tất cả mọi người trong công ty TNHH Giải pháp hệ thống MO LI đã tạo điều kiện thuận lợi trong thời gian tôi tham gia khóa học
Và cuối cùng, xin cảm ơn VỢ, em chính là món qua tuyệt vời nhất trong suốt cuộc đời anh
Trang 5TÓM TẮT LUẬN VĂN
Bản chất của dữ liệu sinh trắc học là không chính xác, cùng một đối tượng nhưng ở
những thời điểm khác nhau sẽ có kết quả đo đạc khác nhau Để sử dụng đặc trưng
sinh trắc học vào việc mã hóa dữ liệu, ta cần phải có phương pháp trích xuất những
thông tin mang tính chất cố định từ dữ liệu sinh trắc học sao cho kết quả trích xuất
từ những mẫu thu thập được trên cùng một đối tượng với sai biệt trong giới hạn cho
phép là giống nhau Dựa trên giải thuật Eigenfaces và lý thuyết mã sửa lỗi, luận văn
đề xuất phương pháp trích xuất dữ liệu cố định từ hình ảnh khuôn mặt của người
dùng; dữ liệu cố định này có thể được dùng sinh khóa, bảo vệ một khóa khác, hoặc
kết hợp với một đặc trưng sinh trắc học khác Phương pháp được hiện thực và đánh
giá dựa trên cơ sở dữ liệu ảnh khuôn mặt “Essex94” và so sánh với một phương
pháp đơn giản khác Kết quả thực nghiệm cho thấy tỉ lệ lỗi tương đương với giải
thuật Eigenfaces truyền thống và entropy ở mức chập nhận được
ABSTRACT
Biometric data are variable by nature, i.e., biometric samples captured from the
same object at different time are not identical To be able to use biometrics for
cryptography, we need an extraction method so that the extraction results from
biometric samples which are captured from same object are identical Based on
Eigenfaces algorithm and Error-Correcting theory, this thesis proposes methods to
extract stable data from similar face images; this data can be used to generated
cryptographic key, protect another key, or combine with other biometrics The
extraction methods are implemented and evaluated using “Essex94” face database
and compared with another simple method The experimentation shows that error
rates are equivalent to traditional Eigenfaces algorithm with good entropy
Trang 6LỜI CAM ĐOAN
Tôi xin cam đoan: Luận văn này là công trình nghiên cứu của cá nhân tôi, dưới sự
hướng dẫn và hỗ trợ từ PGS.TS Đặng Trần Khánh
Các nội dung nghiên cứu và kết quả thực nghiệm trong đề tài này là trung thực và
chưa từng được ai công bố trong bất cứ công trình nghiên cứu nào trước đây Các số
liệu, bảng biểu phục vụ cho việc phân tích, nhận xét, đánh giá được chính tác giả
thu thập thông qua quá trình thực nghiệm
Nếu phát hiện có bất kỳ sự gian lận nào tôi xin hoàn toàn chịu trách nhiệm trước
Hội đồng, cũng như kết quả luận văn của mình
Tp Hồ Chí Minh, ngày 20 tháng 6 năm 2013
Tác giả
Nguyễn Văn Đông
Trang 7MỤC LỤC
Chương 1 Giới thiệu 1
1.1 Giới thiệu đề tài, ý nghĩa khoa học và thực tiễn 1
1.2 Đối tượng và phạm vi nghiên cứu 3
1.3 Tóm tắt nội dung luận văn 6
1.4 Danh mục từ viết tắt 6
Chương 2 Các nghiên cứu liên quan 7
2.1 Hướng tiếp cận dùng mã sửa lỗi 7
2.1.1 Juels & Wattenberg - A Fuzzy Commitment Scheme (1999) 7
2.1.2 Juels & Sudan - A Fuzzy Vault Scheme(2003) 8
2.1.3 Dodis et al – Fuzzzy Extractor (2008) 9
2.1.4 Những công trình nghiên cứu khác 9
2.2 Hướng tiếp cận không dùng mã sửa lỗi 11
2.2.1 Colin Soutar et al - Biometric Encryption (1999) 11
2.2.2 Các phương pháp của Fabian Monrose 14
Chương 3 Cơ sở lý thuyết 15
3.1 Mã sửa lỗi 15
3.1.1 Giới thiệu 15
Trang 83.1.2 Không gian Metric 15
3.1.3 Khoảng cách Hamming 16
3.1.4 Định nghĩa mã sửa lỗi 17
3.2 Phương pháp phân tích thành phần chính (PCA) 18
3.2.1 Ví dụ 19
3.2.2 Vector riêng và trị riêng 23
3.2.3 Phương pháp PCA 25
3.3 Thuật toán nhận diện gương mặt Eigenfaces 27
3.4 Các khái niệm “Min Entropy”, “Secure Sketch”, “Fuzzy Extractor” 30
3.4.1 Entropy tối thiểu 30
3.4.2 Entropy tối thiểu trung bình 31
3.4.3 Khoảng cách tĩnh 31
3.4.4 Hàm Trích xuất 32
3.4.5 Secure Sketch 32
3.4.6 Fuzzy Extractor 34
Chương 4 Phương pháp Secure Sketch cho dữ liệu ảnh gương mặt 37
4.1 Giới thiệu 37
4.2 Nguyên lý xây dựng “Secure Sketch” 37
Trang 94.3 Taxicab Metric 38
4.4 Xây dựng Secure Sketch dựa trên Taxicab metric 42
4.5 Xây dựng “Mã Taxicab” và phương pháp “giải mã Taxicab” 44
4.5.1 Biến đổi Hadamard 45
4.5.2 Xây dựng mã Taxicab 47
4.5.3 Giải thuật giải mã Taxicab 48
4.5.4 Nhận xét 49
4.6 Độ phức tạp 50
4.7 Đánh giá entropy 51
Chương 5 Kết quả thực nghiệm và đánh giá 53
5.1 Tỷ lệ lỗi 53
5.2 Entropy 53
5.3 Ảnh hưởng của số chiều của vector đặc trưng 53
5.4 Thời gian thực thi 54
5.5 So sánh với phương pháp sửa lỗi từng thành phần 55
5.5.1 Giới thiệu phương pháp 55
5.5.2 So sánh với phương pháp sửa lỗi dùng khoảng cách Taxicab 56
Chương 6 Kết luận và hướng phát triển 60
Trang 106.1 Kết luận 60 6.2 Đề xuất hướng phát triển 62
Trang 11MỤC LỤC BẢNG
Bảng 5.1 Entropy của phương pháp sửa lỗi “Secure Sketch” cho Taxicab
Metric 53
Bảng 5.2 Biến thiên của tỷ lệ lỗi theo số chiều của vector đặc trưng 54
Bảng 5.3 Biến thiên của entropy theo số chiều của vector đặc trưng 54
Bảng 5.4 Thời gian thực thi của giải thuật “Secure Sketch” cho Taxicab 55
Bảng 5.5 Tỷ lệ lỗi và entropy của phương pháp sửa lỗi từng thành phần 56
Bảng 5.6 So sánh phương pháp sửa lỗi từng thành phần với phương pháp sửa lỗi dùng khoảng cách Taxicab 58
Trang 12MỤC LỤC HÌNH
Hình 1.1 Mô hình hệ thống mã hóa dữ liệu dùng đặc trưng sinh trắc học 4
Hình 1.2 Dùng đặc trưng sinh trắc học để bảo vệ khóa 5
Hình 2.1 Giải thuật liên kết khóa của Ullrich Martini và Stephan Beinlich 10
Hình 2.2 Thuật toán biến đổi vector đặc trưng của Yagiz Sutcu 10
Hình 2.3 Quá trình mã hóa dựa trên thông tin sinh trắc học của Bioscrypt Inc 12
Hình 2.4 Quá trình giải mã dữ liệu dựa trên thông tin sinh trắc học của Bioscrypt Inc 13
Hình 3.1 Mô phỏng khả năng sửa lỗi của một mã 18
Hình 3.2 Biểu diễn dữ liệu quan sát được trong không gian 2 chiều 20
Hình 3.3 Biểu diễn dữ liệu quan sát được sau khi tịnh tiến gốc tọa độ 21
Hình 3.4 Biểu diễn dữ liệu sau khi biến đổi trực giao 22
Hình 3.5 Dữ liệu được khôi phục sau chỉ giữ lại thành phần chính 23
Hình 3.6 Quy trình nhận diện gương mặt dùng Eigenfaces 28
Hình 3 Ví dụ về eigenface 29
Hình 3.8 Secure Sketch 33
Hình 3.9 Fuzzy Extractor 34
Trang 13Hình 3.10 ng dụng của Fuzzy Extractor 35
Hình 3.11 Xây dựng Fuzzy Extractor từ Secure Sketch và hàm trích xuất 35
Hình 4.1 Code Offset construction for Secure Sketch 37
Hình 4.2 Tỷ lệ lỗi khi dùng khoảng cách Euclid 40
Hình 4.3 Tỷ lệ lỗi khi dùng khoảng cách Taxicab 41
Hình 4.4 So sánh tỷ lệ lỗi giữa phương pháp kiểm tra dùng khoảng cách Eulcid với phương pháp kiểm tra dùng khoản cách Taxicab 41
Hình 4.5 Xây dựng “Secure Sketch” cho Taxicab Metric 42
Hình 4.6 Giải mã Taxicab trên không gian 2 chiều 45
Hình 5.1 Tỷ lệ lỗi của phương pháp sửa lỗi từng thành phần 57
Hình 5.2 So sánh tỷ lệ lỗi của phương pháp sửa lỗi từng thành phần và phương pháp sửa lỗi dùng khoảng cách Taxicab 57
Hình 5.3 So sánh entropy của phương pháp sửa lỗi từng thành phần và phương pháp sửa lỗi dùng khoảng cách Taxicab 58
Trang 14Chương 1 Giới thiệu 1.1 Giới thiệu đề tài, ý nghĩa khoa học và thực tiễn
Cùng với sự phát triển của ngành công nghệ thông tin – truyền thông, vấn đề bảo mật dữ liệu luôn nhận được nhiều sự quan tâm của các nhà nghiên cứu cũng như doang nghiệp Trong đó, mã hóa dữ liệu là một trong những giải pháp để bảo vệ dữ liệu lưu trữ cũng như trên đường truyền Nhiều giải thuật mã hóa đối xứng (DES, AES,…) và bất đối xứng (RSA, DSA,…) được đưa ra để giải quyết vấn đề mã hóa
dữ liệu, sức mạnh của những giải thuật này đã được kiểm chứng và trở thành chuẩn mực trong việc mã hóa cho đến thời điểm hiện tại Tuy nhiên, trong tất cả các giải thuật mã hóa nói trên, việc giữ bí mật khóa là một yêu cần bắt buộc Một khóa mã hóa thông thường có chiều dài từ 56 đến 128 bit, việc ghi nhớ một dãy số nhị phân
vô nghĩa như vậy nằm ngoài khả năng của một người dùng bình thường Do đó, việc quản lý khóa (bao gồm sinh khóa, phân phối khóa và giữ bí mật khóa) trở thành điểm yếu nhất của các hệ thống mã hóa; làm sao để sinh ra một khóa đủ mạnh trong khi dễ dàng phân phối và giữ bí mật Một số phương pháp truyền thống có thể
kể ra sau đây:
Mã hóa dựa trên mật khẩu: Mật khẩu được dùng để dẫn xuất ra khóa dựa
trên các giải thuật dẫn xuất (PBKDF1, PBKDF2,…) Hệ điều hành Android
sử dụng phương pháp này cung cấp tính năng mã hóa toàn bộ đĩa của hệ thống Vấn đề đối với phương pháp này là độ mạnh của khóa tương đương với độ mạnh của mật khẩu Mà vấn đề của mật khẩu thì như chúng ta đã biết: mật khẩu đơn giản sẽ dễ bị kẻ tấn công đoán được bằng cách sử dụng một số công cụ tấn công theo kiểu từ điển; mật khẩu có độ phức tạp cao khiến việc ghi nhớ chúng trở nên khó khăn đối với người sử dụng, dẫn đến việc anh ta
sẽ ghi nó ra đâu đó và có khả năng mật khẩu sẽ bị lộ
Mã hóa dựa trên token: Token là một thiết bị phần cứng có khả năng lưu trữ
khóa và thực hiện các thao tác mã hóa, giải mã dựa trên khóa lưu trữ Các thiết bị này thường là các thẻ thông minh tiếp xúc hoặc không tiếp xúc, trong
Trang 15đó, toàn bộ hệ thống được tích hợp trong một chip có kích thước vài milimet, việc can thiệp vào hệ thống để đọc được khóa lưu trữ trong đó là gần như không thể Phương pháp này được sử dụng phổ biến trong các hệ thống yêu cầu độ bảo mật cao Tuy nhiên, con người luôn là điểm yếu nhất trong bất kỳ
hệ thống bảo mật nào, người dùng thường cảm thấy bất tiện khi phải luôn mang token theo bên mình và việc đánh mất hoặc để quên token cũng thường xuyên xảy ra Một số token yêu cầu phải được kích hoạt bằng một mã PIN bí mật để kẻ đánh cắp cũng không sử dụng được token Tuy nhiên việc này lại làm nhiều người cảm thấy bất tiện và họ ghi luôn mã PIN lên token
Các phương pháp nói trên đều không có sự cân bằng giữa sức mạnh của khóa và độ
tiện lợi đối với người dùng Trong khi đó, ý tưởng mã hóa dùng đặc trưng sinh trắc
học mở ra một hướng nghiên cứu mới nhằm cung cấp một giải pháp thỏa mãn cả 2 yêu cầu trên
Đặc trưng sinh trắc học là thông tin về những đặc tính sinh lý có thể đo đạt được và đặc trưng cho mỗi người Ví dụ: dấu vân tay, mống mắt, giọng nói, chữ ký,…; do
đó, người dùng không cần phải ghi nhớ cũng không cần phải luôn mang theo hay sợ
bị đánh cắp Với khả năng 2 người khác nhau có đặc trưng sinh trắc học giống nhau
là rất thấp (tùy từng loại đặc trưng, đối với mống mắt là 10-72), những thông tin này
có thể được sử dụng để sinh ra một khóa đủ mạnh dùng cho các giải thuật mã hóa Tuy nhiên, việc đo đạc những đặc trưng này ở những lần khác nhau (trên cùng một đối tượng) sẽ không thể nào cho ra kết quả giống nhau chính xác; trong khi đó, những giải thuật mã hóa truyền thống đòi hỏi độ chính xác tuyệt đối, chỉ một bit sai biệt trong khóa cũng sẽ tạo ra sai biệt rất lớn trong kết quả mã hóa/giải mã Để áp dụng đặc trưng sinh trắc học vào hệ thống mã hóa, đòi hỏi phải có những kỹ thuật/thuật toán đặc biệt để sử dụng, đồng thời bảo đảm tính bí mật những thông tin
có nhiễu này
Mã hóa dữ liệu dựa trên đặc trưng sinh trắc học là một hướng nghiên cứu khá mới, được khởi xướng vào năm 1994 bởi giáo sư George Tomko, người sáng lập Mytec
Trang 16Technologies (Toronto, Canada) [1, p 22] Việc áp dụng những thành quả nghiên cứu trong lĩnh vực này vào thực tế còn khá hạn chế Theo như những gì học viên tìm hiểu được thì công nghệ privIDTM của Philips là sản phẩm thương mại đầu tiên
và duy nhất tính đến thời điểm này áp dụng kỹ thuật mã hóa dùng đặc trưng sinh trắc học [1, p 22]
Ngày nay, các thiết bị cá nhân như điện thoại thông minh, máy tính bảng ngày một phổ biến và mạnh mẽ Những thiết này có sức mạnh gần tương đương với một máy tính cá nhân, có khả năng lưu trữ và xử lý hầu hết mọi loại dữ liệu từ hình ảnh, danh
bạ, ghi chú cá nhân đến những dữ liệu nhạy cảm như email, tài khoản ngân hàng Một số nhân viên còn lưu trữ cả những tài liệu mật của công ty trên điện thoại di động của mình Trong khi đó, vấn đề bảo mật trên các thiết bị di động vẫn chưa nhận được sự quan tâm cần thiết từ phía người dùng, một số cảm thấy phiền phức, không thuận tiện khi phải áp dụng các giải pháp bảo mật; việc này biến các thiết bị
di động trở thành đối tượng ưa thích của tin tặc Đó là lý do vì sao nền tảng di động được chọn để thực hiện đề tài, với mong muốn áp dụng những kết quả nghiên cứu vào thực tế, cung cấp một giải pháp bảo vệ dữ liệu vừa an toàn vừa thuận tiện cho các thiết bị di động này
1.2 Đối tượng và phạm vi nghiên cứu
Hình 1.1 mô tả một hệ thống đơn giản sử dụng đặc trưng sinh trắc học vào việc mã hóa dữ liệu
Trang 17H nh 1.1 Mô h nh hệ thống mã hóa dữ liệu dùng đặc trưng sinh trắc học
1 B1: Thông thường, mẫu sinh trắc học đo đạc được không được dùng ngay
mà được xử lý qua một bước gọi là “trích xuất vector đặc trưng”, việc xử lý,
so sánh dựa trên các vector đặc trưng này dễ dàng và hiệu quả hơn so với dữ liệu thô ban đầu Ví dụ: vector đặc trưng của dấu vân tay là một tập các điểm đầu mút của đường vân tay trong ảnh chụp dấu vân tay
2 B2: Các vector đặc trưng này vẫn chưa phải là dữ liệu chính xác hoàn toàn, vẫn chưa thể dùng được cho các giải thuật mã hóa Bước này sẽ thực hiện quá trình sửa lỗi, loại bỏ những thành phần sai số và trích xuất ra thông tin cố định Nếu dữ liệu đầu vào là kết quả thu thập được trên cùng một đối tượng, kết quả đầu ra phải giống nhau
3 Kết quả của B2 có thể được dùng để sinh ra khóa hoặc bảo vệ một khóa khác, hoặc kết hợp với kết quả trích xuất của một đặc trưng sinh trắc học khác để mã hóa dữ liệu
Đề tài tập trung nghiên cứu và đề xuất phương pháp có thể áp dụng được cho B2 Mục tiêu của đề tài là xây dựng phương pháp để có thể áp dụng được trên thiết
bị di động Hiện tại, đối với hầu hết các thiết bị di động thông minh, chỉ có việc chụp ảnh gương mặt và ghi âm giọng nói là khả thi, các đặc trưng sinh trắc học khác như dấu vân tay hay mống mắt là gần như không thể Do đó, đề tài lựa chọn ảnh
B1
Vector đặc trưng B2
Mã hóa
Dữ liệu
Trang 18gương mặt, dùng giải thuật Eigenfaces để trích xuất vector đặc trưng và xây dựng phương pháp để sửa lỗi và trích xuất dữ liệu cố định từ vector đặc trưng này
Hình 1.2 mô tả một cách tiếp cận khác trong việc sử dụng đặc trưng sinh trắc học vào hệ thống mã hóa [1, p 21] Trong cách tiếp cận này, khóa được sinh ra một cách ngẫu nhiên, sau đó kết hợp với đặc trưng sinh trắc học để bảo vệ khóa đó
H nh 1.2 Dùng đặc trưng sinh trắc học để bảo vệ khóa
Tuy thứ tự sử dụng khác nhau, nhưng về cơ bản, các giải thuật “Key binding” và
“Key retrieval” trong hình trên cũng phải chấp nhận được sự những sai số của đặc trưng sinh trắc học, giải quyết vấn đề sửa lỗi và trích xuất thông tin cố định từ thông tin có nhiễu tương tự như B2 trong mô hình ở Hình 1.1
Trang 191.3 Tóm tắt nội dung luận văn
Nội dung trình bày trong phần còn lại của luận văn bao gồm các phần sau:
Chương 2 sẽ giới thiệu các công trình nghiên cứu tiêu biểu liên quan đến vấn
đề mã hóa dữ liệu dùng đặc trưng sinh trắc học
Chương 3 tóm tắt các cơ sở lý thuyết và giải thuật được sử dụng trực tiếp trong việc xây dựng phương pháp và đánh giá của luận văn
0 là phần chính, diễn giải phương pháp mà luận văn đề xuất
Chương 5 trình bày kết quả thực nghiệm và so sánh với một phương pháp đơn giản khác
Chương 6 nêu kết luận và đề xuất các hướng phát triển tiếp theo của đề tài
1.4 Danh mục từ viết tắt
FAR False Acceptance Rate: Tỷ lệ chấp nhận sai, là tỷ lệ một mẫu sinh
trắc học không hợp lệ (không phải của đối tượng đang xác thực) được chấp nhận
FRR False Rejection Rate: Tỷ lệ từ chối sai, là tỷ lệ một mẫu sinh trắc
học hợp lệ (của đối tượng đang xác thực) bị từ chối EER Equal Error Rate: Tỷ lệ lỗi cân bằng, trong các hệ thống bảo mật,
khi FAR tăng thì FRR giảm và ngược lại, để so sánh các hệ thống với nhau, người ta so sánh giá trị ERR ERR là tỷ lệ lỗi của hệ thống khi các thông số được xác định sao cho FAR=FRR
Trang 20Chương 2 Các nghiên cứu liên quan
2.1 Hướng tiếp cận dùng mã sửa lỗi
A.Juels và M.Wattenberg [2], đã ứng dụng mã sửa lỗi vào việc bảo vệ khóa bằng đặc trưng sinh trắc học
Quá trình kiểm tra:
Giả sử mẫu sinh trắc học được biểu diễn bằng một chuỗi n bit nhị phân
Trang 21thay đổi không quá nếu đo đạc trên cùng một đối tượng Do đó,
để có thể áp dụng được phương pháp này vào thực tế, ta cần phải biến đổi đặc trưng sinh trắc học sao cho đáp ứng được giả định đó
A.Juels và M.Sudan [3] giới thiệu một khái niệm gọi là “Fuzzy Vault” Một bí mật
𝓴 được khóa bằng một tập A, sau đó có thể được mở khóa bằng một tập B nếu và chỉ nếu B gần giống với A, hay nói cách khác A ∩ B đủ lớn
Quá trình khóa bí mật 𝓴 bằng tập A:
Bí mật được biểu diễn bởi một vector
Biểu diễn dưới dạng đa thức: ∑
được gọi là tập các “điểm chính danh”
Ta thêm vào R một số điểm, gọi là “điểm gây nhiễu”:
Các “điểm gây nhiễu” này chính là thành phần tạo nên tính bảo mật của hệ thống, kẻ tấn công sẽ không biết được đâu là “điểm gây nhiễu”, đâu là “điểm chính danh”, số lượng “điểm gây nhiễu” càng nhiều, tính bảo mật của hệ thống càng cao, nhưng bù lại, đòi hỏi không gian lưu trữ càng lớn
Quá trình mở khóa bí mật bằng tập B:
Nếu phần giao nhau giữa tập B và tập A là đủ lớn, Q sẽ chứa một số lượng
“điểm chính danh” đủ lớn, lúc này, ta dùng mã Reed-Solomon để giải mã Q
để tính 𝓴 Ngược lại, quá trình giải mã Reed-Solomon sẽ cho ra kết quả khác
𝓴
Trang 222.1.3 Dodis et al – Fuzzzy Extractor (2008)
Y.Dodis et al [4] đã giới thiệu hai khái niệm “Secure Sketch” và “Fuzzy
Extractor”, do phương pháp được đề xuất trong luận văn này được xây dựng dựa trên khái niệm “Secure Sketch”, phần 3.4.5 sẽ trình bày chi tiết khái niệm này, bài báo cũng đưa ra phương pháp đánh giá mức độ bảo mật của “Secure Sketch” và
“Fuzzy Extractor” dựa trên khái niệm “Min Entropy”, khái niệm này cũng sẽ được trình bày chi tiết trong phần3.4.1
Bài báo xây dựng “Secure Sketch” cho 3 không gian metric khác nhau:
“Hamming”, “Set Different” và “Edit”, trong đó “Secure Sketch” dựa trên
“Hamming” là phương pháp nền tảng, “Set Different” và “Edit” được biến đổi để đưa về “Hamming” và sử dụng các phương pháp mã sửa lỗi dựa trên khoảng cách
“Hamming” Công trình của Y.Dodis trở thành nền tảng cho các nghiên cứu về sau
U.Martini và S.Beinlich [5] đưa ra mô hình dựa trên lý thuyết mã sửa lỗi như là một phần của dự án “Virtual PIN Based on Biometrics (ViPBoB)” được tài trợ bởi Liên Minh Châu Âu (EU) Hình 2.1 mô tả phương pháp của Martini, về cơ bản, nó giống như “Fuzzy Commitment” của A.Juels và M.Wattenberg [2] Tuy nhiên, U.Martini
đã giới thiệu một phương pháp biến đổi dấu vân tay thành một chuỗi bit để có thể được áp dụng cho mã sửa lỗi
Trang 23H nh 2.1 Giải thuật liên kết khóa của Ullrich Martini và Stephan Beinlich
Y.Sutcu et al [6] đã giới thiệu một phương pháp khác để biến đổi dấu vân tay
thành một chuỗi bit nhị phân Mỗi một điểm đầu mút trên dấu vân tay (minutiae
point) được biểu diễn bởi 3 tham số: tọa độ x, y và góc φ cho biết hướng của đường
vân tay tại điểm đầu mút Như vậy, vector đặc trưng của dấu vân tay sẽ là một tập các điểm trong không gian 3 chiều Tiếp theo sau đó, một tập các hình khối lập phương (cuboid) được sinh ra một cách ngẫu nhiên, tương ứng với mỗi cuboid sẽ định ra một giá trị ngưỡng tùy vào thể tích của cuboid Nếu số điểm trong cuboid vượt quá ngưỡng tương ứng, giá trị tương ứng sinh ra sẽ là 1, ngược lại là 0
H nh 2.2 Thuật toán biến đổi vector đặc trưng của Yagiz Sutcu
Các phương pháp của Y.Dodis [4] dựa trên dữ liệu rời rạc (số nguyên) trong khi các vector đặc trưng của dữ liệu sinh trắc học thường ở dạng liên tục (số thực), do đó ta cần phải biến đổi chúng về dạng rời rạc bằng cách lượng tử hóa chúng Q.Li [7], đã đưa ra khái niệm “relative entropy loss” để đánh giá một cách tương đối lượng
Trang 24entropy bị mất do hàm lượng tử hóa “relative entropy loss” cho biết giới hạn của lượng entropy cộng thêm nếu ta dùng một hàm lượng tử hóa tối ưu mặc dù rất khó
để xác định hàm lượng tử hóa tối ưu này
Feng Hao et al [8] đã sử dụng mã Reed-Solomon và mã Hadamard, trích xuất khóa
có chiều dài 140 bit từ dữ liệu mống mắt
Felix Fontein et al [9] đã xây dựng mã sửa lỗi có thể sửa được những lỗi xãy ra
trên một cụm các bit gần nhau cũng như lỗi xảy ra trên các bit riêng biệt Trên thực
tế, những lỗi theo cụm kiểu này thường xảy ra do một tác động mạnh nào đó từ môi trường, ví dụ vệt mờ trên camera, hoặc một xung điện có thể làm thay đổi giá trị của nhiều bit nằm gần nhau
2.2 Hướng tiếp cận không dùng mã sửa lỗi
Một trong những giải pháp mã hóa dùng đặc trưng sinh trắc học đầu tiên được
C.Soutar et al [10] giới thiệu vào năm 1999 Phương pháp được giới thiệu trong
bài báo có thể được tóm tắt trong 2 hình sau:
Trang 25H nh 2.3 Quá tr nh mã hóa dựa trên thông tin sinh trắc học của Bioscrypt Inc
Quá trinh mã hóa trong Hình 2.3 có thể mô tả vắn tắt như sau:
Tập dữ liệu sinh trắc học sau quá trình xử lý, kết hợp với một dãy số ngẫu
nhiên sẽ sinh ra 2 thành phần: H stored (u) là thành phần công khai sẽ được lưu vào Bioscypt, c0(x) là thành phần bí mật được dùng để liên kết với khóa
Giải thuật liên kết khóa liên kết c0(x) với khóa k0, kết quả được lưu vào Bioscrypt
Trang 26H nh 2.4 Quá tr nh giải mã dữ liệu dựa trên thông tin sinh trắc học của Bioscrypt
Inc
Quá trình giải mã trong Hình 2.4 có thể mô tả vắn tắt như sau:
Tập dữ liệu sinh trắc học sau quá trình xử lý, kết hợp với H stored (u) sinh ra
Trang 27hợp với một dãy số ngẫu nhiên, nên tính bí mật của dữ liệu sinh trắc học được đảm bảo
Tuy nhiên giải thuật liên kết khóa và nhận lại khóa dựa trên phương pháp bầu chọn số đông, bài báo chưa đưa ra được mô hình toán học chứng minh được độ an toàn và đánh giá khả năng chịu nhiễu của giải thuật này Bên cạnh đó, các kết quả FAR và FRR cũng chưa được đo đạt và đánh giá
F.Monrose et al [11] đã giới thiệu một phương pháp để tăng cường bảo mật cho hệ thống đăng nhập bằng mật khẩu dựa trên việc phân tích thao tác gõ phím của người dùng lúc đăng nhập Lúc đăng ký, thao tác gõ phím của người dùng sẽ được phân tích và biến đổi thành một chuỗi bit nhị phân, chuỗi bit nhị phân này được ánh xạ thành một khóa bí mật, ánh xạ này được biểu diễn dưới dạng bảng và được mã hóa bằng chính mật khẩu người dùng nhập vào Lúc đăng nhập, nếu người dùng gõ đúng mật khẩu, bảng ánh xạ trên sẽ được giải mã, sau đó hệ thống sẽ phân tích thao tác gõ phím của người dùng, nếu giống với lần đầu tiên người dùng gõ lúc đăng ký, khóa sẽ được tái tạo lại chính xác Nói tóm lại, người dùng không những phải gõ đúng mật khẩu mà thao tác gõ cũng phải giống như lúc đăng ký
Dựa trên phương pháp đó, F.Monrose et al [12] đã phát triển một phương pháp
tương tự nhưng thay vì dùng thao tác gõ phím của người dùng, phương pháp mới dùng giọng nói Tín hiệu giọng nói của người dùng sẽ được chia ra thành từng đoạn, sau đó phân tích để sinh ra một dãy bit nhị phân (khoảng 15 bit), dãy bit nhị phân này lại được ánh xạ thành một khóa tương tự như phương pháp trên
Trang 28Chương 3 Cơ sở lý thuyết 3.1 Mã sửa lỗi
Như đã trình bày trong Chương 2, hầu hết các phương pháp cổ điển được xây dựng dựa trên lý thuyết mã sửa lỗi (Coding Theory) và sử dụng các thành tựu trong ngành này Phần này sẽ giới thiệu các khái niệm cơ bản về lý thuyết mã
Lý thuyết mã (hay còn gọi là lý thuyết mã sửa lỗi) là một ngành học được khai sinh năm 1948 sau bài báo “A Mathematical Theory of Communication” của Shannon cùng với nghành lý thuyết thông tin Mục tiêu là giải quyết vấn đề truyền dữ liệu một cách hiệu quả và tin cậy trên các kênh truyền có nhiễu Nghiên cứu các phương pháp cho phép phát hiện lỗi xảy ra trên kênh truyền và phục hồi dữ liệu ban đầu một cách hiệu quả
Dữ liệu thường được truyền đi dưới dạng một chuỗi bit nhị phân, do đó lý thuyết
mã được xây dựng gắn liền với “Hamming metric” (khoảng cách “Hamming” thể hiện sự khác nhau giữa 2 chuỗi bit) Tuy nhiên, nguyên lý cơ bản của việc sửa lỗi có thể được áp dụng cho các không gian metric khác
Định nghĩa 3.1: Không gian Metric ℳ là một bộ 2 thành phần (M,d), trong đó:
M là một tập hợp (hữu hạn hay vô hạn)
d: M ×M → ℝ là hàm tính khoảng cách giữa 2 phần tử bất kỳ của M thỏa các
điều kiện:
o (3.1)
o (3.2)
o (3.3)
Trang 29o (bất đẳng thức tam giác) (3.4)
Trong thực tế, có rất nhiều hàm tính khoảng cách khác nhau tùy vào đặc tính của đối tượng cần khảo sát Thông thường, tên của hàm tính khoảng cách cũng là tên của không gian Metric
Trang 30
Cho một tập hữu hạn A: gọi là tập ký tự (thường là tập các ký số nhị phân
n là chiều dài của mã
Định nghĩa 3.3: Khoảng cách Hamming của một mã được định nghĩa là khoảng cách Hamming tối thiểu giữa 2 từ mã:
(3.6) Khoảng cách Hamming có ý nghĩa quan trong trong việc phát hiện lỗi và sửa lỗi trong mô hình truyền thông của Shanon, một mã có khoảng cách Hamming tối thiểu
d min sẽ có khả năng phát hiện tối đa (d min –1) lỗi và sữa tối đa ((d min–1)/2) lỗi
Không gian mã A n và khoảng cách Hamming d H tạo thành không gian Metric Hamming ℳ=( An , d H ) Giả sử ta truyền đi một từ mã c C, nếu lỗi xảy ra trên d bit, bên nhận sẽ nhận được c’ với d H (c,c’)=d Nếu d ≤ d min –1 thì c’∉ C, bên nhận sẽ
biết được có lỗi xảy ra trên đường truyền
Khả năng sửa lỗi của mã C được mô phỏng bởi hình vẽ sau:
Trang 31H nh 3.1 Mô phỏng khả năng sửa lỗi của một mã
Giả sử C chia không gian mã A n thành các tập con, mỗi tập con bao gồm một từ mã
c và các từ c’ sao cho d H (c,c’) ≤ (d min–1)/2, ta dễ dàng nhận thấy các tập con này
không giao nhau Như vậy mỗi từ c’ sẽ thuộc về nhiều nhất một tập con
Khi bên nhận nhận được c’, nếu ta giả sử lỗi xảy ra trên nhiều nhất là (d min–1)/2 bit
thì từ mã ban đầu bên gửi gửi đi là từ mã duy nhất của tập con chứa c’
Quá trình giải mã được định nghĩa là quá trình khôi phục lại từ mã ban đầu bên gửi gửi đi từ chuỗi bit mà bên nhận nhận được với giả định lỗi xảy ra trên nhiều nhất là
(d min–1)/2 bit
3.2 Phương pháp phân tích thành phần chính (PCA)
Trong các thực nghiệm khoa học cũng như các thống kê, các biến cố quan sát được
có thể có số chiều khá lớn, việc phân tích dữ liệu trên tập dữ liệu này gặp nhiều khó khăn Tuy nhiên, giá trị trên các chiều của các biến cố này thường có mối tương quan với nhau Phân tích thành phần chính (PCA) là một phương pháp toán học biến đổi một tập các biến cố đa chiều sang một hệ trục tọa độ trực giao mới sao cho giá trị trên các chiều là không tương quan tuyến tính với nhau, số chiều trong không gian mới có thể nhỏ hơn số chiều trong không gian ban đầu Trong không gian mới
Trang 32này ta cũng có thể chọn bỏ đi một vài thành phần (chiều) mà không bị mất quá nhiều thông tin, chỉ giữ lại các thành phần chính, giúp cho việc phân tích dữ liệu được dễ dàng hơn
Phần này sẽ giới thiệu các khái niệm liên quan và ý nghĩa của phương pháp PCA, không đi sâu vào chi tiết hiện thực
Để hiểu rõ hơn về ý nghĩa của phương pháp PCA, ta xem xét một ví dụ sau đây
Ta xét một biến cố 2 chiều với tập giá trị quan sát được như sau:
x 2.5 0.5 2.2 1.9 3.1 2.3 2 1 1.5 1.1
y 2.4 0.7 2.9 2.2 3.0 2.7 1.6 1.1 1.6 0.9
Hình 3.2 [13] sau biểu diễn tập dữ liệu trên trong không gian 2 chiều
Trang 33H nh 3.2 Biểu diễn dữ liệu quan sát được trong không gian 2 chiều
Ta dễ dàng thấy ràng khi x tăng thì y cũng có xu hướng tăng và ngược lại, hay nói cách khác, x và y có mối quan hệ tương quan với nhau
Ta chọn gốc tọa độ mới là giá trị trung bình của tập dữ liệu, sau đó xoay các trục tọa
độ như mô tả trong hình vẽ sau:
Trang 34H nh 3.3 Biểu diễn dữ liệu quan sát được sau khi tịnh tiến gốc tọa độ
Giả sử ta chọn các đường thẳng nét đứt làm hệ trục tọa độ mới, tập dữ liệu được biểu diễn như hình sau:
Trang 35H nh 3.4 Biểu diễn dữ liệu sau khi biến đổi trực giao
Việc xác định hệ trục tọa độ mới này sẽ được trình bày trong phần 3.2.3, ở đây ta chỉ giả sử như ta đã xác định được hệ trục tọa độ mới này và xem xét ý nghĩa của
nó
Trong hệ trục tọa độ mới này, ta thấy:
Giá trị cách thành phần x và y không có mối tương quan với nhau
Giá trị trên trục x biến thiên nhiều hơn giá trị trên trục y
Phương pháp PCA được dùng để suy giảm số chiều của tập dữ liệu, Nếu ta loại bỏ
thành phần y, ta cũng không mất quá nhiều thông tin Dữ liệu sau khi loại bỏ thành phần y, sau đó biến đổi về hệ trục tọa độ ban đầu được biểu diễn trong Hình 3.5 Ta
Trang 36thấy dữ liệu mới không quá khác (không mất quá nhiều thông tin) so với tập dữ liệu gốc ban đầu
H nh 3.5 Dữ liệu được khôi phục sau chỉ giữ lại thành phần chính
Như vậy, sau quá trình biến đổi trực giao và loại bỏ đi một số thành phần có trọng
số thấp, chỉ giữ lại những thành phần có trọng số cao (thành phần chính), ta có được một tập dữ liệu mới với số chiều ít hơn số chiều ban đầu mà không mất quá nhiều thông tin, giúp cho việc phân tích dữ liệu được dễ dàng hơn
Phần sau sẽ trình bày các bước cụ thể của phương pháp PCA
Ta xét một ví dụ sau đây:
Trang 37[ ] [ ] [ ] (3.7)
[ ] [ ] [ ] [ ] (3.8)
Trong ví dụ (3 ) ta thấy kết quả của phép nhân ma trận không phải là bội của vector ban đầu Ngược lại, trong ví dụ (3.8) ta thấy kết quả phép nhân là bội của vector ban đầu Vector [ ] được gọi là một vector riêng (eigen vector) của ma trận
và 4 là trị riêng (eigen value) tương ứng
Định nghĩa 3.4:
v là vector riêng của ma trân A nếu và chỉ nếu ℝ
c là giá trị riêng tương ứng với vector v
Tính chất:
Chỉ có ma trận vuông mới có vector riêng và không phải mọi ma trận vuông đều có vector riêng
Nếu một ma trận vuông n×n có vector riêng thì nó có n vector riêng
Nếu v là một vector riêng thì c×v (c ℝ) cũng là một vector riêng có cùng trị riêng với c
Các vector riêng trực giao với nhau
Việc thay đổi độ dài (không thay đổi hướng) của một vector không làm ảnh hưởng đến tính chất “vector riêng” của nó, trong toán học, ta thường làm việc với vector riêng có độ dài là 1, gọi là “vector riêng chuẩn hóa” hay “vector riêng đơn vị”
Ví dụ, vector riêng đơn vị tương ứng với [ ] là
Trang 38Việc tìm vector riêng đối với các ma trân có kính thước lớn (lớn hơn 3×3) đòi hỏi nhiều tính toán phức tạp [13] Luận văn này sẽ không trình bày phương pháp tìm vector riêng Trong thực tế có rất nhiều thư viện có thể giúp ta làm việc này
Phần này sẽ trình bày các bước của phương pháp PCA
Giả sử ta có tập dữ liệu n chiều được biểu diễn bởi (x1, x2, , x n)
Bước 1: Tính giá trị kỳ vọng và ma trận hiệp phương sai
̅ ̅ ̅ ̅ (3.9)
[
̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅
Bước 2: Tính các vector riêng đơn vị và trị riêng tương ứng của ma trận cov, sắp
xếp các trị riêng và vector riêng theo thứ tự giảm dần của trị riêng, biểu diễn các vector riêng dưới dạng cột, ghép các vector riêng lại ta được ma trận các vector riêng
(3.11) [ ] (3.12)
Trang 39Như đã trình bày trong phần 3.2.2, các vector viêng này trực giao với nhau, nhưng quan trọng hơn, nó cho ta thấy các thành phần của dữ liệu thu thập được Mỗi một vector riêng tương ứng với một thành phần, vector riêng có trị riêng càng lớn, thành phần đó càng chứ nhiều thông tin
Ma trận vector riêng tương ứng với dữ liệu ví dụ trong phần 3.2.1 như sau:
[
] Bước 3: Chọn một số thành phần chính, số lượng thành phần sẽ là số chiều của dữ liệu sau phân tích PCA, tùy thuộc vào yêu cầu của ứng dụng, ta sẽ chọn số lượng thành phần phù hợp Các thành phần chính là các thành phần có trị riêng lớn nhất Giả sử trong ví dụ trên, ta chọn một thành phần chính
[
] Bước 4: Biến đổi dữ liệu
Với một giá trị quan sát được [ ]
Ta biến đổi thành: ̂ ̅ (3.13)
Ta có thể thực hiện phân tích dữ liệu trên giá trị sau khi đã biến đổi ̂ hoặc biến đổi
về hệ trục tọa độ ban đầu như bước 5
Bước 5: Biến đổi dữ liệu về hệ trục tọa độ ban đầu
̃ ̂ ̅ (3.14)
Trang 40Trong đó là ma trận nghịch đảo của ma trận C Nếu C = eigenvector thì C-1=C T (ma trận chuyển vị của C) Ta có:
Trong ví dụ ở phần 3.2.1, giả sử ta chọn 1 thành phần chính, Hình 3.5 mô tả dữ liệu sau khi phục hồi
Ta thấy dữ liệu sau khi phục hồi nằm chính xác trên một đường thẳng, số chiều của
dữ liệu đã suy giảm xuống còn 1 chiều
3.3 Thuật toán nhận diện gương mặt Eigenfaces
Thuật toán Eigenfaces dựa trên phương pháp phân tích thành phần chính (PCA) như
đã trình bày trong phần 3.2 để biến đổi hình ảnh gương mặt thành một vector đặc trưng Việc nhận diện gương mặt được thực hiện dựa trên phép so sánh các vector đặc trưng này Hình 3.6 mô tả các giai đoạn của một hệ thống nhận diện gương mặt dùng Eigenfaces