Thiết kế hàm lọc

Một phần của tài liệu Nghiên cứu ứng dụng sinh trắc học trong việc đảm bảo an toàn cho hệ thống giao dịch điện tử (Trang 51)

Hàm lọc sẽ đƣợc tối ƣu hóa cho hai yêu cầu sau:

 Đƣa ra kết quả chính xác cho ngƣời sử dụng hợp pháp.

 Có khả năng phân biệt và khắc phục đƣợc độ sai lệch trong ngƣỡng cho phép của các mẫu nhận dạng mà ngƣời dùng đƣa vào.

Để cung cấp cho hệ thống có khả năng đáp ứng đƣợc những biến dạng của dấu vân tay, hàm lọc tính toán sẽ dựa trên một tập T ảnh huấn luyện với T>=1 trong quá trình đăng ký. Ký hiệu tập ảnh T của dấu vân tay là với chỉ số 0 biểu thị ảnh huấn luyện. Hàm lọc sẽ đƣợc xây dựng từ những ảnh đó thì đƣợc ký hiệu H(u)[1].

Áp dụng với đầu vào ta sẽ có đƣợc mẫu đầu ra nhƣ sau: Biến đổi Fourier của ảnh huấn luyện :

Với là biến đổi Fourier của ảnh huấn luyện .

Ký hiệu r(x) là mẫu đầu ra mong muốn của hệ thống. Chú ý rằng hàm lọc sẽ đƣợc xác định nhƣ là một hàm ngẫu nhiên của r(x) hơn là hàm delta giống nhƣ bình thƣờng trong hệ thống tƣơng quan. Mẫu đầu ra c(x) sẽ đƣợc sử dụng vừa để liên kết với chìa khóa số trong quá trình lấy mẫu, vừa để tìm ra khóa số trong quá trình xác thực.

Chọn 1 t T sao cho ≈ r(x) tức là các mẫu đầu ra từ hệ thống càng gần với hình ảnh mẫu.

Ta có thể định nghĩa một lỗi Esimilarity nhƣ sau:

( 22-1)

Esimilarity định nghĩa nhƣ là đánh giá sự giống nhau của những mẫu tƣơng quan đầu ra, nếu Esimilarity=0 có nghĩa là những mẫu tƣơng quan đầu ra đều đồng nhất cho tất cả những ảnh huấn luyện. Nhƣ vậy, chúng ta phải tìm cách để tối giản Esimilarity. Ngoài ra chúng ta phải giảm sự biến dạng của những ảnh đầu vào.

(22-2) Giả sử là sai lệch biến dạng của hình ảnh.

Khi đó các lỗi do cộng thêm sự biến dạng hoặc những thay đổi trong đƣợc xác định là:

( 22-3) Với

(22-4) Ở đây P(u) là sự thay đổi giữa các hình ảnh nhận dạng.

Chúng ta muốn có hàm lọc Etotalít lỗi nhất nhƣ sau:

(22-5) Khi cho α biến thiên từ 0->1, ta có thể tối ƣu hiệu suất của hàm lọc giữa sự chính xác và khả năng chịu đựng sự biến dạng. Với biểu thức sau của H(u):

(22-6) Đặt

(22-7)

(22-8) Từ đó ta có:

(22-9) Ở đây R(u) là sự biến đổi Fourier Của r(x).

 Nếu α=0, hàm lọc sẽ có đầu ra c0t(x) tiệm cận tới R(x): hàm lọc có khả năng phân biệt rất tốt, nhƣng là không phù hợp với sự biến dạng.

 Nếu α= 1, hệ thống sẽ thích nghi đối với những sự biến dạng vào đầu vào, nhƣng khó có thể phân biệt giữa những ngƣời sử dụng khác nhau của hệ thống.

Tùy thuộc vào yêu cầu và mức độ bảo mật của hệ thống mà a chọn các giá trị α khác nhau. Tuy nhiên, đối với một hệ thống thông thƣờng, giá trị α tối ƣu cho dấu vân tay xấp xỉ khoảng 0.3.

2.3.5 Độ an toàn của hàm lọc

Phƣơng trình 22-9 định nghĩa một hàm lọc mà cung cấp một sự cân bằng giữa khả năng phân biệt và sự biến dạng của vân tay. Tuy nhiên, theo yêu cầu thứ ba của hệ thống thì hàm lọc phải đƣợc cất giữ nhƣ là một thành phần của Bioscrypt và chống lại đƣợc sự tấn công, ví dụ: ảnh sinh trắc f(x) hay hàm đầu ra R(x) đều không thể độc lập khôi phục từ Bioscrypt. Bình thƣờng, trong một hệ thống tƣơng quan, hàm lọc H(u) đã định nghĩa ở trên sẽ đƣợc lƣu trữ trong Bioscrypt.

Tuy nhiên, để đảm bảo độ an toàn tối đa, một phiên bản sửa đổi của H(u) sẽ đƣợc lƣu trữ. Phiên bản sửa đổi H(u) đƣợc kí hiệu là Hstored(u). Đặc biệt, độ an toàn của Hstored(u) sẽ đạt tối đa nếu chỉ có thành phần của H(u) đƣợc lƣu trữ và R(u) là ngẫu nhiên.

2.3.6 Bộ lọc tạm thời

Phần này sẽ mô tả cơ chế để tính toán tối ƣu cho H(u) với sự đồng bộ và lƣu trữ phiên bản Hstored(u) để đảm bảo sự an toàn.

Giả sử có một mảng R(u), R(u) có giá trị j ngẫu nhiên và 0≤j<2π:

R(u)= =ei2πU[0,1) (22-10)

ở đây U[0, 1) đại diện cho một mảng của các phần tử mà mỗi phần tử m ngẫu nhiên và chạy trong khoảng 0 ≤ m < 1. Trong phần này đƣợc dùng để đại diện cho hàm ngẫu nhiên đƣợc định nghĩa ở trên. Nhƣ vậy, bằng cách sử dụng hình ảnh

(22-11)

Khi một số hình ảnh vào hệ thống thì hàm H(u) đã đƣợc tối ƣu sẽ sinh ra c0(x). Với quá ảnh đầu vào sẽ tạo ra hàm ở đầu ra nhƣ sau:

(22-12) Tƣơng tự, với ảnh đầu vào sẽ tạo ra hàm ở đầu ra nhƣ sau:

(22-13)

Ở đây chỉ số 1 đại diện cho một ảnh đƣợc dùng trong quá trình xác thực. Mẫu output c1t(x) sẽ đƣợc sử dụng để khôi phục chìa khóa số trong quá trình xác thực. Rõ ràng với ngƣời dùng hợp lệ thì c1t(x) càng gần c0t(x). Tất nhiên nếu ảnh f1t(x) đồng nhất với ảnh f0t(x) thì c1t(x)→ c0t(x). Tuy nhiên vì những sự thay đổi theo hành vi, môi trƣờng và những thay đổi vật lý nên f1t(x) sẽ không đồng nhất đối với f0t(x). Vì vậy, trong quá trình đăng ký ta phải dùng T ảnh vân tay(thƣờng T 6).

Với T= 6 thì A1(u) ≅ A0(u) và D1(u) ≅ D0(u). Sử dụng

 A0(u) để đại diện cho F0t(u),  A1(u) để đại diện cho F1t(u), Ta có

(22-15) (22-16) Tƣơng tự: (22-17) (22-18) (22-19) Nhƣ đã đề cập ở trên, Hstore sẽ bằng tích số của và

(22-20)

Trong phần tiếp theo, chúng ta sẽ đi sâu hơn về khía cạnh an toàn của Hstored(u) . Trong quá trình đăng ký/xác thực, khóa số sẽ đƣợc liên kết với c0(x) trong quá trình đăng ký và khôi phục từ c1(x) trong quá trình xác thực.

2.3.7 Thiết kế bộ lọc an toàn

Trong phần trƣớc chúng ta đã đề cập đến bộ lọc Hstored(u). Nó đƣợc yêu cầu phải an toàn để chống lại các cuộc tấn công. Đến năm 1917 Gilbert Vernam phát minh ra hệ thống mã hóa với độ bảo mật rất cao, đáp ứng đuợc cho các yêu cầu thiết kế bộ lọc an toàn. Hệ thống mã hóa nhƣ sau: P=C=K={0,1}n với n≥1

Quá trình xử lý mã hóa bao gồm việc bổ sung hai module của hai chuỗi nhị phân n-bit gọi là bản rõ và khóa. Dữ liệu mã hóa gọi là bản mã. Tƣơng tự, quá trình xử lý giải mã bao gồm việc bổ sung thêm hai module của hai chuỗi gọi là bản mã và khóa,

P, C, K lần lƣợt tƣơng ứng là bản rõ, bản mã và không gian khóa. Trong hệ thống mã hóa khóa bí mật là ngẫu nhiên và chỉ sử dụng một lần.

Xét một hệ thống mật mã nhị phân có hai cấp, 0 và π. Cho P=K=C={0,π}n khi n≥1. Quá trình mã hóa: = với € P, € K và = + (mod 2π). Quá trình giải mã: = với = + (mod 2π). Tuy nhiên,

nếu (- ) ≡ (mod2π) với € {0,π} thì giải mã sẽ là: = .

Các yếu tố của giai đoạn tạo ra nhị phân ei0 và eiπ có thể kết hợp theo cách sau: ei0 eiπ = eiπ ei0 = eiπ

ei0 ei0 = eiπ eiπ = ei0

Gọi Γ là phép biến đổi: Γ = {ei0 →0, eiπ →1, và → } với là phép nhân còn ⊕

là phép toán loại trừ OR.

Nhƣ vậy cách kết hợp nhƣ trên có thể chuyển đổi thành nhƣ sau: 0 1 = 1 0 = 1

2.3.8 Quá trình đăng ký/xác thực

Quá trình đăng ký

E-1: Xử lý ảnh

Kết hợp một tập dấu vân tay đầu vào với một mảng ngẫu nhiên để tạo ra hai mảng đầu ra: Hstored(u) và c0(x).

E-2: Liên kết khóa (Key linking)

Dùng giải thuật liên kết để liên kết khóa mã k0 với mẫu c0(x). E-3: Tạo mã định danh

Tạo ra một mã định danh id0 từ chìa khóa k0.

Hình 2-10. Tổng quan quá trình đăng ký của mã hóa sinh trắc học Quá trình xác thực

Hình 2-11. Tổng quan quá trình xác thực của mã hóa sinh trắc học

V -1: Xử lý ảnh

Lấy Hstored(u) từ Bioscrypt, kết hợp với các dấu vân tay đầu vào để tạo thành c1(x). V -2: Tìm chìa khóa

Sử dụng giải thuật giải mã tìm chìa khóa k1 từ c1(x). V -3: Kiểm tra khóa

Kiểm tra k1 bằng cách tạo ra một mã định danh mới id1 và so sánh nó với id0 ở trên.

1. Quá trình đăng ký

Mục đích của quá trình đăng ký là kết hợp khóa N-bit với dấu vân tay ngƣời dùng để tạo ra Bioscrypt của ngƣời dùng.

Nhƣ trong hình dƣới quá trình đăng ký sẽ cần ba đầu vào: tập dấu vân tay của ngƣời dùng, R(u) đƣợc tạo ngẫu nhiên và khóa mã k0 độ dài N-bit. R(u) đƣợc tạo ra bằng sử dụng một bộ tạo số ngẫu nhiên (random number generator - RNG). Chìa khóa k0 , có thể một chìa khóa đã có đƣợc dùng làm đầu vào của giải thuật mã hóa sinh trắc, hoặc có thể sinh ra bởi RNG. Chú ý là cả chìa khóa k0 và R(u) hoàn toàn độc lập với ảnh sinh trắc.

Hình 2-12. Xử lý ảnh trong quá trình đăng ký

Nhƣ trong hình trên, quá trình xử lý ảnh này sẽ tạo ra mẫu c0(x) để chuyển cho giai đoạn E-2 cũng nhƣ sinh ra Hstored(u). Những dấu vân tay T đƣợc thu nhận từ ngƣời sử dụng hệ thống (khoảng 4 tới 6 ảnh đƣợc sử dụng), sau đó những ảnh này sẽ đƣợc thực hiện biến đổi Fourier và sử dụng phƣơng trình 22-7 và 22-8 ở trên tính toán A0(u) và D0(u). Tính từ A0(u) và liên hợp phức của nó. Sau đó tính Hstore(u) từ và R(u) theo phƣơng trình 22-20. Theo phƣơng trình 22-16 ta sẽ tính đƣợc mẫu c0(x). Hstore(u) đƣợc lƣu trữ vào vào Bioscrypt, c0(x) làm đầu vào cho E-2 của Đăng ký .

E-2: Thuật toán liên kết

Thuật toán liên kết có nhiệm vụ kết hợp giữa mẫu đầu ra c0(x) với khóa k0 N-bit bằng cách dựa trên bảng tra cứu (Lookup table), tạo ra và lƣu trữ chúng vào Bioscrypt để sử dụng cho việc khôi phục khóa trong quá trình xác thực.

Một điều quan trọng trong quá trình này cần chú ý đó là sự sai khác giữa mẫu đầu ra c0(x) và mẫu cần kiểm tra c1(x). Sự khác nhau này vì những sự thay đổi trong hàm lƣợng ẩm của ngón tay ngƣời sử dụng, định vị ngón tay trên thiết bị bắt ảnh…

Có nhiều cách để liên kết k0 với c0(x), Trong luận văn này sẽ đề cập đến cách sử dụng một cấu trúc lặp đơn giản sẽ đƣợc miêu tả chi tiết ở phần dƣới, cách này có thể sử dụng để chỉnh sửa lỗi.

Hình 2-13. Giải thuật liên kết khóa

Nhƣ trong hình trên, giải thuật này sẽ chọn lọc lấy một mảng 64x64 ở phần giữa của c0(x), nhị phân hóa và chọn lọc những giá trị L để đại diện cho mỗi bit khóa. Việc này có mục đích để cung cấp các thông số đầu vào để tạo ra mẫu đăng ký nhị phân. Tiếp theo kết hợp phần số thực và số ảo vừa đƣợc nhị phân hóa của c0(x) để tạo ra mẫu đăng ký có kích thƣớc 128x64, ví dụ: một mảng với 128 cột và 64 hàng. Nếu phần tử a+bi xuất hiện ở vị trí (x,y) của mảng 64x64 của c0(x), tƣơng ứng trong mẫu đăng ký, phần số thực a sẽ xuất hiện tại vị trí(x, y) và phần số ảo b sẽ xuất hiện tại vị trí (x +64, y). Quá trình này làm chuyển đổi một mảng giá trị phức 64x64 thành một mảng giá trị thực 128x64. Mẫu đăng ký bây giờ chứa đựng 8192 giá trị thực D đƣợc tạo ra từ các số thực a hay số ảo b tƣơng ứng. Nhị phân (theo qui tắc dƣới) mỗi giá trị của mẫu đăng ký ta sẽ thu đƣợc mẫu đăng ký nhị phân dùng để liên kết với k0:

d → 1 nếu d ≥ 0 d → 0 nếu d ≤ 0

Giả sử bit đầu tiên của k0 có giá trị là 0. Chọn vị trí của L ở trong mẫu đăng ký nhị phân mẫu đăng ký nhị phânmà có giá trị phần tử của nó bằng 0, ghi vào cột đầu tiên của Lookup table (bảng tra cứu). Tiếp tục quá trình này với các bit khác của khóa. Mỗi vị trí trong mẫu đăng ký nhị phân chỉ có thể đại diện cho một bit của chìa khóa. Cuối cùng Lookup table sẽ bao gồm 128 cột mà mỗi cột chứa vị trí L trong mẫu đăng ký nhị phân.

E-3: Tạo mã định danh

Một yêu cầu với giải thuật mã hóa sinh trắc học là khi một ngƣời tấn công vào hệ thống sử dụng Bioscrypt thì giải thuật sẽ sinh ra một khóa sai. Trên thực tế, để tiện lợi cho hệ thống thì giải thuật sẽ không sinh ra một khóa sai mà thay vào đó sẽ sinh ra thông báo từ chối và chuyển đến cho hệ thống mật mã. Việc này sẽ tránh cho hệ thống lãng phí tài nguyên vào việc giải mã bằng khóa sai. Do đó cần phải có kịch bản kiểm tra khóa cho quá trình này. Rõ ràng chính chìa khóa k0 không thể lƣu trữ trong Bioscrypt để so sánh với khóa đƣợc sinh ra bởi quá trình kiểm tra. Thay vào đó, chúng ta sẽ kết hợp mã hóa tiêu chuẩn và giải thuật băm để tạo ra mã định danh id0. Tƣơng tự quá trình kiểm tra sẽ sinh ra một mã định danh tƣơng ứng là id1. Sau đó sẽ so sánh hai mã định danh này để xác minh khóa đƣợc sinh ra trong quá trình kiểm tra có đúng hay không.

Một phƣơng thức kiểm tra khóa thƣờng dùng là sử dụng khóa k0 N-bit nhƣ là khóa mã để mã hóa S bit của dữ liệu. Sau đó dùng hàm băm một chiều để băm dữ liệu đã đƣợc mã hóa để tạo ra mã định danh id0. Lƣu mã định danh vào trong Bioscrypt.

S bit đƣợc mã hóa có thể là S bit bất kỳ nào có trong quá trình đăng ký và xác thực. S bit này là khác nhau với mỗi ngƣời dùng để đảm bảo an toàn tối đa cho thủ tục kiểm tra khóa. Để đảm bảo điều này ta sẽ sử dụng S bit ở hàm lọc lƣu trữ Hstore(u) vì nó có ở trong cả quá trình đăng ký và xác thực. Ngoài ra còn vì Hstore(u) là tích số của dấu vân tay và mảng ngẫu nhiên nên nó khác nhau với mỗi ngƣời dùng. Do đó ta sẽ sử dụng S bit đầu tiên của Hstore(u) làm dữ liệu đầu vào cho giải thuật mã hóa.

Việc chọn giải thuật mã hóa và hàm băm là độc lập với quá trình mã hóa sinh trắc học. Tiêu chí cho quá trình tạo ra mã định danh là đơn giản và tính an toàn cao. Ở đây có thể sử dụng mã hóa Triple-DES và hàm băm SHA-1.

Bảng tra cứu và id0 đƣợc thêm vào Hstore(u) để tạo thành Bioscrypt hoàn chỉnh, nó có thể lƣu trữ trên bất cứ phƣơng tiện lƣu trữ bình thƣờng hiện đang có trên thị trƣờng.

2. Quá trình xác thực

Mục tiêu của quá trình này là khôi phục khóa N-bit cho ngƣời dùng hợp lệ.

Nhƣ trong hình dƣới, tập các ảnh sinh trắc của ngƣời sử dụng sẽ kết hợp với Hstore(u), bảng tra cứu và id0 ở trong Bioscrypt để khôi phục và kiểm tra khóa N-bit của ngƣời dùng.

Hình 2-14. Xử lý ảnh ở trong quá trình xác thực

Nhƣ trong hình trên, xử lý ảnh của quá trình xác thực cũng tƣơng tự nhƣ xử lý ảnh trong quá trình đăng ký. Trƣớc tiên lấy dấu vân tay T của ngƣời sử dụng, sau đó thực hiện biến đổi Fourier và tính A1(u) và D1(u). Dựa theo phƣơng trình 22-19, tính c1(x) với Hstore(u) đƣợc lấy từ Bioscrypt. Chuyển c1(x) sang giai đoạn V-2 của quá trình xác thực để khôi phục khóa mã N-bit.

Nhƣ đã trình bày từ phần trên:

A0(u), D0(u) đƣợc tính từ dấu vân tay đầu vào trong quá trình đăng ký. A1(u), D1(u) đƣợc tính từ dấu vân tay đầu vào trong quá trình xác thực. Nhƣ vây ta có,

 Nếu là ngƣời sử dụng hợp lệ thì

A1(x) ≈ A0(x), D1(x) ≈ D0(x) và ≈ 1  Nếu là ngƣời tấn công thì

A1(x) ≠ A0(x), D1(x) ≠ D0(x) và ≠ 1

V-2: Thuật toán khôi phục

Thuật toán khôi phục chịu trách nhiệm chính trong việc khôi phục khóa từ mẫu c1(x) trong quá trình xác thực. Các bƣớc dƣới đây sẽ mô tả chi tiết từng bƣớc của quá trình khôi phục khóa N-bit liên kết với c0(x) sử dụng giải thuật liên kết đã đề cập phía trên.

Hình 2-15. Giải thuật khôi phục khóa

Giải thuật khôi phục khóa

1. Lấy một mảng kích thƣớc 64x64 ở giữa c1(x).

2. Tƣơng tự giai đoạn E-2: Kết hợp số thực và số ảo để tạo ra mẫu kiểm tra 128x64, nhị phân hóa mẫu này sẽ tạo thành mẫu xác thực nhị phân - tƣơng đƣơng mẫu đăng ký nhị phân.

3. Sử dụng bảng tra cứu để lấy ra các bit cần thiết trong mẫu xác thực nhị phân để tạo khóa. Định nghĩa k1 nhƣ là một vector N-thành phần. Với phần tử thứ n của k1,

Một phần của tài liệu Nghiên cứu ứng dụng sinh trắc học trong việc đảm bảo an toàn cho hệ thống giao dịch điện tử (Trang 51)

Tải bản đầy đủ (PDF)

(102 trang)