Mục tiêu của đề tài là nghiên cứu, đề xuất và xây dựng một hệ thống bảo vệ dữ liệu hiệu quả trên Smartphones sử dụng sinh trắc học giọng nói và khuôn mặt.. Cụ thể, sau khi hệ thống thu n
Trang 1ĐẠI HỌC QUỐC GIA TP.HCM TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH
LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC
PHÁT TRIỂN HỆ THỐNG BẢO VỆ DỮ LIỆU
TRÊN ANDROID SMARTPHONES
DÙNG SINH TRẮC HỌC
HỘI ĐỒNG: Hệ Thống Thông Tin GVHD: PGS TS Đặng Trần Khánh GVPB: ThS Huỳnh Văn Quốc Phương -o0o -
SVTH: Nguyễn Ngọc Bình Minh (50901568)
TP HỒ CHÍ MINH, 12/2013
Trang 2LỜI CAM ĐOAN
Tôi xin cam đoan dưới đây là công trình nghiên cứu của bản thân, dưới sự hướng dẫn của PGS.TS Đặng Trần Khánh Các số liệu, tư liệu và mã nguồn tham khảo có nguồn gốc rõ ràng, tuân thủ đúng nguyên tắc Kết quả trình bày trong đề tài, thu thập được trong quá trình nghiên cứu là trung thực chưa từng được công bố dưới mọi hình thức
TP Hồ Chí Minh, 12/2013, Sinh viên thực hiện Nguyễn Ngọc Bình Minh
Trang 3LỜI CẢM ƠN
Đầu tiên, tôi xin chân thành cảm ơn Thầy Đặng Trần Khánh đã hướng dẫn tôi trong suốt thời gian thực hiện đề tài Những lời chỉ dẫn tận tình và những tài liệu tham khảo quý báu của Thầy là nhân tố không thể thiếu giúp tôi vượt qua những khó khăn gặp phải trong quá trình thực hiện đề tài luận văn
Tôi cũng xin gửi lời cảm ơn sâu sắc đến các thầy cô trong nhóm nghiên cứu Data Security Applied Research (DSTAR) Lab cũng như các thầy cô trong Khoa Khoa học
& Kỹ thuật Máy Tính – Trường Đại học Bách Khoa TP.HCM đã cho tôi những ý kiến đóng góp quý báu và tạo điều kiện tốt nhất cho tôi thực hiện thực hiện đề tài luận văn tốt nghiệp này
Cuối cùng, tôi xin gửi lời cảm ơn đến gia đình và bạn bè, những người đã luôn động viên và ủng hộ tôi trong suốt quá trình học tập và thực hiện đề tài luận văn
Xin chân thành cảm ơn
Trang 4TÓM TẮT
Việc bảo vệ dữ liệu trên điện thoại di động thông minh (Smartphones) đang là một vấn đề cấp bách bởi con người ngày càng sử dụng điện thoại để lưu trữ nhiều thông tin cá nhân (mật khẩu ATM, email công việc, tài khoản ngân hàng…); trong khi các phương pháp bảo vệ những thông tin này trên điện thoại vẫn chưa hiệu quả Giá trị khi mất đi chiếc điện thoại không còn được đánh giá là giá tiền của chiếc điện thoại,
mà lớn hơn rất nhiều khi mất đi các thông tin nhạy cảm cá nhân lưu trữ trong nó
Mục tiêu của đề tài là nghiên cứu, đề xuất và xây dựng một hệ thống bảo vệ dữ liệu hiệu quả trên Smartphones sử dụng sinh trắc học (giọng nói và khuôn mặt) Hệ thống đề xuất sẽ làm việc trên một Trình quản lý tập tin của Smartphones (File Manager) Cụ thể, sau khi hệ thống thu nhận được các thông tin cần thiết của sinh trắc học người dùng thực từ quá trình đăng ký, hệ thống sẽ quản lý quyền truy cập vào trình quản lý tập tin, mã hóa và giải mã tập tin sử dụng các thông tin sinh trắc học đã thu nhận
Trong hệ thống này, vấn đề bảo vệ chính các sinh trắc học của người dùng, tránh giả danh (Identity Theft), cùng vấn đề nhiễu trong dữ liệu sinh trắc học sẽ được giải quyết bằng cách phát triển nền tảng lý thuyết của phương pháp sửa lỗi từng điểm (codebook error correction code), sửa lỗi tập điểm (point-set difference Secure Sketch)
và Fuzzy Extractor Ngoài ra, phương pháp mã hóa/giải mã tập tin sẽ được xây dựng trong đề tài
Hệ thống đề xuất trong đề tài được phát triển trên nền tảng Android, một nền tảng được sử dụng trong rất nhiều Smartphones hiện giờ với giá thành và đối tượng người dùng đa dạng Hiệu suất của hệ thống - tỉ lệ xác thực thành công đã được kiểm chứng với nhiều tập dữ liệu (tập Yalefaces, tập AT&T, tập dữ liệu thực của nhóm Sinh viên Kỹ sư tài năng khóa 2008) với kết quả trên 90%
Trang 5ABSTRACT
Protecting data on Smartphones is important and, even, urgently in need right now as people tend to use Smartphones to store their confidential data (ATM’s password, email’s password, bank account…) while methods to protect these data are still simple and not effective Therefore, losing a Smartphone does not only mean losing a personal phone, but it also leads you to more serious problems
The goal of this thesis is to research and build a confidential data protecting system on Smartphones using biometrics (voice and face) To be more specific, the system controlls phone’s File Manager access privilege through biometrics-based authentication and encrypts/decrypts personal files within biometrics-based cryptography
In this thesis, biometrics template protection and noisy input data issue are solved by researching and developing codebook error correction code, point-set difference Secure Sketch and Fuzzy Extractor Furthermore, secured method to encrypt data is also presented in this thesis
The system proposed is implemented and developed on Android platform, which is a widely-used Smartphones’ platform The performance of this system – correct authentication rate is more than 90% testing in many data sets (Yalefaces, AT&T and data sets of 2008 honor students)
Trang 6MỤC LỤC
LỜI CAM ĐOAN I LỜI CẢM ƠN II TÓM TẮT III ABSTRACT IV MỤC LỤC V DANH MỤC HÌNH VII DANH MỤC BẢNG VIII DANH MỤC TỪ VIẾT TẮT IX
CHƯƠNG 1 TỔNG QUAN ĐỀ TÀI 1
1.1 Giới thiệu 1
1.1.1 Tầm quan trọng của việc bảo vệ dữ liệu trên điện thoại 1
1.1.2 Tổng quát về hệ thống bảo vệ dữ liệu trên Smartphones 2
1.1.3 Sự cần thiết của sinh trắc học 3
1.2 Mục tiêu và phạm vi bài toán 3
1.2.1 Mục tiêu 4
1.2.2 Vấn đề không thuộc phạm vi bài toán 4
1.3 Phương pháp thực hiện 5
1.4 Cấu trúc đề tài 6
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 8
2.1 Rút trích vector đặc trưng từ khuôn mặt 8
2.1.1 Tiền xử lý khuôn mặt 8
2.1.2 Rút trích vector đặc trưng từ hình ảnh khuôn mặt 9
2.2 Rút trích vector đặc trưng từ giọng nói 13
2.2.1 Tiền xử lý mẫu giọng nói 13
2.2.2 Rút trích vector đặc trưng từ giọng nói 15
2.3 Secure Sketch và Fuzzy Extractor 17
2.3.1 Secure Sketch 17
2.3.2 Fuzzy Extractor 18
2.4 Các mức độ kết hợp (fusion level) 19
2.5 Các phương pháp mã hóa và giải mã 20
2.6 Kỹ thuật băm 21
2.6.1 Khái quát chung 21
2.6.2 Keyed-hash message authentication code (HMAC) 22
CHƯƠNG 3 CÁC NGHIÊN CỨU LIÊN QUAN 23
3.1 Mô hình Small – Secure Sketch của Ee-Chien Chang và Qiming Li 23
3.1.1 Giải thuật 23
3.1.2 Hiện thực và đánh giá 24
Trang 73.3.1 Giải thuật 27
3.3.2 Hiện thực và đánh giá 28
CHƯƠNG 4 HỆ THỐNG ĐỀ XUẤT 29
4.1 Mô tả hệ thống 29
4.2 Các chức năng chính 32
4.3 Thành phần rút trích đặc trưng 34
4.3.1 Rút trích giọng nói 34
4.3.2 Rút trích khuôn mặt 35
4.4 Thành phần đăng ký (register) và xác thực (authenticate) 35
4.4.1 Đăng ký người dùng 36
4.4.2 Xác thực người dùng 37
4.4.3 Các quá trình trong Fuzzy Extractor 38
4.4.4 Kết hợp đặc trưng sinh trắc học 42
4.5 Thành phần mã hóa (encrypt) và giải mã (decrypt) 45
4.5.1 Quá trình mã hóa 45
4.5.2 Quá trình giải mã 47
CHƯƠNG 5 HIỆN THỰC 48
5.1 Nền tảng 48
5.2 Các thư viện sử dụng 49
5.3 Các khối chức năng chính 50
5.3.1 Cấu trúc tổng quát 51
5.3.2 Chi tiết các khối 52
CHƯƠNG 6 THÍ NGHIỆM - ĐÁNH GIÁ 57
6.1 Phương pháp đánh giá 57
6.1.1 Tiêu chí và các tập thí nghiệm sử dụng 57
6.1.2 Xây dựng tập huấn luyện (training) và tập kiểm tra (testing) 58
6.1.3 Phương pháp đánh giá thực nghiệm 59
6.1.4 Môi trường thí nghiệm: 60
6.2 Các thí nghiệm 61
6.3 Kết quả thí nghiệm 66
CHƯƠNG 7 KẾT LUẬN 67
7.1 Kết quả đạt được 67
7.2 Hướng phát triển 68
TÀI LIỆU THAM KHẢO 70
PHỤ LỤC ……….……… 71
Trang 8DANH MỤC HÌNH
Hình 1 Mô hình kết hợp mức rút trích đặc trưng 19
Hình 2.Mô hình kết hợp mức so sánh đặc trưng 19
Hình 3 Mô hình kết hợp mức ra quyết định 20
Hình 4 Mô hình User Case hệ thống 29
Hình 5 Cấu trúc các thành phần hệ thống 33
Hình 6 Các bước rút trích đặc trưng giọng nói 34
Hình 7 Các bước rút trích đặc trưng khuôn mặt 35
Hình 8 Mô hình cụ thể của thành phần đăng ký (Register) 36
Hình 9 Mô hình thành phần xác thực (Authenticate) 37
Hình 10 Mô hình tổng quát Fuzzy Extractor 38
Hình 11 Các bước sửa lỗi 39
Hình 12 Quá trình sinh Sketch 40
Hình 13 Quá trình khôi phục (sketch recover) 41
Hình 14 Mô hình thành phần mã hóa dữ liệu 46
Hình 15 Mô hình thành phần giải mã dữ liệu 47
Hình 16 Kiến trúc của nền tảng Android platform 48
Hình 17 Các phiên bản Android (02/12/2013) 49
Hình 18 Cấu trúc hiện thực tổng quát của hệ thống 51
Hình 19 Ví dụ về phương pháp đánh giá 60
Hình 20 Kết quả thí nghiệm 1 61
Hình 21 Kết quả thí nghiệm 2 62
Hình 22 Kết quả thí nghiệm 3 63
Hình 23 Kết quả thí nghiệm 4 64
Hình 24 Kết quả thí nghiệm 5 65
Trang 9DANH MỤC BẢNG
Bảng 1 So sánh các giải thuật băm 22
Bảng 2 Mô tả Use Case Enroll đăng ký 30
Bảng 3 Mô tả Use Case Authenticate xác thực 30
Bảng 4 Mô tả Use Case sửa đổi đặc trưng 31
Bảng 5 Mô tả Use Case mã hóa/giải mã dữ liệu 31
Bảng 6 Mô tả Use Case cập nhật tùy chỉnh 32
Bảng 7 Đánh giá các mức độ kết hợp sinh trắc học 44
Bảng 8 Các khối chức năng hiện thực 52
Bảng 9 Mô tả chức năng khối UI 53
Bảng 10 Mô tả khối chức năng Cryptography 53
Bảng 11 Mô tả khối chức năng Sketch 54
Bảng 12 Mô tả khối chức năng Authentication 54
Bảng 13 Mô tả khối chức năng Image Process 55
Bảng 14 Mô tả khối chức năng Voice Process 55
Bảng 15 Mô tả khối chức năng Setting 55
Bảng 16 Lưu trữ dữ liệu/Database 56
Trang 10DANH MỤC TỪ VIẾT TẮT
HMAC Hash-based message authentication code
Trang 111.1.1 Tầm quan trọng của việc bảo vệ dữ liệu trên điện thoại
Ngày nay, thiết bị di động càng ngày càng được sử dụng rộng rãi và phổ biến Theo số liệu thu được (1), tính đến cuối năm 2012, số lượng thuê bao di động tại Việt Nam là 131,6 triệu thuê bao, tăng 3,2% so với năm trước, nâng số thuê bao di động/100 dân đạt 148,33 Con số này mang ý nghĩa rằng trung bình một người ở Việt Nam có hơn một thuê bao di động Điều đó chứng tỏ sự phát triển mạnh mẽ của việc
sử dụng điện thoại di động ở nước ta
Không những thế, việc các hãng điện thoại di động lớn đua nhau phát triển nhiều sản phẩm điện thoại di động thông minh Smartphones đã góp một phần không nhỏ ảnh hưởng vào thói quen sử dụng điện thoại của người dân nước ta Trước sự ra đời của dòng điện thoại iPhone của hãng Apple, các hãng khác như Sony, Samsung, LG,… cũng cho ra mắt nhiều dòng điện thoại Smartphones nền tảng Android với đầy
đủ tính năng như một máy tính, kèm theo mức giá phải chăng, phù hợp với túi tiền nhiều đối tượng người dùng Chính vì điều này, người dùng có thể dễ dàng sở hữu một chiếc Smartphones tiện lợi, dễ mang theo mình với nhiều tiện nghi, ích lợi khác Smartphones dần không chỉ được dùng để nghe, gọi, nhắn tin mà còn được sử dụng như một công cụ phục vụ cho các hoạt động học tập, giải trí và công việc của con người
Trang 12Tuy nhiên, việc sử dụng Smartphones cũng đem theo những mối nguy hiểm cho người dùng Nếu như lúc trước, khi mất đi một chiếc điện thoại, người dùng đơn thuần mất đi số tiền để mua chiếc điện thoại đó, thì ngày nay, giá trị mà người dùng mất đi
sẽ rất lớn khi chiếc Smartphone của mình lọt vào tay kẻ gian Chính thói quen làm việc
và lưu trữ các thông tin cá nhân như mật khẩu máy chủ công ty, mật khẩu ATM, thông tin tài khoản ngân hàng, thư điện tử,… trên Smartphones của người dùng đã gây ra điều này Khi những thông tin cá nhân này rơi vào tay kẻ xấu, người dùng có nguy cơ mất tài sản lớn, các vấn đề công việc của người dùng cũng bị ảnh hưởng, và thậm chí
có nguy cơ bị mạo danh người dùng trong các dịch vụ khác ngoài đời
Tất cả các điều trên đã chứng tỏ được tầm quan trọng và cấp bách của việc bảo
vệ dữ liệu người dùng trên Smartphones
1.1.2 Tổng quát về hệ thống bảo vệ dữ liệu trên Smartphones
Có hai phương pháp cơ bản thường được sử dụng trong một hệ thống bảo vệ dữ liệu: xác thực người dùng và mã hóa dữ liệu
Phương pháp xác thực người dùng là phương pháp hệ thống kiểm tra người đang truy xuất và tương tác với hệ thống của phải là người dùng thực và chủ nhân không Đa số các hệ thống hiện giờ có phương pháp xác thực người dùng là sử dụng một chuỗi kí tự làm mật khẩu Xét về khía cạnh kỹ thuật, phương pháp này tương đối đơn giản Tuy nhiên, phương pháp này có bất lợi là người dùng phải nhớ tên tài khoản định danh của mình và mật khẩu tương ứng để cung cấp cho hệ thống mỗi lần muốn truy cập hệ thống dữ liệu lưu trữ Thêm nữa, việc tấn công một hệ thống sử dụng mật khẩu là một chuỗi kí tự đơn giản sẽ không quá khó khăn cho kẻ gian
Phương pháp mã hóa dữ liệu là phương pháp bảo vệ dữ liệu, chỉ người dùng nắm được khóa (key) giải mã mới có thể đọc được dữ liệu Có khá nhiều giải thuật mã hóa dữ liệu được các nhà khoa học, các tổ chức lớn nghiên cứu và phát triển như DES, Triple DES, AES,… Đa số các hệ thống mã hóa dữ liệu sử dụng khóa là một chuỗi kí
tự tương tự như mật khẩu trong xác thực Tuy nhiên, việc bắt người dùng phải nhớ
Trang 131.1.3 Sự cần thiết của sinh trắc học
Sử dụng sinh trắc học trong phương pháp xác thực người dùng và mã hóa dữ liệu là một giải pháp rất hứa hẹn cho vấn đề bất tiện của người dùng được nêu ở mục
trên (1.1.2) Sự tiện lợi và hiệu quả của việc sử dụng sinh trắc học được thể hiện qua
các đặc điểm dưới đây của sinh trắc học con người:
Duy nhất: mỗi người đều có các sinh trắc học khác nhau Hai người tuy có
giống nhau như sinh đôi, nhưng vẫn khác nhau ở một số đặc điểm như vân tay Vấn đề kẻ xấu đoán mật khẩu sẽ trở nên khó khăn hơn khi dùng sinh trắc học
Phổ biến: tất cả mọi người đều sở hữu các đặc điểm sinh trắc học Điều này
khiến phương pháp sinh trắc học không giới hạn người dùng
Tiện lợi: người dùng không cần phải nhớ mật khẩu hay khóa của mình khi
sử dụng hệ thống vì chính bản thân con người họ cùng các đặc điểm sinh trắc học đã là mật khẩu và khóa
Tuy nhiên, việc sử dụng sinh trắc học cũng gặp phải một số vấn đề cần lưu ý Việc bảo vệ sinh trắc học cũng như việc dữ liệu đặc trưng sinh trắc học có thể bị nhiễu
do điều kiện ngoại cảnh (ánh sáng trong hình ảnh, tiếng ồn khi thu âm giọng nói, các
hệ thống hỗ trợ việc rút trích sinh trắc học (sensors) có thể không chính xác) là những vấn đề cần có giải pháp khắc phục Do đó, hệ thống bảo vệ dữ liệu trên Smartphones
sử dụng sinh trắc học cần phải có phương pháp sử dụng sinh trắc học con người một cách hợp lý
1.2 Mục tiêu và phạm vi bài toán
Mục 1.2 này sẽ nêu rõ mục tiêu của đề tài Thêm vào đó, những vấn đề cần giải quyết
và những vấn đề không thuộc phạm vi nghiên cứu của đề tài cũng sẽ được trình bày sau đó
Trang 141.2.1 Mục tiêu
Đề tài có ba mục tiêu sau:
Tìm hiểu và trình bày các cách thức rút trích dữ liệu sinh trắc học Đề tài sử dụng hình ảnh khuôn mặt (hai chiều 2D) và giọng nói làm đặc trưng sinh trắc học người dùng trong xác thực và mã hóa dữ liệu vì hầu hết thiết bị di động Smartphones ngày nay đều có thiết bị chụp ảnh và thu nhận giọng nói
Xây dựng một hệ thống xác thực và mã hóa dữ liệu tổng quát, mô tả các thành phần của hệ thống Thêm vào đó, đề tài nghiên cứu, đánh giá các phương pháp xác thực sử dụng sinh trắc học đã có Từ đó, phát triển một mô hình xác thực và mã hóa dữ liệu dùng sinh trắc học hoàn chỉnh
Xây dựng hệ thống trên thiết bị di động chạy trên nền tảng (platform) Android Việc đề tài lựa chọn nền tảng Android là do đa số các điện thoại di động thông minh (Smartphones) hiện nay đều sử dụng nền tảng Android Ngoài ra, nền tảng Android là nền tảng mã nguồn mở, có thể dễ dàng phát triển hệ thống và tùy chỉnh theo yêu cầu thiết kế hệ thống đề tài
1.2.2 Vấn đề không thuộc phạm vi bài toán
Đề tài tập trung vào việc xây dựng một hệ thống chung bảo vệ dữ liệu trên Smartphones sử dụng sinh trắc học Do đặc tính dễ dùng trên điện thoại di động, hai đặc trưng sinh trắc học là giọng nói và khuôn mặt người dùng được chọn để phát triển
hệ thống Các vấn đề liên quan đến việc rút trích và xử lý đặc trưng sinh trắc học khác như vân tay (fingerprint), móng mắt (iris), lòng bàn tay (palm),… sẽ không được đề cập đến trong đề tài
Các vấn đề kỹ thuật liên quan đến nền tảng điện thoại khác Android như iOS, Windows Phone cũng sẽ không được nêu ra trong đề tài này Đề tài tập trung xây dựng một kiến trúc hệ thống chung cho các thiết bị di động Việc hiện thực trên các nền tảng
Trang 151.3 Phương pháp thực hiện
Đầu tiên, đề tài sẽ nghiên cứu và hiện thực lại các phương pháp bảo vệ dữ liệu sử dụng sinh trắc học đã có sử dụng các thư viện và kỹ thuật hiện giờ Từ đó, đánh giá phương pháp, tìm điểm mạnh và điểm yếu để áp dụng và sửa chữa trong hệ thống đề xuất
Có 3 nghiên cứu liên quan được đề tài hiện thực và đánh giá:
Mô hình Small Secure Sketch của Ee-Chien Chang và Qiming Li
Mô hình Codebook Secure Sketch của D-STAR Lab
Mô hình Fuzzy Vault của Juels and Sudan
Sau khi rút ra điểm mạnh và yếu của các phương pháp đã có, đề tài sẽ đề xuất ra một
mô hình hệ thống
Hệ thống đề xuất được kiểm nghiệm trên nhiều loại thiết bị di động Smartphones và máy tính bảng Tablets với các cấu hình camera, các phiên bản nền tảng Android và những cấu hình phần cứng khác nhau như Xperia Tipo (3.2MP), Samsung Galaxy S4 mini (1.9MP), Nexus 7 (1.2MP),…
Các thông số trong hệ thống sẽ được chọn thông qua một quá trình kiểm nghiệm trên nhiều tập dữ liệu có sẵn của đề tài và của các đại học, nhóm nghiên cứu trên thế giới như tập AT&T, tập Yalefaces, tập dữ liệu thực của nhóm sinh viên Kỹ sư tài năng khóa 2008
Việc đánh giá hệ thống sẽ được dựa trên 5 thông số: TAR, TRR, FAR, FRR và ERR Các thông số được sử dụng trong quá trình đánh giá quá trình xác thực người dùng của
hệ thống bảo vệ dữ liệu được đề xuất
Trang 161.4 Cấu trúc đề tài
Đề tài bao gồm tổng cộng 7 chương Nội dung khái quát các chương trong đề tài được trình bày dưới đây
Chương 1: Tổng quan đề tài
Giới thiệu về đề tài, các vấn đề xung quanh tầm quan trọng và ý nghĩa của đề tài, trình bày phạm vi của bài toán, mục tiêu và phương pháp thực hiện của đề tài Trong chương này, sơ lược về hệ thống bảo mật dữ liệu tổng quát và lý do sử dụng sinh trắc học cũng được đề cập
Chương 2: Cơ sở lý thuyết
Nội dung chương 2 là cơ sở lý thuyết về vấn đề xác thực và mã hóa dữ liệu sử dụng giọng nói và khuôn mặt Các kỹ thuật rút trích thông tin đặc trưng sinh trắc học
từ giọng nói và khuôn mặt, các kỹ thuật sửa lỗi, phương pháp bảo vệ sinh trắc học và
kỹ thuật mã hóa, giải mã, băm (hash) cũng được trình bày Các nền tảng lý thuyết này được áp dụng vào quá trình hiện thực hệ thống của đề tài
Chương 3: Các nghiên cứu liên quan
Mục tiêu của chương này là phân tích các điểm mạnh, điểm yếu của các hệ thống xác thực và mã hóa đã có Trên thế giới đã có các mô hình hỗ trợ xác thực và mã hóa dữ liệu nhằm phục vụ cho mục đích bảo vệ mật khẩu, khóa (template protection)
Đề tài sẽ hiện thực lại, kiểm nghiệm các mô hình này trên môi trường kỹ thuật hiện tại
và đưa ra đánh giá
Chương 4: Hệ thống đề xuất
Sau khi biết được điểm mạnh, điểm yếu của các hệ thống trước, đề tài đề xuất
hệ thống bảo vệ dữ liệu trên điện thoại thông minh Smartphones sử dụng 2 loại sinh trắc học cụ thể: giọng nói và khuôn mặt Trong chương này, các sơ đồ phân tích chức năng hệ thống, các thành phần trong chương trình, giải thích về cách thức hoạt động
Trang 17Chương 5: Hiện thực
Trình bày về các thư viện, công cụ đã được sử dụng trong hệ thống, cũng như trình bày mô hình khối chức năng và mối liên hệ, tương tác giữa chúng Đồng thời, đề tài mô tả nhiệm vụ và các phương thức của một số lớp chính, quan trọng nhất của hệ thống Chương này cũng trình bày về nền tảng Android, nền tảng phát triển ứng dụng
và hệ thống trên Smartphones
Chương 6: Thí nghiệm – đánh giá
Nội dung chương này là về mô tả những tập dữ liệu đã được sử dụng cho quá trình huấn luyện (training) và kiểm tra đánh giá cho hệ thống bảo vệ dữ liệu Bên cạnh
đó, độ đo dùng để đánh giá kết quả của các phương pháp cũng được trình bày Nội dung cuối cùng là so sánh kết quả thí nghiệm tìm được
Chương 7: Tổng kết
Từ kết quả thí nghiệm và so sánh trên các tập kiểm tra khác nhau, chương 7 đưa
ra các nhận xét và kết luận Từ đó, đề tài đánh giá mức độ phù hợp của phương pháp trong những điều kiện khác nhau Ngoài ra, các mặt hạn chế của phương pháp đề xuất
và hướng phát triển cùng những cải tiến, khắc phục hạn chế sẽ được trình bày trong chương cuối này
Trang 18Chương 2
CƠ SỞ LÝ THUYẾT
2.1 Rút trích vector đặc trưng từ khuôn mặt
Trong phần này, nội dung được trình bày là các bước tiền xử lý khuôn mặt, trước khi rút trích sinh trắc học và cách rút trích đặc trưng khuôn mặt
2.1.1 Tiền xử lý khuôn mặt
Tiền xử lý khuôn mặt là bước xử lý hình ảnh khuôn mặt hai chiều trước khi đưa vào quá trình xác thực làm tăng độ chính xác của việc xác thực người dùng Ngoài ra tiền xử lý còn đảm bảo dữ liệu đưa vào luôn đồng nhất về kích thước và định dạng Một số kỹ thuật trong bước tiền xử lý khuôn mặt là chuyển về dạng bitmap, chuyển về ảnh trắng đen (grayscale), nhận dạng khuôn mặt (face detection)
Chuyển về dạng bitmap
Hình ảnh thường được chụp và ghi lại bằng nhiều kích thước và định dạng khác nhau Phần lớn các thư viện xử lý hình ảnh hiện nay đều chỉ hoạt động được khi hình ảnh đưa vào cùng kích thước và định dạng Thực hiên bước này giúp cho hình ảnh đưa vào có cùng một dạng chuẩn bitmap (.bmp)
Chuyển về ảnh trắng đen (Gray-scaling)
Để đảm bảo việc xử lý hình ảnh được chính xác, ta cần phải loại bỏ những tác nhân gây nhiễu trong hình ảnh khuôn mặt và màu sắc là một trong những tác nhân đó Do đặc trưng khuôn mặt của con người thường ít phụ thuộc vào màu sắc và các giá trị màu sắc RGB thường ảnh hưởng đến các giải thuật nhận dạng khuôn mặt (ảnh hướng tới độ sáng tối, đặc trưng khuôn mặt) nên cần phải
Trang 19Nhận dạng khuôn mặt (Face detection)
Hình ảnh đưa vào trong quá trình nhận dạng thường không phải chỉ là hình ảnh khuôn mặt mà thường có thêm những chi tiết xung quang như khung cảnh, phông nền … Những chi tiết này tuy không lớn nhưng sẽ ảnh hưởng phần nào đến kết quả của quá trình rút trích đặc trưng từ khuôn mặt Bước nhận dạng khuôn mặt sẽ xử lý vấn đề này bằng cách loại bỏ các yếu tố xung quanh và chỉ
xử lý trên khuôn mặt của người dùng Ngoài ra các đặc trưng không quan trọng
và dễ thay đổi trên khuôn mặt như tóc đều sẽ được loại bỏ Quá trình xử lý khuôn mặt sẽ chỉ tập trung vào các đặc trưng chính của khuôn mặt như mắt, mũi, miệng
Quá trình nhận dạng khuôn mặt sẽ bao gồm các bước sau:
Chuẩn bị một tập các ảnh huấn luyện (training set),
Tính toán các eigenfaces từ tập huấn luyện và giữ lại M eigenfaces có eigenvalue lớn nhất, M eigenfaces này định nghĩa “face space” cho việc nhận dạng
Chiếu các ảnh khuôn mặt vào trong “face space” ta được các vector đặc trưng cho mỗi khuôn mặt là các vector của các hệ số
Chiếu khuôn mặt cần được nhận dạng vào “face space” và xác định xem
nó phù hợp nhất với khuôn mặt đã biết nào bằng cách so sánh vector hệ số của
nó với các vector trong tập huấn luyện
2.1.2 Rút trích vector đặc trưng từ hình ảnh khuôn mặt
Có 3 phương pháp nhận dạng khuôn mặt: phương pháp tiếp cận toàn cục
(global, ví dụ điển hình là Eigenfaces - PCA, Fisherfaces - LDA), phương pháp tiếp cận dựa trên các đặc điểm cục bộ (local feature based, như LBP, Gabor wavelets) và phương pháp lai (hybrid, là sự kết hợp của hai phương pháp toàn cục và local feature)
Đề tài này sẽ sử dụng phương pháp tiếp cận toàn cục – một phương pháp đơn giản và được sử dụng khá phổ biến
Trang 20Tính toán eigenfaces
Đối với các ảnh khuôn mặt, dù có khác nhau như thế nào đi nữa thì chúng vẫn
có chung các “mẫu” (pattern) thông tin nhất định, gọi là các eigenfaces Các mẫu thông tin này có đóng góp vào các khuôn mặt khác nhau với tỉ lệ khác nhau, mỗi khuôn mặt có thể xấp xỉ thành một tổ hợp tuyến tính các eigenfaces
và vector các hệ số là đặc trưng cho khuôn mặt đó trong tập hợp các khuôn mặt hiện tại
Các eigenfaces là tập các eigenvector của ma trận hiệp phương sai xây dựng từ tập ảnh huấn luyện
Giả sử ta có tập huấn luyện gồm M ảnh có kích thước h x w = N pixel Mỗi ảnh
Ƭi trong tập này có thể được biểu diễn thành một vector N chiều
Việc tính toán eigenfaces - phương pháp PCA trải qua các bước sau đây:
Tính vector “khuôn mặt” trung bình (mean image):
1
M Ƭi M
Trang 21C AAT
Tính toán các eigenvector và eigenvalue
Một vector u được gọi là eigenvector của ma trận hiệp phương sai C khi:
Cu u Trong đó, được gọi là eigenvalue tương ứng với u
Ma trận C có kích thước N2 x N2 sẽ có N2 eigenvectors, mỗi eigenvector tương ứng với một eigenvalue Tuy nhiên, khi con số N2 là quá lớn đối với M trong khi chỉ có khoảng M eigenvector có ý nghĩa, ta cần chọn ra 1 tập eigenvector nhỏ để sử dụng, tránh tiêu hao tài nguyên Chúng ta sẽ chọn ra M’ eigenvector theo thứ tự eigenvalue giảm dần M’ eigenvectors (hay eigenfaces) này tạo thành không gian khuôn mặt (face space) phục vụ cho việc nhận dạng
U = [ u1u2 … uM’]
Tính toán fisherfaces
Nếu như phương pháp Eigenface tập trung chỉ ra chỉ những feature đặc trưng để phân biệt 2 object thực thể khiến việc xây dựng lại khuôn mặt ban đầu không hiệu quả, thì Fisherface đi cùng với giải thuật tuyến tính LDA có thể làm được tốt việc này
Mục tiêu của Fisherface không tập trung vào việc tối đa phân hóa các cá thể,
mà là tối đa phân hóa các lớp, gom cụm các cá thể thành lớp Các bước của thuật giải LDA được nêu sau:
Gọi X là 1 vector ngẫu nhiên trong tập mẫu từ c lớp
Ta có 2 ma trận SB và SW được tính như sau:
Trang 22Hệ số trung bình tương tự như eigenface là
Hệ số trung bình cho c lớp là
Với Theo lý thuyết và mục tiêu của LDA, ma trận chiếu W lúc này sẽ có dạng như bên dưới:
Có 1 vấn đề ở đây là SW có bậc là N-c (N tập mẫu, c lớp) Điều này dẫn đến, trong quá trình nhận dạng, SW lúc nào cũng nhỏ hơn số chiều dữ liệu đầu vào (số lượng pixel) Từ đó có thể thấy Sw là ma trận đơn (singular) Vấn đề này được giải quyết khi ta sử dụng LDA trên dữ liệu đã được cắt giảm (reduced data), cụ thể:
Và ma trận cần tìm (transformation matrix) lúc này là:
Trang 232.2 Rút trích vector đặc trưng từ giọng nói
Trong phần này, nội dung được trình bày là các bước tiền xử lý giọng nói, trước khi rút trích sinh trắc học và cách rút trích đặc trưng giọng nói
2.2.1 Tiền xử lý mẫu giọng nói
Tiền xử lý giọng nói là bước xử lý giọng nói thô (raw voice) được thực hiện trước khi đưa vào quá trình xác thực làm tăng độ chính xác của quá trình xác thực người dùng Một số kỹ thuật trong bước này là chuẩn hóa (normalization), khử bỏ khoảng lặng (remove silence), nhấn âm (emphasize), phân khung
lý khác cho ra kết quả cuối cùng tốt hơn
Trang 24Nhấn âm
Nhấn âm có vài trò làm tăng độ rõ ràng của dữ liệu âm thanh đưa vào hệ thống, đặc biệt khi âm thanh được thu trong các môi trường ồn ào có độ gây nhiễu cao Nhấn âm sử dụng các giá trị cường độ trong vùng lân cận của điểm đang xét để
bổ sung cường độ cho điểm đó và qua đó làm rõ ràng hơn sự thay đổi của cường độ âm thanh
Phân khung
Quá trình phân khung là quá trình phân mẫu giọng nói thành những mẫu nhỏ hơn Điều này giúp giảm bớt chi phí tính toán cho chương trình và cũng nêu lên đặc trưng của giọng nói là thường được xử lý theo từng tiếng (nhiều âm) chứ không xử lý riêng từng âm tiết một Các khung khi được phân chia thường gối lên nhau một phần để thể hiện sự tương quan giữa các khung
Cửa sổ Hamming
Sau khi phân khung, từng khung giá trị sẽ được đem đi lấy cửa sổ Kỹ thuật này
là một phương pháp điều chỉnh dữ liệu để dữ liệu trở nên thích hợp hơn cho việc xử lý tín hiệu Với dữ liệu nguyên mẫu, những phần tử kề nhau sẽ có xu hướng thay đổi đột ngột từ nơi có biên độ cao đến nơi có biên độ thấp Việc lấy cửa sổ như vậy sẽ làm cho dữ liệu giống như tuần hoàn và không có sự gián đoạn đột ngột Công thức tổng quát của quá trình lấy cửa sổ đối với tín hiệu giọng nói như sau
Tùy vào các giá trị khác nhau của α mà ta có các cửa sổ khác nhau Với α 1,
ta có cửa sổ chữ nhật, α 0.54 ta có cửa sổ hamming và cũng là loại cửa sổ được dùng nhiều trong xử lý tín hiệu số
Trang 25Với Cửa sổ Hamming, giá trị của tín hiệu sẽ giảm dần về 0 khi tiến dần ra hai biên của frame và tập trung ở giữa frame dẫn đến việc biến đổi trong các giải thuật xử lý giọng nói trở nên dễ dàng hơn
2.2.2 Rút trích vector đặc trưng từ giọng nói
Qua các nghiên cứu về các phương pháp rút trích vector đặc trưng từ giọng nói, hiện nay có 2 phương pháp phổ biến thường được sử dụng trong nghiên cứu là Mel-frequency cepstral coefficients (MFCC) và Linear Predictive Code (LPC)
Giải thuật trích chọn đặc trưng (MFCC)
Giải thuật trích chọn đặc trưng (MFCC) dựa trên việc biến đổi dữ liệu âm thanh đầu vào về thang đo tần số Mel, một thang đo diễn tả tốt sự thay đổi của âm thanh MFCC gồm các bước chính
Biến đổi Fourier nhanh: Giọng nói của con người có thể đặc trưng bằng miền tần số Tuy nhiên, mẫu tín hiệu giọng nói thu được lại được đặc trưng theo miền thời gian Do đó nếu muốn rút trích được vector đặc trưng theo miền tần số cần phải có một phương pháp để chuyển mẫu tín hiệu giọng nói từ miền thời gian sang miền tần số, và phép biến đổi Fourier rời rạc (DFT) có tác dụng để xử lý việc này DFT là phép biến đổi thuận nghịch từ miền thời gian sang miền tần số và ngược lại Công thức:
Phép biến đổi thuận:
Trang 26 Mel-filterbank:
Ở đây, người ta sử dụng các băng lọc Trong đó f là tần số ở thang đo thường, fmel là tần số ở thang đo Mel MFCC sử dụng các băng lọc để tính các hệ số Mel Sử dụng bao nhiêu băng lọc thì sẽ cho ra bấy nhiêu hệ số Mel,
và các hệ số mel này sẽ là đầu vào cho quá trình tiếp theo của việc rút trích đặc trưng giọng nói MFCC
Giải thuật mã dự đoán tuyến tính (LPC)
Phương pháp LPC có khả năng có thể cung cấp các ước lượng chính xác của các tham số tín hiệu giọng nói và khả năng thực hiện tính toán tương đối nhanh Ý tưởng cơ bản của phương pháp LPC là tại thời điểm n, mẫu tiếng nói S(n) có thể được xấp xỉ bởi một tổ hợp tuyến tính của p mẫu trước đó Công thức:
Với là giá trị dự báo của S(n) Giả sử ak là hằng số trên khung dữ liệu được xem xét Tập các hệ số ak sẽ là đặc trưng của tín hiệu tiếng nói Để tìm được tập các hệ số này, người ta dùng phương pháp phân tích
tự tương quan (auto-correlation) như sau:
Mỗi khung sau khi lấy cửa sổ sẽ được đưa qua bước phân tích tự tương quan và cho ra (p + 1) hệ số tự tương quan với công thức như sau
Trong đó, giá trị tự tương quan cao nhất - p - được gọi là cấp của phân tích LPC Thông thường, ta sử dụng các giá trị p trong khoảng từ 8 đến 16
Trang 272.3 Secure Sketch và Fuzzy Extractor
Nội dung phần này sẽ giới thiệu về 2 mô hình nổi tiếng trong việc sửa lỗi và bảo vệ (template protection) là Secure Sketch và Fuzzy Extractor Các kiến thức về 2 mô hình này được tham khảo từ công trình nghiên cứu đã có trên thế giới (2)
2.3.1 Secure Sketch
Khi chúng ta sử dụng đặc trưng sinh trắc học vào trong các hệ thống xác thực
và mã hóa, các đặc trưng này thường không thể rút trích một cách chính xác qua nhiều lần khác nhau Nguyên nhân dẫn đến vấn đề này là do đặc trưng sinh trắc học thường thay đổi theo thời gian, gặp phải cái yếu tố gây nhiễu do điều kiện ngoại cảnh và không có một nguyên tắc tuyệt đối nào cho quá trình rút trích đặc trưng sinh trắc học
Để xử lý vấn đề này, Secure Sketch là một trong những phương pháp giúp việc lấy dữ liệu đáng tin cậy từ mẫu dữ liệu có nhiễu và sửa lỗi
Secure Sketch là mô hình được sử dụng để khôi phục chính xác lại đặc trưng sinh trắc học nguyên mẫu với đầu vào là một đặc trưng sinh trắc học có sự giống nhau một cách tương đối so với mẫu ban đầu 2 mẫu sinh trắc học được xem là giống nhau khi khoảng cách giữa chúng không lớn hơn một ngưỡng nào đó
Mô hình Secure Sketch gồm có 2 bước: tạo sketch và khôi phục dữ liệu
Ở bước tạo sketch, dữ liệu đầu vào của hệ thống là 1 mẫu sinh trắc học và đầu
ra là một tập dữ liệu được gọi là sketch Sketch là 1 thông tin mở, có thể truy xuất được từ tất cả mọi người, bởi vì người dùng không thể khôi phục mẫu sinh trắc học chỉ với sketch
Ở bước khôi phục dữ liệu, hệ thống nhận dữ liệu đầu vào là sketch và mẫu sinh trắc học mới Nếu mẫu sinh trắc học mới gần giống mẫu ban đầu thì hệ thống sẽ xuất ra mẫu sinh trắc học ban đầu
Trong các mẫu dữ liệu sinh trắc học, ta thường có 2 loại nhiễu đặc trưng:
Nhiễu giá trị (white noise): loại nhiễu làm cho giá trị dữ liệu bị thay đổi Giá trị của dữ liệu bị thay đổi một khoảng a so với dữ liệu gốc
Trang 28 Nhiễu thay thế (replacement noise): là loại nhiễu thay thế một phần tử của dữ liệu gốc bằng một phần tử khác ngẫu nhiên.
Tương ứng với 2 loại nhiễu dữ liệu trên, chúng ta có 2 loại Secure Sketch được
sử dụng riêng biệt cho từng loại nhiễu:
Hamming distance Secure Sketch: Secure Sketch được sử dụng để xử lỷ nhiễu giá trị (white noise)
Set difference Secure Sketch: Secure Sketch được sử dụng để xử lý nhiễu thay thế (replacement noise)
2.3.2 Fuzzy Extractor
Fuzzy Extractor là mô hình bao gồm Secure Sketch và một bộ Randomness Extractor Nếu như vai trò của Secure Sketch chỉ là khôi phục và sửa lỗi đặc trưng sinh trắc học thì Fuzzy Extractor đảm nhận vai trò xác thực độ chính xác của đặc trưng sinh trắc vừa được khôi phục Ngoài ra, Fuzzy Extractor còn có đảm bảo các dữ liệu mà hệ thống sinh ra và lưu xuống là ngẫu nhiên (random) thông qua bộ Randomness Extractor
Cụ thể, Fuzzy Extractor hoạt động với 2 bước như sau:
Ở bước đầu tiên, Fuzzy Extractor cũng sẽ nhận đầu vào sinh trắc học và lưu các thông tin cần thiết (Sketch)
Ở bước sau, dữ liệu đầu vào sinh trắc học khác sẽ được đưa vào bộ Secure Sketch Fuzzy Extractor sử dụng Secure Sketch để khôi phục và sửa lỗi đặc trưng sinh trắc học (theo mục 2.3.1)
Cuối cùng, dữ liệu đã được sửa lỗi thông qua bộ Secure Sketch, sẽ tiếp tục được đưa qua bộ Randomness Extractor để tạo ra dữ liệu ngẫu nhiên hoàn toàn Trong các quá trình xác thực thì dữ liệu ngẫu nhiên này có ý nghĩa rất lớn, đây chính là dữ liệu được lưu trữ xuống để sử dụng cho việc xác thực người dùng
Dữ liệu sinh ra là dữ liệu ngẫu nhiên nên kẻ tấn công attacker sẽ gặp khó khăn
Trang 292.4 Các mức độ kết hợp (fusion level)
Để sử dụng nhiều loại đặc trưng sinh trắc học, các công trình nghiên cứu trên thế giới
đã đề xuất rất nhiều cách kết hợp Tổng quát, các cách kết hợp trong hệ thống sử dụng nhiều đặc trưng sinh trắc học được phân thành 3 loại như sau:
Feature Level Fusion: kết hợp ở bước rút trích đặc trưng sinh trắc học Phương pháp tiêu biểu của feature level fusion là phương pháp nối các vector đặc trưng sinh trắc
Hình 1 Mô hình kết hợp mức rút trích đặc trưng
Score Level Fusion: kết hợp ở bước so sánh đặc trưng sinh trắc học Các vector đặc trưng được so sánh riêng lẻ và kết hợp với nhau bằng công thức tổng thông qua các trọng số
Hình 2.Mô hình kết hợp mức so sánh đặc trưng
Trang 30 Decision Level Fusion: kết hợp ở bước quyết định kết quả so sánh của các đặc trưng sinh trắc học Các đặc trưng riêng biệt trả về kết quả True (xác thực đúng)
và False (xác thực sai) Sau đó, các kết quả này được kết hợp bằng toán tử logic như AND, OR
Hình 3 Mô hình kết hợp mức ra quyết định
2.5 Các phương pháp mã hóa và giải mã
Có 2 cách mã hóa được đề cập phổ biến trong lĩnh vực mã hóa (cryptography) là mã hóa đối xứng và mã hóa bất đối xứng
Mã hóa bất đối xứng là loại mã hóa bao gồm 1 khóa công khai (public) và 1 khóa bí mật (secret) Mã hóa bất đối xứng thường được dùng trong mã hóa mạng và có tốc độ mã hóa chậm hơn mã hóa đối xứng
Mã hóa đối xứng là loại mã hóa chỉ sử dụng một khóa bí mật được chia sẻ giữa những người có quyền truy xuất dữ liệu
Do phạm vi bài toán là hệ thống bảo vệ dữ liệu trên smartphone, không có giao tiếp mạng với bên ngoài nên hệ thống sử dụng mã hóa đối xứng Có 3 loại mã hóa đối xứng phổ biến hiện nay là DES, Triple-DES và AES
DES: là phương pháp mã hóa với kích thước khối là 64 bit và độ dài của khóa
Trang 31như không được sử dụng do độ bảo mật của nó Có rất nhiều phương pháp đã được phát hiện có thể tấn công mã hóa DES như tìm kiếm brute-force, …
Triple DES : là phương pháp mã hóa áp dụng 3 lần mã hóa DES lên dữ liệu Phương pháp này có độ bảo mật cao hơn DES nhưng có nhược điểm là thời gian mã hóa lâu, gấp 3 lần số với mã hóa DES bình thưởng
Encryption c Ek1 (Dk2 (Ek1 (m)))
Decryption m Dk1 (Ek2 (Dk1(c)))
AES: là phương pháp mã hóa được ra đời để thay thế DES vào năm 2000 Phương pháp này có kích thước khối là 128 bit và độ dài khóa là 128, 192, 256 hoặc 512 bit Với độ dài của khóa lớn, tấn công brute-force đối với mã hóa AES
là không thể ở thời điểm hiện tại Qua các nghiên cứu hiện nay, chỉ có tấn công side-channel (dựa trên mức tiêu thụ điện năng của sản phẩm) là có thể tấn công
mã hóa AES
2.6 Kỹ thuật băm
Mục 2.6 này sẽ giới thiệu khái quát chung về kỹ thuật băm (hash) – một kỹ thuật được
sử dụng nhiều trong các hệ thống xác thực sử dụng mật khẩu, nhằm tránh việc bị mất mật khẩu Ngoài ra, kỹ thuật HMAC sử dụng để hiện thực bộ Randomness Extractor trong Fuzzy Extractor (2.3.2) cũng sẽ được nêu ra trong mục này
2.6.1 Khái quát chung
Kỹ thuật băm (hash) là một trong những kỹ thuật thường được sử dụng trong
các hệ thống cần bảo mật như hệ thống xác thực để kiểm tra tính nguyên vẹn thông điệp Khái quát chung về hoạt động của một hàm băm là:
Nhận dữ liệu đầu vào input là một thông điệp/chuỗi kí tự (độ dài tùy ý) và tạo
ra một chuỗi ký tự mới sử dụng các giải thuật như MD5, SHA,…
Chuỗi ký tự mới này có độ dài cố định, tùy thuộc vào giải thuật của hàm băm,
là kết quả ta cần
Trang 32Tiêu chí và yêu cầu bắt buộc của một hàm băm:
Hàm băm (hash) phải là hàm một chiều Cụ thể, ta có hàm băm hash(m) Nếu
đã có h là giá trị băm thì việc tìm thông điệp m sao cho h hash(m) là rất khó
Hai thông điệu cùng đưa vào một hàm hash phải cho kết quả khác nhau
2.6.2 Keyed-hash message authentication code (HMAC)
Trong hệ thống xác thực, khi nhận được thông điệp, hệ thống sẽ băm thông điệp
này tạo ra message authentication code (MAC) sử dụng để so sánh và định danh người
dùng
Mô hình HMAC sẽ có đầu vào là 1 khóa k (key) và thông điệp (m) Sử dụng các giải thuật băm để hash thông điệp này sử dụng khóa k Tùy thuộc vào giải thuật sử dụng, HMAC có các tên gọi như HMAC-MD5, HMAC-SHA1 Hiện nay, có khá nhiều giải thuật băm phổ biến được sử dụng Bên dưới là thông số (3)
và đánh giá của các giải thuật băm tiêu biểu HMAC đã được chứng minh là có thể sinh ra một chuỗi ngẫu nhiên (random string) sử dụng trong Fuzzy Extractor (4)
Kích thước đầu ra (bits)
Kích thước trạng thái trong
Kích thước khối
Độ dài
Kích thước word
Trang 33Chương 3
CÁC NGHIÊN CỨU LIÊN QUAN
3.1 Mô hình Small – Secure Sketch của Ee-Chien Chang và Qiming Li
Mô hình Small Secure Sketch là mô hình sửa lỗi trên tập dữ liệu do Ee-Chien Chang
và Qiming Li đề xuất trong “Small Secure Sketch for Point-Set Difference” (2005) (5)
Mô hình này hoạt động dựa trên cơ chế point-set difference và được dùng để sửa lỗi
“nhiễu thay thế”[i]
phần tử trong tập set bằng một phần tử khác Mô hình này dựa trên khái niệm tính toán đa thức để giải bài toán sửa lỗi trong tập dữ liệu và có thể được dùng trong sửa lỗi đa tập multiset
3.1.1 Giải thuật
Gọi số lượng lỗi có thể sửa tối đa là t, mô hình sẽ hoạt động được với kích thước tập set tối đa là 2t(1+log n) Giải thuật sẽ gồm các bước sau:
Tạo Sketch [ii] : Giả sử cho tập dữ liệu với t là số lỗi
tối đa có thể sửa Ta tạo sketch theo các bước sau
o Xây dựng đa thức bậc n:
o Tính toán các giá trị trong tập
o Tập P chính là sketch của tập dữ liệu
Sửa lỗi: Ta có giá trị đầu vào trong quá trình sửa lỗi là tập
và tập sketch Ta sửa lỗi theo các bước sau:
Trang 34o Tính toán các giá trị trong tập
o Thế aj và bj tìm được từ hệ phương trình trên vào đa thức và
và tìm nghiệm Ta gọi tập nghiệm của là và của là
o Kết quả của quá trình sửa lỗi là R
3.1.2 Hiện thực và đánh giá
Nghiên cứu của Ee-Chien Chang và Qiming Li đã được đề tài hiện thực lại trên môi trường JDK 1.7, Windows 8 với thư viện được sử dụng để hỗ trợ tính toán là Apache Commons Math
Đánh giá: nghiên cứu của Ee-Chien Chang và Qiming Li không phù hợp cho
việc xử lý các tập set lớn Với t và n lớn, các công nghệ phù hợp cho nền tảng di động Android hiện nay như Java gặp khó khăn trong việc tính toán nghiệm vì Java không phải là ngôn ngữ chuyên dụng cho tính toán chính xác Độ lớn của số hạng trong các
đa thức là xt với (x [0,2000] và t [0,20]) thường có giá trị rất lớn và nghiệm tìm được của các đa thức thường có sai số ảnh hưởng đến giải thuật
Kết luận: phương pháp của Ee-Chien Chang và Qiming Li không phù hợp với
việc sửa lỗi trên cái tập set có số lượng phần tử lớn như vector đặc trưng sinh trắc học
Trang 353.2 Mô hình Codebook Secure Sketch của D-STAR Lab
Mô hình Codebook Secure Sketch là mô hình sửa lỗi trên tập dữ liệu do Tran Tri Dang, Quynh Chi Truong, Tran Khanh Dang nhóm Data Security Applied Research (D-STAR) Lab đề xuất trong “Practical Construction of Face-based Authentication Systems with Template Protection Using Secure Sketch” (2013) (6)
Mô hình này hoạt động dựa trên ý tưởng của Y.Dodis trong (2) để sửa lỗi khi nhiễu thay đổi giá trị của phần tử trong tập set một khoảng so với phần tử gốc Phần tử này sẽ được sửa nếu khoảng cách thay đổi bé hơn một khoảng t cho trước Mô hình này có độ
chính xác khá cao trong các thí nghiệm trên tập dữ liệu khuôn mặt Faces94
3.2.1 Giải thuật
Mô hình Codebook hoạt động trên miền giá trị rời rạc nên cần bước lượng tử hóa (quantization) để chuyển từ miền giá trị liên tục (số thực) về miền giá trị rời rạc (số nguyên)
Quantization: Quá trình quantization được thực hiện theo các bước sau:
o Sau khi chuẩn hóa, ta có các giá trị của vector đặc trưng chạy từ [0, 1]
o Chuyển từ miền [0, 1] thành [0, N], ta nhân các giá trị của vector với N
o Sau đó ta làm tròn các giá trị để chuyển về miền số nguyên
Tạo Sketch: Ta có [0, N] là miền giá trị của các phần tử trong vector và t là
khoảng cách tối đa có thể sửa lỗi
o Ta tạo một tập codebook gồm nhiều điểm gọi là codeword được phân đồ đều trong khoảng [0, N] và khoảng cách giữa mỗi 2 điểm là như nhau Khoảng cách giữa các điểm là 2t + 1 Do đó với mỗi codeword c trong codebook, tất cả các giá trị trong khoảng [c – t, c + t] sẽ được chuyển về codeword là c
o Ta định nghĩa hàm M(w) là hàm trả về codeword gần w nhất
o Sketch của vector được xây dựng như sau Với vector , tập Sketch của vector là với
–
Trang 36 Sửa lỗi: Với giá trị đầu vào xác thực là và tập sketch
, ta thực hiện như sau
o –
o Ta có tập là tập kết quả sau sửa lỗi
Sự chính xác của giải thuật được chứng minh như sau:
Đánh giá: nghiên cứu của nhóm D-STAR có kết quả rất cao ở tập Faces94
nhưng lại thấp ở tập AT&T và Yalefaes (xem kết quả chương 6) Giải thuật áp dụng
sửa những lỗi gây ra bởi “nhiễu giá trị”[iii]cho kết quả rất tốt, điều này có thể thấy ở kết
quả của tập Faces94 khi mà các hình có độ khác biệt thấp Tuy nhiên, khi chạy trên
các tập đa dạng và phức tạp hơn, giải thuật codebook không giải quyết được “nhiễu thay thế” nên có độ chính xác thấp
Kết luận: phương pháp codebook là phương pháp rất tốt để xử lý “nhiễu giá trị”
và có thể kết hợp với một phương pháp giải quyết “nhiễu thay thế” để tạo nên một bộ sửa lỗi hoàn chỉnh Phương pháp codebook cũng là phương pháp mà đề tài sử dụng để
xử lý “nhiễu giá trị”
Trang 373.3 Mô hình Fuzzy Vault của Juels and Sudan
Mô hình Fuzzy Vault của Juels và Sudan đề xuất đi kèm với một mô hình sửa lỗi trên tập dữ liệu Mô hình này được trình bày trong “A fuzzy vault scheme” (2002) (7)
Mô hình hoạt động dựa trên cơ chế point-set difference và được dùng để sửa lỗi “nhiễu thay thế” phần tử trong tập set bằng một phần tử khác Mô hình này dựa trên khái niệm của mã sửa lỗi Reed-Solomon để giải bài toán sửa lỗi trong tập dữ liệu và có thể được dùng trong sửa lỗi với đa tập (multiset)
3.3.1 Giải thuật
Gọi số lượng lỗi có thể sửa tối đa là t, mô hình sẽ hoạt động được với kích thước tập set tối đa là 2t(1+log n)
Tạo Sketch: Giả sử cho tập dữ liệu với t là số lỗi tối
đa có thể sửa Ta tạo sketch theo các bước sau
o Xây dựng đa thức bậc n
o Tính toán các giá trị trong tập P gồm các hệ số của bậc từ (n – 1) đến (n - t)
o Tập P chính là sketch của tập dữ liệu
Sửa lỗi: Ta có giá trị đầu vào trong quá trình sửa lỗi là tập
và tập sketch P =
Ta sửa lỗi theo các bước sau:
o Xây dựng đa thức bậc t
o Lấy giá trị của với tất cả giá trong tập Y ta có được n cặp (aj, bj)
o Dùng mã Reed Solomon [n, n – t, t + 1] để tìm đa thức q(x) bậc n – t – 1 sao cho q(a) = b ở ít nhất (n – t/2) giá trị của aj
o Tim tập nghiệm của phương trình Tập nghiệm là tập
những phần tử khác nhau giữa tập X và Y
Trang 383.3.2 Hiện thực và đánh giá
Nghiên cứu của Juels and Sudan đã được đề tài hiện thực trên nền tảng Android 4.2.2 và JDK 1.7 sử dụng thư viện Google Zxing để hỗ trợ cho việc xử lý Reed-Solomon code
Đánh giá: nghiên cứu của Juels và Sudan đã khắc phục được điểm yếu của mô
hình Small Secure Sketch khi sử dụng mã Reed Solomon thay thế cho giải thuật giải phương trình thuần túy Điều này làm cho độ lớn của tập set không ảnh hưởng nhiều đến độ chính xác của giải thuật
Kết luận: phương pháp sửa lỗi trình bày trong Fuzzy Vault là phương pháp rất
tốt để xử lý “nhiễu thay thế” và có thể kết hợp với một phương pháp giải quyết “nhiễu giá trị” để tạo nên một bộ sửa lỗi hoàn chỉnh Phương pháp này cũng là phương pháp
mà đề tài sử dụng để xử lý nhiễu thay thế
Trang 39và dễ sử dụng Mô hình use case của hệ thống được thể hiện như sau
Hình 4 Mô hình User Case hệ thống
Hệ thống có 1 actor là User User là người tương tác với hệ thống và có các chức năng:
Đăng kí đặc trưng sinh trắc của User
Xác thực đặc trưng sinh trắc của User
Thay đổi đặc trưng sinh trắc của User sau khi đăng kí
Mã hóa và giải mã tập tin trên Smartphone
Thay đổi cài đặt và cấu hình của hệ thống
Trang 40Các use case của hệ thống bao gồm:
hình khuôn mặt của bản thân, hệ thống xử
lý và lưu lại các thành phần cần thiết của đặc trưng
nhập để người dùng đăng nhập Đặc trưng sinh trắc được lưu
Bảng 2 Mô tả Use Case Enroll đăng ký
Usecase Authenticate
với đặc trưng sinh trắc đã đăng kí
hình khuôn mặt của bản thân, hệ thống xử
lý và so sánh với dữ liệu được lưu để xác thực người dung
duyệt file sau khi đăng nhập thành công