Phương pháp mã hóa bất đối xứng dựa trên thuật toán RSA cải tiến, mô-đun xác thực người dùng và quá trình tạo cặp khóa công khai/khóa bí mật sẽ được mô tả và phân tích trong các phần d[r]
Trang 1KỸ THUẬT KẾT HỢP DẤU VÂN TAY VÀ THUẬT TOÁN RSA CẢI TIẾN ỨNG DỤNG VÀO AN TOÀN BẢO MẬT THÔNG TIN
NCS Trịnh Văn Anh 1 ThS Đỗ Thị Hằng 2
Tóm tắt: Bài báo đề cập đến hệ thống tính toán an toàn, tập trung vào quá trình tạo
khóa bất đối xứng dựa trên sinh trắc học Thông thường, hệ thống PKI (cơ sở hạ tầng khóa công khai) dựa trên khóa bí mật/công khai được tạo thông qua RSA (thuật toán) hoặc các thuật toán tương tự Giải pháp hiện tại nhúng sinh trắc học vào quá trình tạo khóa bí mật/khóa công khai Các thử nghiệm ban đầu cho thấy tạo khóa bất đối xứng phụ thuộc vào
độ chính xác xác thực sinh trắc học, đảm bảo khóa bất đối xứng duy nhất cho mỗi người dùng được chứng thực
Từ khóa: Dấu vân tay, kỹ thuật mã hóa bất đối xứng, kết hợp sinh trắc học và thuật toán
mã hóa
1 Giới thiệu
Điện toán đám mây, các hệ thống quy mô lớn, Ambient Intelligence (AMI) dựa trên các
hệ thống mở cung cấp các dịch vụ đáp ứng nhu cầu người dùng Những hệ thống, ứng dụng này yêu cầu mức bảo mật cao, chẳng hạn như xác thực người dùng, giám sát hành vi người dùng, đảm bảo an toàn môi trường truyền thông Mật mã học và sinh trắc học đóng một vai trò quan trọng trong các ứng dụng bảo mật Ưu điểm của mật mã là tính khả dụng và có thể điều chỉnh mức bảo mật tùy thuộc vào mục đích truy cập và quản lý dữ liệu, tài nguyên, dịch
vụ [1] Mặt khác, sinh trắc học giúp chống chối bỏ và chống giả mạo mật khẩu hoặc các token [2], [3] Nhiều nhà nghiên cứu khai thác và đề xuất nâng cao chất lượng của khóa mật mã được tạo từ sinh trắc học theo độ an toàn hủy bỏ yêu cầu lưu trữ khóa dựa trên mật khẩu Kết quả nghiên cứu và phương pháp kết hợp sinh trắc học với mật mã nâng cao an toàn cho hệ thống Mục đích của nghiên cứu này là tích hợp các đặc điểm sinh trắc học của người dùng vào quá trình tạo khóa dựa trên thuật toán RSA cải tiến [4] Việc áp dụng hệ thống mật mã RSA cải tiến vào quá trình tạo khóa đảm bảo an toàn hơn bởi phương pháp này tạo ra biến n lớn và quá trình phân tích các yếu tố phức tạp hơn so với thuật toán ban đầu [5], do vậy tin tặc không thể đoán trước được quá trình tạo khóa để thực hiện hành vi gây mất an toàn Trong bài toán này, dấu vân tay là một trong những đặc tính được chọn lọc để tích hợp trong quá trình tạo khóa công khai/bí mật dựa trên thuật toán RSA
Khóa bí mật sinh trắc không được lưu trữ trong bất kỳ thiết bị nào, vì nó được tạo bởi các đặc điểm vân tay lưu trữ trong Smartcard tại giai đoạn đăng ký Vì vậy, nó không thể bị mất cũng như bị đánh cắp
1, 2 Trung tâm Công nghệ Thông tin - Trường Đại học Văn hóa, Thể thao và Du lịch Thanh Hóa
Trang 2Hệ thống Biometric RSA được đề xuất bao gồm hai mô-đun chính: mô-đun xác thực vân tay và mô-đun mã hóa bất đối xứng Mô-đun xác thực vân tay dựa trên phương pháp tiếp cận đơn thức sử dụng các điểm Core và Delta Mô-đun mã hóa bất đối xứng thực hiện thuật toán RSA cải tiến Mô-đun đầu tiên đề cập đến việc trích xuất định danh sinh trắc và xác thực người dùng Mô-đun thứ hai liên quan đến việc tạo cặp khóa công khai/bí mật tích hợp định danh sinh trắc đã được trích xuất
Bài báo được tổ chức như sau Phần 2 đưa ra cơ sở lý thuyết và phương pháp nghiên cứu Trình bày bài toán liên quan; hệ thống Biometric RSA Phần 3, trình bày kết quả thực nghiệm, đánh giá hiệu năng của kiến trúc đề xuất dựa trên độ phức tạp mã hóa và giải mã Cuối cùng, phần 4 báo cáo, kết luận của bài báo
2 Bài toán liên quan
Gần đây, nhiều bài toán nghiên cứu thực hiện phát triển các phương pháp tạo khóa bí mật từ các đặc điểm sinh trắc học và xác thực người dùng bằng cách kết hợp nhiều phương thức sinh trắc học Tiếp theo, một số bài toán chính của mật mã sinh trắc sẽ được mô tả Trong [6], các tác giả đã trình bày một phương pháp mã hóa dựa trên sinh trắc học sử dụng đặc điểm mống mắt và sử dụng token chống giả mạo (tương tự Smartcard) để lưu trữ khóa được tạo ra từ hỉnh ảnh mống mắt Khôi phục khóa phụ thuộc vào hai yếu tố: sinh trắc mống mắt và token Phương pháp được đánh giá dựa trên kết quả thực nghiệm lấy từ các mẫu mống mắt với 70 mắt khác nhau, và 10 mẫu từ mỗi mắt Khóa được tạo ra từ một mã mống mắt với tỷ lệ không sai số đạt 99,5% Độ dài khóa sinh trắc là 140-bit phù hợp với tiêu chuẩn
mã hóa tiên tiến AES 128-bit AES là tên viết tắt của cụm từ Advanced Encryption Standard, chuẩn mã hóa dữ liệu cực kì phổ biến hiện nay và AES là một kiểu mã hóa đối xứng dạng khối, nghĩa là mỗi khối văn bản có một kích thước nhất định (ở đây là 128 bit) được mã hóa, khác với mã hóa dạng chuỗi khi từng kí tự được mã hóa Trong [9], các tác giả mô tả phương pháp ánh xạ mạng lưới dựa trên phương thức cam kết mờ để tạo ra khóa mật mã từ dữ liệu sinh trắc học Kỹ thuật này che giấu dữ liệu sinh trắc học ban đầu và tạo ra các khóa entropy cao Các kết quả mô phỏng đã xác nhận độ chính xác xác thực bằng phương pháp k-nearest neighbor K-nearest neighbor là một trong những thuật toán supervised-learning đi tìm đầu ra
của một điểm dữ liệu mới bằng cách chỉ dựa trên thông tin của K điểm dữ liệu trong training set gần nó nhất (K-lân cận), không quan tâm đến việc có một vài điểm dữ liệu trong những điểm gần nhất này là nhiễu Trong [10], các tác giả trình bày sơ đồ tạo khóa sinh trắc học dựa
trên sinh trắc học ngẫu nhiên Kỹ thuật này bao gồm hai bước: xây dựng một mã dự phòng và quá trình rời rạc hóa điểm ngẫu nhiên Đầu tiên, cho phép giảm thiểu các lỗi Thứ hai, kiểm soát các biến thể trong lớp dữ liệu sinh trắc đến mức tối thiểu Tập con của cơ sở dữ liệu Facial Recognition Technology (FERET là công nghệ nhận dạng khuôn mặt) giúp đánh giá kỹ thuật trong phạm vi dữ liệu khuôn mặt
3 Hệ thống Biometric RSA
Tạo khóa sinh trắc được định nghĩa là quá trình chuyển đổi dữ liệu sinh trắc sống biểu diễn thành một chuỗi bit
Trang 3Trong giai đoạn đăng ký, đặc điểm sinh trắc được thu thập và xử lý để trích xuất các điểm riêng biệt Sau đó được mã hóa và lưu trữ trong thiết bị chống giả mạo là Smartcard Trong giai đoạn xác thực, định danh sinh trắc đã đăng ký được sử dụng cùng với định danh sinh trắc truy vấn để xác thực người dùng và tạo ra cặp khóa công khai và khóa bí mật (xem hình 1)
Xét phương pháp mật mã bất đối xứng với giải thuật RSA, mối liên hệ giữa các đặc điểm sinh trắc và thuật toán mật mã là một cặp số nguyên tố Quy trình ánh xạ định danh sinh trắc vào tập số nguyên tố được thực hiện bằng cách sử dụng chức năng ad-hoc Bắt đầu từ việc phân tích dấu vân tay xuất ra chuỗi bit, mẫu đầu tiên được thực hiện trên một phần của vector Các nhóm bit lấy mẫu được ghép nối để tạo chuỗi bit cuối cùng Dãy này biểu diễn cho chỉ số của số nguyên tố đầu tiên được lưu trữ trong bảng tra cứu Lấy mẫu lần hai thực hiện trên các phần khác nhau của vector ban đầu, được thực thi để tính toán một chỉ số khác biểu diễn cho số nguyên tố thứ hai Bảng tìm kiếm được xây dựng ngoại tuyến và nó chứa số nguyên tố có kích thước lớn
Hình 1: Hệ thống đề xuất Biometric RSA
Phương pháp mã hóa bất đối xứng dựa trên thuật toán RSA cải tiến, mô-đun xác thực người dùng và quá trình tạo cặp khóa công khai/khóa bí mật sẽ được mô tả và phân tích trong các phần dưới đây
- Phương pháp mã hóa bất đối xứng dựa trên thuật toán RSA cải tiến
Hệ mật khóa công khai RSA chậm hơn nhiều so với DES và các hệ mật khóa đối xứng khác Đã có nhiều nghiên cứu được thực hiện cải thiện tốc độ của hệ mật mã RSA
Năm 1982, J.J Quisquater và C Couveur mô tả kỹ thuật được đề xuất tăng tốc độ của thuật toán giải mã RSA Quisquater sử dụng khái niệm Chinese Remainder Theorem (CRT), gọi là QCRSA cải thiện hiệu suất giải mã RSA Tiếp theo, khái niệm Batch RSA được giới thiệu vào năm 1989, khái niệm Batch RSA là: nếu số mũ công khai e nhỏ được sử dụng cho mô-đun n, việc giải mã hai bản mã có thể được thực hiện khi giá trị các số mũ khóa công khai e1 và e2 nhỏ Sau đó, vào năm 1989, khái niệm MultiPrime RSA được giới thiệu, hệ số RSA bao gồm các số nguyên tố k1, p2, pk, thay vì chỉ sử dụng hai số nguyên tố trong RSA Sau đó khái niệm MultiPower RSA được phát minh vào năm 1998, theo phương pháp này, n
= p(k-1).q, ở đây p và q có n/k bits độ dài Khái niệm Rebalanced RSA đã được đề xuất vào năm 1990 Đây là thiết kế đáp ứng yêu cầu của các ứng dụng thuật toán giải mã hoặc ký bằng
Trang 4kết hợp của thuật toán này Trong năm 2009, D.Garg và S Verma so sánh các biến thể RSA (Batch RSA, Multiprime RSA, Multipower RSA, Rebalanced RSA, Rprime RSA) Một trong những phương pháp đề xuất mở rộng RSA được giới thiệu bởi AH Al-Hamami và IAAldariseh và được mô tả ở đây [4]
Vào năm 2012, A.H Al-Hamami và I.A Aldariseh [7] đề xuất một khái niệm mới trong
hệ thống mật mã RSA bằng cách cải thiện thuật toán RSA sử dụng số nguyên tố thứ ba bổ sung trong thành phần của khóa công khai và khóa bí mật với kích thước thu gọn, thay vì sử dụng hai số nguyên tố lớn Phương pháp luận của giải thuật được trình bày như sau:
Chọn ba số nguyên tố khác biệt p, q và s
Tính giá trị của n sao cho n = p*q*s; n sẽ được sử dụng cho cả khóa công khai và khóa
bí mật
Tìm φ(n) = (p-1)(q-1)(s-1)
Chọn một số e sao cho 1 < e <φ(n) e và φ(n) là nguyên tố cùng nhau e là số mũ khóa công khai
Tương tự thuật toán RSA ban đầu, xác định số mũ khóa bí mật d bằng cách tính toán d*e = 1 (mod φ(n))
Trong thuật toán Hamami và Aldariseh trình bày ở trên, khóa công khai (e, n) và khóa bí mật (d, n) giống như thuật toán RSA ban đầu nhưng khác nhau ở quá trình tạo khóa Để cải tiến tốc độ giải mã của RSA nhằm tránh một số cuộc tấn công có thể xảy ra trên RSA Sử dụng số ngẫu nhiên k trong giai đoạn mã hóa, nếu cùng một thông điệp được mã hóa nhiều lần, giá trị k mỗi lần sẽ khác nhau Thuật toán RSA cải tiến như sau:
Tạo khóa
Để tạo khóa sử dụng ba số nguyên tố người dùng A nên làm như sau:
Bước 1: Tạo ba số nguyên tố lớn p, q, s
Bước 2: Tính n = p*q*s và φ(n) = (p-1)(q-1)(s-1)
Bước 3: Chọn e sao cho (e, φ(n)) nguyên tố cùng nhau
Bước 4: Lấy giá trị của d bằng cách sử dụng e*d = 1 mod φ(n)
Bước 5: Tìm dp = d mod (p-1), dq = d mod (q-1), ds = d mod (s-1)
Bước 6: Khóa công khai Ku = <e, n> và khoá bí mật Kr = <d, p, q, s, dp, dq, ds>
Mã hóa
Để mã hóa thông điệp M người dùng B nên làm như sau:
Người dùng B nên lấy khóa công khai của người dùng A <e, n>
Bước 1: Biểu diễn thông điệp M dạng một số nguyên trong khoảng [0, n-1]
Bước 2: Chọn số nguyên ngẫu nhiên k với gcd(k, n) = 1 và 1 <k<n-1
Bước 3: Tính C1 = ke
mod n
Bước 4: Tính C2 = Me
.k mod n
Bước 5: Gửi các giá trị bản mã (C1, C2) đến người dùng A
Giải mã
Quá trình giải mã sử dụng khái niệm RSA CRT Để phục hồi thông điệp từ văn bản mã C2 người dùng A nên làm như sau:
Trang 5Bước 1: Tính Cp = C1 mod p, Cq = C1 mod q, Cs = C1 mods Và sau đó tính toán kp =
Cpdpmod p, kq = Cqdqmod q và ks = Csds mod s
Bước 2: Tính k bằng cách sử dụng công thức:
k = [kp.(qs)(p-1)mod n + kq.(ps)(q-1)mod n + ks.(pq)(s-1)mod n]
Bước 3: Bằng cách sử dụng thuật toán Euclidean, tính giá trị của số nguyên duy nhất t, t*k = 1 modn và 1 <t <n
Bước 4: Sau đó tính Me
, C2*t = (Me.k)t = (Me)k.t = Me mod n
Bước 5: Để nhận được giá trị của thông điệp M nên làm theo các bước sau:
Trước tiên tính C'p = Me
mod p, C'q = Me mod q, C's = Me mods và sau đó tính Mp = C'pdp mod p, Mq = C'qdq mod q, Ms = C'sds mod s
Bước 6: Cuối cùng thu hồi thông điệp M bằng cách sử dụng công thức sau:
M = [Mp.(qs)(p-1) mod n + Mq.(ps)(q-1) mod n + Ms.(pq)(s-1) mod n]
Bài toán ví dụ
Dưới đây trình bày một ví dụ mô phỏng quá trình mã hóa và giải mã Ví dụ sử dụng các giá trị nhỏ để làm rõ khái niệm
Tạo khóa: Người dùng A nên làm như sau:
Bước 1: Chọn ba số nguyên tố p, q và s.p=71, q=37, s=11 Bước 2: Tính
n=p*q*s=28897, φ(n)=(p-1)(q-1)(s-1)=25200 Bước 3: gcd[e, φ(n)]=1 và 1 < e <φ(n)
Lựa chọn e=29 Bước 5: e*d = 1 mod φ(n), d=869 dp=29, dq=5, ds=9
Bước 6: Ku={29, 28897}, Kr={869, 71, 37, 11, 29, 5, 9}
Mã hóa: Người dùng B nên làm như sau:
Lấy khóa công khai của người dùng A (29, 28897) Bước 1: Xét thông điệp M=45, 1 < M < n-1
Bước 2: Chọn giá trị ngẫu nhiên k=46, gcd[k, n]=1 Bước 3: Tính C1= 4629
mod 28897 = 12513 Bước 4: C2= 4529
.46 mod 28897 = 6756 Bước 5: Gửi (12513, 6756) tới người dùng A
Giải mã: Người dùng A nên làm như sau:
Bước 1: Tính Cp=17, Cq =7, Cs=6, sau đó tính kp=46, kq=9, ks=2 Bước 2: Tính k = 46
Bước 3: Tính t=3141 Bước 4: Tính Me
, 756*3141 = Me mod 28897,Me =10198
Bước 5: Tínhcác giá trị
Trang 6Sau đó tính các giá trị: Mp=45, Mq=8, Ms=1
Bước 6: Cuối cùng thu hồi thông điệp M=45
- Mô-đun xác thực vân tay
Dấu vân tay bao gồm các đường vân và các đường rãnh Các đường vân được đặc trưng bởi các điểm kết thúc và điểm rẽ nhánh, chúng còn được gọi là điểm kì dị (minutiae) Minutiae là các điểm vi mô của hình ảnh dấu vân tay Delta và Core được gọi là các điểm vĩ
mô Điểm Core là tâm của vòng xoáy vân tay, và điểm Deltalà tam phân điểm, là nơi giao nhau của ba hướng vân
Hệ thống nhận dạng dấu vân tay đặc trưng bởi ba giai đoạn chính: thu thập hình ảnh, trích xuất chữ ký sinh trắc, kết hợp giữa chữ ký sinh trắc thu được và thông tin được lưu trữ
Hệ thống nhận dạng vân tay chia nhỏ thành hai lớp chính Lớp đầu tiên của hệ thống sử dụng thông tin vi mô (minutiae) để thực hiện đối sánh dấu vân tay, trong khi lớp thứ hai của hệ thống sử dụng thông tin vĩ mô (Core và Delta) để thực hiện phân loại dấu vân tay
Hình 2: Mô-đun xác thực dấu vân tay dựa trên điểm Core và điểm Delta
Hệ thống xác thực dấu vân tay dựa trên điểm Core và điểm Delta (xem hình 2) Mô-đun xác thực người dùng được đề xuất tuân theo các hướng dẫn được phát triển trong [8] và được tối ưu hóa qua các giai đoạn thu nhận và xử lý sau đây:
1 Giai đoạn thu thập dấu vân tay (Fingerprint Acquisition phase)
2 Giai đoạn trích xuất Core và Delta (Core and Delta extraction phase)
3 Giai đoạn chuẩn hóa Core và Delta (Core and Delta normalization phase)
4 Giai đoạn tạo định danh (Identifier generation phase)
5 Giai đoạn đối sánh (Matching phase)
Giai đoạn Acquisition liên quan đến việc thu thập hình ảnh dấu vân tay, trong khi các giai đoạn còn lại xử lý và đối sánh dấu vân tay Các giai đoạn này sẽ được mô tả ngắn gọn trong các phần dưới đây
1) Giai đoạn trích xuất Core và Delta Giai đoạn trích xuất Core và Delta được thực hiện bằng cách kiểm tra các chỉ số Poin kết hợp với ma trận chỉ hướng Các điểm kì dị liên quan đến Core, Delta và double Corevới chỉ số Pointương ứng là 180 °, -180 °, 360° Trong bài báo này, điểm double Coređược kết hợp với điểm Core đơn (xem hình 3) Cụ thể, giai đoạn trích xuất bao gồm bốn thao tác tuần tự:
Trang 7 Tính Gx và Gy gradients bằng cách sử dụng toán tử Sobel
Tính toán các đạo hàm Dx và Dy
Tính góc θ(i, j)của khối (i, j)
Ứng dụng bộ lọc làm nhẵn Gaussian trên ma trận góc
Cuối cùng, các điểm kì dị, Core và Delta được dò tìm sao cho phù hợp với các chỉ số Poincarè
Hình 3: Core và Delta với các vùng riêng biệt (ROIs)
2) Giai đoạn chuẩn hóa Core và Delta Quy trình chuẩn hóa phải được thực hiện sau giai đoạn thu thập Core và Delta Trên thực tế, kích thước đặc điểm sinh trắc có thể thay đổi do thay đổi độ sáng hoặc biến thể áp suất trong giai đoạn lấy dấu vân tay
Tọa độ quá trình biến đổi mẫu dấu vân tay 21 * 96 đối với mỗi vùng trích xuất có nghĩa:
21 là số lượng các mẫu đã chọn, trong khi 96 pixel là bán kính vòng tròn trung tâm trong điểm Core và Delta (xem hình 4)
Hình 4 Ví dụ của ROI chuẩn hóa
3) Giai đoạn tạo định danh Sau giai đoạn chuẩn hóa vùng vân tay, chúng được mã hóa bằng phương pháp Log-Gabor Bộ lọc này thay thế bộ lọc Gabor (về phương diện hiệu suất), có thể được thiết kế với băng thông tùy ý Đồng thời, cấu tạo bộ lọc Gabor biểu diễn như Gaussian trên phạm vi lôgarit Bộ lọc tần số này được xác định bởi phương trình (1):
Trong đó f0 là tần số trung tâm và σ là băng thông bộ lọc Mỗi một hàng định danh được chuẩn hóa coi như một tín hiệu đơn 1D, xử lý bởi thao tác nhân chập bằng bộ lọc Log-Gabor 1D (xem hình 5)