c. Chuẩn mã hóa dữ liệu AES
3.1 Bảo mật sinh trắc học
Việc bảo vệ mẫu đặc trƣng sinh trắc học đƣợc lƣu trữ trên điện thoại là rất quan
trọng. Vì đặc trƣng sinh trắc học nếu bịngƣời khác xem đƣợc hoặc bị đánh cắp
thì không thể thu hồi và ngƣời khác thể nhân bản để sử dụng nhiều lần. Đo đó
cần phải mã hóa để bảo vệ đặc trƣng sinh trắc học thật an toàn kể cả khi ngƣời
dùng đánh mất chiếc điện thoại thông minh.
- Tính đa dạng: Các mẫu bảo mật phải cho phép đổi chiếu trong cơ sở dữ
liệu. Do đó phải đảm bảo tính riêng tƣ của ngƣời dùng.
- Tính có thể hủy bỏ: Có thể dễ dàng thu hồi các mẫu bịhƣ hại và tạo ra lại các mẫu mới dựa trên các dữ liệu sinh trắc học giống nhau.
- Tính bảo mật: nó phải đảm bảo việc khó tính toán để tạo lại các mẫu sinh trắc học gốc từ mẫu bảo mật. Tính chất này nhằm ngăn chặn một ai đó tấn công bằng cách sử dụng đặc trƣng sinh trắc học vật lý giả mạo từ một mẫu
đã bịđánh cắp.
- Tính hiệu quả: Hệ thống bảo mật mẫu sinh trắc học không làm giảm tính nhận dạng (FAR và FRR) của hệ thống sinh trắc học.
Có hai phƣơng pháp bảo mật mẫu đặc trƣng sinh trắc học: feature
transformation và biometric cryptosystem. Trong luận văn này, tôi trình bày
phƣơng pháp biometric cryptosystem:
Trong phƣơng pháp này, một số thông tin đƣợc công khai về mẫu sinh trắc học
đƣợc gọi là thông tin hỗ trợ (helper data). biometric cryptosystem có thể tiếp tục phân loại thành hai hệ thống key binding và key generation tùy thuộc vào helper
data mà nó thu đƣợc. Khi helper data thu đƣợc bằng cách sinh ra một khóa từ
mẫu đặc trƣng sinh trắc học đƣợc gọi là key-binding biometric cryptosystem.
Helper data kết hợp với mẫu đặc trƣng sinh trắc học để tái tạo lại khóa, mẫu đặc
trƣng sinh trắc học đƣợc truy vấn, quá trình này đƣợc gọi là key generation biometric cryptosystem.
Phát sinh khóa trực tiếp từ sinh trắc học là một đề xuất hấp dẫn, nhƣng có vấn đề
khó khăn là những biến đổi nội tại của ngƣời dùng. Dodis và cộng sự [20] đã
giới thiệu định nghĩa secure sketch và fuzzy extractor trong ngữ cảnh của việc phát sinh khóa từ sinh trắc học.
3.2 Các giải thuật mã hóa đặc trưng sinh trắc học
Để giải quyết vấn đề, sử dụng đặc trƣng sinh trắc học để mã hóa dữ liệu, tôi giới thiệu bốn giải thuật sau: Fuzzy Extractor, Secure Sketch, Fuzzy Commitment, và
Fuzzy Vault.
Secure Sketch[20,12]: Cho phép xây dựng lại một cách chính xác đầu vào
không đồng nhất nhƣ sau: đầu vào w, qua xử lý tạo ra s (ouput sketch), sau đó
cho s và một giá trị w’ gần giống với w, w có thể đƣợc khôi phục lại. Các phác thảo đƣợc bảo mật theo nghĩa là nó không tiết lộ nhiều về w: w giữ nhiều dữ liệu ngẫu nhiên của nó thậm chí nếu s đƣợc biết đến. Do đó, thay vì lƣu trữ w vì sợ
rằng việc đọc sau này sẽ bị nhiễu, có thể lƣu trữ s thay vì lƣu w, mà không ảnh hƣởng đến sự bảo mật của w.
Fuzzy Extractor[20,19]: Rút trích một chuổi R ngẫu nhiên đồng nhất từ đầu vào (input) w theo phƣơng pháp giới hạn gây nhiễu, nghĩa rằng nếu đầu vào w’
gần giống với w thì chuỗi R tạo lại một cách chính xác. Để hỗ trợ việc tạo lại R
Hình 3-1 (a) secure sketch; (b) fuzzy extractor; (c) ứng dụng fuzzyextractor mã hóa dữ liệu
Khóa R đƣợc rút trích từ sinh trắc học w thông qua giải thuật fuzzy extractor, cả
hai P và C (encrypted record) không cần phải giữ bí mật, bởi vì chúng ta chỉ có thể giải mã record nếu w’ gần giống với w.
R đƣợc rút trích từw và có thểđƣợc sử dụng nhƣ là một khóa trong ứng dụng mã
hóa nhƣng không giống các khóa truyền thống, nó không cần lƣu trữ (bởi vì nó
có thểđƣợc khôi phục lại từ bất kì một w’ nào gần giống với w)[20].
Một ví dụ cụ thể làm thế nào để sử dụng fuzzy extractor: Trong trƣờng hợp chứng thực mật khẩu, server có thểlƣu trữ (P, f(R)). Khi ngƣời dùng đƣa vào w’
gần giống w, server sẽ tạo lại R và sử dụng P để kiểm tra f(R) có giống với
những gì mà nó lƣu trữ.
Secure sketch không giống nhƣ fuzzy extractor, nó cho phép tái tạo một cách chính xác của các bản gốc đầu vào.
Secure sketch và fuzzy extractor có thể đƣợc xem nhƣ là sự cung cấp lƣu trữ
khóa mờ: Chúng cho phép lấy lại khóa bí mật (w hay R) từ việc đọc w’ của w
bằng cách sử dụng một số thông tin công khai (s hay P)[20].
Fuzzy Commitment là giải thuật dùng để kết hợp đặc trƣng sinh trắc học với khóa
đƣợc tạo ngẫu nhiên thông qua phép toán XOR. Các hệ thống mã hóa theo kiểu truyền thống dựa trên các bit-string (khóa) bí mật để bảo vệ dữ liệu, tuy nhiên khi khóa bí mật này chứa lỗi thì việc giải mã sẽ bị thất bại. Vì vậy Fuzzy Commitment là một kiểu mật mã truyền thống đƣợc thiết kế để xử lý độc lập những lỗi ngẫu nhiên của các bit trong khóa bí mật.
Mô hình Fuzzy Commitment:
Hình 3-2 Mô hình Fuzzy Commitment
Fuzzy Vault[9,8]
Fuzzy Vault là giải thuật dùng để tạo các đặc trƣng nhị phân và khóa ngẫu nhiên.
Đặt một khóa bí mật K vào trong Fuzzy Vault và “lock” nó bằng cách dùng một tập A (biểu diễn ), để “unlock” Vault ( ) ta dùng một tập B có cùng kích
thƣớc với A và A ~ B, khi đó k đƣợc tái tạo lại và đƣợc unlock.
Hình 3-3 Mô hình Fuzzy Vault
Mục tiêu của đề tài là mã hóa dữ liệu trên điện thoại thông minh sử dụng sinh trắc học. Để mã hóa và giải mã dữ liệu, chúng ta có thể sử dụng các thuật toán mã hóa truyền thống (DES hoặc AES) với khóa bí mật là R hoặc w qua giải thuật
fuzzy extractor hoặc thuật secure sketch từ sinh trắc học w.
3.3 Các định nghĩa cơ bản: Min-entropy[20]: Min-entropy[20]:
Khi thảo luận về vấn bảo mật, ngƣời ta thƣờng quan tâm đến khả mà những kẻ
tấn công có thể đoán đƣợc giá trị ngẫu nhiên (ví dụ đoán đƣợc khóa bí mật). Kẻ
tấn công mong muốn đoán đƣợc giá trị có khảnăng cao nhất. Khảnăng dự đoán
của một biến ngẫu nhiên A là Maxa Pr[A = a]. và tƣơng ứng min-entropy đƣợc
định nghĩa là:
H∞(A) = -log(maxaPr[A=a]) (xác định trƣờng hợp entropy xấu nhất).
Statistical distance (Khoảng cách thống kê)[20]:
SD(A,B) = ∑ ( ) ( )
Strong extractor[20]:
Đặt Ext: * + * + là một hàm xác xuất sử dụng r bit ngẫu nhiên. Có thể
nói rằng Ext là một (n,m, ℓ, ε)-strong extractor có hiệu quả nếu đối với tất cả
min-entropy m sự phân phối W trên {0,1}n, SD((Ext(W;X),X), (Uℓ,X)) ≤ ε, mà X là đồng nhất trên {0,1}r.
Secure sketch[20]:
Đặt M là không gian dữ liệu với hàm khoảng cách dis.
Một (M,m, ̃,t)-secure sketch là một cặp thủ tục ngẫu nhiên, “sketch” (SS) và
“Recover” (Rec), với những tính chất sau:
- Thủ tục “sketch” (SS) đầu vào và trả về một chuỗi bit {0,1}*. - Thủ tục “Recover” Rec lấy một phần tửw’ M và chuỗi bit s {0,1}*.
Tính chính xác của secure sketch phải đảm bảo rằng nếu ( ) ,
thì Rec(w’,SS(w))=w. Nếu ( ) thì không đảm bảo đầu ra
của Rec.
- Tính chất bảo mật đảm bảo rằng bất kỳ sự phân phối W trên M với min- entropy m, giá trị của W có thểđƣợc khôi phục lại bởi kẻ mạo danh với xác xuất không lớn hơn ̃ . Đó là ̃ ( ( ) ̃.
Một secure sketch đạt hiệu quả nếu SS và Rec chạy trong thời gian đa thức đƣợc
mong đợi.
Fuzzy extractor[20]:
Một (M,m, ℓ, t, ε)-fuzzy extractor là một cặp thủ tục ngẫu nhiên, “generate”
Thủ tục phát sinh Gen ởđầu vào w M sinh ra một chuỗi đƣợc rút trích R {0, 1}ℓ và một chuỗi helper P {0, 1}*.
Thủ tục tái tạo Rep lấy một phần tửw’ M và một chuỗi bit P {0, 1}*nhƣ đầu vào, tính chất chính xác của fuzzy extractor bảo đảm rằng nếu dis(w,w’) ≤t và R,
P đƣợc phát sinh bởi (R, P) ← Gen(w), thì Rep(w′, P) = R. Nếu dis(w,w’) > t, thì
không có sựđảm bảo vềđầu ra của Rep.
Sự bảo đảm tính bảo mật cho bất kỳ sự phân phối W trên M của min-entropy m, chuỗi R là gần nhƣ đồng nhất: nếu (R, P) ← Gen(W), thì SD((R, P), (Uℓ, P)) ≤ ε.
Một fuzzy extractor đạt hiệu quả nếu Gen và Rec chạy trong thời gian đa thức
đƣợc mong đợi. Fuzzy extractor cho phép rút trích giái trị ngẫu nhiên R từ w và
sau đó tái tạo lại R từ bất kì chuỗi w’ nào gần giống với w. Việc tái tạo sử dụng các chuỗi helper P đƣợc sinh ra trong quá trình rút trích ban đầu. Nhƣng chuổi P
không cần giữ bí mật, bởi vì R thật sự là ngẫu nhiên ngay cả khi cho P.
Các bit ngẫu nhiên đồng dạng đƣợc sinh ra từ fuzzy extractor có thể đƣợc sử
dụng trong bất kì văn bản mã hóa nào đòi hỏi sử dụng bit ngẫu nhiên đồng dạng (ví dụ nhƣ khóa bí mật). Những bit kém đồng dạng sẽ làm giảm sự an toàn.
Nhƣng không quá khoảng cách của chúng bằng cách lựa chọn không gian nhỏ
(ví dụ từ 2-80) có thể làm giảm những bảo mật không liên quan.
Tƣơng tự nhƣ secure sketch, số lƣợng đƣợc gọi là entropy loss của fuzzy
extractor. Tƣơng tựnhƣ vậy, một cái định nghĩa là average-case fuzzy extractor,
cái này yêu cầu nếu ̃ ( ) thì (( ) ( )) cho bất giá trị ngẫu nhiên I.
3.4 Xây dựng fuzzy extractor từ secure sketch
Secure sketch rất hữu ích trong việc xây dựng fuzzy extractor. Cụ thể, chúng ta xây dựng fuzzy extractor từ secure sketch và strong extractor nhƣ sau: áp dụng SS cho w để có đƣợc s, và một strong extractor Ext với x ngẫu nhiên để w có
đƣợc R. Lƣu (s, x) nhƣ là một chuỗi helper P. Để sinh ra R từw’ và P = (s, x),
đầu tiên sử dụng Rec (w’, s) để khôi phục w và sau đó Ext(w, x) để có đƣợc R [20].
Nguồn: [20]
Hình 3-4 Fuzzy extractor đƣợc xây dựng từ secure sketch và strong extractor
Đối với nguồn phân phối liên tục, cơ chếlƣợng tửhóa Q đƣợc áp dụng để
chuyển từ miền liên tục sang miền rời rạc. Fuzzy extractor cho miền rời rạc sau
đó mới đƣợc áp dụng.
Trong quá trình tái tạo (Rep), phiên bản rời rạc của dữ liệu đƣợc tái tạo thay vì x nguyên gốc trong miền liên tục. Entropy loss trong giai đoạn này đƣợc tính bởi H∞(Q(X))-H∞(Q(X) | P) đƣợc gọi là left-over entropy. Mục đích của chúng ta là
tối đa hóa left-over entropy bởi vì nó là “entropy nguồn” cho giai đoạn strong
extractor. Strong extractor sau đó áp dụng Q(X) để lọc ra chuỗi bit an toàn. Tổng
entropy loss của fuzzy extraction là:
(H∞(Q(X)) - H∞(Q(X) | P))+(H∞(Q(X) | P)- ℓ)=H∞(Q(X))- ℓ,
Xây dựng fuzzy extractor trong phần này có tính chất là
H∞(Q(X)) = H∞(Q(X) | P), tức là dữ liệu hỗ trợ không tiết lộ bất kỳ thông tin gì
về chuỗi đƣợc lọc. Hơn nữa, chúng ta có đầu ra sau khi lƣợng tửhóa là đồng
nhất, vì vậy chúng ta không cần phải có strong extractor nữa.
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: