Tải bản đầy đủ (.docx) (48 trang)

bảo vệ mẫu đặc trưng sinh trắc gương mặt trong xác thực trên thiết bị di động thông minh

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.32 MB, 48 trang )

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH

THỰC TẬP TỐT NGHIỆP

BẢO VỆ MẪU ĐẶC TRƯNG SINH TRẮC GƯƠNG
MẶT TRONG XÁC THỰC TRÊN THIẾT BỊ DI
ĐỘNG THÔNG MINH

TP.Hồ Chí Minh 12/2014

GVHD:

Lê Thị Bảo Thu

SVTH:

Trần Minh Tâm

51002869

Nguyễn Duy Linh

51001714

Nguyễn Nam Hùng

51001326



Thực Tập Tốt Nghiệp 2014
LỜI CẢM ƠN
Lời đầu tiên, chúng tôi xin được gừi lời cảm ơn tới Khoa Khoa Học & Kỹ Thuật Máy Tính –
Trường Đại Học Bách Khoa TPHCM đã tạo điều kiện cho chúng tôi trong suốt quá trình nghiên
cứu và thực hiện đề tài này. Chúng tôi cũng xin được cảm tới tới các thầy cô đã giảng dạy,
truyền đạt nhiều kiến thức bổ ích trong suốt các năm học vừa qua, tạo tiền đề vững chắc để
chúng tôi có thể có được nền tảng kiến thức vững vàng, phục vụ và hỗ trợ đắc lực cho quá trình
nghiên cứu đề tài thành công tốt đẹp.
Đặc biệt, chúng tôi xin gửi lời cảm ơn sâu sắc tới cô Lê Thị Bảo Thu, giảng viên đã trực tiếp
hướng dẫn, chỉ bảo, giúp đỡ chúng tôi trong quá trình thực hiện đề tài này.
Mặc dù đã rất cố gằng trong quá trình thực hiện đề tài, song vẫn không thể tránh khỏi những sai
sót, rất mong được sự góp ý, chỉ bảo của các thầy cô.
Xin chân thành cảm ơn !

2


Thực Tập Tốt Nghiệp 2014

TÓM TẮT NỘI DUNG
Trong phạm vi thực tập tốt nghiệp, đề tài sẽ bao gồm các nội dung chính như sau: giới thiệu tổng
quan về dề tài, các cơ sở lý thuyết ( rút trích đặc trưng PCA, Secure Sketch, Fuzzy Etractor), hiện
thực Demo trên nền tảng Android, hướng phát triển đề tài trong giai đoan tiếp theo.

3


Thực Tập Tốt Nghiệp 2014

Mục Lục


4


Thực Tập Tốt Nghiệp 2014
MỤC LỤC HÌNH

CÁC THUẬT NGỮ CHÍNH
AES

Advanced Encryption Standard

DES

Data Encryption Standard

JDK

Java Development Kit

LDA

Linear Discriminant Analysis

PCA

Principal component analysis

5



Thực Tập Tốt Nghiệp 2014

6


Chương 1:

1.1.

TỔNG QUAN ĐỀ TÀI

Giới thiệu:

1.1.1. Tình hình sử dụng Smartphones tại Việt Nam

Ngày nay Smartphones đang dần trở nên phổ biến, với việc các hãng di động lớn như Apple,
Samsung, LG, Sony…liện tục cho ra đời nhiều sản phẩm đa dạng với giá cả tầm trung, thì việc
sở hữu 1 chiếc Smartphones đã không còn là giấc mơ xa vời với nhiều người nữa. Giờ đây chỉ
với 1 người có thu nhập trung bình cũng có thể sở hữu trong tay 1 chiếc Smartphones với đầy đủ
các tính năng nghe gọi, giải trí đa phương tiện. Có thể nói Smartphones đã thâm nhập vào mọi
tầng lớp của xã hội, giờ đây nhắc tới điện thoại di động thì người ta đã tưởng tượng ngay đến 1
công cụ phục vụ học tập, công việc, giải trí cho con người chứ không còn là thiết bị chỉ để nghe
và gọi.
Tuy nhiên, bên cạnh những tiện ích thiết thực thì việc sử dụng Smartphones cũng mang đến
những rắc rối,rủi ro tiềm ẩn 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 chỉ 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 quan về hệ thống bảo mật 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ớ được khóa tương ứng với dữ liệu là một bất lợi cho phương
pháp này.

1.1.3. Tổng quan về sinh trắc học

Sinh trắc học hay Công nghệ sinh trắc học (tiếng Anh: Biometric) 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á nhân như vân tay, mống mắt, khuôn mặt...

để nhận diện. Đây được coi là công cụ xác thực nhân thân hữu hiệu nhất mà người ta sử dụng
phổ biến vẫn là nhận dạng vân tay bởi đặc tính ổn định và độc nhất của nó và cho đến nay, nhận
dạng dấu vân tay vẫn được xem là một trong những phương pháp sinh trắc tin cậy nhất.
Mỗi người có một đặc điểm sinh học duy nhất. Dữ liệu sinh trắc học của từng cá nhân với đặc
điểm khuôn mặt, ảnh chụp võng mạc, giọng nói sẽ được kết hợp với nhau bằng phần mềm để tạo
ra mật khẩu dành cho những giao dịch điện tử, phương thức đó là "công nghệ sinh trắc đa nhân
tố" Sự phát triển của công nghệ đã thay đổi từ việc lăn tay trên mực và lưu trữ trên giấy sang
quét trên máy và lưu trữ kỹ thuật số.

1.1.4. Vai trò quan trọng 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 của bài toán



Tìm hiểu và trình bày 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) 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.



Nghiên cứu 2 mô hình sửa lỗi và bảo vệ (template protection) là Secure Sketch và Fuzzy
Extractor.



Xây dựng Demo ứng dụng trên thiết bị di động chạy hệ điều hành Android. Việc chọn
Android làm nền tảng xây dựng Demo xuất phát từ sự phát triển bùng nổ của nền tảng
này, hiện tại đa số Smartphones trên thị trường đều chạy hệ điều hành Android, ngoài ra

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 trong
tương lai


Chương 2:

CƠ SỞ LÝ THUYẾT

2.1. Các phương pháp trích chọn đặc trưng
2.1.1. Khái quát về các đặc tính sinh trắc học của con người
Đặc tính sinh trắc của con người là đặc tính đo được các nét hành vi riêng của con người. Nhận
diện người được thực hiện trong quá trình kiểm tra tính đồng nhất của đặc tính sinh trắc giữa
người cần kiểm tra với đặc tính tương tự của người đã được lưu sẵn trong CSDL. Có thể nhận
diện người dựa trên các đặc điểm sinh trắc tĩnh trên người như khuôn mặt, mắt, vân tay, bàn tay,
gen…hay các đặc trưng hành vi
như dáng đi, chữ viết, giọng nói…

Figure 1. Các đặc trừng sinh trắc của con người
Dữ liệu sinh trắc lý tưởng của người cần phải có những đặc tính cơ bản như:





Tính tổng quát: Mỗi người đều được thể hiện bởi đặc tính này.
Tính duy nhất: Không thể tồn tại hai người có đặc tính giống nhau.
Tính thường xuyên: Là sự độc lập của đặc tính đối với thời gian.
Tính thu thập được: Là đặc tính được thu thập một cách tương đối đơn giản và nhanh
chóng từ mỗi cá nhân và có thể được chi tiết hóa.



2.1.2. Tổng quan về hệ thống nhận dạng mặt người cơ bản

Figure 2. Hệ thống nhận

dạng mặt người cơ bản

 Tiền xử lý

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 chuyển ảnh về dạng trắng đen trước khi xử lý.





Nhậ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:

o Chuẩn bị một tập các ảnh huấn luyện (training set),
o 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
o 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ố.
o 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
 Trích rút đặc trưng:
Trích rút đặc trưng là kỹ thuật sử dụng các thuật toán để lấy ra những thông tin mang
những đặc điểm riêng biệt của một người.
Có 3 phương pháp: 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.
Các khâu trong quá trình trích chọn đặc trưng:
o Đầu vào: Ảnh đã được chuẩn hóa.
o Đầu ra: vector đặc trưng của ảnh đầu vào.
Quá trình trích rút đặc trưng được thể hiện qua lưu đồ sau:


Figure 3. Sơ đồ khối trích chọn đặc trưng sử dụng Eigenfaces

2.1.3. Eigenfaces – PCA

 Giới thiệu:

Phương pháp này được phát minh năm 1901 bởi Karl Pearson và hiện nay nó được sử
dụng như công cụ để phân tích dữ liệu nghiên cứu và thực hiện các mô hình dự đoán.
PCA còn bao gồm cả việc tính toán phân tích các giá trị đặc trưng của một ma trận tuơng


quan dữ liệu hay phân tính các giá trị đơn của ma trận dữ liệu thường sau khi tính trung
bình dữ liệu của mỗi thuộc tính. PCA là phương pháp đơn giản nhất phân tích đa biến
dựa trên các vector đặc trưng. Thông thường hoạt động của nó có thể được hiểu nhằm
khám phá ra cấu trúc bên trong của dữ liệu. Nếu một tập dữ liệu đa biến được xem xét
như tập các tọa độ trong một không gian dữ liệu nhiều chiều (mỗi trục biểu diễn một
biến) thì phương pháp PCA cung cấp cho chúng ta một bức ảnh ít chiều, một cái bong
của vật thể khi quan sát từ chính những đặc trưng cơ bản nhất của vật thể đó.
Đố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.
Mục tiêu của phương pháp PCA là “giảm số chiều” của 1 tập vector sao cho vẫn đảm
bảo được “tối đa thông tin quan trọng nhất”. Phương pháp PCA sẽ giữ lại K thuộc tính
“mới” từ M các thuộc tính ban đầu (K Tính eigenfaces:

Phương pháp PCA coi một ảnh xám R x C pixels là một vector trong không gian
N = R x C chiều. Không gian mới được tạo ra bởi PCA được cấu thành từ K vector đơn
vị có chiều là N, N << R x C.
Mỗi vector được gọi là Eigenface.
Phép biến đổi :
Theo công thức : W = T.A với T là ma trận chuyển đổi và có kích thước là K x N
Gọi M là số ảnh đầu vào, mỗi ảnh đã được chuyển thành một vector N chiều. Ta có tập
hợp đầu vào .
Trung bình của các vector đầu vào (tâm của tập hợp đầu vào) ;

Sai lệch so với tâm :
Gọi ta có ma trận hiệp phương sai của A :

Gọi các giá trị riêng của C là sắp xếp theo thứ tự giảm dần, tương ứng với N
vector riêng . Các vector riêng này trực giao từng đôi một. Mỗi vector riêng được gọi là


một eigenface. Tập hợp vector ban đầu được biểu diễn trong không gian tạo bởi N
eigenface theo mô tả sau:

Chọn lấy K vector riêng tương ứng với K giá trị riêng λ lớn nhất. Ta có:

Vector các hệ số khai triển . chính là biểu diễn mới của ảnh được tạo ra trong

không gian PCA. Ảnh mới vẫn giữ được các đặc điểm chính của ảnh đầu vào. Vector
được tính theo công thức sau :

Vấn đề cần giải quyết ở đây là ma trận covariance C = A.A T có kích thước N2.
Với N=200×200=40000, khối lượng tính toán sẽ rất lớn. Do đó, để tính được các
eigenface mà không cần phải tính cả ma trận C, người ta đưa ra phương pháp tính nhanh
dựa vào tính vector riêng và giá trị riêng của ma trận L = A T.A có kích thước M x M với
M là số ảnh đầu vào. Ta có thể chứng minh như sau: gọi lần lượt là vector riêng và giá trị
riêng của ma trận L:
AT.A.vi = .
Nhân cả hai vế với A ta có : A.AT.A.vi = .A
Ta thấy A.vi chính là vector riêng của C = A.AT ứng với giá trị riêng .
Quá trình rút trích
• Giai đoạn 1 : Tạo ra các eigenfaces thông qua quá trình học các ảnh mẫu.


Giai đoạn 2 : Chiếu vector ảnh cần nhận dạng vào không gian eigenface. Các
vector đặc trưng của ảnh đầu vào là phép chiếu từ ảnh ban đầu vào không gian
tạo bởi các eigenface.

Chuẩn hóa ma trận ảnh :
Chuẩn hóa vector là khâu đầu tiên cần thực hiện khi sử dụng thuật toán PCA. Sự phân bố
của một vec-tơ trong không gian được thể hiện qua trung bình (mean) và chuẩn (standart)
của vector đó.
Cho vector X = [x1, x2, … , xn] trung bình và chuẩn của vector X được tính như sau :


Từ một ảnh Γ ban đầu, ta có trung bình Γ và chuẩn Std( Γ ) của Γ .
Phép chuẩn hóa ma trận ảnh được thực hiện theo công thức sau:


Trong đó, Γ là ma trận ảnh đã được chuẩn hóa, (x, y) là tọa độ điểm ảnh. Kết quả quá
trình chuẩn hóa được thể hiện như sau:

Figure 4. Chuẩn hóa ảnh

Tính trung bình tập ảnh đầu vào :
Khâu này cho ta xác định được gốc tọa độ của không gian vector biểu diễn các ảnh. Ảnh
trung bình được tính bằng trung bình cộng của tất cả các ảnh. Ảnh trung bình này thể
hiện những điểm giống nhau nhất giữa tất cả các ảnh. Gọi số ảnh học là N, mỗi ảnh có
kích thước R x C.
S = { Γ1, Γ2, … , ΓM}
Trung bình N ảnh trên được tính theo công thức:


Figure 5. Trung bỉnh ảnh của tập dữ liệu
Sau khi tính được ảnh trung bình của bộ ảnh học, các ảnh đầu vào sẽ được so sánh với
ảnh trung bình này. Ảnh mới sẽ chứa những điểm khác nhau giữa ảnh đầu vào so với các
ảnh còn lại. Ta có tập vec-tơ đầu vào mới sau khi so sánh với trung bình :

Tính eigenface:
Ma trận Covariance (covariance matrix) thể hiện sự tương quan của từng vectơ
đối với các vector còn lại trong không gian.
Cho 2 vector N chiều X = [x1, x2, … , xn] và Y = [y1, y2, … , yn] ta có tương quan
giữa 2 vector trên được tính theo công thức.


Nếu 2 vector được chuần hóa trước, ứng với :

Cho một tập M vector N chiều [Φ1, Φ2, … , Φn ] xếp thành một ma trận A kích
thước N x M , ta có covariance của ma trận A là một ma trận C có kích thước NxN , phần

tử C(i , j) được tính như sau :

Vector riêng (eigenvector) và giá trị riêng (eigenvalue): Cho ma trận vuông
C ∈ ℝNxN vector riêng u và giá trị riêng λ khi và chỉ khi : C.u = λ.u
Theo lý thuyết, eigenface chính là các vector riêng u ứng với các giá trị riêng v có giá trị lớn nhất
của ma trận covariance:

Để tính nhanh các eigenface này, người ta chuyển sang tính toán với ma trận L=AT.A. Lựa chọn
K vector riêng v ứng với K giá trị riêng lớn nhất của L. Ta có công thức chuyển đổi: u = A.v .
Các giá trị riêng của L cũng chính là các giá trị riêng của C.
Gọi các giá trị riêng của L là: λ = { λ1, λ2, … , λn} sắp xếp theo thứ tự giảm dần K
giá trị riêng lớn nhất được lựa chọn theo công thức :

Trong đó, ε là ngưỡng chọn.
2.1.4. Fisherfaces – LDA
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ì Fisherfaces đ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:

Hệ 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à:

2.1.5. So sánh PCA và LDA
• Có một xu hướng trong cộng đồng máy tính là thích LDA hơn PCA về khả năng dễ sử
dụng của nó


Có một khác biệt chính là LDA xác định rõ về hàm phân biệt giữa các lớp trong khi PCA
không rõ ràng về việc xác định rõ cấu trúc lớp



Xét về các mẫu test với kích thước nhỏ PCA cho kết quả tốt hơn LDA những với những
mẫu test có kích thước lớn và cần sự biểu diễn riêng biệt cho mỗi lớp thì LDA tỏ ra vượt
trội so với PCA

2.2. 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.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.



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.2.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



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. Điều này giúp độ bảo mật của hệ thống được
nâng cao.

Chương 3

CÁC NGHIÊN CỨU BỔ SUNG

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 Diference” (2005).
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ế” 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: Giả sử cho tập dữ liệu X = { x1, x2. x3, x4, …xn} 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 = ( p(0), p(1), p(2),…, p(2t-1))
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 Y = {y1, y2, y3,..., yn}và tập
Sketch P = ( p(0), p(1), p(2),…, p(2t-1)). Ta sửa lỗi 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 Q = ( q(0), q(1), q(2),…,q(2t-1))
o Xây dựng đa thức bậc t:
o Xây dựng đa thức bậc t:

o

Với 2 phương trình p’(x) và q’(x) ta có aj và bj là những tham số chưa
được xác định. Để xác định aj và bj, ta tiến hành giải hệ phương trình sau
• q(i)p’(i) = q’(i)p(i) với 0 ≤ i ≤ 2t-1

o Thế aj và bj tìm được từ hệ phương trình trên vào đa thức p’(x) và q’(x) và
tìm nghiệm. Ta gọi tập nghiệm của p’(x) là X’ và của q’(x) là Y’.
o Kết quả của quá trình sửa lỗi là R = (Y ∩ X’) \ Y’


3.1.2. Đánh giá và kết luận
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.
3.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).
Mô hình này hoạt động dựa trên ý tưởng của Y.Dodis trong để 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
o

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 W = {w0, w1, w2,…,wn},
tập Sketch của vector là S = {s0, s1, s2,…, sn} Với
 si = wi – M(wi)

Sửa lỗi: Với giá trị đầu vào xác thực là Z = {z0, z1, z2,…,zn} và tập Sketch là S = {s0,
s1, s2,…, sn}, ta thực hiện như sau
w’i = M(zi-si) + si

Ta có tập W’ = {w’0, w’1, w’2,…,w’n} 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:
 Ta có: w’i = M(zi-si) + si
 Thế si = wi – M(wi), ta có w’i = M(zi-wi + M(wi)) + wi – M(wi)
 Với | zi – wi | < t, ta có zi-wi + M(wi) nằm trong khoảng [M (w i) – t, M (w i) + t]
=> M(zi-wi + M(wi)) = M(wi)
=>w’ = w

3.2.2. Đánh giá và kết luận.

Nghiên cứu của nhóm D-STAR đã được đề tài hiện thực trên nền tảng Android 2.2, JDK 1.6 sử
dụng thư viện JavaCV 0.3.
Đánh giá: Giải thuật áp dụng sửa những lỗi gây ra bởi “nhiễu giá trị” 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ị”.



×