Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 12 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
12
Dung lượng
562,62 KB
Nội dung
MỞ ĐẦU KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CỦA LUẬN ÁN Một số kết đạt luận án Luận án đề xuất thuật toán giảm thời gian truy vấn liệu mã dựa xử lý song song CPU Khi thực truy vấn, kết trả tập liệu, ta chia nhỏ tập để thực xử lý song song Phương pháp đề xuất giảm thời gian tiến trình giải mã tính tốn liệu từ giảm thời gian thực truy vấn Đề xuất hai thuật tốn xác thực lơ dựa hai tốn khó Thuật tốn đề xuất giúp xác thực nhiều chữ ký lúc phương trình xác thực Đề xuất mơ hình, thuật tốn xác thực liệu truy vấn CSDL mã thuê dựa xác thực lô Phương pháp xác thực đề xuất hiệu trường hợp CSDL động Đề xuất KMT để quản lý khoá mã CSDL Cây KMT mã hóa có DO mở khóa trước phiên làm việc Đề xuất phương pháp mã hoá hệ thống tệp tin (KVEFS), sử dụng để lưu trữ liệu nhạy cảm, bảo vệ liệu suốt người dùng lưu trữ khóa-giá trị Mơ hình quản lý truy cập giúp DO kiểm soát quyền người dùng truy vấn liệu Bên cạnh đó, luận án đề xuất thuật tốn đổi khố mã CSDL th ngồi mức cột dựa MapReduce Đề xuất giúp cho DO thay đổi khố mã CSDL nghi ngờ khố khơng cịn an tồn Hướng phát triển luận án Nghiên cứu, phát triển mơ hình, thuật toán truy vấn CSDL mã thực loại câu truy vấn ODBS kết hợp xử lý song song Nghiên cứu mơ hình đổi khóa đặc trưng cho CSDL quan hệ mà không phụ thuộc vào tảng công nghệ bên thứ ba Nghiên cứu thuật toán xác thực liệu đảm bảo tính đủ tính thích hợp với CSDL động 24 Động lực nghiên cứu: Điện toán đám mây phát triển mạnh mẽ giúp tổ chức, cá nhân có thêm phương án tiếp cận việc quản lý, khai thác CSDL, dịch vụ CSDL thuê (Outsourced Database Service – ODBS) Với ODBS, tổ chức cá nhân nhà cung cấp dịch vụ (Database Service Provider – DSP) quản lý trì hoạt động CSDL DO khai thác CSDL thông qua phương thức DSP cung cấp Mơ hình ODBS khác với hình thức lưu trữ trực tuyến chỗ DO sử dụng trả tiền cho dịch vụ CSDL mà không quan tâm đến hệ thống máy chủ, đường truyền nhân viên quản lý hệ thống Như vậy, DO giảm chi phí việc đầu tư hạ tầngp nhân cơng để quản lý sử dụng CSDL Ngồi ra, việc lưu trữ, quản lý CSDL DSP đảm bảo an toàn với hệ thống phần cứng đại, phần mềm cập nhập thường xuyên đội ngũ nhân viên chuyên nghiệp Dữ liệu tài sản quan trọng DO Nếu thông tin cá nhân thẻ tín dụng, tài khoản ngân hàng bị kẻ xấu đánh cắp sử dụng trái phép gây thiệt hại nghiêm trọng Ngồi ra, khơng biết hậu thơng tin an ninh quốc phịng, bí mật quốc gia bị công Mặc dù hệ thống máy tính, hệ điều hành, phần mềm bảo mật, phần mềm ứng dụng luôn cập nhập, vá lỗi, hệ thống bảo mật phần cứng triển khai thấy việc liệu bị công diễn Để bảo vệ "tài sản" quý giá mình, DO mã hoá liệu trước lưu trữ lên ODBS Khi mã hố liệu, kẻ cơng lấy cắp liệu không sử dụng khơng biết nội dung liệu đó, họ cố gắng việc giải mã thơng tin tốn nhiều thời gian, không thực Nhưng đó, DO phải trả giá cho chi phí thời gian, tài nguyên hệ thống cho truy xuất, tính tốn liệu mã Các nhà khoa học đề xuất việc mã hoá liệu lưu trữ truy xuất, tính tốn liệu mã, nhiên vấn đề giải mặt thời gian đơi chưa xem xét, có nghiên cứu tập trung vào giải vấn đề tính bí mật liệu không đồng thời giải mặt bảo vệ khố mã, chưa có giải pháp thay khố mã cần thiết Ngồi ra, toán xác thực liệu CSDL mã Các đóng góp luận án: Kỹ thuật xử lý song song liệu mã tảng khoa học cho việc nghiên cứu giảm thời gian truy vấn liệu mã Khi mã hóa để đảm bảo tính bí mật xác thực liệu mã hóa thời gian truy vấn tăng đáng kể so với truy vấn liệu rõ Do đó, giảm thời gian truy vấn liệu mã làm cho phương pháp mã hóa CSDL xác thực liệu mã có tính ứng dụng thực tế cao hơn, đảm bảo tính an tồn cho ODBS Mơ hình thuật tốn xác thực ODBS có ý nghĩa kiểm tra tính đắn liệu truy vấn CSDL mã Ngoài ra, thuật tốn xác thực lơ đề xuất dựa hai tốn khó có ý nghĩa mặt nghiên cứu thuật toán chữ ký số mới, đáp ứng yêu cầu bảo mật ứng dụng vào mơ hình xác thực khác Mơ hình mã hố tệp tin khơng gian người dùng làm sở khoa học cho việc phát triển hệ điều hành an tồn Với tệp mã hố, cho dù người dùng bị thiết bị kẻ công (Adversary - Adv) đọc khơng có khố giải mã nội dung tệp tin, bảo vệ an toàn cho liệu tệp tin người dùng Mơ hình đổi khóa làm sở khoa học để nghiên cứu phát triển kỹ thuật đổi khóa cho liệu mã ODBS, có khả ứng dụng vào thực tế Mơ hình thuật tốn đổi khóa cho CSDL mã có ý nghĩa thực tiễn trường hợp nghi ngờ khóa mã bị lộ lọt nên thay đổi định kỳ để bảo vệ tính bí mật liệu 3.4 Phân tích, thử nghiệm phương pháp đề xuất Luận án chưa tìm cơng bố phương pháp đổi khố mã CSDL Vì vậy, luận án đánh giá kết hai phương pháp: đổi khoá ngây thơ thuật toán 3.5 Luận án sử dụng Hadoop 2.7.0 với chế độ mặc định Hadoop chạy máy tính 1GB CSDL TPC-H để thay đổi khố tất cột liệu bảng CSDL Hai phương pháp cài đặt ngôn ngữ lập trình Java thực máy tính Core➋ i7-6700 CPU @ 3.40GHz x 8, Ram 8GB, ổ cứng HDD 1TB Hệ điều hành Ubuntu 16.10 Sử dụng sqoop-1.4.4 để chuyển đổi liệu CSDL HDFS Thời gian đổi khoá phương pháp đề xuất so sánh với phương pháp NaiveKeyChange hình 3.2 Kết thực nghiệm cho thấy liệu lớn, hiệu phương pháp đề xuất Sheet1 cao Thuật toán Naive KeyChange Thuật toán MR-EncColumnKeyChange 350000 Thời gian thực (s) truy vấn ngẫu nhiên từ nhiều bảng CSDL động chưa giải tốt làm tăng số lượng tính tốn đối tượng phụ trợ, nghiên cứu thường tách riêng việc xác thực liệu với việc giải mã liệu, làm tăng thời gian xử lý hệ thống Từ nhận định trên, việc nghiên cứu đề xuất số giải pháp nhằm xác thực an toàn, quản lý thay đổi khố mã cho ODBS mang tính cấp thiết, có ý nghĩa khoa học phù hợp với xu cách mạng công nghệ 4.0 Kết nghiên cứu luận án sở khoa học thực tiễn cho việc nâng cao tính an tồn CSDL nói chung ODBS nói riêng 300000 250000 200000 150000 100000 50000 25 10000 150000 200000 800000 1500000 6001215 Số lượng ghi Hình 3.2: Kết thời gian thực đổi khoá 3.5 Kết luận Luận án tổ chức sau: Mở đầu; chương nội dung; Kết luận hướng nghiên cứu tương lai; Danh mục cơng trình nghiên cứu Chương giới thiệu quản lý khoá người dùng tốn thay đổi khóa cho ODBS Khi người dùng truy cập liệu, máy chủ trung gian dựa vào khoá ma trận quản lý truy cập người dùng để đưa khố mã tương ứng với liệu mà người dùng quyền truy cập DO sử dụng khoá để giải mã liệu Ngoài ra, luận án đề xuất thuật tốn thay đổi khóa dựa mơ hình MapReduce với thời gian thấp đáng kể so với phương pháp tải tồn CSDL để thay khóa Vì vậy, phương pháp đảm bảo cho CSDL sẵn sàng hoạt động thay khóa 23 Bố cục luận án: 3.3.2 Đề xuất phương pháp đổi khoá dựa MapReduce Thuật toán đổi khoá liệu mã hoá mức cột thực MapReduce theo bước sau đây: ❼ Bước 1: Chuyển bảng từ ODBS thành tệp tin có định dạng HDFS hadoop framework ❼ Bước 2: Sử dụng MapReduce để thực đổi khoá với tệp tin đầu vào chứa nội dung bảng liệu Quá trình thực song song cụm máy tính Dữ liệu đầu tệp tin HDFS (thuật toán 3.5) ❼ Bước 3: Cập nhập liệu tệp tin HDFS hadoop lên ODBS Thuật toán 3.5: Thuật toán MR-EncColumnKeyChange Input: HDFS file after imported database Output: HDFS file with key change listOldKey ← readKMT("OldKMT.file") listNewKey ← readKMT("NewKMT.file") Send (listOldKey, listNewKey) to REDUCE function Function MAP(key, value): emit(key, value) End Function Function REDUCE(key, value): list[] ← split key by ’, ’ i=0 10 for each data ∈ list 11 plaintext = DlistOldKey(i) (data) 12 ciphertext = ElistNewKey(i) (plaintext) 13 newkey.concat(ciphertext + "|") 14 i++ 15 end 16 emit(newkey, value) 17 End Function Giai đoạn thực đổi khoá mức cột bảng CSDL đề xuất thuật toán 3.5 22 Chương Những vấn đề chung an toàn ODBS 1.1 Tổng quan an toàn ODBS ODBS dịch vụ tảng dịch vụ (Platform as a Service) điện tốn đám mây Trong mơ hình ODBS, DO th nhà cung cấp dịch vụ (Database Service Provider – DSP) quản lý trì hoạt động CSDL DO khai thác chia sẻ CSDL cho người dùng thông qua phương thức DSP cung cấp DO khơng có quyền truy cập vào dịch vụ khác máy chủ DSP Mơ hình ODBS thường có ba đối tượng chính: ❼ Nhà cung cấp dịch vụ: DSP tổ chức, doanh nghiệp cung cấp ODBS Máy chủ DSP có nhiệm vụ lưu trữ, quản lý, bảo trì CSDL DO ❼ Chủ sở hữu liệu: Người tạo toàn quyền định liệu DO người thuê dịch vụ DSP để tổ chức CSDL chia sẻ liệu cho người dùng ❼ Người dùng (User): Người dùng đầu cuối ứng dụng truy cập đến liệu DO theo phân quyền DO 1.2 Những nguy an toàn ODBS Một số vấn đề an tồn ODBS: ❼ CSDL chủ yếu bị cơng bởi: cơng bên cơng bên ngồi Tấn công bên nhân viên quản trị máy chủ thuộc DSP can thiệp hệ thống Tấn cơng bên ngồi người mơi trường Internet công vào hệ thống để đánh cắp liệu Tấn cơng bên khó kiểm sốt DSP tồn quyền quản lý CSDL ❼ Khi người dùng bị thu hồi quyền khỏi CSDL, người dùng khơng phép truy cập liệu Nếu chương trình chưa giải tốt vấn đề thu hồi quyền người dùng dẫn tới cơng theo hình thức "thoả hiệp" Ngồi ra, việc chưa quan tâm đổi khố với CSDL mã nghi ngờ lộ lọt khoá dẫn đến rò rỉ liệu ❼ Trên đám mây, liệu lưu trữ lưu dự phòng (backup) nhiều vị trí khác nhau, thiết bị lưu trữ khác hệ thống máy chủ Việc lưu liệu nhân viên DSP quản lý DSP phục hồi liệu (restore) từ dự phòng cho dù DO xóa liệu khỏi máy chủ đám mây Như vậy, việc DO xố liệu khơng đồng nghĩa với việc DO bảo đảm liệu an tồn Mỗi người dùng có định danh riêng có quyền truy cập liệu mức cột khác DO quản lý Mơ hình quản lý truy cập liệu mức cột người dùng mô tả hình 3.1 Các tốn bảo đảm an tồn ODBS Nhiều tốn bảo đảm an tồn cho ODBS đặt ra, có tốn như: Thơng tin người dùng + câu truy vấn ❼ Tính bí mật liệu (Data confidentiality): DO thường mã hóa Người dùng Khố ui Ma trận kiểm soát truy cập Kết truy vấn (qua TLS) Truy vấn người dùng liệu hàm mật mã với khóa bí mật trước lưu trữ đám mây Trong toán này, việc quản lý thay đổi khoá mã toán quan trọng Thay đổi khố q trình giải mã mã hố lại tồn liệu DO lưu trữ máy chủ DSP ❼ Tính riêng tư liệu (Data privacy): Các người dùng khác có quyền khác việc truy xuất CSDL Người dùng phép truy cập vào liệu mà DO cấp quyền cho DO quản lý tính riêng tư liệu cách sử dụng chế quản lý truy cập cho đơn vị liệu (dòng, cột) truy cập người dùng mà DO cấp phép Nếu CSDL mã hóa DO phải có chế quản lý khoá kết hợp với quản lý quyền truy cập người dùng, tránh trường hợp công đánh cắp khoá mã ❼ Đảm bảo kết truy vấn (Query Assurance): Kết trả từ server phải đảm bảo tính (correctness), đầy đủ (completeness) (freshness) KMT Máy chủ DO ui Kết mã 1.3 3.2.3 Mơ hình quản lý truy cập liệu mức cột người dùng f1 f2 fm 1 f1 f2 fm k11 k12 Khoá giải mã Nhà cung cấp dịch vụ th ngồi CSDL Hình 3.1: Mơ hình truy cập liệu mức cột người dùng 3.3 Đề xuất phương pháp thay đổi khóa mã cho ODBS 3.3.1 Phương pháp đổi khố ngây thơ Chương trình bày kiến thức chung ODBS, toán đảm bảo an toàn cho ODBS làm sở để đưa định hướng, toán nghiên cứu giải Trong chương 2, luận án đề xuất nghiên cứu liên quan đến vấn đề giảm thời gian truy vấn liệu mã, xác thực liệu mã truy vấn Chương đề xuất mơ hình quản lý khoá người dùng phương pháp đổi khoá CSDL mã hoá Cuối kết luận luận án đề nghị hướng phát triển nghiên cứu Đổi khoá CSDL mức cột thay đổi khoá cũ cột bảng liệu khố tương ứng cột Để đổi khoá cho CSDL mã hoá, ta phải tạo khoá KMT (bài toán tổng quát thay đổi khoá tất cột bảng, trường hợp riêng thay đổi số cột cụ thể mã hoá số cột nhạy cảm CSDL tập toán này) tiến hành thay khoá cũ khoá tương ứng từ khoá KMT cũ KMT liệu bảng Một phương pháp ngây thơ (naive method) giải tốn thay khóa là: ❼ Bước 1: DO tải toàn CSDL máy chủ mình, ❼ Bước 2: Giải mã CSDL khố có, ❼ Bước 3: Mã hố tồn liệu khóa mã mới, ❼ Bước 4: Lưu trữ liệu mã hố lên ODBS 21 Ngồi cịn có tốn bảo đảm an tồn cho ODBS khác như: xác thực người dùng, bảo vệ tính riêng tư người dùng, ghi nhật ký hệ thống bảo vệ siêu liệu 1.4 Kết luận chương Thuật toán 3.3: Thuật toán mã hoá lưu liệu vào kho lưu trữ Function db_put(db, key, klen, val, vlen): //encrypt cipher = calloc(vlen, sizeof(char)) encrypt_stream(val, cipher, vlen) db->put(db->db, key, klen, cipher, vlen ) End Function Thuật toán 3.4: Thuật toán giải mã liệu từ kho lưu trữ Function db_get(db, key, klen, vlen): val = db->get(db->db, key, klen, vlen) //decrypt plaintxt = calloc(vlen, sizeof(char)) decrypt_stream(val, plaintxt, vlen) return plaintxt End Function Quản lý khóa mã hố tệp Q trình mã hố/giải mã tệp người dùng cần phải có khố mã Việc tạo quản lý khoá mã thực theo bước: đầu phiên, KVEFS tạo khóa ngẫu nhiên cho AES: aesDataKey = generateRandomKey() Người dùng phải nhập mật KVEFS sử dụng hàm dẫn xuất khoá để tạo khóa gọi tempAESKey từ mật người dùng: tempAESKey = kdf(userPassword) KVEFS mã hóa aesDataKey tempAESKey : eeKey = aesEncrypt(aesDataKey, tempAESKey) KVEFS lưu trữ eeKey để lưu trữ khóa-giá trị khóa đặc biệt Trước gắn hệ thống tệp, người dùng phải nhập mật để giải mã aesDataKey từ eeKey lưu trữ Để thay đổi mật khẩu, trước tiên người dùng giải mã nhận aesDataKey mật cũ mã hóa lại mật cuối lưu trữ khóa eeKey vào kho khóa-giá trị 20 Chương Giảm thời gian truy vấn xác thực truy vấn CSDL mã ODBS 2.1 Giới thiệu chung Để đảm bảo tính bí mật liệu, DO mã hóa liệu trước lưu trữ lên DSP Tuy nhiên, truy vấn liệu mã thường làm cho máy chủ xử lý chậm so với truy vấn liệu rõ Vì cần có phương pháp giảm thời gian cho truy vấn mã Mặt khác, truy vấn CSDL từ ODBS, người dùng muốn kết trả xác Do đó, có kết trả về, DO cần phải xác thực liệu trước giải mã trả kết rõ cho người dùng 2.2 Giảm thời gian thực thi truy vấn liệu mã Trong trình truy vấn liệu mã, có nhiều tiến trình xử lý như: giải mã kết loại bỏ ghi khơng phù hợp tính tốn lại, giải mã kết sau truy vấn trả liệu rõ cho người dùng Các tiến trình xử lý tập liệu quan hệ (bảng) CSDL nên dùng phương pháp xử lý song song để tính tốn cách chia quan hệ thành tập xử lý đồng thời Phương pháp giảm đáng kể thời gian thực truy vấn CSDL mã Việc thực tính tốn song song tập giống giải k liệu x tiến trình thiết bị có nhiều tiến trình tính tốn Thực cơng việc f với đầu vào S = {Inputi }(i=1 k) có đầu R = {f (Inputi )}(i=1 k) , tiến hành theo giai đoạn sau: ❼ Giai đoạn 1: Tách tập S = {Inputi }(i=1 k) thành x tập con: Sj = {Inputl }(l=((j−1)[ k ]+1) j[ k ]) (j = x) x x ❼ Giai đoạn 2: Tại tiến trình j thực tính: Rj = {f (Sj )} Các tiến trình j thực song song Trong tiến trình này, hàm f bao gồm cơng việc như: Giải mã, tính tốn giá trị rõ, xác thực liệu ❼ Giai đoạn 3: Thực gộp tập liệu trả về: R = R1 ∪ R2 ∪ Rx 2.3 Lược đồ xác thực lơ dựa hai tốn khó 2.3.1 Tham số miền tin mã hố liệu cấu trúc tệp thư mục Hai lược đồ Rabin-Schnorr RSA-Schnorr có chung tham số miền là: ❼ Kích thước modulo L ❼ Tập liệu M = {0, 1}∞ ❼ Tập chữ ký S = N × N ❼ Hàm băm H:{0, 1}∞ → {0, 1}h Giá trị h gọi độ dài hàm băm Mỗi thành viên tương ứng với tham số sau: ❼ Số nguyên tố p có dạng p = 2.n + với len(p) = L ❼ Hợp số n có dạng n = q.q hai số nguyên tố lẻ khác cho việc phân tích n thừa số khó (với lược đồ Rabin-Schnorr q, q ≡ (mod 4)) ❼ Phần tử sinh g có cấp n ❼ Tham số mật x ∈ g (nhóm cyclic sinh g GF(p)) tham số công khai y = g x mod p (với lược đồ RSA-Schnorr thêm số mũ mật d, số mũ công khai e thỏa mãn e.d mod φ(n) = với φ số Euler) Khi khóa ký khóa kiểm tra chữ ký: ❼ Trong lược đồ Rabin-Schnorr là: (p, n, q, q , x) (p, n, y) ❼ Trong lược đồ RSA-Schnorr là: (p, n, q, q , d, x) (p, n, e, y) Khi tạo hệ thống tệp cách sử dụng lớp GUI nhập tham số, hệ thống khởi tạo hàm lớp FUSE Các hàm Lớp FUSE có lấy thuộc tính tệp tin thư mục (getattr), đọc tất mục thư mục (readdir), đọc tệp (read), ghi tệp (write), tạo thư mục (mkdir), xóa thư mục (rmdir), xóa tệp (unlink) Các hàm khởi tạo sau hàm fuse_main() chạy Khi fuse_main() khởi chạy, vịng lặp vơ hạn tạo để đáp ứng hoạt động thời gian thực người dùng Điều có nghĩa hàm lấy thuộc tính tệp đọc tệp, ghi tệp gọi liên tục người dùng tương tác với hệ thống tệp Mục tiêu KVEFS thực hàm thao tác tệp thông qua libfuse Tất thao tác mã hóa giải mã thực hàm callback libfuse Thuật tốn đọc, ghi file mơ tả thuật tốn 3.1, 3.2 2.3.2 Lược đồ xác thực lơ Rabin-Schnorr Q trình hoạt động KVEFS Thuật tốn 3.1: Thuật toán đọc file Function KV EF S_read(path, buf, size, offset): key = path_to_key(path, keylen, 0) val = db_get(CTX_DB, key, keylen, vallen) memcpy(buf, val+offset, size) End Function Lược đồ ký, kiểm tra chữ ký xác thực lơ Rabin-Schnorr thuật tốn 2.1, 2.2, 2.3 Thuật toán 2.1: Thuật toán tạo chữ ký S(m) Rabin-Schnorr Input: m ∈ M Output: (r, s) ∈ S t ∈R (0, n) t r ← g mod p a ← (t − H(m||r)x) mod n a a if (( q ) = −1) or (( q ) = −1) then goto (q+1)/4 (q +1)/4 sq ← a mod q; sq ← a s ← CRT (sq , sq ) return (r, s) Thuật toán 3.2: Thuật toán ghi file Function KV EF S_write(path, buf, size, offset): key = path_to_key(path, keylen, 0) val = db_get(CTX_DB, key, keylen, vallen) memcpy(val, buf, size) db_put(CTX_DB, key, keylen, val, vallen) End Function mod q Khi thực hàm đọc, ghi tệp cần thao tác mã hoá-giải mã nội dung tệp từ kho lưu trữ khoá-giá trị Các hàm mã hoá-giải mã nội dung tệp thực thuật toán 3.3, 3.4 19 cột bảng, ta cần biết tên bảng tên cột Khi kết hợp KMT với ma trận kiểm soát truy cập, người dùng phép truy cập vào cột với khoá cột KMT Cho CSDL DB gồm bảng t1(f 11, f 12, f 13), t2(f 21, f 22) tập khoá mã mức cột bảng t1, t2 tương ứng K1 (k11, k12, k13), K2 (k21, k22) Ngoài ra, ta biểu diễn KMT cấu trúc mảng quản lý khoá bảng 3.1 Mỗi nút lưu trữ mảng quản lý khố có cấu trúc Node(index, value), đó: index chứa vị trí nút, value chứa giá trị tên bảng, cột khóa mã Ta dùng mảng K chứa nút với IX vị trí nút X mảng Thuật tốn 2.2: Thuật toán kiểm tra chữ ký Rabin-Schnorr Input: (m, (r, s)) ∈ M × S Output: "Accept" chữ ký hợp lệ "Reject" trường hợp ngược lại a = s mod n a H(m||r) r =g y mod p if r = r then return "Accept" else return "Reject" Tính chất mảng quản lý khoá: Thuật toán 2.3: Thuật toán V (σi ) Rabin-Schnorr xác thực k chữ ký σi (ri , si ) cho k liệu mi , i = 1, 2, , k, ký người ký ❼ Nếu R nút gốc, IR = −1 ❼ Nút B nút A B.index = IA Bảng 3.1: Cấu trúc quản lý khoá KMT DB t1 t2 f11 f12 f13 f21 f22 k11 k12 10 k13 11 k21 12 k22 -1 0 1 2 ← Chỉ số mảng ← Nhãn nút ← Chỉ số nút cha (=-1 nút khơng có cha) 3.2.2 Xây dựng hệ thống tệp mã hóa Linux sử dụng kho lưu trữ khóa-giá trị Việc mã hố, giải mã KMT thực DO trước bắt đầu phiên làm việc DO giải mã KMT cách nhập mật riêng Cây KMT lưu trữ tệp tin DO (người dùng hệ điều hành) tạo Để bảo vệ tệp người dùng, ta mã hố tệp hỗ trợ hệ điều hành Trong phần này, luận án đề xuất phương pháp xây dựng hệ thống mã hoá tệp người dùng gọi KVEFS dựa thư viện libfuse, openssl openstars 2.3.3 Lược đồ xác thực lô RSA-Schnorr Lược đồ ký, kiểm tra chữ ký xác thực lô RSA-Schnorr thuật toán 2.4, 2.5, 2.6 Thuật toán 2.4: Thuật toán tạo chữ ký RSA-Schnorr Mơ hình KVEFS Mơ hình KVEFS gồm có lớp: Lớp giao diện đồ hoạ người dùng (Graphical User Interface - GUI) giao diện hệ thống để người dùng dễ sử dụng lấy tham số kho lưu trữ khoá-giá trị tuỳ chọn thao tác mã hóa; Lớp FUSE lớp hệ thống để giao tiếp với nhân hệ điều hành thao tác với tệp thư mục; Lớp mật mã để mã hóa/giải mã liệu đọc ghi từ lưu trữ khóa-giá trị; Lớp khố-giá trị để lưu trữ thơng 18 Input: Dữ liệu mi , k chữ ký σi (ri , si ), ≤ i ≤ k Output: "Accept" k chữ ký hợp lệ "Reject" trường hợp ngược lại = s2i mod n k u = i=1 mod p k v = i=1 H(mi ||ri ) mod p k if ( i=1 ri = g u y v mod p) then return "Accept" else return "Reject" Input: Dữ liệu m ∈ M Output: Chữ ký σ ∈ S t ∈R (0, n) r = g t mod p s = (t − H(m||r)x)d mod n return (r, s) Thuật toán 2.5: Thuật toán kiểm tra chữ ký RSA-Schnorr Input: (m, (r, s)) ∈ M × S Output: "Accept" chữ ký hợp lệ "Reject" trường hợp ngược lại e a = s mod n a H(m||r) r =g y mod p if (r = r ) then return "Accept" else return "Reject" Thuật toán 2.6: Thuật toán V (σi ) RSA-Schnorr xác thực k chữ ký σi (ri , si ) cho k liệu mi , i = 1, 2, , k, ký người ký Input: Dữ liệu mi , k chữ ký σi (ri , si ), ≤ i ≤ k Output: "Accept" k chữ ký hợp lệ "Reject" trường hợp ngược lại = sei mod n k u = i=1 mod p k v = i=1 H(mi ||ri ) mod p k if ( i=1 ri = g u y v mod p) then return "Accept" else return "Reject" Chương Quản lý, thay đổi khoá mã ODBS 3.1 Giới thiệu chung Để hạn chế khả truy cập liệu người sử dụng, DO phải có chế quản lý truy cập người dùng với quyền khác Để bảo đảm tính bí mật liệu, DO cần có biện pháp thay đổi khố mã (rekey) Tuy nhiên, chưa có cơng trình nghiên cứu liên quan đến tốn thay đổi khóa Trong chương này, luận án đề xuất giải pháp quản lý truy cập người dùng theo mức cột phương pháp thay khoá cho CSDL với thời gian thực đáp ứng tính sẵn sàng liệu 3.2 Đề xuất mơ hình quản lý khố quyền truy cập 3.2.1 Mơ hình quản lý khố Xét bảng T (f1 , f2 , , fm ) với f1 , f2 , , fm thuộc tính; T chứa n ghi r = (ri1 , ri2 , rim ), rij liệu dịng thứ i cột thứ j với ≤ i ≤ n, ≤ j ≤ m Định nghĩa 3.2.1 Cho f thuộc tính bảng CSDL có n ghi Mã hố liệu mức cột thuộc tính f với khố k định nghĩa: Ek (f ) := {Ek (ri )|ri ∈ f ; i = 1, , n} với ri liệu dòng thứ i cột f 2.3.4 Nâng cao tính an tồn hiệu cho hai lược đồ RabinSchnorr RSA-Schnorr Nâng cao tính an tồn cho lược đồ Rabin-Schnorr RSA-Schnorr Mã hoá bảng T (f1 , f2 , , fm ) mã hố tất thuộc tính f1 , f2 , , fm liệu thuộc tính đó: E(T ) := (Ek1 (f1 ), Ek2 (f2 ), , Ekm (fm )) = {Ek1 (ri1 ), Ek2 (ri2 ), , Ekm (rim )|rij ∈ fj ; i = 1, , n; j = 1, , m} (3.1) Để nâng cao tính an tồn cho thuật tốn đề xuất, luận án cải tiến, bổ sung bước bước thuật toán 2.1 sau: a = (t − H(m||r)x) mod n; if (gcd(a, n) = 1) then goto s ← CRT (sq , sq ); if (s ≥ n/2) then s = n − s Tương ứng với việc bổ sung bước thuật tốn 2.1 thuật tốn 2.2 2.3 phải thêm điều kiện (s < n/2) Lược đồ RSA-Schnorr thêm điều kiện gcd(s, n) = bước thuật tốn 2.4 Trong cơng thức (3.1), tập K (k1 , k2 , , km ) tập khoá mã bảng T Ta gọi K tập khoá mã theo mức cột T Đề xuất CSDL có quản lý khố gọi KMT (Key Management Tree) Nút gốc (mức 1) KMT tên CSDL, mức tên bảng, mức tên trường nút khố cột Vì KMT quản lý tập trung khoá cột CSDL nên dễ quản lý, thay đổi khoá cần thiết Muốn truy xuất đến khoá 17 Phân tích đánh giá trường hợp cơng ❼ Trường hợp Giả mạo, thay đổi liệu CSDL: Vì liệu mã hố khố k nên Adv muốn tạo thay đổi liệu Adv phải cần khố k thực µ = Ek (r) ❼ Trường hợp Giả mạo chữ ký cho liệu giả mạo: Giả sử Adv cơng có khố k tạo giá trị mã µ hợp lệ Khi đó, Adv tiến hành giả mạo chữ ký cho giá trị µ Adv giả mạo chữ ký (r, s) cho µ cách tạo giá trị s dựa tính giá trị a bước thứ thuật toán 2.11 Muốn tính giá trị a, Adv cần có tham số x dựa khố cơng khai y Để làm vậy, Adv phải giải toán DLP y = g x mod p Trường hợp Adv giải tốn DLP có giá trị x Adv cần phải giải tốn IFP để phân tích n thành thừa số q q để tính sq sq bước 11 tính s Như vậy, muốn tạo chữ ký hợp lệ, Adv phải giải hai toán DLP IFP Nếu sử dụng thuật toán RSA-Schnorr vào tạo chữ ký: Tương tự thuật toán Rabin-Schnorr, Adv muốn giả mạo chữ ký phải giải tốn DLP để có giá trị x, đồng thời phân tích n thành q q để tìm tham số d dựa φ(n) Nghĩa là, để tính s, Adv phải giải đồng thời hai toán DLP IFP ❼ Trường hợp Hoán đổi giá trị ghi với nhau: giả sử Adv hoán đổi giá trị µ, (r, s) ghi số cho ghi số xác thực ghi số Tuy nhiên, thực thuật toán 2.12 để xác thực liệu, DO tính giá trị H(AutoN um||µij ||rij ) bước 8, kết không hợp lệ chữ ký (r, s) có AutoN um = 3, cịn xác thực AutoN um = Do giá trị AutoN um cột liệu không trùng nên Adv không đồng thời sửa AutoN um cột thứ giá trị 2.6 2.3.5 Nâng cao tính hiệu cho lược đồ Rabin-Schnorr RSA-Schnorr Để nâng cao tính hiệu quả, lược đồ lấy tham số miền N vừa đủ lớn cho tốn tìm logarit nhóm g có kích thước N-bít "khó" Các tham số Các tham số cho lược đồ Rabin-Schnorr RSA-Schnorr giống nêu mục 2.3.1 với số bổ sung sau: ❼ Hàm tóm lược H:{0, 1}∞ → {0, 1}N ❼ Tham số mật x ∈R (2N −1 , 2N ) ❼ Số mũ công khai e = 216 + dùng cho RSA-Schnorr ❼ Tham số mật người ký c = q.(q −1 mod p) dùng cho Rabin-Schnorr Khi khóa ký khóa kiểm tra chữ ký: ❼ Trong lược đồ Rabin-Schnorr là: (p, n, q, q , x, c) (p, n, y) ❼ Trong lược đồ RSA-Schnorr là: (p, n, q, q , d, x) (p, n, e, y) Lược đồ Rabin-Schnorr cải tiến Thuật toán 2.7, 2.8, 2.9 Thuật toán 2.7: Thuật toán tạo chữ ký Rabin-Schnorr cải tiến Input: m ∈ M Output: (r, s) ∈ S N −1 N t ∈R (2 ,2 ) t r ← g mod p a ← (t − H(m||r)x) mod n aq ← a mod q; aq ← a mod q if ((aq = 0) or (aq = 0)) then goto (thay cho gcd(a, n) = 1) a a if (( q ) = −1) or (( q ) = −1) then goto 10 sq ← (aq )(q+1)/4 mod q; sq ← (aq )(q +1)/4 mod q s ← (c.(sq − sq ) + sq ) mod n if (s ≥ n/2) then s ← n − s return (r, s) Kết luận Chương đề xuất giải pháp xử lý song song liệu mã để rút ngắn thời gian thực thi truy vấn, đề xuất hai lược đồ xác thực lô dựa hai toán IFP DLP là: RSA-Schnorr Rabin-Schnorr Chương đề xuất mơ hình kiểm tra tính đắn CSDL mã dựa xác thực lô Mô hình đề xuất hỗ trợ xác thực liệu trả câu truy vấn từ nhiều bảng phù hợp với CSDL động Hơn nữa, kiểm tra kết hợp với giải mã liệu nên không tốn thời gian giải mã sau xác thực đề xuất trước Luận án chọn thuật toán Rabin-Schnorr để xác thực liệu Các tham số dùng cho hệ thống: mục 2.3.5, ngồi cần thêm khố bí mật k để mã/giải mã liệu Khố k quản lý DO Khi khóa ký khóa kiểm tra 16 Lược đồ RSA-Schnorr cải tiến Thuật tốn 2.10 2.4 Xác thực liệu mã hóa th ngồi 2.4.1 Q trình hoạt động Thuật tốn 2.8: Thuật toán kiểm tra chữ ký Rabin-Schnorr cải tiến Input: (m, (r, s)) ∈ M × S Output: "Accept" chữ ký hợp lệ "Reject" trường hợp ngược lại if (s ≥ n/2) then return "Reject" 2 a ← s mod n a H(m||r) r ← g y mod p if (r = r ) then return "Accept" else return "Reject" Thử nghiệm phương pháp đề xuất Để thử nghiệm phương pháp đề xuất, luận án tiến hành cài đặt thuật tốn ngơn ngữ lập trình Python thực máy tính Core➋ i5-4310U CPU @ 2.0GHz x 4, Ram 8GB, hệ điều hành Ubntu 20.04 Thời gian thực tạo chữ ký với số lượng liệu tương ứng bảng 2.4 Bảng 2.4: Thời gian thực Số lượng liệu Thuật toán 2.7 10 0,25614 100 1,535692 1000 14,061793 10000 136,160404 Thuật toán 2.9: Thuật toán V (σi ) Rabin-Schnorr cải tiến Thuật toán 2.10: Thuật toán tạo chữ ký RSA-Schnorr cải tiến Input: m ∈ M Output: (r, s) ∈ S N −1 N t ∈R (2 ,2 ) t r ← g mod p a ← (t − H(m||r)x) mod n aq ← a mod q; aq ← a mod q if ((aq = 0) or (aq = 0)) then goto (thay cho gcd(a, n) = 1) d mod q sq ← (aq ) mod q; sq ← (aq )d mod q mod q s ← (c.(sq − sq ) + sq ) mod n return (r, s) Luận án tiến hành thử nghiệm thời gian thực hai phương pháp: xác thực k chữ ký phương pháp xác thực lô cho thuật toán, Thuat toan sua doi kết hình 2.2 Rabin-Schnorr RSA-Schnorr Rabin-Schnorr lô RSA-Schnorr lô 12 Thời gian thực (s) Input: Dữ liệu mi , k chữ ký σi (ri , si ), ≤ i ≤ k Output: "Accept" k chữ ký hợp lệ "Reject" trường hợp ngược lại if (si ≥ n/2) then return "Reject" = s2i mod n k u = i=1 mod p k v = i=1 H(mi ||ri ) mod p k if ( i=1 ri = g u y v mod p) then return "Accept" else return "Reject" tạo chữ ký (s) Thuật toán 2.10 0,01634 0,150983 1,228292 10,059431 10 10 100 500 1000 5000 Số lượng liệu Hình 2.2: Thời gian xác thực chữ ký 10 15 10000 Bảng 2.1: Chi phí tiết kiệm lược đồ cải tiến tương ứng với cặp (L, N) N 160 224 256 384 512 L 1024 2048 3072 8192 15360 Rabin-Schnorr 5180 10940 16892 46844 89084 RSA-Schnorr 1295 2735 4223 11711 22271 chữ ký là: (p, n, q, q , x, c, k) (p, n, y) Giả sử với CSDL D chứa nhiều bảng Bảng T có mT cột chứa nT ghi r = (ri1 , ri2 , rimT ), với rij liệu dòng thứ i cột thứ j(1 ≤ i ≤ nT , ≤ j ≤ mT ) Các giai đoạn hoạt động xác thực ODBS thực thuật toán 2.11, 2.12 Thuật toán 2.11: Thuật toán lưu CSDL mã hố Chi phí thực thuật tốn đề xuất Chi phí cơng việc thuật tốn đề xuất bảng 2.2 Trong đó, k số lượng chữ ký cần xác thực lô Bảng 2.2: Thời gian thực công việc thuật tốn chữ ký số Cơng việc Tạo chữ ký Xác thực chữ ký Xác thực k chữ ký Xác thực lơ Thuật tốn Rabin-Schnorr (6.N + 9)tm (L) + 4.tH +4.tJacobi ( L2 ) + L2 tm ( L2 ) Thuật toán RSA-Schnorr (1, 5.N + 3).tm (L) + tH +3.L.tm ( L2 ) (1, 5.(L + N ) + 2).tm (L) + tH (3.L + 1, 5.N + 1).tm (L) + tH k.((1, 5.(L + N ) + 2).tm (L) + tH ) k.((3.L + 1, 5.N + 1).tm (L) + tH ) 11 (1, 5.(L + N ) + 2.k + 2).tm (L) +k(tH + tm (N )) (3.L + 1, 5.N + 2k + 1).tm (L) +k(tH + tm (N )) 13 10 12 14 15 Chi phí thực tính tốn giai đoạn xác thực CSDL mã ODBS mô tả bảng 2.3 16 17 18 Bảng 2.3: Thời gian thực giai đoạn xác thực ODBS Giai đoạn Thời gian thực nT mT (TE + (6.N + 9)tm (L) + 4.tH Lưu trữ liệu +4.tJacobi ( L2 ) + L2 tm ( L2 ) + tinsert (T1 ) hT (kT (2.Tm (L) + tm (L) + tm (N ) + tH + TD ) Xác thực liệu +(1, 5.(L + N ) + 1)tm (L) 14 Input: Bảng T CSDL, khố bí mật Output: Lưu bảng liệu mã hoá kèm chữ ký lên máy chủ DSP for i = to nT d=∅ for j = to mT µij = Ek (rij ) t ∈R (2N −1 , 2N ) r ← g t mod p a ← (t − H(AutoN um||µij ||r)x) mod n aq ← a mod q; aq ← a mod q if ((aq = 0) or (aq = 0)) then goto if (( aq ) = −1) or (( qa ) = −1) then goto sq ← (aq )(q+1)/4 mod q; sq ← (aq )(q +1)/4 mod q s ← (c.(sq − sq ) + sq ) mod n if (s ≥ n/2) then s ← n − s d.append(µij , (r, s)) end T addrow(d) end Lưu trữ bảng T lên máy chủ DSP 2.4.2 Một số trường hợp truy vấn CSDL Cập nhập liệu Khi lưu trữ lên máy chủ DSP, bảng T có dạng T = {µij , σij |i = nT , j = mT } Giả sử muốn thêm ghi r = (r1 , r2 , rmT ) vào bảng T ta tính µj = {Ek (rj )|j = mT }, σj = {Sx (µj )|j = mT } sau thực câu lệnh truy vấn "INSERT INTO T VALUES(µ1 , σ1 , µ2 , σ2 , , µmT , σmT );" 11 10 11 12 13 14 15 16 Input: Bảng Tr , khố k, khóa cơng khai Output: Bảng liệu rõ cho người dùng u = 0; v = 0; r = 1; for i = to hT d=∅ for j = to kT if (sij ≥ n/2) then return "Reject" a = s2ij mod n u+ = a mod p v+ = H(AutoN um||µij ||rij ) mod p r∗ = rij mod p aij = Dk (µij ) d.append(aij ) end end if (r == g u y v mod p) then T.addrow(d) else return "Reject" Trả liệu T cho người dùng Khi thực sửa liệu người dùng tính tốn giá trị mã chữ ký liệu cần cập nhập, sau gửi câu truy vấn đến máy chủ DSP Giả sử câu truy vấn rõ là: "UPDATE T SET c1 = v1, c2 = v2 WHERE c3 = condition;", câu truy vấn mã viết lại: "UPDATE T SET c1 = µ1 , c1 = σ1 , c2 = µ2 , c2 = σ2 WHERE c3 = µ3 ;" Khi thực xóa liệu người dùng gửi câu truy vấn "DELETE FROM T WHERE ;" Máy chủ DSP xoá ghi thoả mãn mà khơng thực tính tốn lại cấu trúc liên quan đến ghi bị xoá sử dụng ADS Như vậy, việc thao tác cập nhập liệu thực dễ dàng không ảnh hưởng đến ghi bảng Điều thích hợp với CSDL động mà mơ hình ADS khó giải * FROM T1 INNER JOIN T2 ON T1 id1 = T2 id2;" đến DSP Máy chủ DSP xử lý trả kết Tr = {AutoN um1, id1, σid1 , µ1ij , σ1ij , AutoN um2, id2, σid2 , µ2ij , σ2ij |i = 1, 2, lT ; j = 1, 2, , pT } máy chủ trung gian Do σid1 , σid2 , σ1ij , σ2ij được tạo khố bí mật DO nên ta dùng thuật tốn xác thực lô để xác thực lúc 2.5 Phân tích, đánh giá phương pháp đề xuất 2.5.1 Phân tích, đánh giá phương pháp giảm thời gian truy vấn Để đánh giá kết phương pháp đề xuất, luận án thử nghiệm máy tính Core➋ i5-4310U CPU @ 2.0GHz x 4, Ram 8GB, hệ điều hành Ubntu 20.04 Thuật toán mã hoá liệu AES, hệ quản trị CSDL MySQL Thực câu truy vấn "SELECT f1 , f2 , , fn FROM t" , f1 , f2 , , fn trường liệu bảng TPC-H Sheet1 Kết thực mô tả hình 2.1 Truy vấn rõ 100 Truy vấn mã Truy vấn mã luồng 90 Thời gian thực (s) Thuật toán 2.12: Thuật toán xác thực chữ ký giải mã liệu 80 70 60 50 40 30 20 10 25 10000 150000 200000 Số lượng ghi Hình 2.1: Thời gian thực truy vấn 2.5.2 Phân tích, đánh giá phương pháp xác thực liệu mã So sánh chi phí cặp lược đồ gốc cải tiến Giả sử CSDL có hai bảng T1 = {id1, σid1 , µ1ij , σ1ij |i = nT , j = mT }, T2 = {id2, σid2 , µ2ij , σ2ij |i = hT , j = kT } Người dùng gửi câu truy vấn "SELECT Trong phân tích luận án ln giả thiết cặp thuật tốn sử dụng việc lưu giá trị c để tính CRT dùng chung số mũ e Chi phí (theo đơn vị tm (L)) tiết kiệm sử dụng lược đồ cải tiến so với lược đồ ban đầu bảng 2.1 12 13 Truy vấn liệu từ nhiều bảng ... vệ an toàn cho liệu tệp tin người dùng Mơ hình đổi khóa làm sở khoa học để nghiên cứu phát triển kỹ thuật đổi khóa cho liệu mã ODBS, có khả ứng dụng vào thực tế Mơ hình thuật tốn đổi khóa cho. .. nghiên cứu đề xuất số giải pháp nhằm xác thực an toàn, quản lý thay đổi khố mã cho ODBS mang tính cấp thiết, có ý nghĩa khoa học phù hợp với xu cách mạng công nghệ 4.0 Kết nghiên cứu luận án sở khoa... 2, luận án đề xuất nghiên cứu liên quan đến vấn đề giảm thời gian truy vấn liệu mã, xác thực liệu mã truy vấn Chương đề xuất mơ hình quản lý khoá người dùng phương pháp đổi khoá CSDL mã hoá Cuối