Giới thiệu
Sinh trắc học đã và đang được sử dụng rất rộng rãi để thay thế cho việc xác thực bằng mật khẩu truyền trống khiến việc xác thực trở nên đơn giản hơn, không yêu cầu người dùng phải nhớ quá nhiều Khi mà máy tính ngày càng có khả năng xử lý tốt hơn trước, nhiều phương pháp để bẻ khóa mật khẩu của người dùng được thực hiện và mật khẩu bằng kí tự dù cho có phức tạp hơn nhiều cũng không tránh khỏi nguy cơ này.
Và hệ lụy khi người dùng bị ăn cắp mật khẩu là rất lớn Các đặc trưng sinh trắc cũng vậy, nếu kẻ gian có thể lấy được mẫu đặc trưng sinh trắc gốc của người dùng thì nó sẽ mang lại nhiều rủi ro như ăn cắp định danh, ăn cắp thông tin, sử dụng thông tin thu được để thực hiện các hành vi lừa đảo, gây hại cho bản thân người dùng đó cũng như người khác Chính vì thế, trong hệ thống xác thực bằng sinh trắc học thì việc bảo mật được mẫu sinh trắc là vô cùng cần thiết.
Nhiều phương pháp, mô hình đã được xây dựng, tìm hiểu để bảo vệ mẫu sinh trắc trong quá trình xác thực, để hacker không thể lấy được thông tin gì, hoặc dù mẫu có bị lộ ra thì hacker cũng không thể lợi dụng được Vì mong muốn được hiểu về cách mà việc bảo mật mẫu sinh trắc được thực hiện mà tôi đã quyết định chọn đề tài để tìm hiểu và nghiên cứu là:Xây dựng hệ thống xác thực bằng đặc trưng khuôn mặt có bảo vệ mẫu sinh trắc.
Nội dung và mục tiêu
Luận văn này trình bày cho người đọc những kiến thức cơ bản và chuyên sâu về một hệ thống xác thực từ xa có bảo vệ đặc trưng sinh trắc, và việc nghiên cứu được thực hiện tập trung vào quá trình mà mẫu sinh trắc được biến đổi trong quá trình sử dụng của hệ thống, đồng thời phân tích các đặc điểm cũng như mức độ hiệu quả của hệ thống đó.
Các mục tiêu được đặt ra khi bắt đầu thực hiện đề tài:
• Phân tích và thiết kế hệ thống xác thực bằng đặc trưng sinh trắc khuôn mặt.
• Tìm hiểu và hiện thực phương pháp rút trích đặc trưng khuông mặt để cho quá trình xác thực.
• Tìm hiểu và hiện thực một phương pháp lai để mã hóa dữ liệu sinh trắc.
• Hiện thực quá trình xác thực với mẫu sinh trắc được mã hóa.
• Thực hiện đánh giá mức độ hiệu quả của hệ thống cũng như phương pháp được sử dụng.
Những lý thuyết phải tìm hiểu:
• Kỹ thuật tiền xử lý ảnh
• Kỹ thuật rút trích vector đặc trưng sinh trắc
• Tổng quan về các phương pháp biến đổi và bảo vệ mẫu sinh trắc
• Kỹ thuật Discriminability Preserving Tranform
• Phương pháp đánh giá độ hiệu quả của hệ thống
Phạm vi đề tài
Hiện tại, phạm vi nghiên cứu của đề tài phần lớn tập trung vào việc xây dựng một hệ thống xác thực bằng gương măt có sử dụng các phương pháp để bảo mật mẫu, nhằm đánh giá mức độ hiệu quả của giải thuật đưa ra cũng như hiệu suất của hệ thống Đề tài này sẽ không tập trung vào các vấn đề nghiệp vụ của hệ thống và một số thành phần khác không liên quan tới đề tài như mã hóa, hash, , và cũng không cố gắng xây dựng một hệ thống hoàn chỉnh vì đây là quá trình lâu dài cần nhiều kỹ thuật và kinh nghiệm hơn trong việc thiết kế và lập trình Bên cạnh đó điều kiện thời gian và nguồn lực cũng không cho phép có thể làm được.
Hơn nữa đây chỉ là một đề tài nhỏ thiên về hướng nghiên cứu, tìm hiểu cho cá nhân sinh viên thực hiện nó nên sẽ không cố gắng làm một hệ thống hoàn chỉnh đưa vào ứng dụng thực tế mà chỉ làm một demo nhỏ để kiểm chứng hệ thống hoạt động như thế nào mà thôi.
Cấu trúc báo cáo
Bảng 1:Cấu trúc báo cáo Chương 1: Giới thiệu đề tài Thông tin chung về đề tài, các nội dung cần tìm hiểu và thực hiện cũng như phạm vi đề tài thực hiện.
Chương 2: Cơ sở lý thuyết Cơ sở lý thuyết áp dụng vào hệ thống, các vấn đề, ứng dụng vào hệ thống.
Chương 3: Hệ thống đề xuất Dựa vào cơ sở lý thuyết đã nêu, đề xuất hệ thống hoàn chỉnh. Chương 4: Hiện thực hệ thống Hiện thực hệ thống đề xuất bằng ngôn ngữ lập trình đã nêu.
Chương 5: Kết quả và đánh giá Chạy thử nghiệm hệ thống, phân tích kết quả thu được.
Chương 6: Kết luận và hướng phát triển
Kết luận lại kết quả thu được và hướng phát triển trong tương lại.
Tham khảo Thông tin tham khảo
Sinh trắc học
Định nghĩa
Sinh trắc học là công nghệ sử dụng những thuộc tính vật lý, đặc điểm sinh học riêng của mỗi các nhân như vân tay, mống mắt, khuôn mặt, để nhận diện Có hai loại sinh trắc chính là:
• Sinh trắc vật lý: Các sinh trắc thường liên quan đến đặc điểm của cơ thể như gương mặt, vân tay, giọng nói,
• Sinh trắc hành vi: Các sinh trắc hành vi thường liên quan tới hành vi của con người như chữ kí, dáng đi, thói quen,
Sinh trắc học được sử dụng trong khoa học máy tính như là một hình thức xác thực và kiểm soát truy cập.
Nó cũng được dùng để xác định xác cá nhân trong nhóm đang được giám sát với tính chất không thể chia sẻ, khó giả mạo, không bị mất hay lấy cắp.
Hình 1:Minh họa về sinh trắc học (Nguồn: Internet)
Các phương pháp sinh trắc học phổ biến hiện nay như:
• Khuôn mặt: Những hình ảnh tĩnh hoặc đông của khuôn mặt được dùng để nhận dạng Phương pháp trích xuất dựa trên vị trí, hình dạng và những mối quan hệ giữa các đặc điểm trên khuôn mặt như mắt,mũi, cằm, môi, Nhưng việc xác thực khuôn mặt có thể gặp khó khăn do gương mặt có thể thay đổi theo thời gian.
Hình 2:Xác thực sinh trắc dựa trên khuôn mặt (Nguồn: Internet)
• Dấu vân tay: Đặc trưng này được sử dụng phổ biến hiện nay do độ tin cậy của nó vì vân tay của một người không bao giờ thay đổi Có nhiều phương pháp rút trích dấu vân tay nhưng đa số là dựa trên nhưunxg đặc điểm của các nếp gấp, hình dạng của các đường vân, Hiệu suất của các hệ thống sử dụng phương pháp này thường cao và chính xác.
Hình 3:Xác thực sinh trắc dựa trên dấu vân tay (Nguồn: Internet)
• Tròng mắt: Là màng nhỏ có màu hình tròn bao bọc con ngươi và đủ phức tạp để có ích trong việc nhận dạng Hiệu suất của hệ thống sử dụng phương pháp này có nhiều triển vọng nhưng tròng mắt lại thay đổi theo thời gian và các loại cảm biến để lấy tròng mắt còn gặp nhiều nhiễu khi sử dụng.
Hình 4:Xác thực sinh trắc dựa trên tròng mắt (Nguồn: Internet)
• Giọng nói: Giọng nói kết hợp trực tiếp với các đặc tính sinh trắc và hành vi Âm thanh do con người tạo ra dựa trên nhiều yếu tố vật lý của cơ thể (miệng, mũi, môi, thanh quản, ) và chịu tác động bởi tuổi tác, cảm xúc, ngôn ngữ, cộng đồng xung quanh và sức khỏe Chính vì có quá nhiều biến số nên việc xác thực bằng giọng nói chưa đạt được mức độ tin cậy cao.
Hình 5:Xác thực sinh trắc dựa trên giọng nói(Nguồn: Internet)
• Chữ ký: Đây là một dạng thuộc loại sinh trắc học hành vi và được sử dụng rộng rãi trong cuộc sống hằng ngày Nhưng chữ kí lại dễ dàng thay đổi và phụ thuộc vào ý muốn con người nên việc giả mạo cũng dễ dàng hơn Chính vì vậy các hệ thống thông tin không tin dùng loại sinh trắc này.
Hình 6:Xác thực sinh trắc dựa trên chữ kí (Nguồn: Internet)
Đặc tính
Để có thể được áp dụng đặc trưng sinh trắc và hệ thống thì mẫu sinh trắc đó cần có các đặc tính sau[1]:
• Tính rộng rãi:Là tính chất cho biết đa số mọi người đều có đặc trưng này.
• Tính phân biệt: Là tính chất thể hiện rằng đặc trưng sinh trắc giữa hai người khác nhau bất kì phải khác nhau, nhằm đảm bảo tính duy nhất của chủ thể sinh trắc.
• TÍnh ổn định:Là tính chất mà đặc trưng sinh trắc phải có tính ổn định trong một thời gian tương đối dài.
• Tính dễ thu thập: Là tính chất cho thấy đặc trưng sinh trắc có thể dễ dàng thu thập, kiểm tra tính xác thực để nâng cao tính khả thi trong xác thực.
• Tính hiệu quả:Là tính chất mà việc xác thực sinh trắc phải chính xác, nhanh chóng và mức sử dụng tài nguyên được chấp nhận.
• Tính chấp nhận được: Là tính chất thể hiện quá trình thu thập mẫu sinh trắc phải được sự đồng ý của người dùng.
• Tính chống giả mạo: Là tính chất ưu việt của việc sử dụng đặc trưng sinh trắc tránh khỏi việc bị giả mạo.
Mỗi loại đặc trưng sinh trắc có nhưng điểm mạnh và điểm yếu riêng Tuy nhiên không một đặc trưng sinh trắc nào thỏa mãn được đầy đủ và tốt tất cả các đặc tính trên Qua quá trình nghiên cứu thì các chuyên gia đã đưa ra bảng so sánh khái quát về các đặc trưng sinh trắc dựa trên các tiêu chuẩn trên.
Bảng 2: So sánh một số dạng đặc trưng sinh trắc Sinh trắc học Vân tay Khuôn mặt Vân bàn tay Mống mắt Giọng nói
Trong đó: H (High - Cao), M (Medium - Trung bình), L (Low - Thấp).
Những phương pháp xác thực truyền thống (dựa trên mật khẩu hay kí hiệu) thì quá dễ bị phá vỡ Những phương pháp sinh trắc học là một lựa chọn hợp lý nhưng cũng có những mặt hạn chế Nhưng phương pháp xác thực bằng khuôn mặt đạt được mức tương quan chấp nhận được giữa mức độ tin cậy và tính chấp nhận.
Về nhận diện gương mặt
Giới thiệu
Các giai đoạn phát triển của hệ thống nhận diện gương mặt[11] có thể được chia ra làm 4 khoảng thời gian:
• Giai đoạn từ năm 1966 đến năm 1990:Đây là giai đoạn mà hầu hết các thuật toán nhận diện dựa trên hình học được phát triển Trong giai đoạn này, nhiều nghiên cứu đã được thực hiện nhưng phải đến năm 1988 thì dự án MIT mới phát triển phương pháp PCA, một thành công lớn trong hệ thống nhận diện khuôn mặt Trước đó, hệ thống nhận diện gương mặt được phân tích các đặc điểm dựa trên mắt, mũi, miệng Tuy nhiên, trong giai đoạn này PCA có tỉ lệ lỗi cao do việc xử lý đầu vào chưa được tốt.
• Giai đoạn từ năm 1991 đến năm 1997: Trong thời gian này, những thuật toán quan trọng được đề xuất Năm 1991 Turk và Petland đề xuất thuật toán eigenface và vẫn còn được sử dụng cho đến nay trong các thuật toán nhận diện gương mặt.
• Giai đoạn từ năm 1998 đến năm 2007: Hầu hết các nghiên cứu tập trung vào sự thay đổi độ sáng cũng như căn chỉnh hình ảnh, đặc biệt chú trọng đến các điều kiện trong nhà Trong giai đoạn này, xác định khuôn mặt, căn chỉnh lề, đã được nghiên cứu kĩ lưỡng.
• Giai đoạn từ 2008 cho tới nay: Hầu hết các nghiên cứu tập trung vào các tình huống không kiểm soát được như vị trí khuôn mặt, nét mặt, điều kiện ánh sáng,
Quá trình nhận diện gương mặt
Hình 7:Luồng xử lý thông thường của hệ thống nhận diện gương mặt
Trong mỗi bước sẽ cần các phương pháp xử lý, áp dụng các thuật toán khác nhau Trong quá trình nghiên cứu của tôi, việc tìm hiểu sẽ được bắt đầu từ bước xác định khuôn mặt cho đến khi hoàn tất việc xác thực.
Lý thuyết dưới đây sẽ được thể hiện theo quá trình này.
Xử lý hình ảnh ban đầu
Nguồn ảnh
Trong luận văn này quá trình này được bỏ qua, thay vào đó sử dụng các tập data ảnh gương mặt 2D đã có sẵn để sử dụng trong quá trình Enrollment và Authentication Những hình ảnh này đã được căn chỉnh lề, kích thước.
Có nhiều dạng dữ liệu có thể thu được để phục vụ cho quá trình training, như độ sáng, kích thước, Tùy vào các đặc điểm dữ liệu và mục đích sử dụng mà ta có thể cần căn chỉnh hoặc tận dụng những dạng dữ liệu đó Với mục đích thí nghiệm thì có nhiều tập dữ liệu phổ biến liên quan tới quá trình nhận dạng khuôn mặt, hầu hết các tập dữ liệu đã được chuẩn hóa Do đó việc sử dụng những tập dữ liệu này để phân tích hiệu quả của phương pháp sẽ giúp ích rất nhiều Một số tập dữ liệu phổ biến như:
• AT&T: Tập dữ liệu chứa 125 gương mặt có màu khác nhau Mỗi gương mặt được chụp 16 lần với các mức sáng khác nhau Cơ sở dữ liệu này không chứa bất kì sự thay đổi nào về góc chiếu sáng, hầu hết các gương mặt là dạng trực diện.
Hình 8:Mẫu trong tập dữ liệu AT&T (Nguồn: Internet)
• Yale: Đây là một tập dữ liệu được sử dụng rất phổ biến, tập dữ liệu này chứa 165 bức hình của 15 người khác nhau Hầu hết các bức ảnh được chụp trong điều kiện ảnh sáng và biểu cảm khuôn mặt khác nhau Hạn chế chính của cơ sở dữ liệu này là số lượng hạn chế về người được chụp và hầu hết các khuôn mặt đều là góc chính diện.
Hình 9:Mẫu trong tập dữ liệu Yale (Nguồn: Internet)
• The FERET: Tập dữ liệu này chứa ảnh của hơn 1000 người Được tạo ra bởi FERRET và bổ sung trong khoảng thời gian từ năm 1993 tới năm 1997 Tập dữ liệu này chứa hơn 14000 bức ảnh Những thông tin khác không được cung cấp.
Hình 10:Mẫu trong tập dữ liệu FERET (Nguồn: Internet)
• The Face94: Tập dữ liệu gồm hình ảnh của 153 người, mỗi người 20 bức ảnh Trong đó có 20 người là nữ, 113 người là name và 20 người là "nhân viên nam" Tập ảnh này được chụp trên nền xanh và mức độ sai khác về vị trí trong mỗi bức ảnh là nhỏ và không có sự sai khác về độ sáng trong ảnh Trong luận văn này tôi sử dụng tập dữ liệu này để kiểm tra hệ thống.
Hình 11:Mẫu trong tập dữ liệu face94 (Nguồn: Internet)
Xác định gương mặt
Xác định gương mặt là quá trình với mỗi hình ảnh đưa vào, máy tính sẽ xác định được khuôn mặt và vùng mong muốn Đây là một vấn đề nhị phân khi một vùng được xác định chứa gương mặt và những vùng còn lại thì không và là bước xử lý ban đầu trước khi ảnh được dùng cho quá trình nhận diện gương mặt.
Hình 12:Xác định gương mặt có trong ảnh với Cascade Classifier
Một trong những thuật toán xác định gương mặt nổi tiếng nhất làViolas & Jones Thuật toán của họ sử dụng đặc trưngHaar-Like,Adaboosttrong việc lựa chọn đặc trưng và bộ phân loại tầng để xác định gương mặt Dựa trên phương pháp này, OpenCV đã phát triển một bộ phân loại nhận diện gương mặt, thường được biết tới với cái tên Cascade Classifier[9] Ví dụ như ‘haarcascade_frontalface_default.xml‘ là một trong những bộ phân loại phổ biến nhất, đang được sử dụng rộng rãi để xác định mặt trước của gương mặt người.
Tiền xử lý ảnh
Quá trình này bao gồm các thao tác nhằm xử lý ảnh cơ bản như điều chỉnh độ sáng, kích thước, để tránh ảnh hưởng lớn tới quá trình đánh giá và thực hiện thuật toán Có nhiều thao tác có thể được sử dụng để xử lý hình ảnh ban đầu, dưới đây tôi sẽ giới thiệu về quá trình giảm bớt ảnh hưởng của điều kiện ánh sáng để các phương pháp trích xuất đặc trưng hoạt động tốt và chính xác hơn Có một số cách để giải quyết vấn đề này, và 2 phương pháp được sử dụng phổ biến là: Cân bằng Histogram và chuẩn hóa độ sáng.
• Cân bằng Histogram [8]: Là sự điều chỉnh histogram về trạng thái cân bằng, làm cho phân bố giá trị pixel không bị co cụm tại một khoảng hẹp mà được "kéo dãn" ra Giả sử ta X là một bức ảnh xám vớir k là mức xám của ảnh với số lượngn k Biểu đồ mức xám chưa chuẩn hóa sẽ làh(r k ) =n k k= 0,1, , L−1 với L là số mức xám Thì biểu đồ đã chuẩn hóa sẽ được tính như sau:p(r k ) = h(r M N k ) = M N n k với M, N là chiều dài và chiều rộng của ảnh.
Hình 13:Ví dụ về cân bằng Histogram (Nguồn: Internet)
• Chuẩn hóa độ sáng[12]: Sau khi được cân bằng Histogram, một điều cần thiết là giảm sự thay đổi của độ sáng Việc chuẩn hóa này sẽ giúp hình ảnh sắc nét, khác biệt và không bị nhiễu khi trích xuất đặc trưng sinh trắc Trong phương pháp này, hình ảnh được chuẩn hóa bằng cách thiết lập giá trị trung bỡnh (à) và độ lệch chuẩn (σ) của giỏ trị điểm ảnh tương ứng là 0 và 1 Trước tiờn giỏ trị trung bỡnh và độ lệch chuẩn được tính toán sau đó quá trình chuẩn hóa được tính toán.
Hình 14:Ví dụ về chuẩn hóa độ sáng
Tuy nhiên, trong luận văn này này sử dụng phương pháp trích xuất đặc trưng là Fisherface, phương pháp này không chịu ảnh hưởng bởi cường độ sáng trong ảnh nên quá trình hiện thực giải thuật không sử dụng phương pháp trên.
Trích xuất đặc trưng
Trích xuất đặc trưng là một kĩ thuật sử dụng thuật toán để trích chọn những thông tin mang đặc điểm riêng biệt của mỗi người Dưới đây tôi sẽ nói về 2 kĩ thuật được dùng để trích xuất đặc trưng khuôn mặt là PCA và FisherFace.
Phân tích thành phần chính (Principal Component Analysis – PCA[3]) là một trong những phương pháp phân tích dữ liệu nhiều biến đơn giản nhất Phương pháp PCA được phát minh vào năm 1901 bởi Karl Pearson. Phương pháp này thường dùng để giảm số lượng biến và hiệu quả nhất khi tập dữ liệu ban đầu có sự dư thừa, trùng lặp Kết quả của phương pháp này cho ta số lượng biến nhỏ hơn mà ta gọi chúng là các thành phần chính. Đối với các dữ liệu cần phân tích ban đầu phụ thuộc vào nhiều biến, các biến này thường có tương quan với nhau Điều đó sẽ gây nên sự bất lợi cho việc xây dựng các mô hình tính toán khi dựa trên các biến này, và với số lượng biến quá lớn chúng ta sẽ rất khó để có cái nhìn trực quan về dữ liệu. Để khắc phục điều này, phương pháp PCA sẽ biễu diễn lại dữ liệu lên một không gian mới có cơ sở trực giao, tức là nếu ta xem mỗi cơ sở trong không gian mới là một biến thì hình ảnh của dữ liệu gốc trong không gian mới này sẽ được biểu diễn thông qua các biến độc lập tuyến tính Một vấn đề phát sinh ở đây chính là nếu chuyển dữ liệu ban đầu sang không gian mới thì những dữ liệu quan trọng, đáng quan tâm của dữ liệu ban đầu liệu có bị mất theo hay không? Để giải quyết vấn đề này, phương pháp PCA sẽ tìm không gian mới với tiêu chí cố gắng phản ánh được càng nhiều dữ liệu gốc càng tốt Không gian tốt nhất với số chiều nhỏ nhất được xác định bởi những “thành phần chính” tốt nhất Thước đo để tìm ra các “thành phần chính” tốt nhất chính là phương sai Do các biến cơ sở của không gian mới độc lập, nên ta có thể dễ dàng tính toán phương sai của từng biến đối với dữ liệu, chính điều này giúp ta có thể lựa chọn các biến hợp lý để mô tả dữ liệu mà vẫn dữ được các thông tin chính quan trọng của tập dữ liệu đó.
Nói một cách ngắn gọn, mục tiêu của PCA là tìm một không gian mới (với số chiều nhỏ hơn không gian cũ) Các trục tọa độ trong không gian mới được xây dựng sao cho trên mỗi trục, độ biến thiên của dữ liệu trên đó là lớn nhất có thể.
Hình 15:Ví dụ về phương pháp PCA (Nguồn: Internet)
Như trong hình trên, phía bên trái ta thấy rằng tập dữ liệu ban đầu được phân bổ trên nhiều chiều thì sau khi áp dụng PCA thì chỉ còn lại một không gian 2 chiều mà thôi (số chiều nhỏ hơn so với không gian cũ). Ưu điểm chính của PCA được sử dụng vào trong cách tiếp cận Eigenface, giúp ích trong việc giảm kích thước của cơ sở dữ liệu để nhận dạng hay xác thực một hình ảnh thử nghiệm nào đó Các hình ảnh được lưu trữ thông qua vectơ đặc trưng của chúng trong cơ sở dữ liệu được tạo ra bằng cách chiếu chúng vào không gian Eigenface thu được khi tính toán tập huấn luyện PCA được áp dụng vào cách tiếp cận Eigenface để làm giảm số chiều của một tập dữ liệu lớn.
Cách tiếp cận Eigenface Đây là phương pháp thích hợp và hiệu quả trong nhận dạng/xác thực khuôn mặt bởi sự đơn giản, nhanh chóng và khả năng học tập của nó Eigenface là một tập các vectơ được sử dụng trong các vấn đề về thị giác máy tính như trong nhận dạng khuôn mặt hay xác thực con người Eigenface có thể được coi là thành phần chủ yếu của phân phối khuôn mặt, các eigen vector của ma trận hiệp phương sai (covariance) của tập hình ảnh khuôn mặt, nơi mà hình ảnh NxN pixel được coi là một điểm trong không gianN 2 chiều.
Mỗi hình ảnh khuôn mặt có thể được đại diện xấp xỉ bằng sự kết hợp tuyến tính của các vector trong tập Eigenface, và các vector hệ số chính là vector đặc trưng của khuôn mặt hiện tại Số lượng tối đa của các vector trong tập Eigenface bằng với số hình ảnh khuôn mặt trong tập huấn luyện Như vậy, bằng cách sử dụng tập Eigenface tốt nhất, ta sẽ có được hình ảnh tương đương với khuôn mặt ban đầu Càng sử dụng tập Eigenface với số lượng vector nhỏ, thì hiệu quả tính toán sẽ càng cao. Ý tưởng chính của cách tiếp cận Eigenface
Giả sửΓlà một vectorN 2 ×1, tương ứng với một khuôn mặtN×N Ý tưởng của phương pháp là biểu diễn Γ (Φ = Γ−M ean_F ace) trong không gian mới có chiều là K nhỏ hơn không gian ban đầu: Φ =w1u1+w2u2+ +wKuK (K rs thìD2(f(v), f(Ms))> hs Thuộc tính này đảm bảo rằng nếuv không thuộc vào lớpΩsthì sau khi chuyển đổi, vcũng không thuộc vào lớpΩs (Tiêu chí 2 như đã đề cập). Để dễ dàng trong quá trình tìm hiểu về phương pháp này, trước tiên ta cần các giả định như sau:
• Giả sử rằng tập dữ liệu training CT cóclớp{Ω1,Ω2, ,Ωc}có tâm tương ứng là{M1, M2, , Mc}.
• Với mỗi lớpΩ s (s= 1,2, , c), gọir s là khoảng cách lớn nhất giữa các điểm dữ liệu trongΩ s với tâm làM s
• Để xác định được các điểm phân biệt cho lớpΩ s chúng ta cần tập dữ liệu để đánh giá, ở đây sẽ là tập dữ liệu C T −Ω s ={x∈C T |c /∈Ω s }.
Thì phương pháp chuyển đổi DP bao gồm 2 bước Trước tiên ta cần phân cụm dữ liệu trong tập CT −Ωs để làm cơ sở tính toán các điểm phân biệtBi Sau đó, với mỗi cụm thu được, việc tính toán các điểmBi và ngưỡngti cho cụmΩssẽ được thực hiện Sau khi các giá trị này được tính toán thì ta đã có thể dùng nó để phân biệt giữaΩsvà tậpCT −Ωs Cụ thể như sẽ được đưa ra dưới đây.
Phân cụm dữ liệu trong tập CT−Ωs
Hình 27:Minh họa về quá trình phân cụm (Nguồn: Internet)
Thông thường trong quá trình phân cụm thì một hàm tính khoảng cách không gian như Euclidean được sử dụng Tuy nhiên xem xét trường hợp như hình dưới đây:
Hình 28:Sử dụng phép đo định hướng trong quá trình phân cụm (Nguồn: Internet)
Ta thấy rằng g 1 và g 2 là 2 cụm có được bằng cách sử dụng phép đo không gian, chúng có vị trí khác nhau nhưng lại thuộc cùng một hướng với Ω s Và vì là 2 cụm được tìm thấy nên sẽ có 2 điểm phân biệt được chọn Tuy nhiên có thể thấy rằng, như trong hình thì chỉ cần 1 điểm B 1 là đã đủ để phân biệt 2 cụmg 1 vàg 2 đối vớiΩ s Vì thế, trong phép chuyển đổi DP, phép đo định hướng sẽ được sử dụng. Để thực hiện phép đo này, chúng ta sử dụngM s như một điểm gốc và mỗi mẫu P j trong tậpC T −Ω s sẽ được biểu diễn bằng một vector đơn vịej sử dụng công thức sau: e j = P j −M s
||Pj−Ms|| , j={1,2, , p} vớiplà số lượng mẫu có trong tậpC T −Ω s
Chúng ta xác định k hướng tương ứng từpvector đơn vị đã tính toán ở trên (p≫k) với góc tách lớn nhất Có nghĩa là, trước tiên ta xác định hướngem 1 với góc lớn nhất so với các vector đơn vị khác Sau đó xác địnhem 2 có góc lớn nhất vớiem 1 ,em 3 có góc lớn nhất vớiem 1 vàem 2 , Quá trình này có thể được thực hiện bởi thuật toán Spherical K-Means[16] Sau quá trình này chúng ta thu được kvector em i (i∈ (1,2, , k), sử dụng k vector này, mỗi vector ej sẽ được phân vào một trong k nhóm dựa trên khoảng cách gần nhất của vectorej vàem i Sau quá trình này, ta thu đượck nhóm{G1, G2, , Gk} tương ứng vớik vector đơn vị{em 1 , em 2 , , em k }.
Xác định cặp{B i , t i } cho mỗi cụm G i
Bước này nhằm xác định vị trí của các điểm phân viện ứng với mỗi hướng e m i ta đã tìm được phía trên và giá trị ngưỡng tương ứng.
Vị trí của điểm phân biệt thứitrên vector đơn vịem i được tính bằng công thức:
Bi=Ms+aiem i (1) vớia i là một tham số được dùng để điều chỉnh vị trí củaB i trên vectore m i Do đó, giá trị củaa i có thể là dương hoặc âm Xét các trường hợp giá trị dấu củaa i :
Hình 29:Vị trí của điểm phân biệt đối với vectorem i khiai0
Trong trường hợp này B i M s và e m i ngược hướng với nhau Và giá trị ngưỡng t i sẽ được tính bằng công thức: t i =|B i M s | −r s (2)
Tổng hợp lại hai trường hợp thì ta có: t i =|ai−r s | Vấn đề còn lại là cách xác định được giá trị củaai Ở đây, ai sẽ được xác định như sau: ai=±(2 +ϵi)β, i={1,2, , k} (3) Với:
• ϵi là một giá trị ngẫu nhiên trong khoảng[0,1]
Dựa vào điều kiện trên thì giá trị củaai sẽ nằm trong khoảng[2β,3β].
Chúng ta cần chứng minh phương pháp thỏa mãn các tính chất của phép chuyển đổi DP đã nêu Trước hết ta kí hiệu thêm:
• P j ∈(C T −Ω s ): Mẫu có thể hủy bỏ trong tập dữ liệu ngoài tập đang xét Với j ={1,2, , p}và q là số lượng mẫu có trong (CT −Ωs).
• Ql∈Ωs: Mẫu có thể hủy bỏ trong tập dữ liệu đang xét (thuộc cùng một lớp) Vớil={1,2, , q}và q là số lượng mẫu có trongΩs.
Giả sử rằng cặp giá trị(Bi, ti)chuyển các điểm Pj,QlvàMsthành các giá trị nhị phân bP,bQ,bM tương ứng Chúng ta cần chứng minh rằngbP ̸=bM vàbQ=bM Chúng ta sẽ xem xét trong 2 trường hợp khi mà điểmBiMsvà vectorem i cùng hướng và ngược hướng.
Trường hợp BiMs và em i cùng hướng
Hình 31:Trường hợpBiMsvàem i cùng hướng Ở trường hợp này, điểm phân biệt Bi nằm ngược phía với em i (như hình trên, lúc này ai ≤ 0) và ti =|BiMs|+rs Với mỗi mẫu có thể hủy bỏPj trong tậpGi vàQltrongΩs, kí hiệuθj là góc giữaBiMs vàMsPj Vì ta đã giả định phân phối các lớp trong cụmCT −Ωslà hình cầu, do đó giá trị của gócθj cần phải thỏa mãn điều kiện sau: cosθ j > r s
Và khoảng cách từ các điểm phân biệtB i vàP j có thể được viết thành:
Tương tự, khoảng cách giữa các điểmBi, Ql vàMscó thể được viết thành:
|BiQl| ≤ |BiMs|+|QlMs| ≤ |BiMs|+rs=ti và
|B i M s | t i ,|B i M s | ≤t i và|B i Q l | ≤t i Vì thế, sử dụngB i làm điểm phân biệt,P j ,
Ms vàQl đã được chuyển thành các bitbP = 1,bM = 0vàbQ= 0tương ứng Có nghĩa là các mẫu trong
Ωs đã được chuyển về cùng một giá trị bit bằng 0, trong khi các mẫu không thuộc vềΩs thì được chuyển thành giá trị bit bằng 1.
Trường hợp B i M s và e m i ngược hướng
Hình 32:Trường hợpBiMs vàem i ngược hướng
Fuzzy Commitment Scheme
Fuzzy Commitment[15] là một trong những phương pháp đầu tiên bảo vệ mẫu sinh trắc bằng phương pháp mã hóa Phương pháp này dựa trên ý tưởng của hàm sửa lỗi trong ECC, chính vì vậy nên mỗi loại hàm sửa lỗi thì mô hình này sẽ khác đi một chút Ví dụ hàm sửa lỗi kiểu số Integer thì hàm binding không thể là phép XOR mà phải dùng phép tính khác (+,-, ), còn trên kiểu số Binary thì hàm binding là phép XOR và giải thuật sửa lỗi phải áp dụng được với kiểu số đó.
Phương pháp này sẽ nhận mẫu nhị phân làm tham số, tiến hành biến đổi dựa trên chuỗi ECC và cuối cùng lưu trữ lại mẫu bảo mật dưới dạng một chuỗi Hash.
2.4.6.2 Cơ sở lý thuyết Ý tưởng chính của phương pháp này là dựa trên sự phát triển của mã sửa lỗi (Error Correcting Code - ECC), trong quá trình mã hóa sinh trắc, độ nhiễu trongECC được áp dụng cho độ lệch của mẫu sinh trắc tác dụng lên một khóaktrước đó Độ nhiễu sinh trắc này sinh ra có thể do đường truyền hoặc do quá trình trích xuất mẫu.
Hình 33:Sơ đồ ý tưởng của phương pháp Fuzzy-Commitment
Như một ví dụ ở hình phía trên, mẫu sinh trắc T ′ không giống hoàn toàn với T nhưng dựa vào khả năng sửa lỗi của phương pháp mà kết quả khóa k thu được đều như nhau Phương pháp này có cốt lõi làECC, tùy thuộc vào giải thuậtECCthì sẽ có các cải biến của phương pháp Fuzzy-Commitment.
Về ECC, trong hệ thốngECC gồm có các thành phần chính sau:
• Hàmg()có chức năng ánh xạ mẫu vào một codeword nào đó.
• Hàmf()có chức năng thu lại khóa từ một chuỗi gần với codeword được sử dụng trước dó.
Trong hệ thống thực tế, quá trình này sẽ được diễn ra như sau:
• Trong pha đăng kí: Người dùng cung cấp mẫu sinh trắcT cho server, server sẽ chọn ngẫu nhiên một codewordcvà thực hiện phép tínhδ=T⊕c, sau đó server sẽ lưu cặp giá trị(δ, Hash(C))và database.
• Trong pha xác thực: Người dùng sẽ cung cấp một mẫu sinh trắcT ′ , server nhận giá trị này và sẽ tính toánc ′ =T ′ ⊕ Giá trịc ′ sau đó được xử lý, thông qua hàm Hash và so sánh với giá trị Hash(c)đang có trên server Nếu cùng là một thì có thể xác nhận T ′ và T là cùng 1 người và quá trình xác thực thành công và ngược lại.
Hình 34:Sơ đồ hệ thống xác thực sử dụng Fuzzy-Commitment
Cho phép hệ thống hoạt động mà không lưu trực tiếp mã sinh trắc của người dùng trên server Điều này sẽ ngăn chặn được các hành vi tấn công bên trong Đồng thời với phương pháp này, sẽ hạn chế sự tác động của nhiễu trong quá trình truyền, trích xuất mẫu sinh trắc đến việc xác thực.
2.4.6.4 Vai trò Đây là phương pháp mã hóa bảo mật được sử dụng trong hệ thống Phương pháp này được sử dụng với mmục đích để bảo vệ mẫu nhị phân thu được trong bước 2 Bằng cách biến đổi thành mẫu bảo mật và được lưu dưới dạng mã hash sẽ đảm bảo mẫu không bị xâm phạm, hoặc nếu có bị đánh cắp thì kẻ tấn công cũng không thể nào truy ngược được lại mẫu sinh trắc ban đầu.
Trong phương pháp lai thì Fuzzy-Commitment là bước cuối cùng Tuy nhiên bởi vì quá trình chuyển đổi
DP đã đảm bảo các mẫu có thể hủy bỏ của cùng một người được đưa về cùng một mẫu nhị phân Do đó quá trình Fuzzy-Commitment được sử dụng ở đây không phải sử dụng khả năng sửa lỗi Do đó sẽ có chút khác biệt so với lý thuyết phía trên.
Việc áp dụng sẽ khác nhau đối với giai đoạn đăng kí và xác thực, như sau:
Trong giai đoạn đăng kí:
• Bước 1: Tạo ngẫu nhiên một chuỗi nhị phân Ccó cùng độ dài vớiw.
• Bước 2: Thực hiện phép tínhδ=w⊕C vàHash(C).
• Bước 3: Lưu cặp giá trị(δ, Hash(C))để sử dụng trong quá trình xác thực.
Trong giai đoạn xác thực:
• Bước 1: Lấy dữ liệu về cặp giá trị (δ, Hash(C))được lưu ở database.
• Bước 2: Từ mẫu nhị phân truy vấn w ′ , thực hiện phép tínhC ′ =δ⊕w ′
• Bước 3: So sánh giá trịHash(C ′ )và giá trịHash(C)lưu trong database Nếu giá trị này trùng khớp thì quá trình xác thực là đúng người, còn ngược lại không.
Mô tả hệ thống
Về lý thuyết hệ thống sẽ sử dụng 3 phương pháp bảo vệ mẫu sinh trắc đã đề cập trong phần lý thuyết là: Random Projection, Discriminability Preserving Transform và Fuzzy Commitment, những phương pháp này sẽ đảm bảo các yếu tố bảo mật mẫu như sau:
• Tính an toàn (Security): Quá trình chuyển đổi mẫu sử dụng Random Projection gần như là dạng một chiều, điều này vừa đảm bảo hệ thống không sử dụng trực tiếp mẫu sinh trắc mà còn giúp mẫu được bảo mật tốt hơn Sau đó mẫu lại được biến đổi dựa trên phép chuyển DP, một phép biến đổi phi tuyến nhằm tạo ra mẫu nhị phân, việc biến đổi này giúp việc bảo vệ tốt hơn Và với Fuzy-Commitment, thì đây là một phương pháp không thể truy ngược được vì giá trị được lưu lại dưới dạng hash, không thể truy ngược lại được Bằng cách sử dụng 3 phương pháp, việc cấu trúc lại mẫu sinh trắc gốc từ mẫu bảo mật là rất khó.
• Tính đa dạng (Diversity): Bước thứ nhất và thứ 2 của phương pháp này thuộc về phương pháp bảo vệ mẫu biến đổi đặc trưngvà dựa nhiều các giá trị ngẫu nhiên và tập dữ liệu training Do đó không thể trùng lặp giữa các hệ thống.
• Tính hủy bỏ (Revocability): Người dùng dễ dàng thay đổi mã sinh trắc trong hệ thống bằng cách thay đổi ma trận chiếu trong bước Random Projection.
Về hiện thực sau khi có được khuôn mặt người dùng đăng kí, hệ thống sẽ tiền xử lý ảnh khuôn mặt.
Từ đó tiến hành rút trích để thu được vector đặc trưng Phương pháp rút trích đặc trưng được sử dụng trong luận văn này là Fisherface Sau khi thu được đặc trưng sinh trắc, mẫu sinh trắc sẽ được đưa vào hệ thống bảo mật nhiều bước được đề xuất bao gồm 3 giai đoạn là Random Projection, Discriminability Preserving Transform và Fuzzy Commitment Những thông tin sau quá trình xử lý và mã hóa mẫu này sẽ được lưu để làm cơ sở dùng cho quá trình xác thực và được lưu vào database của server Thông tin được lưu bao gồm mã hash của codeword được chọn và giá trị của phép XOR giữa codeword và mẫu nhị phân được tạo ra từ mẫu sinh trắc ban đầu của người dùng Trong quá trình xác thực, mẫu được đưa vào các bước tương tự như trong quá trình đăng kí, nhưng thao tác trong mỗi bước sẽ khác nhau, và cuối cùng, hệ thống sẽ tạo ra mẫu nhị phân từ mẫu sinh trắc người dùng đưa vào, thực hiện các phép XOR và hash để tính toán được giá trị sau cùng Giá trị này sẽ được so sánh với dữ liệu hash của code- word được lưu trong database của server Nếu chúng tương đồng thì việc xác thực trả về là đúng và ngược lại.
Mẫu sinh trắc sau khi được trích xuất sẽ được biến đổi 3 lần cho tới khi được dùng để xác thực Các quá trình này vừa làm thay đổi mẫu sinh trắc ban đầu, vừa giúp cho mẫu được bảo mật tốt hơn, khó bị lợi dụng bởi kẻ tấn công hơn.
Chi tiết hệ thống
Enrollment Phase
Hình 36:Quá trình đăng kí
Quá trình này được thực hiện ở client theo các bước sau:
• Bước 1: Các hình ảnh gương mặt của người dùng (đã được tiền xử lý) được đưa vào hệ thống (T) và được xử lý để lấy đặc trưng sinh trắc bằng phương pháp Fisherface để được mẫu đặc trưng sinh trắcu.
• Bước 2: Một ma trận chiếu ngẫu nhiên (Random Projection)Rsẽ được tạo với kích thước cho trước.
Ma trận này sẽ được lưu lại ở client.
• Bước 3: Với ma trận chiếuR, các đặc trưng sinh trắcusẽ được chuyển đổi thành các mẫu có thể hủy bỏv.
• Bước 4: Mẫuv sẽ được gửi lên và xử lý phía server.
Phía server quá trình xử lý sẽ được thực hiện như sau:
• Bước 1: Dữ liệuCT được sử dụng, áp lên các mẫu có thể hủy bỏ trongvđể thu được các điểm phân biệt Bi và ngưỡngti tương ứng với mẫu gương mặt của người dùng.
• Bước 2: Từ vmẫu trung bìnhM s được tính toán MẫuM s sẽ được tính toán với các điểm phân biệt
B i và ngưỡngt i tương ứng để thu được mẫu nhị phân w tương ứng với mẫu gương mặt của người dùng.
• Bước 3: Một chuỗi nhị phân Ccó cùng độ dài với wsẽ được tạo ngẫu nhiên.
• Bước 4: Mẫu nhị phân wvàC sẽ thực hiện phépXORđể được giá trịδ.
• Bước 5: Giá trịδ vàHash(C), các điểm phân biệtBi, ngưỡngti sẽ được lưu vào cơ sở dữ liệu của server để dùng cho quá trình xác thực sau này.
Authentication Phase
Hình 37:Quá trình xác thực
Quá trình này được thực hiện ở client theo các bước như sau:
• Bước 1: Hình ảnh gương mặt của người dùng (đã được tiền xử lý) được đưa vào hệ thống (T ′ ) và được xử lý để lấy đặc trưng sinh trắc bằng phương pháp Fisherface để được mẫu đặc trưng sinh trắc u ′
• Bước 2: Ma trận chiếu ngẫu nhiênR được sử dụng để biến đổi mẫu sinh trắc thành mẫu có thể hủy bỏv ′
• Bước 3: Mẫuv ′ sẽ được gửi lên và xử lý phía server.
Sau khi nhận được yêu cầu xác thực, server sẽ thực hiện các bước như sau:
• Bước 1: Lấy thông tin các điểm phân biệtBi và các ngưỡng phân biệttitương ứng của user truy vấn.
• Bước 2: Sử dụng mẫu truy vấn và các điểm phân biệtBi, các ngưỡng phân biệttiđể biến đổiv ′ thành mẫu nhị phânw ′
• Bước 3: Giá trị của w ′ sẽ được thực hiện phépXORvớiδ.
• Bước 4: Giá trị sau phép XORsẽ được hash và so sánh với giá trịHash(C)được lưu lại ở server.
• Nếu kết quả so sánh là giống nhau thì trả về thông tin xác thực thành công cho user và ngược lại nếu kết quả so sánh khác nhau thì trả về thông tin xác thực thất bại cho user.
Thông tin hệ thống
Yêu cầu
Một số yêu cầu trong thực hiện hệ thống:
• Ngôn ngữ lập trình:Python
• Thư viện chính được sử dụng:
Client Flowchart
Luồng thực thi sẽ như sau:
• Bước 1: Kết nối với server.
• Bước 2: Client gửi yêu cầu (đăng kí hay xác thực) với dữ liệu cần thiết.
• Bước 3: Nhận thông tin trả về từ server, thông báo cho người dùng và lưu thông tin cần thiết.
Hình 38:Luồng thực thi ở client
Server Flowchar
Luồng thực thi sẽ như sau:
• Bước 1: Server hoạt động và đợi kết nối từ client.
• Bước 2: Xử lý yêu cầu từ client.
• Bước 3: Phản hồi lại yêu cầu cho client và lưu thông tin cần thiết.
Hình 39:Luồng thực thi ở server
Chức năng của hệ thống
Chức năng xử lý ảnh
Trong quá trình này, hình ảnh sẽ được đọc và sẽ được xác định gương mặt và crop theo size quy ước Và cuối cùng sẽ được trích xuất mẫu đặc trưng dựa trên thuật toán Fisherface.
Hình 40:Chức năng xử lý ảnh
Các module nhỏ được dùng để hiện thực flow của chức năng này:
• Module đọc thông tin gương mặt và chuyển đổi thành dạng ảnh xám.
• Module xác định khuôn mặt và crop theo vị trí khuôn mặt được xác định.
• Module resize kích thước gương mặt thu được theo kích thước xác định sẵn.
• Module trích xuất đặc trưng Module này sẽ lấy thông tin của không gian fisherface đã có để chuyển đổi hình ảnh thành mẫu đặc trưng sinh trắc.
Chức năng sinh ma trận chiếu
Quá trình tạo ma trận trực giao được thực hiện như sau:
• Bước 1: Tạo một ma trận 2 chiều ngẫu nhiên với kích thước cho trướcaxb, vớialà kích thước của mẫu đặc trưng sinh trắc (ví dụ hình ảnh input có kích thước lànxnthì kích thước mẫu đặc trưng sinh trắc là2n) vàblà kích thước của mẫu có thể hủy bỏ sau quá trình chuyển đổi.
• Bước 2: Trựa giao hóa ma trận thu được với giải thuật Gram Schmidth.
• Bước 3: Lưu lại thông tin ma trận chiếu thu được ở client.
Chức năng xử lý Random Projection
Chức năng này được dùng để tạo mẫu có thể hủy bỏ từ từ mẫu sinh trắc đầu vào Client sẽ đọc ma trận chiếu đã được lưu và sử dụng ma trận này để biến đổi mẫu sinh trắc sang không gian mới Kết quả của quá trình nãy sẽ cho ra một ma trận có thể hủy bỏ với kích thước nhỏ Quá trình này có một khó khăn trong thực tế chính là việc lựa chọn kích thước của không gian chiếu Hiện tại lựa chọn này được thực hiện thông qua thực nghiệm thông qua giá trị FAR và FRR để tìm giá trị tối ưu.
Hình 41:Chức năng Random Projection
Chức năng chuyển đổi DP
Chức năng này được dùng để tạo mẫu nhị phân từ mẫu có thể hủy bỏ của người dùng Quá trình này được xử lý khác nhau dựa trên yêu cầu của người dùng.
• Quá trình đăng kí): Quá trình này nhằm tìm các điểm phân biệt và các ngưỡng tương ứng Khi thực hiện, một tập dữ liệu training được sử dụng cùng với mẫu nhận được từ người dùng để giúp tìm ra các điểm phân biệt so với mẫu sinh trắc của người dùng Quá trình này gồm nhiều bước xử lý như đã được mô tả ở phần trước Trong quá trình này, giá trị độ dài của mẫu nhị phân được lựa chọn dựa trên thực nghiệm Và cuối cùng, các điểm phân biệt và ngưỡng được chọn ra và lưu lại.
Hình 42:Chức năng tạo các điểm phân biệt và ngưỡng trong phép chuyển đổi DP
• Quá trình xác thực: Quá trình này nhằm chiếu mẫu có thể hủy bỏ để tìm mẫu nhị phân tương ứng của người dùng Mẫu truy vấn và các điểm phân biệt được sử dụng để tính khoảng cách, khoảng cách này sau đó được so sánh với ngưỡng tương ứng để xác định mẫu nhị phân tương ứng của mẫu tham chiếu.
Hình 43:Chức năng tạo chuyển đổi mẫu dựa trên các điểm phân biệt và ngưỡng trong phép chuyển đổi DP
Chức năng sinh mã nhị phân ngẫu nhiên
Chức năng này được dùng để tạo ra một mẫu nhị phân ngẫu nhiên được dùng cho quá trình FuzzyCommitment Với đầu vào là kích thước mong muốn và đầu ra là chuỗi nhị phân có cùng độ dài.
Chức năng Fuzzy Commitment
Chức năng này dùng để tạo ra mẫu bảo mật Với mỗi quá trình đăng kí và xác thực, quá trình thực thi sẽ có khác biệt:
• Quá trình đăng kí: Trong quá trình này một chuỗi nhị phân ngẫu nhiênC với kích thước xác định ứng với người dùng sẽ được tạo Cùng với mẫu nhị phân nhận vào, giá trị δsẽ được tính toán và lưu lại để dùng cho quá trình xác thực.
Hình 44:Chức năng tạo chuỗi nhị phân ngẫu nhiênC và xử lý thu được ‘δ‘
• Quá trình xác thực: Trong quá trình này, việc tính toán sẽ được thực hiện với mẫu nhị phân truy vấn và giá trị δđể xác định giá trịC ′ Giá trịC ′ sẽ được sử dụng cho quá trình matching.
Hình 45:Chức năng tái tạo chuỗi ngẫu nhiênC
Chức năng Matching
Chức năng này được sử dụng cho quá trình xác thực Từ mẫu nhị phânC ′ , hàm Hash sẽ được sử dụng và thu đượcHash(C ′ )và so sánh giá trị này với giá trịHash(C)đang có trong cơ sở dữ liệu Nếu kết quả là tương đồng thì việc xác thực đã thành công, còn nếu kết quả so sánh là không tương đồng thì việc xác thực thất bại.
Chức năng phụ trợ khác
Ngoài ra trong quá trình hiện thực cũng sử dụng nhiều tính năng khác như:
• Chức năng lưu data của người dùng: Chức năng này sẽ nhận vào data của người dùng sau quá trình đăng kí và lưu lại cho quá trình sử dụng sau này.
• Chức năng đọc data của người dùng: Chức năng này sẽ đọc data của người dùng và được dùng cho quá trình xác thực.
• Chức năng tạo không gian Fisherface: Chức năng này sẽ nhận một lượng data với kích thước tương ứng với mẫu đặc trưng của người dùng và cho ra một không gian chiếu Được sử dụng cho quá trình trích xuất đặc trưng sinh trắc.
• Chức năng sinh mã hash: Chức năng này được dùng cho quá trình hash chuỗi nhị phân được dùng cho quá trình Fuzzy Commitment.
Cơ sở dữ liệu
Các thông tin được lưu trữ với dạng dữ liệu tương ứng như sau:
• Ma trận chiếu R: Được lưu ở dạng nhị phân định dạng.npy
• Các thông tin khác: Các thông tin bao gồm các điểm phân biệtBi, , ngưỡng phân biệtti,δ,Hash(C) được lưu dưới dạng bảng định dạng file.db.
5 Kết quả và đánh giá
Mô tả dữ liệu
Trong quá trình đánh giá tôi sử dụng một tập dữ liệu có sẵn là tập dữ liệu ‘face94‘[10] Dữ liệu trong tập này bao gồm hình ảnh của các cá nhân ở cùng một khoảng cách so với máy ảnh và được chụp với nhiều biểu cảm khác nhau.
Hình 47:Mẫu trong tập dữ liệu face94 (Nguồn: Internet) Đây là tập dữ liệu Hiện tại tập dữ liệu này bao gồm:
Bảng 4:Thông tin tập dữ liệu
Số lượng ảnh trong mỗi tập 20 Độ phân giải ảnh 180x200 pixels
Thành phần 20 tập ảnh của nữ, 133 bức ảnh của nam.
Với thông tin của các ảnh như sau:
Bảng 5:Thông tin của ảnh
Sự thay đổi vị trí đầu, nghiêng đầu thay đổi rất nhỏ
Vị trí của gương mặt thay đổi rất nhỏ trong cùng một lớp
Biến thể có thay đổi ánh sáng không
Trong luận văn này tôi sẽ sử dụng một phần của tập dữ liệu này bao gồm:
Bảng 6:Thông tin tập dữ liệu sử dụng
Số lượng ảnh trong mỗi tập 20
Thành phần 19 tập ảnh của nam, 133 bức ảnh của nữ.
Hiện tại mẫu đang có đang là dạng ảnh màu Trước khi được dùng cho hệ thống thì ảnh sẽ được chuyển đổi sang ảnh xám trước khi sử dụng Sau đó gương mặt của mỗi người trong ảnh đều được xác định và scale lại về kích thước ảnh là 120x120 pixels Hình ảnh này sẽ được phân ra thành 3 tập ảnh nhỏ như sau:
Bảng 7:Phân chia tập dữ liệu
Chọn 40 tập ảnh của 40 người, trong đó có 9 nữ và 31 nam Mỗi người có 20 bức ảnh.
Tập đăng kí (Tập 2) Tập này chứa 4 bức ảnh của 92 người còn lại Được dùng cho quá trình đăng kí mới của người dùng Các ảnh số {0,7,14,19} được chọn cho tập này.
Tập xác thực (Tập 3) Tập này chứa 16 bức ảnh của 92 người còn lại. Được dùng cho quá trình xác thực Các ảnh số{1,2,3,4,5,6,8,9,10,11,12,13,15,16,17,18} được chọn cho tập này.
Phương pháp đánh giá
Sử dụng những giá trị này ta có các thang đo để đánh giá hệ thống như sau:
• FAR (False Acceptance Rate): Là tỉ lệ chấp nhận sai, chấp nhận một truy cập khi người truy cập không hợp lệ Xác xuất kẻ mạo danh đăng nhập nhưng thành công Được tính bằng tỉ lệ người dùng thật xác thực không thành công trên tổng số người dùng thật được đánh giá.
• FRR (False Reject Rate): Là tỉ lệ từ chối bị sai, từ chối một truy cập khi người truy cập hợp lệ Xác suất khách hàng đăng nhập nhưng bị từ chối Được tính bằng tỉ lệ kẻ xâm nhập thành công trên tổng số kẻ xâm nhập được đánh giá.
• EER (Error Rate) là tỉ lệ lỗi, giao điểm của 2 đường FAR và FRR Tại đó tỉ lệ chấp nhận bị sai bằng tỉ lệ từ chối bị sai.
Quá trình thực hiện
Train model Fisherface
Quá trình thực hiện sẽ được cụ thể như sau:
• Tập ảnh 1 sẽ được train cho F isherF aceRecognizercó sẵn trong thư việncv2.
• Tập các eigenvector được lấy ra Ta lấy 25 giá trị eigenvector đầu để làm cơ sở chiếu cho quá trình chuyển đổi ảnh gương mặt thành mẫu đặc trưng sinh trắc.
Sau quá trình này, một không gian fisherface được tạo ra và lưu lại để dùng về sau Chiếu ảnh gương mặt của người dùng qua không gian này ta thu được đặc trưng sinh trắc dùng cho quá trình đăng kí và xác thực.
Quá trình đăng kí
Quá trình này được thực hiện như sau:
• Tập gương mặt được dùng cho quá trình đăng kí được trích xuất đặc trưng.
• Chiếu tập ảnh qua vector chiếu ngẫu nhiên ta thu được mẫu có thể hủy bỏ.
• Sử dụng mẫu có thể hủy bỏ của những người dùng khác làm cơ sở, ta tiến hành chạy thuật toán Spherical K-means đối với mẫu trung mình của người dùng để thu được các điểm và ngưỡng phân biệt tương ứng.
• Chuyển đổi mẫu có thể hủy bỏ trung bình của người dùng sang mẫu nhị phân bằng cách tính khoảng cách từ mẫu tới các điểm phân biệt rồi so sánh với ngưỡng tương ứng.
• Một chuỗi nhị phân có kích thước bằng với mẫu nhị phân được tạo ra, sau đó phép xor được thực hiện với mẫu nhị phân và chuỗi ngẫu nhiên vừa tạo ta thu được mẫu bảo mật Ta lưu lại giá trị vừa có để thực hiện phép kiểm tra về sau Giá trị hash của mã ECC được tạo cũng như các giá trị ngưỡng phân biệt và điểm phân biệt tương ứng.
Quá trình xác thực
Quá trình xác thực được thực hiện như sau:
• Ảnh truy vấn được chuyển đổi thành mẫu đặc trưng sinh trắc.
• Ảnh được chuyển sang mẫu có thể hủy bỏ bằng ma trận chiếu tương ứng của người dùng.
• Mẫu có thể hủy bỏ được chuyển thành mẫu nhị phân bằng cách tính khoảng cách từ mẫu tới các điểm phân biệt rồi so sánh với ngưỡng tương ứng.
• Thực hiện phép xor với giá trị mẫu bảo mật đã được lưu ta thu được giá trị chuỗi ngẫu nhiên được tạo(ECC) Thực hiện hash giá trị này và so sánh với giá trị được lưu lại trong quá trình đăng kí ta được kết quả của quá trình xác thực.
Quá trình kiểm thử
Dựa theo các quá trình ở trên ta xây dựng một quá trình kiểm thử độ chính xác của hệ thống Với tập dữ liệu đã đề cập như trên Chúng ta sẽ tiến hành kiểm thử mức độ chính xác của hệ thống với thao tác như sau:
• Mỗi người dùng đều được đăng kí với hệ thống với tập dữ liệu chiếu là thông tin đăng kí của những người dùgn còn lại và thông tin đăng kí sẽ được lưu lại.
• Có 2 thao tác được thực hiện trong quá trình đăng nhập:
– Đăng nhập với thông tin đúng của người dùng Mẫu của chính người dùng sẽ được chọn để đăng nhập nhằm kiểm tra tính từ chối sai của hệ thống.
– Đăng nhập với thông tin của những người dùng khác Mẫu của những người dùng khác sẽ được chọn để đăng nhập nhằm kiểm tra tính chấp nhận sai của hệ thống.
Các thông tin này sẽ được lưu lại cho quá trình đánh giá về sau.
Nhưng vì hệ thống chịu ảnh hưởng của 2 biến chính là độ dài của mẫu nhị phân và độ dài của mẫu có thể hủy bỏ Nên ta sẽ tiến hành chạy thử và phân tích mức độ hiệu quả của hệ thống trên cơ sở các giá trị khác nhau của 2 giá trị này Hiệu quả của hệ thống được đánh giá dựa trên 2 giá trị FAR và FRR Trước hết cần xác định độ dài của mẫu nhị phân tối ưu Với tập dữ liệu hiện có, chọn ngẫu nhiên giá trị kc= 200và kr∈40,100,150,200 thì ta thu được kết quả như các hình dưới đây:
Hình 48:Độ chính xác của hệ thống khi kr = 40
Hình 49:Độ chính xác của hệ thống khi kr = 100
Hình 50:Độ chính xác của hệ thống khi kr = 150
Hình 51:Độ chính xác của hệ thống khi kr = 200
Nhận xét:Với kết quả thu được, khi giá trị củakrtăng lên, tỉ lệF ARcó xu hướng tăng lên tỉ lệ nghịch với giá trịkcvà tỉ lệ thuận vớikr Và đồng thời khoảng cách giữa tỉ lệF ARvàF RRtăng lên nhiều hơn khi độ dài mẫu có thể hủy bỏ tăng lên Chứng tỏ khi độ dài của mẫu có thể hủy bỏ lớn thì sau quá trình chuyển đổi DP, độ phân biệt mẫu không được tăng lên với tỉ lệ đúng mực nên tỉ lệ chấp nhận sai tăng lên rất nhiều.
Do đó, giá trịkr= 40sẽ được chọn cho quá trình đánh giá sau Tiếp theo, thử nghiệm hệ thống với giá trị độ dài mẫu có thể hủy bỏ là 40 để tìm độ dài tối ưu của mẫu nhị phân Kết quả được thể hiện qua biểu đồ dưới đây:
Hình 52:Lựa chọn giá trị độ dài mẫu nhị phân
Nhận xét: Khi độ dài của mẫu nhị phân tăng lên thì giá trị F AR có xu hướng giảm đồng thời giá trị
F RRcó xu hướng tăng 2 giá trị này giao nhau khi độ dài của mẫu nhị phân là 230 Tại đây giá trị EER vào khoảng 7% Chứng tỏ rằng quá trình chuyển đổi DP đã làm tăng tính phân biệt của mẫu có thể hủy bỏ, đảm bảo rằng tỉ lệ chấp nhận sai và từ chối sai ở mức độ chấp nhận được Một số kết quả được thể hiện qua bảng sau:
Bảng 8: Kết quả chạy thử nghiệm Độ dài mẫu nhị phân FRR (%) FAR (%)
Đánh giá kết quả
Dựa vào kết quả chạy thực tế từ tập mẫu, ta rút ra một số kết luận sau:
• Ta thấy rằng, về tương quan giá trị giữa mẫu có thể hủy bỏ và mẫu nhị phân Nếu độ dài mẫu có thể hủy bỏ không quá khác biệt so với mẫu nhị phân thì tính phân biệt sau quá trình chiếu ngẫu nhiên không được tăng lên đúng mực Có nghĩa là mức độ phân biệt về mẫu của người dùng không quá khác biệt Điều này sẽ làm cho tỉ lệ chấp nhận sai của hệ thống tăng lên rất nhiều Đặc biệt khi độ dài của mẫu có thể hủy bỏ tương đương hoặc lớn hơn với độ dài của mẫu nhị phân Đây cũng là ràng buộc cho quá trình lựa chọn độ dài của các mẫu Độ dài của mẫu có thể hủy bỏ phải nhỏ hơn độ dài của mẫu nhị phân.
• Khi chênh lệch về kích thước của mẫu có thể hủy bỏ và mẫu nhị phân là lớn (độ dài của mẫu có thể hủy bỏ lớn hơn độ dài của mẫu nhị phân) thì kết quả là khả quan Giá trị từ chối sai và chấp nhận sai tương đối thấp vì lúc này tính phân biệt của mẫu đã được tăng cường, chứng tỏ rằng giải thuật chuyển đổi DP được sử dụng có hiệu quả tốt Với giá trịEERcủa hệ thống khoảng 7% thì hiệu quả hệ thống tương đối tốt.
• Quá trình kiểm thử còn nhiều hạn chế, chưa thử nghiệm với tập dữ liệu thực tế cũng như nhiều nguồn dữ liệu khác nhau.
Đánh giá bảo mật
Biometric Template Attack
Bất kì hệ thống nào cũng lưu thông tin mẫu sinh trắc của người dùng để thực hiện phép so sánh và xác thực sau này Dạng tấn công này sẽ tấn công vào mẫu sinh trắc được lưu và sử dụng nó mạo danh người dùng.
Trong hệ thống này mã sinh trắc gốc của người dùng sẽ thông qua nhiều phép biến đổi và server chỉ lưu giá trị biến đổi cuối cùng thay vì đặc trưng gốc, chính vì vậy nên không có khả năng phục hồi lại đặc trưng của người dùng với những thông tin lưu trên server Và hệ thống này cũng cho phép người dùng hủy bỏ lại mẫu đã lưu, thay vào đó là mẫu mới bằng cách thay đổi ma trận chiếuR Vì qua nhiều quá trình biến đổi,đặc biệt là phép biến đổi DP dựa vào tập các điểm phân biệt nên việc truy ngược lại mẫu sinh trắc gốc gần như là không thể.
Insider Attack
Hình thức tấn công này xảy ra khi chính người quản lý server ăn cắp các thông tin đăng nhập của người dùng Hệ thống này giúp ngăn chặn được nó vì ma trận chiếu được lưu ở client, nên nếu chỉ sử dụng những thông tin có sẵn ở server thì không thể đăng nhập được.
Brute-force Attack
Hệ thống được xử lý qua 2 quá trình biến đổi mẫu sinh trắc và một lần mã hóa nên khả năng chống lại các cuộc tấn công này là rất cao Với bước Random Projection, mẫu có số chiều lớn được biến đổi số chiều. Với bước chuyển đổi DP, mẫu được biến đổi thông qua kc điểm phân biệt Nên sẽ có tới e kc tổ hợp Với kc= 230thì con số này là rất lớn.
Masquerade Attack
Trong dạng tấn công này, kẻ tấn công cố gắng khôi phục lại mẫu sinh trắc gốc của người dùng từ các thông tin có được như mẫu sinh trắc qua biến đổi, các hashcode, Trong các bước Random Projection và chuyển đổi DP thì khả năng chống lại dạng tấn công này chưa được cao Tuy nhiên trong bước Fuzzy Commitment,bằng cách sử dụng mã hash choC, kẻ tấn công rất khó để có thể khôi phục lại đượcCđể lấy được thông tin hữu ích từ giá trịδ Mặt khác nếu kẻ tấn công muốn đoán giá trị củaCthì cũng vô cùng khó (vớikc >230).
6 Kết luận và hướng phát triển
Hướng phát triển
Quá trình tìm hiểu và hiện thực lý thuyết của mình, tôi nhận thấy còn nhiều thiếu sót Nhưng đó cũng là những vấn đề mà tôi nghĩ có thể tìm hiểu thêm để cải thiện hệ thống như:
• Hệ thống được tạo ra với nhiều thông số cần điều chỉnh như kích thước của mẫu có thể hủy bỏ, mẫu nhị phân, Do đó, khó vận dụng được trong thực thế Do đó tôi nghĩ cần có những chỉnh sửa để chọn được các giá trị này phù hợp hơn với thực tế.
• Quá trình xử lý ảnh còn đơn giản, yêu cầu khuôn mặt ở các vị trí nhất định (chính diện) Có thể nghiên cứu thêm để hỗ trợ quá trình xử lý của hệ thống Quá trình trích xuất đặc trưng tôi sử dụng cũng kế thừa ý tưởng và cách thức thực hiện từ nguồn khác, do đó có thể chưa đáp ứng tốt được với mô hình.
• Những đánh giá phía trên đều dựa trên tập dữ liệu mẫu, nên có thể áp dụng với tập dữ liệu thực tế để có đánh giá đầy đủ hơn,
• Hệ thống có thể chuyển đổi thành một dạng services cho các hệ thống khác.
• Ứng dụng với đầu vào là khuôn mặt ở dạng 3D.