c. Chuẩn mã hóa dữ liệu AES
3.5 Bảo mật mẫu sinh trắc học sử dụng secure sketch
Trong luận văn này, tôi sử dụng giải thuật secure sketch để bảo mật mẫu sinh trắc học. Mẫu sinh trắc học bảo mật có thể đƣợc lƣu trữ bằng cách sử dụng hàm
băm một chiều (one-way hash function)[14].
3.5.1 Các bước xử lý
Các bƣớc xử lý trong [14] đƣợc thể hiện trong hình bên dƣới. Đầu tiên, rút trích
các đặc trƣng sinh trắc. Bƣớc thứ hai, lƣợng tử hóa cho những giá trị đƣợc rút
trích trong miền liên tục để chuyển sang những giá trị trong miền rời rạc. Bƣớc này là cần thiết bởi vì giá trị rời rạc cho phép khôi phục dễ dàng và chính xác
hơn giá trị liên tục. Những giá trịđƣợc lƣợng tử hóa đóng vai trò là w và w’ của
secure sketch đƣợc giới thiệu trong phần trƣớc. Bƣớc phát sinh sketch tạo ra s từ đầu vào w. Bƣớc cuối cùng, bƣớc khôi phục w ban đầu khi cho đầu vào w’ và s.
Để kiểm tra tính hợp lệ của đặc trƣng đƣợc khôi phục có đúng với đặc trƣng w
ban đầu hay không, một hàm băm một chiều đƣợc sử dụng cho w và kết quả
đƣợc lƣu trữ. Sau đó, sử dụng hàm băm tƣơng tự cho đặc trƣng đƣợc khôi phục
Nguồn: [14]
Hình 3-5 Các bƣớc xử lý chính
3.5.2 Lượng tử hóa
Mục đích của việc lƣợng tử hóa là chuyển những giá trị đặc trƣng từ miền liên
tục sang miền rời rạc. Các bƣớc xử lý lƣợng tử hóa nhƣ sau: sau khi chuẩn hóa,
mỗi phần tử của vector đặc trƣng là một số thực nằm trong [0, 1]. Sau đó, xử lý
lƣợng tử hóa sẽ chuyển giá trị này sang một số nguyên nằm trong [0, N], với N >
0. Đặt x là giá trị trƣớc khi lƣợng tử hóa, x’ là giá trị sau khi lƣợng tử hóa, hàm
Round là lƣợng tử hóa[14].
x’ = round(xN)
3.5.3 Phát sinh sketch
Bƣớc phát sinh sketch tạo ra thông tin chuỗi công khai s có thểđƣợc sử dụng sau
này để tái tạo lại mẫu wđƣợc lƣợng tử hóa.
Sau quá trình lƣợng tử, miền của w là [0, N]. Chúng ta tạo một codebook mà những codeword trải dài trong [0, N] và khoảng cách giữa hai codeword là nhƣ
nhau. Cụ thể, khoảng cách giữa codeword ci và ci+1 là 2δ với δ là một số nguyên
ánh xạ M trả về codeword gần nhất của w, hoặc M(w)=ci. Phát sinh sketch sử
dụng hàm ánh xạ để trả về sự khác biệt giữa một giá trị của w và codeword gần nó nhất:
SS(w) = w – M(w) (*)
Giá trị phát sinh sketch SS(w) trong khoảng [-δ, δ]. Vì thế, cho SS(w), kẻ tấn công chỉ có thể biết rằng giá trịđúng của w có dạng SS(w) + M(w). Để tấn công
brute-force vào hệ thống, những kẻ tấn công cần phải thử tất cả các giá trị có thể
của M(w), hay mỗi codeword. δ càng lớn thì không gian codeword càng nhỏ.
Lƣu ý rằng không gian codeword luôn luôn nhỏ hơn so với không gian lƣợng tử
[0, N]. khi δ = 1, không gian codeword nhỏ hơn không gian lƣợng tử ba lần, và khi δ = 2 thì nhỏ hơn năm lần[14].
3.5.4 Khôi phục đặc trưng
Cho w’ sao cho |w – w’| ≤ δ, khi đó feature recovery sẽ dùng s và w’ để tái tạo lại w. Gọi w’’ là giá trịđƣợc khôi phục, khi đó w’’đƣợc tính nhƣ sau [14]:
w” = M(w’ – SS(w))+SS(w)
wđƣợc tái tạo chính xác khi |w - w’| ≤ δ, thay SS(w) bởi vế phải ở công thức (*), chúng ta có:
w” = M(w’ – w+M(w)) + w - M(w)
Nếu |w - w’| ≤ δ, thì w’ – w +M(w) nằm trong khoảng [M(w) –δ, M(w) + δ]
Theo nhƣ cấu trúc của codebook, áp dụng hàm ánh xạ trên bất kỳ giá trị nào nằm trong phạm vi này sẽ trả vềcodeword gần nhất, và bằng M(w) nên M(w’ – w + M(w)) = M(w), nhƣ vậy chúng ta ców”=w.
3.6 Mô hình mã hóa dữ liệu sử dụng đặc trưng sinh trắc học
Hệ thống mã hóa dữ liệu sử dụng sinh trắc học bao gồm hai quá trình: mã hóa và giải mã:
Mã hóa: Quá trình này bắt đầu bằng việc đƣa vào một văn bản rõ và kết hợp với
sử dụng đặc trƣng sinh trắc học làm khóa mã. Kết thúc quá trình này sẽ cho ra
một văn bản đã mã hóa.
Giải mã: Quá trình này làm ngƣợc lại, bắt đầu bằng một văn bản đã đƣợc mã hóa
và kết hợp với đặc trƣng sinh trắc học sẽ cho ra một văn bản đã đƣợc giải mã. Mô hình mã hóa dữ liệu sử dụng đặc trƣng sinh trắc học:
Hình 3-6 Mô hình mã hóa dữ liệu sử dụng đặc trƣng sinh trắc học
Trong đó k là khóa đƣợc sinh ra từđặc trƣng sinh trắc học (Khóa sinh trắc).
Quá trình tạo khóa sinh trắc: khóa sinh trắc k thông qua giải thuật secure sketch
sẽ sinh ra chuổi s, thông tin chuổi s đƣợc lƣu trữđể giúp khôi phục lại khóa sinh trắc k sau này.
Hình 3-7 Quá trình phát sinh sketch
Quá trình khôi phục khóa sinh trắc: Khi đƣa vào k’ ~ k kết hợp với chuỗi s, khóa k sẽđƣợc tái tạo lại.
Hình 3-8 Quá trình khôi phục khóa sinh trắc
Luận văn áp dụng giải thuật secure sketch Dodis [20] để tạo khóa sinh trắc:
Có 2 thành phần của secure sketch: các sketch (SS) và Recover (Rec). Cho một mẫu bí mật w, thành phần SS tạo ra thông tin chuổi s công khai và loại bỏ w. Khi
đƣa vào một mẫu w' nào đó là gần giống với w, thành phần Rec có thể phục hồi lại w một cách chính xác nhờ chuổi s. Có 3 thuộc tính của secure sketch nhƣ đƣợc mô tả trong [20]:
- w và w’là đặc trƣng sinh trắc. w chỉđƣợc khôi phục nếu và chỉ nếu
|w –w’| ≤ δ (δlà ngƣỡng đƣợc định nghĩa trƣớc).
- Thông tin vềskhông đƣợc tiết lộ nhiều vềw.
3.7 Quá trình sinh khóa và xác thực sinh trắc
Mục tiêu của đề tài là sử dụng sinh trắc học để mã hóa dữ liệu, trong đề tài này, tôi chọn giải thuật để mã hóa dữ liệu là giải thuật AES với khóa bí mật là k, với k
là khóa đƣợc sinh ra từ sinh trắc học, quy trình sinh khóa (đăng ký) và tái tạo lại
khóa để mã hóa và giải mã dữ liệu đƣợc mô tả chi tiết nhƣ bên dƣới:
3.7.1 Quá trình đăng ký
Quá trình đăng ký gồm 3 bƣớc:
Bƣớc 1:
Xử lý ảnh: Đầu vào một tập ảnh khuôn mặt (ảnh đƣợc thu từ camera của điện thoại), ảnh khuôn mặt đƣợc xử lý, rút trích mẫu đặc trƣng và chuẩn hóa.
Bƣớc 2:
Tạo thông tin công cộng s: Đầu vào là đặc trƣng khuôn mặt sau khi đƣợc chuẩn hóa, thành phần SS của giải thuật secure sketch tạo thông tin công cộng s, s không tiết lộ nhiều về w nên không cần phải bảo mật, thông tin sđƣợc lƣu trữ để
dùng cho quá trình khôi phục w sau này.
Bƣớc 3:
Tạo mã định danh: Là kết quảhàm băm wvà đƣợc lƣu trữ phục vụ cho quá trình xác thực trong quá trình khôi phục w.
3.7.2 Quá trình xác thực:
Quá trình xác thực gồm 3 bƣớc:
Bƣớc 1:
Xử lý ảnh: Đầu vào ảnh khuôn mặt (ảnh đƣợc thu từ camera của điện thoại), ảnh khuôn mặt đƣợc xửlý, rút trích đặc trƣng và chuẩn hóa.
Bƣớc 2:
Khôi phục k: Đầu vào là đặc trƣng sinh trắc khuôn mặt w’ sau khi đƣợc chuẩn hóa kết hợp với chuỗi s đã lƣu trƣớc đó, thành phần Rec của giải thuật secure sketch sẽ khôi phục w từw’ và s.
Bƣớc 3:
Xác thực: So sánh id0 và id1 , mục đích kiểm tra tính hợp lệ của w sau khi đƣợc khôi phục.
3.8 Kết luận
Trong phần này chúng ta đã tìm hiểu về các thuật toán mã hóa sinh trắc, tìm hiểu về hệ thống đăng ký khóa sinh trắc và hệ thống xác thực ngƣời dùng hợp lệ, truy xuất khóa. Mô hình mã hóa dữ liệu sử dụng sinh trắc học với đặc điểm nổi bật là có khả năng xác thực đƣợc ngƣời dùng hợp lệ (chỉcó ngƣời dùng hợp lệ mới có thể truy xuất đƣợc khóa để mã hóa và giải mã dữ liệu).
Mô hình mã hóa dữ liệu sử dụng đặc trƣng sinh trắc học có những ƣu điểm và
nhƣợc điểm:
Ƣu điểm:
- Khóa đƣợc tạo ra từđặc trƣng sinh trắc học
Nhƣợc điểm:
- Hệ thống sử dụng giải thuật secure sketch để sinh khóa nhƣ trên thì khóa
mã đƣợc tạo ra mang tính ngẫu nhiên thấp, do đó dễ bị tấn công bằng vét
Chương 4: XÂY DỰNG ỨNG DỤNG MÃ HÓA VÀ GIẢI
MÃ DỮ LIỆU TRÊN ĐIỆN THOẠI THÔNG MINH
4.1 Giới thiệu
Mục tiêu chính của luận văn là nghiên cứu mã hóa dữ liệu sử dụng sinh trắc học
để xây dựng ứng dụng mã hóa và giải mã dữ liệu chạy trên điện thoại android.
Ứng dụng đƣợc xây dựng bao gồm các chức năng chính:
Rút trích đặc trƣng sinh trắc học khuôn mặt
Chứng thực ngƣời dùng hợp lệ Mã hóa và giải mã dữ liệu
4.2 Hệđiều hành android
4.2.1 Giới thiệu về android
Android là một hệ điều hành dành cho thiết bị di động nhƣ smartphone, tablet
hay netbook. Android do Google phát triển dựa trên nền tảng Linux kernel và các phần mềm mã nguồn mở.
Android chạy trên hạt nhân hệ điều hành linux, các ứng dụng của adroid đƣợc lập trình dựa trên ngôn ngữ java. Và các ứng dụng chạy trong một máy ảo gọi là máy ảo Dalvik (Dalvik Virtual Machine). Máy ảo này nằm trong một tiến trình do hạt nhân linux quản lý.
4.2.2 Kiến trúc hệđiều hành android
Hệđiều hành Android có các thành phần phần mềm chia thành 5 phần với 4 tầng
Nguồn: [21]
Hình 4-1 Kiến trúc hệđiều hành Android
Linux kernel
Linux là tầng dƣới cùng nhất. Tầng này cung cấp chức năng hệ thống cơ bản nhƣ
quản lý các tiến trình, quản lý bộ nhớ, quản lý thiết bị nhƣ máy ảnh, bàn phím, màn hình hiển thị, v.v...Ngoài ra, nhân Linux xử lý tất cả các vấn đề về Mạng và một loạt các trình điều khiển thiết bị giao tiếp với phần cứng ngoại vi.
Libraries
Tầng này là một tập hợp các thƣ viện bao gồm trình duyệt web mã nguồn mở sử
dụng WebKit engine, thƣ viện libc, cơ sở dữ liệu SQLite là một kho lƣu trữ hữu
lại âm thanh và video, các thƣ viện SSL chịu trách nhiệm về bảo mật Internet, v.v...
Android Runtime
Đây là thành phần thứ ba của kiến trúc của Android. Phần này cung cấp một thành phần quan trọng đƣợc gọi là máy ảo Dalvik, là một loại máy ảo Java đƣợc thiết kếđặc biệt và tối ƣu hóa cho Android.
Máy ảo Dalvik sử dụng các tính năng cốt lõi của Linux nhƣ quản lý bộ nhớvà đa
luồng, các tính năng này đều có trong ngôn ngữ Java . Máy ảo Dalvik cho phép
tất cả các ứng dụng của Android chạy trong tiến trình riêng của nó.
Android Runtime cũng cung cấp một tập các thƣ viện lõi cho phép các nhà phát
triển ứng dụng Android viết các ứng dụng Android sử dụng ngôn ngữ lập trình Java (J2SE).
Application Framework
Tầng này cung cấp nhiều dịch vụ cấp cao hơn cho các ứng dụng ở dạng các class trong Java. Các nhà phát triển ứng dụng android đƣợc phép sử dụng các dịch vụ
này cho các ứng dụng của họ. (VD: dịch vụ kết nối Internet, dịch vụ SMS,...)
Applications
Đây là tầng trên cùng, các lập trình viên sẽ viết ứng dụng và các ứng dụng đƣợc viết sẽđƣợc cài đặt ở tầng này. Ví dụ: Facebook, Skype, v.v...
4.3 Giới thiệu về OpenCV
OpenCV là mã nguồn mở của Intel, nó là một thƣ viện có khả năng nhúng vào
gồm khả năng tiên tiến nhƣ phát hiện khuôn mặt, theo dõi khuôn mặt, nhận diện khuôn mặt….. Ngoài ra, nó cung cấp rất nhiều các thuật toán xử lý ảnh thông qua các hàm API. Ứng dụng của luận văn này sử dụng thƣ viện OpenCV để rút
trích đặc trƣng sinh trắc học của khuôn mặt.
4.4 Thiết kếchương chương trình mã hóa dữ
4.4.1 Rút trích đặc trưng khuôn mặt
Thuật toán đƣợc sử dụng để rút trích đặc trƣng sinh trắc học khuôn mặt là thuật toán Eigenface. Trong luận văn này sử dụng thƣ viện OpenCVđểxác định và rút
trích đặc trƣng khuôn mặt.
Ảnh của khuôn mặt đƣợc thu nhận từ camera của điện thoại, sau đó đƣợc rút
trích đặc trƣng và chuẩn hóa.
4.4.2 Lượng tử hóa vector
Các vector đặc trƣng phải đƣợc chuẩn hóa để các hệ số trong vector nằm trong
đoạn [0, 1]. Công thức chuẩn hóa đƣợc thực hiện nhƣ sau:
* , 1, 2,..., ax i i x Min x i d M Min
Với Min và Max là giá trị x lớn nhất và nhỏ nhất trong miền giá trị của tập huấn luyện.
Sau khi chuẩn hóa, phải xử lý lƣợng tử hóa nhằm chuyển đổi các giá trị đặc
trƣng từ miền liên tục sang miền rời rạc, xửlý lƣợng tử hóa sẽ chuyển giá trị này sang một số nguyên nằm trong [0, N].
4.4.3 Sinh khóa sinh trắc
Đặc trƣng khuôn mặt sau khi đƣợc chuẩn hóa và lƣợng tử, giá trị đặc trƣng w
thông qua thành phần SS của giải thuật secure sketch sẽ tạo ra thông tin công cộng s, thông tin snày đƣợc lƣu xuống bộ nhớvà đƣợc dùng cho quá trình khôi phục w. Một giá trị hàm băm của w cũng đƣợc lƣu xuống bộ nhớ để dùng cho việc so sánh mẫu sinh trắc để chứng thực ngƣời dùng.
4.4.4 Khôi phục khóa sinh trắc
Đặc trƣng khuôn mặt sau khi đƣợc chuẩn hóa và lƣợng tử, giá trị đặc trƣng w’
thông qua thành phần Rec của giải thuật secure sketch sẽ khôi phục lại đặc trƣng
w nhờ vào thông tin công cộng s và w’.
Một giá trị hàm băm của w’ đƣợc dùng đểđối sánh với mẫu giá trịbăm đã đƣợc
lƣu trƣớc đó, nếu hai giá trị này khớp với nhau tức là bƣớc xác thực thành công,
khóa sinh trắc đã đƣợc tái tạo.
4.4.5 Mã hóa dữ liệu sử dụng khóa sinh trắc
Khóa sinh trắc đƣợc đƣợc sinh ra từ quá trình sinh khóa sẽ đƣợc dùng làm đầu vào cho quá trình tiếp theo là quá trình mã hóa dữ liệu. Giải thuật đƣợc áp dụng trong ứng dụng của luận văn là giải thuật mã hóa AES.
4.4.6 Chức năng của ứng dụng Giao diện chính Giao diện chính
Ứng dụng đƣợc phát triển dựa trên công cụ Android Developer Tools v22.6.2
Hình 4-2 Giao diện màn hình chính của ứng dụng
Train face: Có chức năng thu nhận ảnh khuôn mặt của ngƣời dùng để lấy mẫu. Applications: Sử dụng khóa sinh trắc để mã hóa và giải mã dữ liệu bằng giải thuật AES.
Train face
Chức năng này thu nhận ảnh của ngƣời dùng sau đó rút trích và lƣu trữ thông tin
mẫu sinh trắc học của khuôn mặt. Chức năng này bao gồm hai phần chính, Add và Train:
Hình 4-3 Giao diện train face
Add: Chức năng này lƣu hình ảnh của khuôn mặt. Sử dụng camera của điện thoại và giải thuật eigenfaces, chƣơng trình xác định đối tƣợng phía trƣớc có phải là khuôn mặt của ngƣời dùng không. Nếu là khuôn mặt thì ảnh vùng xác
định khuôn mặt sẽđƣợc lƣu xuống bộ nhớ.
Train: Chức năng này rút trích và lƣu trữ thông tin đƣợc xử lý của khuôn mặt.
Chƣơng trình sẽ rút trích đặc trƣng từ các ảnh đƣợc lƣu trong bộ nhớ ở bƣớc
“add” ở trên, áp dụng thuật toán Eigenfaces đểrút trích các vector đặc trƣng. Các
quá trình phát sinh sketch và hàm băm. Kết quả của hai quá trình này sẽ đƣợc
lƣu vào bộ nhớ.
Khi chọn “Reset” các ảnh trong thƣ viện tập huấn luyện đƣợc lƣu trữ trên bộ nhớ
sẽ bị xóa bỏđểngƣời dùng nạp vào các ảnh mới.
Applications
Chức năng này cho phép mã hóa và giải mã dữ liệu. Khóa sinh trắc đƣợc sinh ra