DBMS
Table USER-EAES
USER-ID C1-USR C2-USR
USER1 CP CKAES ... ... Table USER-KPU USER-ID KPU USER1 KPU-USR1 ... APPLICATION Plain Text (P) KPR DAES (CP , KAES) DRSA ( CKAES , KPR) KAES
Cipher Text CKAES Cipher Text CP
STORAGE LAYER
Cipher Text CP
Cipher Text CKAES
Public Key KPU
Cipher Text CP , CKAES Public Key KPU NETWORK USER Private Key KPR Plain Text (P) Private Key KPR Plain Text (P)
39
2.2.2 Giải pháp kết hợp RSA-AES để mã hóa dữ liệu trong CSDL
Phương pháp kết hợp hệ mã RSA và AES đã mã hóa được dữ liệu bí mật riêng tư của người dùng (hay chủ sở hữu dữ liệu khi thuê dịch vụ CSDL bên ngoài). Với phương thức này đã bảo vệ được dữ liệu mật, ngay cả người quản trị CSDL. Một vấn đề đặt ra là dữ liệu mật này đã được mã hóa và chỉ giải mã bởi khóa bí mật của người dùng, trong trường hợp người dùng quên hay làm mất khóa bí mật thì dữ liệu này được xử lý giải mã ra sao? Câu trả lời là không giải mã được. Để giải quyết trường hợp này, chúng tôi đề xuất các giải pháp cụ thể như sau:
Đề xuất một số nguyên tắt thực hiện:
- Khóa đối xứng KAES sau khi mã hóa trong hệ mã AES đã được mã hóa bằng hệ mã RSA, sẽ được hủy (không lưu) để bảo vệ dữ liệu mật đã được mã hóa AES. - Trên nguyên tắc mỗi lần mã hóa dữ liệu khác nhau có thể sinh ra cặp khóa RSA
mới (KPU, KPR ). Trong nội dung đề tài này, chúng tôi đề xuất sử dụng duy nhất một cặp khóa (KPU, KPR ) tương ứng với một User cho tất cả các lần mã hóa. - Xây dựng thêm một bộ khóa RSA dự phòng (backup) để backup tất cả người
dùng (user). Bộ khóa RSA dự phòng là (KPU-BKK, KPR-BKK ), bộ khóa RSA cho user là (KPU-USR, KPR-USR ). Khóa bí mật KPR-BKKđược lưu trong két sắt hoặc được quản lý bởi lãnh đạo cơ quan, công ty nhằm bảo vệ dữ liệu mật đã được mã hóa, ngay cả người quản trị CSDL (hay dịch vụ thuê CSDL bên ngoài). Khóa KPR-BKK
chỉ được sử dụng giải mã khi cần thiết, chẳng hạn như trong trường hợp cần giải mã dữ liệu nhưng khóa bí mật KPR-USR của người dùng bị mất,...
Các thuật toán được đề xuất thực hiện như sau:
- Thuật toán 1: Sinh ra khóa KAES mới cho mỗi lần mã hóa P. Như vậy khi User mã hóa KAES thì Backup cũng mã hóa KAES để dự phòng.
User mã hóa KAES : ERSA(KAES, KPU-USR ) Backup mã hóa KAES : ERSA(KAES, KPU-BKK )
40 Quá trình mã hóa và giải mã:
+ Đối với User: Mã hóa:
C1-USR1 = EAES (P, KAES)
C2-USR1 = ERSA (KAES, KPU-USR1) Giải mã:
KAES = DRSA (C2-USR1, KPR-USR1) P = DAES (C1-USR1, KAES)
+ Đối với Backup: Mã hóa:
C2-BKK = ERSA (KAES, KPU-BKK) Giải mã:
KAES = DRSA (C2-BKK, KPR-BKK) P = DAES (C1-USR1, KAES)
41