BỘ GIÁO DỤC VÀ ĐÀO TẠO BỘ QUỐC PHÒNG HỌC VIỆN KỸ THUẬT QUÂN SỰ HỒ KIM GIÀU NGHIÊN CỨU PHÁT TRIỂN GIẢI PHÁP XÁC THỰC AN TOÀN VÀ QUẢN LÝ KHỐ CHO CƠ SỞ DỮ LIỆU TH NGỒI LUẬN ÁN TIẾN SĨ KỸ THUẬT HÀ NỘI - 2021 BỘ GIÁO DỤC VÀ ĐÀO TẠO BỘ QUỐC PHÒNG HỌC VIỆN KỸ THUẬT QUÂN SỰ HỒ KIM GIÀU NGHIÊN CỨU PHÁT TRIỂN GIẢI PHÁP XÁC THỰC AN TOÀN VÀ QUẢN LÝ KHỐ CHO CƠ SỞ DỮ LIỆU TH NGỒI Chun ngành: CƠ SỞ TOÁN HỌC CHO TIN HỌC Mã số: 46 01 10 LUẬN ÁN TIẾN SĨ KỸ THUẬT NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS NGUYỄN HIẾU MINH HÀ NỘI - 2021 LỜI CAM ĐOAN Tôi xin cam đoan kết trình bày luận án cơng trình nghiên cứu hướng dẫn cán hướng dẫn Các số liệu, kết trình bày luận án hoàn toàn trung thực chưa cơng bố cơng trình trước Hà Nội, ngày 28 tháng năm 2021 Nghiên cứu sinh Hồ Kim Giàu LỜI CẢM ƠN Trong trình học tập, nghiên cứu thực luận án, nghiên cứu sinh nhận hướng dẫn, giúp đỡ tận tình, ý kiến đóng góp q báu Thầy, Cô, nhà khoa học; Sự động viên, chia sẻ bạn bè, đồng nghiệp gia đình Nghiên cứu sinh xin bày tỏ lịng biết ơn sâu sắc đến Thầy giáo hướng dẫn PGS.TS Nguyễn Hiếu Minh Thầy nhiệt tình, tận tâm định hướng, hướng dẫn, giúp đỡ nghiên cứu sinh suốt trình nghiên cứu hồn thành luận án Nghiên cứu sinh tỏ lòng biết ơn đến Thầy TS Lều Đức Tân, Thầy bảo cho nghiên cứu sinh học, kiến thức quý giá trình nghiên cứu Nghiên cứu sinh trân trọng cám ơn quý Thầy, Cô giáo khoa Công nghệ Thông tin, Học viện Kỹ thuật Quân tận tình giảng dạy, giúp đỡ thời gian nghiên cứu sinh học tập, nghiên cứu Nghiên cứu sinh gửi lời cảm ơn đến trường Sĩ quan Thông tin, Binh chủng Thông tin Liên lạc, phịng Sau đại học, Bộ mơn Cơng nghệ mạng, Học viện Kỹ thuật Quân giúp đỡ, tạo điều kiện cho nghiên cứu sinh học tập, nghiên cứu, hoàn thành luận án Cuối cùng, nghiên cứu sinh gửi lời cảm ơn chân thành tới gia đình, bạn bè đồng nghiệp, người ủng hộ, tạo niềm tin, động viên, chia sẻ khó khăn với nghiên cứu sinh suốt thời gian vừa qua Hà Nội, tháng năm 2021 Hồ Kim Giàu MỤC LỤC MỤC LỤC i DANH MỤC TỪ VIẾT TẮT iv DANH MỤC KÝ HIỆU vi DANH MỤC HÌNH VẼ vii DANH MỤC BẢNG viii DANH MỤC THUẬT TOÁN ix MỞ ĐẦU Chương NHỮNG VẤN ĐỀ CHUNG VỀ AN TOÀN ODBS 1.1 Tổng quan an toàn ODBS 1.1.1 Giới thiệu CSDL quan hệ 1.1.2 Giới thiệu ODBS 10 1.1.3 Những nguy an toàn ODBS 12 1.1.4 Các tốn bảo đảm an tồn ODBS 13 1.2 Những nghiên cứu an toàn cho ODBS 14 1.2.1 Nghiên cứu nước 15 1.2.2 Nghiên cứu nước 15 1.3 Các toán giải luận án 21 1.4 Một số kiến thức liên quan 22 1.4.1 Xử lý song song 22 1.4.2 Chữ ký số 23 1.4.3 Xác thực lô 27 1.4.4 Hệ thống tệp tin không gian người dùng 30 1.4.5 Lưu trữ khóa-giá trị 33 i ii 1.4.6 Mơ hình lập trình MapReduce 34 1.4.7 Bộ liệu mẫu TPC-H 37 1.5 Kết luận 39 Chương GIẢM THỜI GIAN TRUY VẤN VÀ XÁC THỰC KHI TRUY VẤN CSDL MÃ TRÊN ODBS 40 2.1 Giới thiệu chung 40 2.2 Giảm thời gian thực thi truy vấn liệu mã 42 2.2.1 Một số phương pháp truy vấn liệu mã 42 2.2.2 Giảm thời gian truy vấn CSDL mã 49 2.3 Lược đồ xác thực lô dựa hai tốn khó 52 2.3.1 Cơ sở lý thuyết 52 2.3.2 Tham số miền 54 2.3.3 Lược đồ xác thực lô Rabin-Schnorr 54 2.3.4 Lược đồ xác thực lô RSA-Schnorr 57 2.3.5 Nâng cao tính an tồn hiệu cho hai lược đồ Rabin-Schnorr RSA-Schnorr 59 2.4 Xác thực liệu mã hóa th ngồi 61 2.4.1 Mô hình xác thực 62 2.4.2 Quá trình hoạt động 64 2.4.3 Một số trường hợp truy vấn CSDL 65 2.5 Phân tích, đánh giá phương pháp đề xuất 68 2.5.1 Phân tích, đánh giá phương pháp giảm thời gian truy vấn 68 2.5.2 Phân tích, đánh giá phương pháp xác thực liệu mã 72 2.6 Kết luận 78 Chương QUẢN LÝ, THAY ĐỔI KHOÁ MÃ CỦA ODBS 80 3.1 Giới thiệu chung 80 3.1.1 Quản lý khóa quyền truy cập 81 iii 3.1.2 Quản lý khóa 81 3.1.3 Quản lý quyền truy cập liệu 82 3.2 Đề xuất mơ hình quản lý khoá quyền truy cập 83 3.2.1 Mơ hình quản lý khố 83 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ị 84 3.2.3 Mơ hình quản lý truy cập liệu mức cột người dùng 89 3.3 Đề xuất phương pháp thay đổi khóa mã cho ODBS 90 3.3.1 Phương pháp đổi khoá ngây thơ 91 3.3.2 Đề xuất phương pháp đổi khoá dựa MapReduce 92 3.3.3 Đảm bảo an tồn cho phương pháp thay đổi khố 94 3.4 Phân tích, thử nghiệm phương pháp đề xuất 96 3.4.1 Phân tích KVEFS 96 3.4.2 Thử nghiệm phương pháp thay đổi khoá 96 3.4.3 Vấn đề tồn phương pháp đề xuất 98 3.5 Kết luận 98 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 100 DANH MỤC CÁC CƠNG TRÌNH CƠNG BỐ 102 TÀI LIỆU THAM KHẢO 104 DANH MỤC TỪ VIẾT TẮT Viết tắt Nghĩa tiếng Anh Nghĩa tiếng Việt ADS Authenticated Data Structure Cấu trúc liệu xác thực Adv Adversary Kẻ công AES Advanced Encryption Standard Tiêu chuẩn mã hóa tiên tiến API Application programming interface Giao diện lập trình AQE Adjustable Query-based Encryption Mã hóa dựa truy vấn điều chỉnh CRT Chinese Remainder Theorem Định lý số dư Trung Hoa CSDL Database Cơ sở liệu quan hệ DBMS Database Management Systems Hệ quản trị CSDL DES Data Encryption Standard Tiêu chuẩn mã hóa liệu DET Deterministic Mã hóa tất định DLP Discrete Logarithm Problem Bài toán logarit rời rạc DO Data Owner Chủ sở hữu liệu DSA Digital Signature Algorithm Thuật toán chữ ký số DSP Database Service Provider Nhà cung cấp dịch vụ CSDL DSS Digital Signature Standard Chuẩn chữ ký số FPE Format Preserving Encryption Mã hóa bảo tồn định dạng FQE Fuzzy Query Encryption Mã hóa truy vấn mờ FUSE Filesystem in Userspace Hệ thống tập tin không gian người dùng GUI Graphical User Interface Giao diện đồ hoạ người dùng HDFS Hadoop Distributed File System Hệ thống tập tin Hadoop HOM Homomorphic Encryption Mã hóa đồng cấu IaaS Infrastructure as a Service Hạ tầng dịch vụ iv v IDS Intrusion Detection System Hệ thống phát xâm nhập IFP Integer Factorization Problem Bài tốn phân tích số IV Initialization vector Vector khởi tạo JDBC Java Database Connectivity Chuẩn kết nối liệu java KMT Key Management Tree Cây quản lý khóa MHT Merkle Hash Tree Cây hàm băm Merkle ODBS Outsourced Database Service Dịch vụ CSDL thuê OPE Order-Preserving Encryption Mã hóa bảo tồn thứ tự PaaS Platform as a Service Nền tảng dịch vụ RPC Remote Procedure Call Gọi thủ tục từ xa RST Resource Set Tree Cây tập tài nguyên SaaS Software as a Service Phần mềm dịch vụ SQL Structured Query Language Ngơn ngữ truy vấn có cấu trúc SQLAE SQL-aware Encryption Mã hóa nhận thức SQL SSE Searchable Strong Encryption Mã hóa mạnh tìm kiếm TLS Transport Layer Security Bảo mật tầng giao vận UDF User Defined Function Hàm người dùng định nghĩa VFS Virtual file systems Hệ thống tệp tin ảo VO Verification Object Đối tượng xác thực DANH MỤC KÝ HIỆU Kí hiệu Ý nghĩa {0,1}∞ Chuỗi bit có độ dài || Phép toán nối chuỗi H() Hàm băm mật mã (Hash function) Ek (m) Hàm mã hố (ví dụ: DES, AES ) liệu m với khoá k Dk (c) Hàm giải mã liệu c với khoá k (Hàm ngược Ek ) readKM T () Hàm đọc khoá KMT gcd(a,b) Ước số chung lớn a b S(m) Hàm tạo chữ ký cho liệu m V (σi ) Hàm xác thực lô cho nhiều chữ ký σi len(a) Độ dài a tjoin (Di ) Chi phí trung bình (TB) ghép bảng CSDL D1 , D2 , tinsert (T ) Chi phí trung bình lưu trữ bảng T lên CSDL tenc Chi phí TB thực mã hố tdec Chi phí TB thực giải mã tH Chi phí TB cho phép tính hàm H: {0,1}∞ → {0,1}h tgen Chi phí TB thực tạo khóa hàm KeyGen() tread Chi phí TB thực đọc KMT tM (N ) Chi phí TB cho phép nhân hai số N-bít tRed (N ) Chi phí TB cho phép rút gọn số 2N-bít theo modulo N-bít tm (N ) Chi phí TB cho phép nhân rút gọn theo modulo n với len(n) = N texp (N ,L) Chi phí TB cho phép tính ae mod n với len(e) = N len(n) = L tgcd (N ) Chi phí TB cho phép tính gcd(a,b) với len(a), len(b) ≤ N tJacobi (N ) Chi phí TB cho phép tính ( na ) với len(n) = N vi DANH MỤC HÌNH VẼ 1.1 Mơ hình tổng quát ODBS 11 1.2 Quá trình xử lý song song 23 1.3 Kiến trúc FUSE [77] 31 1.4 Mơ hình lớp OpenStars [59] 34 1.5 Tiến trình xử lý MapReduce [87] 36 2.1 Mơ hình ODBS với CSDL mã 41 2.2 Mơ hình truy vấn liệu mã Hacigumus đề xuất [32] 43 2.3 Mơ hình mã hố củ hành (Onion) Popa đề xuất [60] 46 2.4 Mơ hình truy vấn liệu mã Popa đề xuất [60] 47 2.5 Ví dụ (a) cách CryptDB biến đổi lược đồ bảng mã hóa CSDL (b) truy vấn liệu mã CryptDB [60] 47 2.6 Mơ hình xử lý song song liệu mã 49 2.7 Mô hình xác thực liệu mã truy vấn ODBS 63 2.8 Chi tiết bước xác thực liệu mã truy vấn ODBS 64 2.9 Q trình cập nhập xố liệu mã ODBS 68 2.10 Thời gian xác thực chữ ký 76 3.1 Cây quản lý khoá KMT CSDL 83 3.2 Mơ hình KVEFS 85 3.3 Mơ hình truy cập liệu mức cột người dùng 90 3.4 Mơ hình đổi khố dựa MapReduce 93 3.5 Kết thời gian thực đổi khoá 97 vii DANH MỤC BẢNG Tình trạng rò rỉ liệu [83] 1.1 Số lượng ghi bảng TPC-H với dbgen -s 39 2.1 Bảng DIEMSV rõ bảng DIEM SV S mã 44 2.2 Kích thước tương đương độ an toàn tham số RSA DL53 2.3 Thời gian thực truy vấn (ms) 2.4 Thời gian xử lý (ms) theo thử nghiệm Ahmad [4] 70 2.5 So sánh phương pháp giảm thời gian truy vấn liệu mã 71 2.6 Chi phí tiết kiệm lược đồ cải tiến tương ứng với cặp 69 (L, N) cho bảng 2.2 73 2.7 Thời gian thực cơng việc thuật tốn chữ ký số 74 2.8 Thời gian thực giai đoạn xác thực ODBS 74 2.9 Thời gian thực tạo chữ ký (s) 75 2.10 Thời gian thực xác thực (s) 76 3.1 Ma trận kiểm soát truy cập cho bảng T 3.2 Cấu trúc quản lý khoá KMT 84 3.3 So sánh KVEFS Encfs 96 3.4 Thời gian đổi khoá thuật toán 3.5 thuật toán 3.6 97 viii 82 DANH MỤC THUẬT TỐN 2.1 Thuật tốn truy vấn CSDL mã song song 51 2.2 Thuật toán tạo chữ ký S(m) Rabin-Schnorr 55 2.3 Thuật toán kiểm tra chữ ký Rabin-Schnorr 55 2.4 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ý 55 2.5 Thuật toán tạo chữ ký RSA-Schnorr 57 2.6 Thuật toán kiểm tra chữ ký RSA-Schnorr 57 2.7 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ý 58 2.8 Thuật toán tạo chữ ký Rabin-Schnorr cải tiến 61 2.9 Thuật toán kiểm tra chữ ký Rabin-Schnorr cải tiến 61 2.10 Thuật toán V (σi ) Rabin-Schnorr cải tiến 62 2.11 Thuật toán tạo chữ ký RSA-Schnorr cải tiến 62 2.12 Thuật toán lưu CSDL mã 66 2.13 Thuật toán xác thực chữ ký giải mã liệu 67 3.1 Thuật toán đọc file 87 3.2 Thuật toán ghi file 3.3 Thuật toán mã hoá lưu liệu vào kho lưu trữ 88 3.4 Thuật toán giải mã liệu từ kho lưu trữ 88 3.5 Thuật toán NaiveKeyChanged 91 3.6 Thuật toán MR-EncColumnKeyChange 94 87 ix MỞ ĐẦU Tính cấp thiết đề tài luận án Để quản lý hệ thống thông tin, tổ chức, cá nhân thường lưu trữ liệu dạng sở liệu quan hệ (CSDL) Điều giúp người chủ sở hữu liệu (Data Owner - DO) dễ dàng truy xuất liệu chia sẻ cho nhiều người dùng Trước kia, có hai hình thức lưu trữ CSDL lưu trữ nội tổ chức (In-house database) lưu trữ trực tuyến (Online database) Hình thức lưu trữ nội bộ: DO quản lý CSDL máy chủ mình, khơng chia sẻ qua mạng Internet Như vậy, DO phải có hệ thống máy chủ gồm: máy tính, hệ điều hành, hệ quản trị CSDL nhân viên vận hành hệ thống Khi nhu cầu lưu trữ xử lý liệu tăng địi hỏi DO phải tốn chi phí cho nâng cấp phần cứng, cập nhập quyền phần mềm, phát triển đội ngũ nhân viên Hình thức lưu trữ trực tuyến: DO đặt máy chủ mơi trường mạng toàn quyền quản lý máy chủ dịch vụ Như vậy, ngồi chi phí lưu trữ nội bộ, DO tốn thêm chi phí thuê đường truyền, đồng thời bảo vệ máy chủ khỏi nguy công từ Internet Ngày nay, điện tốn đám mây phát triển mạnh mẽ 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 th ngồi (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 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 Hơn nữa, 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 ln diễn Tính đến tháng 03/2019, Databreaches [74], Information Is Beautiful [83] thống kê tổ chức, doanh nghiệp bị công đánh cắp liệu từ CSDL nói chung cơng xảy ODBS nói riêng bảng Trong đó, nguyên nhân bảo mật sách bảo mật chưa thực người dùng khơng có quyền truy cập liệu Bị công nguyên nhân xảy từ môi trường Internet Kẻ công truy xuất vào máy chủ dịch vụ có liệu liệu rõ Một nguyên nhân gây thiệt hại liệu thiết bị (máy tính, ổ cứng, token ) Khi thiết bị, kẻ cơng khơng có liệu mà cịn có khóa mã, thơng tin phụ trợ cho trình xử lý liệu mã, hàm mật mã Nguyên nhân khó kiểm sốt cơng từ bên DSP Nhân viên quản trị hệ thống DSP trực tiếp can thiệp vào hệ thống máy chủ Do đó, việc liệu người dùng bị nhân viên DSP lấy cắp mà DO Để bảo vệ "tài sản" quý giá mình, DO phải có giải pháp bảo đảm an toàn CSDL từ triển khai hệ thống Giải pháp DO mã hoá liệu trước lưu trữ lên ODBS để bảo vệ liệu Khi liệu bị mã hố, kẻ cơng lấy cắp liệu không sử dụng nội dung liệu đó, họ cố gắng việc giải mã thơng tin tốn nhiều thời gian, đơi khơng thực Nhưng đó, DO phải trả giá chi phí thời gian, tài ngun hệ Bảng 1: Tình trạng rị rỉ liệu [83] Thời gian Tổ chức/ Lĩnh vực Số ghi bị rò rỉ 12/2018 Google+/ web 52.500.000 03/2018 Facebook/ web 50.000.000 09/2018 British Airways/ giao thông 380.000 03/2017 Văn phịng đăng ký bầu cữ Hồng Kơng/ Chính phủ 3.700.000 01/2014 Phịng tín dụng Hàn Quốc/ tín dụng 20.000.000 Mơ tả Một lỗ hổng tiết lộ thông tin cá nhân người dùng, hồ sơ họ đặt chế độ riêng tư Cambridge Analytica (cơng ty tư vấn trị Anh) thu thập 50 triệu hồ sơ người dùng facebook vào đầu năm 2014 để xây dựng hệ thống tác động lên cử tri Mỹ nhằm mục tiêu quảng bá trị Chi tiết cá nhân tài khách hàng đặt vé khoảng thời gian từ ngày 21 tháng đến ngày 05 tháng bị công Thông tin cá nhân 3,7 triệu cử tri thành phố bị xâm phạm sau Văn phòng đăng ký bầu cử báo cáo hai máy tính xách tay bị tích địa điểm dự phịng cho bầu cử giám đốc điều hành Một nhân viên công ty xếp hạng tín dụng cá nhân Cục Tín dụng Hàn Quốc (KCB) bị bắt bị buộc tội ăn cắp liệu từ khách hàng ba cơng ty thẻ tín dụng làm việc cho họ với vai trò nhà tư vấn tạm thời Nguyên nhân Bảo mật Bị công Bị công Mất thiết bị Tấn công bên 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 khoá mã cần thiết Với toán xác thực liệu CSDL mã 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ợ Các 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 Đối tượng, phạm vi nghiên cứu ❼ Đối tượng nghiên cứu: – Mơ hình ODBS, hệ quản trị CSDL như: MySQL, SQL Server – Các thuật toán mã hóa, chữ ký số, xác thực lơ – Mơ hình lưu trữ khoá-giá trị, bảo mật hệ thống tệp tin khơng gian người dùng – Các mơ hình tính toán song song CPU, MapReduce ❼ Phạm vi nghiên cứu: Luận án giới hạn nghiên cứu ODBS phục vụ nhu cầu tổ chức, cá nhân Trong đó, DO thuê dịch vụ DSP để lưu trữ CSDL, chia sẻ liệu cho nhiều người dùng DO không phép can thiệp vào máy chủ DSP để lắp đặt thiết bị, cài đặt dịch vụ, chương trình phần mềm khác Trong trình nghiên cứu, luận án sử dụng thêm máy chủ trung gian để lưu trữ liệu hỗ trợ, xử lý thuật tốn mã hóa/giải mã, hàm người dùng định nghĩa Máy chủ trung gian DO quản lý toàn quyền can thiệp Việc bảo mật máy chủ trung gian DO thiết lập giải pháp phần cứng (router, firewall ), phần mềm (Antivirus, IDS ) Dữ liệu từ DSP truyền máy chủ trung gian liệu mã, liệu từ máy chủ trung gian đến người dùng liệu rõ dùng giao thức TLS để bảo mật Vì vậy, máy chủ trung gian giả định an toàn nằm phạm vi nghiên cứu luận án Mục tiêu luận án Mục tiêu luận án nghiên cứu, phát triển giải pháp nhằm xác thực an toàn quản lý, thay đổi khố cho ODBS Từ đó, đề xuất mơ hình, thuật tốn như: thuật tốn xử lý song song để giảm thời gian truy vấn liệu mã, thuật tốn xác thực lơ mơ hình ứng dụng xác thực lơ vào xác thực CSDL mã hóa, mơ hình quản lý khố quyền truy cập, thuật tốn mã hóa hệ thống tập tin hệ điều hành thuật tốn thay đổi khóa cho CSDL mã hóa ODBS, làm tảng khoa học có khả triển khai vào ứng dụng thực tế Phương pháp nghiên cứu ❼ Về lý thuyết: Dùng phương pháp khảo sát, phân tích, đánh giá, tổng hợp phương pháp đề xuất đảm bảo an tồn ODBS, từ đưa định hướng nghiên cứu, phát triển Bên cạnh đó, luận án nghiên cứu, vận dụng kiến thức liên quan đến xử lý liệu lớn, lý thuyết số học, lý thuyết hệ điều hành để đề xuất mơ hình, thuật tốn; Nghiên cứu mơ hình tính tốn song song CPU, MapReduce ❼ Về thực nghiệm: – Luận án sử dụng mơ hình tốn học để chứng minh tính đắn phương pháp đề xuất Luận án sử dụng ngơn ngữ lập trình (Java, Python ) để cài đặt thuật toán sử dụng liệu mẫu TPC-H làm liệu thử nghiệm đánh giá kết đề xuất – Luận án sử dụng hệ thống mô ODBS với máy chủ lưu trữ CSDL (tương ứng với DSP), máy chủ trung gian để xử lý (DO quản lý) máy người dùng Việc mô đảm bảo theo mơ hình ODBS đồng thời hạn chế ảnh hưởng đường truyền mạng đến khả xử lý giải pháp đề xuất so với việc dùng dịch vụ ODBS thực tế Nội dung nghiên cứu luận án ❼ Đánh giá tổng quát nghiên cứu trước vấn đề tồn bảo đảm an tồn ODBS Từ đưa nhận định nghiên cứu, đề xuất vấn đề cần giải bảo đảm an tồn ODBS có khả ứng dụng vào thực tế ❼ Nghiên cứu giải pháp giảm thời gian truy vấn liệu mã ❼ Tìm hiểu thuật toán mật mã, nghiên cứu đề xuất thuật toán chữ ký số, xác thực lơ dựa hai tốn khó ứng dụng vào xác thực liệu mã cho ODBS ❼ Nghiên cứu giải pháp mã hoá hệ thống tệp tin hệ điều hành để bảo vệ nội dung tập tin ❼ Nghiên cứu mơ hình quản lý giải pháp thay đổi khoá mã cho CSDL mã ODBS ❼ Đề xuất mơ hình, thuật tốn để giải toán Cài đặt, thực nghiệm nhằm kiểm chứng tính khả thi mơ hình, thuật tốn đề xuất Ý nghĩa khoa học thực tiễn Việc nghiên cứu, đề xuất phát triển giải pháp bảo đảm an tồn cho ODBS có khả triển khai thực tế mục tiêu nhà khoa học giới Với nghiên cứu trình bày, luận án đóng góp ý nghĩa khoa học thực tiễn sau: ❼ 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 ❼ 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ã Các thuật tốn xác thực lơ đề xuất dựa hai tốn khó cịn 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 ❼ Thuật tốn 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ố 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 ❼ Thuật tốn đổ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 Bố cục luận án Luận án gồm mở đầu, chương, kết luận hướng phát triển, cơng trình cơng bố tài liệu tham khảo Nội dung chương cụ thể sau: Chương 1: NHỮNG VẤN ĐỀ CHUNG VỀ AN TỒN ODBS Trong chương này, luận án trình bày vấn đề bảo đảm an toàn cho ODBS, tình hình nghiên cứu ngồi nước Từ luận án đưa nhận định hướng nghiên cứu, toán cần giải Chương trình bày kiến thức sở, làm tảng cho nghiên cứu, đề xuất chương 2, Cuối kết luận chương Chương 2: GIẢM THỜI GIAN TRUY VẤN VÀ XÁC THỰC KHI TRUY VẤN CSDL MÃ TRÊN ODBS Trong chương này, luận án đề xuất thuật toán giảm thời gian thực truy vấn CSDL mã ODBS Luận án đề xuất hai thuật tốn xác thực lơ dựa hai tốn khó áp dụng thuật tốn xác thực lơ vào xác thực liệu mã truy vấn mơi trường th ngồi Phân tích, đánh giá thuật toán đề xuất kết luận chương Chương 3: QUẢN LÝ, THAY ĐỔI KHOÁ MÃ CỦA ODBS Trong chương này, luận án trình bày toán quản lý khoá mã CSDL mã chế quản lý truy cập CSDL người dùng Luận án đề xuất KMT (Key Management Tree) để quản lý khoá, phương pháp mã hoá tệp hệ điều hành phương pháp đổi khoá mã mức cột ODBS Phân tích thử nghiệm, đánh giá phương pháp đề xuất kết luận chương Chương NHỮNG VẤN ĐỀ CHUNG VỀ AN TOÀN ODBS Nội dung chương giới thiệu tổng quan vấn đề an toàn cho ODBS, khảo sát nghiên cứu nước có liên quan Từ đó, luận án đưa nhận định định hướng nghiên cứu, phát triển liên quan đến toán xác thực, quản lý thay đổi khố mã cho ODBS Chương cịn trình bày sở lý thuyết làm tảng cho nghiên cứu trình bày chương 2, Cuối kết luận chương 1.1 Tổng quan an toàn ODBS 1.1.1 Giới thiệu CSDL quan hệ Dữ liệu thành phần cốt lõi hệ thống thơng tin Một hệ thống thơng tin cần có liệu đầu vào, xử lý tính tốn đưa liệu kết Trong trình xử lý, hệ thống cần lưu trữ liệu đầu vào, giá trị tạm, liệu kết để dễ dàng sử dụng chia sẻ Các hình thức tổ chức lưu trữ liệu như: Cấu trúc liệu, hướng đối tượng, CSDL Trong đó, mơ hình CSDL xây dựng sở toán học chặt chẽ nên đảm bảo hầu hết yêu cầu sử dụng thông tin từ người dùng Định nghĩa 1.1 Cho tập A1 , A2 , , An (n ≥ 1), R gọi quan hệ n tập có (tuple) gồm n giá trị, giá trị lấy từ A1 , giá trị thứ hai lấy từ A2 , [19] Đặc điểm quan hệ R giá trị tập (A1 A2 , ) phải kiểu liệu giá trị khơng có mối quan hệ thứ tự Khi biểu diễn quan hệ R dạng bảng cột tương ứng với thuộc tính, dịng tất dịng có nội dung khác CSDL quan hệ E F Codd [18] giới thiệu lần vào năm 1970 10 CSDL quan hệ cách thức tổ chức liệu dạng quan hệ (bảng) phép toán, thao tác liệu quan hệ Để quản lý CSDL quan hệ máy tính ta dùng phần mềm quản lý gọi hệ quản trị CSDL (Database Management Systems - DBMS) DBMS cho phép lập trình viên định nghĩa cấu trúc bảng (tên trường, kiểu liệu trường ) để lưu trữ liệu; tạo quan hệ bảng để đảm bảo toàn vẹn liệu; thao tác thêm, sửa, xóa trích xuất liệu lệnh truy vấn có cấu trúc (Structured Query Language - SQL) 1.1.2 Giới thiệu ODBS Điện toán đám mây (Cloud Computing) đời phát triển giúp cho người dùng có nhiều lợi ích sử dụng dịch vụ như: Khơng tốn chi phí đầu tư ban đầu phần cứng, phần mềm, hạ tầng mạng, thay đổi linh hoạt tài nguyên hệ thống (CPU, RAM, ổ cứng ) Điện toán đám mây thường cung cấp cho người dùng dịch vụ qua mạng Internet dạng: Cơ sở hạ tầng dịch vụ (Infrastructure as a Service - IaaS), tảng dịch vụ (Platform as a Service - PaaS), phần mềm dịch vụ (Software as a Service - SaaS) Khái niệm 1.1 ODBS dịch vụ PaaS điện tốn đám mây [11] Trong mơ hình ODBS, DO thuê nhà cung cấp dịch vụ 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 mà khơng có quyền truy cập vào dịch vụ khác máy chủ DSP Với mơ hình ODBS, DO sử dụng trả tiền cho dịch vụ CSDL mà không quan tâm đến việc đầu tư quản lý hệ thống máy chủ, đường truyền nhân viên quản trị hệ thống Do đó, DO giảm chi phí việc đầu tư hạ tầng nhân công để quản lý sử dụng CSDL 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 11 Tru yv Người dùng Kế t ấn qu ả iệu ữl d ập nh iệu p ữl Cậ d y Lấ Internet Nhà cung cấp dịch vụ CSDL thuê Chủ sở hữu liệu Hình 1.1: Mơ hình tổng qt ODBS Mơ hình ODBS thường có ba đối tượng chính: ❼ Nhà cung cấp dịch vụ (Database Service Provider-DSP): 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 Các nhà cung cấp dịch vụ ODBS giới như: Amazon [5], Google [15], CMC [17] Máy chủ DSP có DBMS như: MySQL, PostgreSQL, MariaDB, Oracle SQL Server ❼ Chủ sở hữu liệu (Data Owner-DO): Người tạo toàn quyền định liệu DO người thuê dịch vụ DSP để lưu trữ 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 Nhận xét 1.1 Mơ hình ODBS khác với hình thức lưu trữ trực tuyến chỗ CSDL DO quản lý bên thứ ba (DSP) Việc khai thác CSDL hình thức ODBS có hai tương tác chủ yếu: Tương tác DO - DSP tương tác người dùng - DSP Tương tác DO DSP bao gồm truy vấn liên quan đến quản lý CSDL như: Thêm, cập nhật, xóa liệu, quản lý, phân 12 quyền người dùng Trong tương tác người dùng DSP bao gồm số truy vấn liên quan đến việc trích xuất liệu 1.1.3 Những nguy an toàn ODBS Khi sử dụng ODBS, liệu DO lưu trữ đám mây nên đối mặt với nhiều rủi ro từ mơi trường Internet máy chủ DSP Dựa nguy mà Namasudra cộng [56] đưa ra, ta thấy số vấn đề an toàn ODBS sau: ❼ CSDL chủ yếu bị công bởi: Tấn 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" Hơn nữa, việc chưa quan tâm đổi khoá với CSDL mã nghi ngờ lộ lọt khố 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 ❼ Cho đến nay, chưa có tiêu chuẩn cụ thể DSP, DO người dùng để đảm bảo tuyệt đối an toàn liệu cho DO, bảo mật thông tin cho người sử dụng 13 Nhận xét 1.2 Nguy an toàn ODBS phụ thuộc vào hệ thống DSP (phần cứng, phần mềm, nhân viên), mối đe dọa đường truyền, quản lý DO khoá mã, thuật tốn mật mã sách mà DO thiết lập người tham gia vào hệ thống CSDL 1.1.4 Các tốn bảo đảm an tồn ODBS Từ nguy rủi ro trình bày, nhà khoa học nhận thấy cần nghiên cứu vấn đề nhằm bảo vệ an toàn liệu ODBS Có tốn bảo đảm an tồn cho ODBS như: ❼ Tính bí mật liệu (Data confidentiality) [32, 60, 76, 84]: Dữ liệu ban đầu (bản rõ) biến đổi thành liệu khác (bản mã) Nếu người có mã mà khơng có khố mã biết nội dung chuyển lại thành rõ DO thường mã hóa liệu hàm mật mã với khóa bí mật trước lưu trữ đám mây Các hàm mật mã sử dụng như: Mật mã khóa đối xứng (DES, AES ), mã hóa bảo tồn thứ tự (OPE), mã hóa đồng cấu (HOM) Với cách bảo vệ vậy, DO có khóa mã để giải mã liệu Kẻ cơng (kể DSP) có liệu khơng biết nội dung khơng có khóa mã Tùy thuộc vào mức độ bảo mật cho CSDL mà nhà nghiên cứu đề xuất mức mã hóa CSDL khác Với mã hố mức mức dùng chung khố Các mức mã hóa CSDL theo mức độ an tồn từ thấp đến cao là: Mức bảng, mức cột, mức dịng mức Trong tốn này, việc quản lý thay đổi khoá mã tốn quan trọng Thay đổi khố q trình giải mã khoá cũ mã hoá khoá toàn liệu DO lưu trữ máy chủ DSP ❼ Tính riêng tư liệu (Data privacy) [25, 40, 91]: 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ế 14 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) [70, 45, 27]: Kết trả từ server phải đảm bảo tính (correctness), đầy đủ (completeness) (freshness) CSDL DO bị công, làm sai lệch liệu so với ban đầu, đó, cần phải có phương pháp xác thực liệu trả truy vấn Một số 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 Nhận xét 1.3 Tính bí mật liệu giúp DO bảo vệ liệu trước việc lộ lọt thơng tin Để thực tốt tính bí mật hàm mật mã đóng vai trị quan trọng việc mã hóa, giải mã, tính tốn liệu mã Hàm mật mã phải đảm bảo độ an tồn, thực nhanh hỗ trợ phép tính tốn Các mơ hình, thuật tốn truy vấn CSDL mã phải đảm bảo mặt thời gian thực Bên cạnh đó, việc quản lý tính riêng tư liệu quản lý khóa, quản lý người dùng cần thực tốt, tránh trường hợp người dùng truy cập bất hợp pháp vào liệu Thay đổi khóa mã cho CSDL biện pháp cần thiết để tăng tính an tồn cho ODBS Việc xác thực liệu trả truy vấn giúp cho người khai thác liệu tránh hậu đáng tiếc từ thơng tin khơng xác 1.2 Những nghiên cứu an toàn cho ODBS Từ vấn đề nêu trên, nhà khoa học nước đề xuất giải pháp để bảo đảm an tồn cho CSDL nói chung ODBS nói riêng Trong có nghiên cứu như: 15 1.2.1 Nghiên cứu nước Tác giả Nguyễn Anh Tuấn [2] nghiên cứu xây dựng mơ hình mã hóa CSDL nói chung Tác giả dùng thuật toán mật mã để mã hóa liệu dùng bảng ảo, trigger DBMS để giải mã liệu trước truy vấn Phương pháp chống lại công đánh cắp liệu Adv khơng có khóa mã để giải mã liệu Tuy nhiên, số lượng bảng ảo tăng lên làm giảm khả xử lý máy chủ Ngoài ra, nghiên cứu chưa quan tâm giải toán xác thực liệu, quản lý thay đổi khoá Tác giả Phạm Thị Bạch Huệ [1] nghiên cứu phát triển số giải pháp bảo mật bảo vệ tính riêng tư ODBS Trong đó, tác giả tập trung vào vấn đề liên quan đến tính riêng tư người dùng, tính riêng tư liệu, xác thực người dùng ghi nhật ký hệ thống Tác giả giải tính riêng tư người dùng phương pháp truy vấn tạo nhiễu, sau loại bỏ ghi dư thừa phía người dùng, điều hạn chế việc máy chủ liệu thống kê tần suất truy vấn người dùng Việc bảo vệ tính riêng tư liệu tác giả sử dụng chế quản lý truy cập mức cột, sử dụng CSDL biến động Để bảo vệ tính riêng tư liệu,tác giả dùng thuật tốn mã hóa liệu dựa định lý số dư Trung Hoa (Chinese remainder theorem - CRT), sử dụng hàm chiều để dẫn xuất khóa, dùng nhị phân để quản lý Tuy nhiên, tác giả chưa giải toán xác thực liệu trả Bài toán thay khoá tác giả đưa hướng nghiên cứu tiếp theo, đến nay, toán chưa giải 1.2.2 Nghiên cứu ngồi nước Khi mã hóa liệu để đảm bảo tính bí mật đồng thời nhà nghiên cứu đề xuất phương pháp truy vấn liệu mã Bởi mã hóa, liệu bị biến đổi, khơng cịn kiểu liệu ban đầu Bên cạnh đó, mã hóa theo vector IV ngẫu nhiên thuật tốn mật mã khơng giữ mối quan hệ bảng giá trị rõ hai giá trị 16 hai bảng khác sinh hai giá trị mã khác Các công bố truy vấn liệu mã như: Dùng siêu liệu (metadata) lưu trữ thông tin phụ trợ để hỗ trợ truy vấn liệu mã [9, 32] Dùng máy chủ trung gian (proxy) để chuyển đổi câu truy vấn [12, 60] Truy vấn trực tiếp liệu mã (phương pháp hỗ trợ số dạng truy vấn) [53, 82] Hacigumus cộng [32] đề xuất giải pháp dùng chương trình biến đổi truy vấn (Query Translator) để chuyển đổi câu truy vấn dạng rõ người dùng sang truy vấn dạng mã Các liệu mã hóa trước lưu trữ máy chủ DSP Bên cạnh đó, liệu có thêm mục làm thông tin phụ trợ cho phép thực truy vấn CSDL máy chủ DSP mà không cần phải giải mã DO dùng mục để chuyển đổi truy vấn người dùng thành truy vấn thích hợp thực thi máy chủ, người dùng nhận kết trả từ máy chủ DSP Tuy nhiên, phương pháp cịn có nhược điểm tăng chi phí lưu trữ, chi phí để tính tốn lại sau truy vấn CSDL chưa quan tâm xác thực liệu mã đổi khoá mã Agrawal cộng [3] đề xuất giải pháp bảo đảm tính bí mật liệu quyền riêng tư truy vấn cách lưu trữ phân tán liệu nhiều máy chủ thay mã hóa liệu Cách tiếp cận tận dụng số lượng lớn tài nguyên từ máy chủ DSP tùy thuộc số lượng máy chủ mà DO thuê CSDL chia thành nhiều phần lưu trữ phần DSP: DSP1 , DSP2 , , DSPn cho liệu từ máy chủ k(k ≤ n) tiết lộ bí mật liệu Khi truy vấn liệu, máy chủ trả giá trị thỏa điều kiện khôi phục lại giá trị ban đầu hàm Agrawal định nghĩa trước Tuy nhiên, phương pháp chưa giải vấn đề xác thực liệu truy vấn A Popa cộng [60] trình bày mơ hình mã hố cách thức thực thi truy vấn CSDL mã cách sử dụng máy chủ làm trung gian gọi CryptDB proxy CryptDB proxy lưu trữ khố bí mật lớp mã 17 hoá cột Máy chủ DSP lưu trữ liệu người dùng mã hóa (trong tên bảng, tên cột mã hoá để ẩn ý nghĩa bảng) số bảng phụ trợ sử dụng CryptDB CryptDB cung cấp cho máy chủ với số hàm người dùng định nghĩa (User defined function - UDF) cho phép máy chủ tính tốn liệu mã với số phép toán định Điểm mạnh CryptDB cho phép máy chủ tính tốn liệu mã hóa mà khơng cần giải mã Proxy hệ thống trung gian tăng cường khả tính tốn cho ứng dụng truy vấn DBMS Nó thực số lượng lớn truy vấn SQL liệu mã hóa mà khơng địi hỏi thay đổi bên máy chủ DBMS kết giải mã user đáng tin cậy Tuy nhiên, CryptDB thực thi MySQL mà chưa hỗ trợ DBMS thương mại SQL Server Oracle Hơn nữa, CryptDB chưa hỗ trợ hết tất câu truy vấn liệu Li cộng [50] đề xuất mơ hình L-EncDB truy vấn CSDL mã gồm tầng: Tầng ứng dụng tầng CSDL Tầng ứng dụng mục đích mã hóa liệu chuyển đổi dạng câu truy vấn cho phù hợp loại mã (FPE, FQE OPE) Tầng CSDL cung cấp dịch vụ CSDL mà không cho phép người dùng can thiệp hệ thống, người dùng tương tác với máy chủ cách sử dụng câu lệnh SQL L-EncDB hỗ trợ loại truy vấn: truy vấn khoảng (dùng mã OPE), truy vấn mờ (dùng mã FPE) L-EncDB giải truy vấn liệu mã CryptDB chỗ L-EncDB tìm kiếm mờ tồn liệu chuỗi, CryptDB hỗ trợ phần Đối với tốn quản lý khóa để đảm bảo tính riêng tư liệu, nhà nghiên cứu thường sử dụng ma trận quản lý truy cập, thuật toán dẫn xuất khóa, cấu trúc quản lý khóa, đảm bảo có người dùng có quyền khai thác liệu Các mức riêng tư liệu như: Mức bảng, mức cột, mức dòng A.Zych cộng [91] đưa giải pháp đảm bảo tính riêng tư liệu 18 mức dòng với cấu trúc quản lý khoá dựa mối quan hệ người dùng danh sách truy cập xây dựng từ lên (bottom up) Đồng thời dùng phương pháp dẫn xuất khoá dựa nghi thức trao đổi khoá Diffie – Hellman phân phối khoá dẫn xuất đến người dùng Tuy nhiên, thuật toán sinh khoá thuật toán xây dựng cấu trúc quản lý khoá phức tạp, địi hỏi chi phí tính tốn cao Damiani cộng [21] sử dụng ma trận truy cập để mô tả tập hợp quyền người dùng Trong đó, hàng biểu diễn người dùng cột quyền truy cập liệu Cây dẫn xuất khóa xây dựng từ ma trận truy cập để kiểm soát truy cập Thuật toán đề xuất tất nút đại diện cho quyền truy cập theo ma trận truy cập Mỗi nút liên kết với khóa bí mật cho khóa cho nút v cấp cho người dùng u người dùng thuộc quyền truy cập v u không thuộc quyền truy cập nút cha u El Khory cộng [25] đề xuất phương pháp quản lý truy xuất mức dịng với dẫn xuất khố hàm chiều chế quản lý khoá nhị phân Mỗi mức nhị phân tương ứng với quyền người dùng Người dùng cung cấp khóa tương ứng với mức lấy tất khóa cho liệu phép truy cập Giải pháp có nhược điểm gán khóa cách khơng bình đẳng Người dùng mức đầu sở hữu vài khóa, người mức nhận số lượng lớn khóa Các phương pháp đề xuất hầu hết chưa linh hoạt dẫn đến tránh khỏi việc tốn nhiều thời gian dựng lại cấu trúc khóa thay đổi quyền người dùng thường xuyên Ngoài ra, phương pháp đề xuất chưa giải vấn đề thay đổi khoá mã CSDL cần thiết Đối với toán xác thực kết truy vấn trả về, nhà khoa học thường sử dụng chữ ký số dùng cấu trúc liệu xác thực (Authenticated Data Structure - ADS) [44, 45, 58, 90] Tuy nhiên, ADS thường không hiệu liệu động thời gian thay đổi cấu trúc ADS lớn Vì 19 ghi chèn xóa, tất ghi ghi bị sửa đổi thay đổi theo Einar Mykletun [54] cộng đưa giải pháp để đảm bảo tính cho câu truy vấn dạng đọc (read-only) khơng có tính tốn gộp (như SUM, AVERAGE, ) Mỗi ghi liệu lưu kèm theo chữ ký số ghi Kết trả kèm theo với chữ ký số Người dùng kiểm tra nội dung liệu với chữ ký kèm theo để xác nhận tính liệu Tuy nhiên, số lượng ghi trả lớn, việc kiểm tra số lượng lớn chữ ký số cho ghi dẫn đến thời gian tính tốn lớn tốn nhiều chi phí cho client Để giải vấn đề này, Mykletun đề nghị mơ hình Condensed-RSA Theo đó, thay kiểm tra riêng lẻ chữ ký ghi, client cần kiểm tra tất ghi lúc dựa chữ ký tổng hợp (condensed signature) server trả xác định tính liệu Mykletun nêu giải pháp khác nhằm đạt tính sử dụng Merkle Hash Tree (MHT) MHT mà kết băm liệu ghi tương ứng CSDL đánh dấu node gốc chữ ký số Nếu kèm theo hai ghi hai biên kết quả, ta chứng minh kết trả đầy đủ Cấu trúc MHT đòi hỏi phải lưu trữ kèm theo cấu trúc liệu chuyên dùng để phục vụ cho việc bảo đảm truy vấn Mỗi cấu trúc thường áp dụng cho thuộc tính, vậy, trường hợp CSDL có nhiều thuộc tính tìm kiếm (searchable attribute) đòi hỏi nhiều cấu trúc tương ứng, điều làm tăng chi phí phần cứng để lưu trữ server Yuan cộng [88] đề xuất lược đồ truy vấn gộp xác thực cho CSDL thuê Mỗi ghi gán thẻ (tag) xác thực dùng để kiểm tra tính tồn vẹn kết truy vấn gộp Tuy nhiên, phương pháp kiểm chứng liệu rõ phải kiểm tra thẻ ghi liên quan đến truy vấn Nghĩa hệ thống phải tính tốn lại chữ ký ghi truy vấn lấy vài thuộc tính ghi 20 Maithili Narasimha [57] đề nghị hướng tiếp cận dựa chuỗi chữ ký số Khi đó, chữ ký ghi bao gồm nội dung ghi liền trước Trong kết trả về, server trả kèm thêm hai ghi biên để đảm bảo tính đầy đủ Tuy nhiên, đề xuất Narasimha thực CSDL rõ Nếu áp dụng phương pháp CSDL mã sau xác thực, Narasimha phải tốn thêm thời gian thực giải mã ghi trước trả kết rõ cho người dùng Không có nhà nghiên cứu đưa cơng bố khoa học mà công ty cho đời sản phẩm thương mại để bảo đảm an toàn cho ODBS Một số sản phẩm tiêu biểu là: CipherCloud [16]: Giải pháp cung cấp khả mã/giải mã liệu vào/ra theo thời gian thực dựa việc sử dụng cổng mã hóa (gateway) Nó cung cấp giải pháp dựa mã hóa mạnh tìm kiếm (SSE) theo tiêu chuẩn FIPS 140-2 Dữ liệu giải mã người dùng quyền truy xuất liệu từ đám mây Các khóa mã lưu trữ cục không chia sẻ với DSP CipherCloud cung cấp giải pháp chống liệu, phát giám sát phần mềm độc hại cho môi trường đám mây Thales eSecurity [71]: Cung cấp khả mã/giải mã suốt cho hệ quản trị CSDL dịch vụ đám mây Giải pháp cho phép người dùng tự quản lý khóa Porticor [61] cung cấp giải pháp để mã hóa liệu quản lý khóa Giải pháp liệu riêng ảo Porticor công ty bảo vệ lớp liệu ứng dụng đám mây như: Ổ cứng ảo, hệ thống tệp, CSDL lưu trữ phân tán Nó hoạt động phổ biến sở hạ tầng dịch vụ (IaaS) tảng dịch vụ (PaaS) Các sản phẩm thương mại ngày hoàn thiện, giải hầu hết tốn an tồn cho ODBS Tuy nhiên, sản phẩm thương mại hoạt động thành phần trung gian, cho phép mã hóa ODBS dạng cổng mã hóa Các sản phẩm thường đắt tiền sản phẩm mã 21 nguồn đóng nên khó kiểm sốt mặt kỹ thuật, cơng nghệ tính an tồn, người dùng chấp nhận tin tưởng để sử dụng Bên cạnh đó, sản phẩm khó có khả tùy biến mặt giải pháp mã hóa, khơng cho người dùng sử dụng thuật toán mật mã phù hợp với yêu cầu riêng quan, tổ chức quốc gia Nhận xét 1.4 Các cơng bố giải toán: Truy vấn liệu mã, xác thực liệu mã, bảo vệ tính riêng tư liệu Tuy nhiên, với toán đảm bảo tính bí mật CSDL, nghiên cứu đề xuất giải pháp để thực thi truy vấn liệu mã mà chưa quan tâm đến thời gian xử lý truy vấn Đây vấn đề quan trọng mơ hình CSDL quan hệ xử lý liệu mã tốn nhiều thời gian so với truy vấn liệu rõ Đối với toán xác thực liệu mã, nghiên cứu sử dụng ADS khó tính tốn lại giá trị xác thực truy vấn nhiều bảng ADS không phù hợp với liệu động phải xây dựng lại cấu trúc xác thực liệu thay đổi Mặc khác, trình xác thực liệu mã độc lập với q trình giải mã liệu, đó, giải pháp đề xuất phải tốn thời gian giải mã liệu sau xác thực truy vấn Bên cạnh đó, tốn thay khố giới thiệu cơng trình [1], nhiên đến nay, tốn chưa giải 1.3 Các toán giải luận án Theo khảo sát phân tích trên, nghiên cứu đề xuất chưa giải hết toán mà luận án quan tâm Những toán luận án nghiên cứu, giải cụ thể sau: Giảm thời gian truy vấn liệu mã: Đề xuất phương pháp xử lý song song liệu mã để giảm thời gian truy vấn Phương pháp sử dụng pha xử lý khác như: Tính tốn, giải mã, xác thực liệu giúp tăng hiệu hệ thống Xác thực kết truy vấn: Đề xuất hai thuật toán xác thực lơ dựa 22 hai tốn khó sử dụng thuật tốn xác thực lơ vào xác thực liệu mã truy vấn Phương pháp đề xuất thích hợp với CSDL động khơng phải xây dựng lại cấu trúc xác thực, đồng thời kết hợp xác thực giải mã, trả kết rõ cho người dùng Quản lý quyền truy cập thay đổi khoá mã: Đề xuất dùng KMT ma trận quản lý truy cập để bảo vệ tính riêng tư liệu Đề xuất thuật toán mã hoá tệp tin người dùng để bảo vệ nội dung KMT, tránh việc đánh cắp khoá mã Đề xuất thuật tốn thay đổi khố mã CSDL th ngồi dựa mơ hình MapReduce 1.4 Một số kiến thức liên quan Trong mục này, luận án trình bày kiến thức liên quan đến đề xuất chương 2, bao gồm: Xử lý song song để giảm thời gian truy vấn liệu mã, chữ ký số xác thực lô để xác thực liệu mã truy vấn, hệ thống tệp tin không gian người dùng, kho lưu trữ khoá-giá trị sử dụng để mã hố tệp tin quản lý khố, mơ hình lập trình MapReduce dùng để thay đổi khố mã, tập liệu mẫu TPC-H để thực nghiệm phân tích, đánh giá kết 1.4.1 Xử lý song song Xử lý song song trình xử lý gồm nhiều tiến trình kích hoạt đồng thời tham gia giải vấn đề thực hệ thống có nhiều xử lý đồng thời Xử lý song song cho phép chia nhỏ vấn đề lớn thành vấn đề nhỏ để thực lúc Mục đích xử lý song song tận dụng triệt để tài nguyên hệ thống máy tính đa nhân, đa luồng Các máy tính song song thực tính tốn nhanh sử dụng nhiều xử lý đồng thời Việc ứng dụng xử lý song song vào toán giải vấn đề lớn hơn, phức tạp thực tế 23 Bắt Bắt đầu đầu A A B B C C Kếtthúc thúc Kết C C Kếtthúc thúc Kết (a) Xử lý B11 B Bắt Bắt đầu đầu A A B22 B Bnn B (b) Xử lý song song Hình 1.2: Quá trình xử lý song song Các máy tính xử lý song song phân loại tùy theo mức độ hỗ trợ song song phần cứng: ❼ Máy tính đơn với xử lý đa nhân, đa luồng ❼ Cụm máy tính, tính tốn lưới (Grid computing) sử dụng nhiều máy tính để xử lý cơng việc ❼ Những kiến trúc máy tính song song chuyên dụng xử lý cho công việc đặc trưng 1.4.2 Chữ ký số Chữ ký số dùng để xác thực nguồn gốc tính tồn vẹn thơng tin Các thuật toán chữ ký số thường dựa hai hệ mật phổ biến RSA Elgamal Hệ mật RSA dựa độ khó tốn phân tích thừa số nguyên tố Elgamal dựa độ khó tốn logarit rời rạc Có số chữ ký số dựa hệ mật Elgamal xem chuẩn như: DSA (Digital Signature Algorithm) giải thuật chữ ký số chuẩn chữ ký số (Digital Signature Standard – DSS) phủ Mỹ đưa FIPS-186 [28] GOST chuẩn chữ ký số Liên bang Nga [31] KCDSA chuẩn chữ ký số Hàn Quốc [51] 24 1.4.2.1 Lược đồ chữ ký số RSA R.L.Rivest, A.Shamir L.Adleman đề xuất lược đồ chữ ký số lấy tên ba người RSA [63] Các tham số lược đồ tạo cách chọn ngẫu nhiên số nguyên tố lớn p, q , p = q tính n = pq Thuật tốn tạo khóa, ký xác thực mơ tả sau: ❼ Tạo khố: Khố bí mật d, khố cơng khai (e, n) Tính φ(n) = (p − 1)(q − 1) Chọn số ngẫu nhiên e cho gcd(e, φ(n)) = Tính d = e−1 mod φ(n) ❼ Ký: Tạo chữ ký σ cho liệu m ∈ {0, 1}∗ Tính σ = md mod n ❼ Xác thực: Kiểm tra chữ ký σ đúng/sai Tính m = σ e mod n Nếu m = m, trả (đúng), ngược lại trả (sai) 1.4.2.2 Lược đồ chữ ký số Rabin Michael.O.Rabin đề xuất lược đồ chữ ký số dựa độ khó tốn phân tích số [62] Thuật tốn tạo khóa, tạo chữ ký xác thực mơ tả sau: ❼ Tạo khố: Khố bí mật (p, q), khố cơng khai (n, b) Cho n = pq tích hai số nguyên tố lớn p, q , chọn ≤ b ≤ n ❼ Ký: Tạo chữ ký σ cho liệu m ∈ {0, 1}∗ Chọn ngẫu nhiên phần đệm U tính c = H(mU ) mod n Kiểm tra c thỏa mãn x(x + b) = c mod n Nếu khơng tìm x quay lại bước Xuất σ ← (U, x) 25 ❼ Xác thực: Kiểm tra chữ ký σ đúng/sai Tính c = H(mU ) mod n Nếu x(x + b) = c mod n, trả (đúng), ngược lại trả (sai) 1.4.2.3 Lược đồ chữ ký số Schnorr Schnorr đề xuất lược đồ chữ ký số [64] ứng dụng nhiều lĩnh vực xác thực Cho tham số p, q, g toán logarit rời rạc (DLP), p số nguyên tố lớn có kích thước khoảng từ 512 đến 1024 bit, q ước số nguyên tố p − có kích thước 160 bit, g phần tử sinh cấp q thuộc GF (p) Thuật toán tạo khóa, ký xác thực mơ tả sau: ❼ Tạo khố: Khố bí mật x, khố cơng khai y Chọn số ngẫu nhiên x ∈ {1, , q − 1} tính y = g x mod p ❼ Ký: Tạo chữ ký σ cho liệu m ∈ {0, 1}∗ Chọn số ngẫu nhiên t ∈ Zq tính r = g t mod p Tính h = H(m||r) Tính s = t − hx mod q Xuất σ ← (h, s) ❼ Xác thực: Kiểm tra chữ ký σ đúng/sai Tính r = g s y h ( mod p) Tính h = H(m||r ) Nếu h = h, trả (đúng), ngược lại trả (sai) 1.4.2.4 Lược đồ chữ ký số dựa hai tốn khó Các lược đồ chữ ký số có độ an tồn dựa tính khó hai tốn khó (DLP IFP) quan tâm từ năm 1994 L Harn đề xuất [36] liên tục sau cơng bố vào năm 2008 ba tác giả E S Ismail, N M F 26 Tahat R R Amad [43], E S Dermova năm 2009 [23], S Vishnoi Shrivastava năm 2012 [78], Binh V Do, Minh H Nguyên, Nikolay A Moldovyal, năm 2013 [24], Với phân tích thực chất độ an toàn lược đồ chữ ký số dựa hai tốn khó phân tích N Y Lee T Hwang lược đồ Harn công bố năm 1996 [49], phân tích Shin-Yan Chiou Yi-Xuan He giao thức Vishnoi Shrivastava công bố năm 2013 [13] Tóm lại cịn hai lược đồ đưa [24] nghĩa với việc có độ an tồn dựa tính khó hai tốn khó lược đồ Rabin-Schnorr RSA-Schnorr Thuật tốn tạo khóa, tạo chữ ký xác thực [24] mơ tả sau: ❼ Tạo khố: Khố bí mật (x, q , q), khố cơng khai (p, g, y) Chọn số nguyên tố lớn độc lập q , q có dạng 4r + tính n = q q Chọn ngẫn nhiên số x bí mật với x ∈ Zp∗ Tính y = g x mod p ❼ Ký: Tạo chữ ký σ cho liệu m ∈ {0, 1}∗ Tính R = g k mod p, với k số bí mật ngẫu nhiên, < k ≤ n − Tính E = H(m||R) Tính giá trị S cho S = k − xE mod n Xuất σ ← (E, S) ❼ Xác thực: Kiểm tra chữ ký σ đúng/sai Tính R∗ = g S y E mod p Tính E ∗ = H(m||R∗ ) Nếu E ∗ = E , trả (đúng), ngược lại trả (sai) 27 1.4.3 Xác thực lơ Xác thực lơ (batch verification) hình thức xác thực nhiều chữ ký số lúc Mục đích xác thực lơ để giảm chi phí tính tốn so với xác thực chữ ký số thích hợp cho hệ thống yêu cầu xác thực số lượng lớn chữ ký lúc [10, 33] Xác thực lô ứng dụng vào lĩnh vực xác thực như: Hệ thống giám sát tự động [85], kiểm soát truyền tải mạng không dây [81, 29], hệ thống vạn vật kết nối [47, 52] Định nghĩa 1.2 Cho k liệu mi tương ứng với k chữ ký số σi ký khố bí mật người ký, i = 1, k Với y khố cơng khai người ký, hàm V gọi hàm xác thực lô Vy (σ1 , σ2 , , σk ) ∈ {0, 1} Nếu chữ ký σi liệu mi người ký kết hàm Vy = Ngược lại, chữ ký σi khơng hợp lệ hàm Vy = Tuỳ thuộc vào chữ ký số ký lược đồ khác có thuật tốn xác thực lơ khác Có hai loại xác thực lô: Xác thực lô tương tác xác thực lô xác suất Xác thực lô tương tác dạng mà người ký tạo chữ ký σ thông qua tương tác với người xác thực, sau người xác thực xác nhận tất chữ ký σ lúc Xác thực lô xác suất liệu m ký, số nguyên t ngẫu nhiên chọn riêng sau tính lại giá trị r (ví dụ DSA, r = (g t mod p) mod q ) Thay ký liệu m trực tiếp, lược đồ chữ ký số phải ký dựa kết băm chiều m Naccache cộng [55] đề xuất xác thực lô tương tác gồm hai phần: Phần tạo chữ ký phần xác thực Phần tạo chữ ký người ký người xác thực có tương tác với Phần xác thực người xác thực kiểm tra nhiều chữ ký lúc Cho n liệu mi , phần tạo chữ ký thực sau: ❼ Với i = 1, , n, người ký chọn ngẫu nhiên ki ∈ Zq , tính λi = g ki mod p 28 gửi λi cho người xác thực; ❼ Người xác thực gửi lại liệu ngẫu nhiên bi có chiều dài e bit; ❼ Người ký tính si = ki−1 (H(mi ||bi ) + λi x) mod q gửi si cho người xác thực Phần xác thực: Người xác thực kiểm tra n i=1 λi = g n −1 i=1 si H(mi ||bi ) y n −1 i=1 si λi mod p thay {λi , si , bi , mi }i=1, ,n {ri = λi mod q, si , mi ||bi }i=1, ,n Bellare, Garay Rabin [8] đưa phương pháp xác thực lô theo luỹ thừa modulo Xác thực lô cho lũy thừa modulo Bellare cộng trình bày sau: Cho G nhóm có cấp q, g phần tử sinh G Hàm luỹ thừa modulo x ← g x , với x ∈ Zq Định nghĩa biểu thức EXPG,g (x, y) = g x = y, x ∈ Zq , y ∈ G Nếu muốn xác thực nhiều giá trị (x1 , y1 ), , (xn , yn ) kiểm tra biểu thức EXPG,g (xi , yi ) = với i = 1, , n cách ngây thơ tính g xi so sánh với yi Tuy nhiên, cách tốn n lần tính luỹ thừa Bellare đề xuất ba phương pháp tính tốn nhanh xác thực lô cho biểu thức EXPG,g kiểm tra tập hợp ngẫu nhiên (random subset test), kiểm tra số mũ nhỏ (small exponents test) kiểm tra khối (bucket test) Harn giới thiệu lược đồ xác thực lô dựa RSA [37] Cho p q hai số nguyên tố, n = pq Giá trị e d khóa cơng khai khóa bí mật người ký cho ed = mod φ(n) Giả sử có k chữ ký (σ1 , σ2 , , σk ) tương ứng với k liệu mi , chữ ký σi = H(mi )d mod n (1 ≤ i ≤ k ) Để xác thực k chữ ký lúc, Harn kiểm tra, thoả mãn biểu thức: ( k i=1 σi )e = k i=1 H(mi ) mod n k chữ ký σi hợp lệ Shao đề xuất thuật tốn xác thực lơ dựa lược đồ chữ ký số Schnorr [65] Giả sử có k liệu ký thuật tốn Schnorr, nghĩa có k chữ ký σi (ri , si ), i = 1, 2, , k , i = 1, , k ký người ký với khoá 29 bí mật x Để xác thực k chữ ký lúc, Shao chọn ngẫu nhiên k số nguyên ui ∈ (1, 232 ), i = 1, 2, , k kiểm tra thoả mãn biểu thức: k riui = (g k i=1 ui si y k i=1 ui H(mi ||ri ) ) mod p i=1 k chữ ký hợp lệ Hwang cộng đề xuất lược đồ xác thực lô dựa lược đồ chữ ký Shim’s IBS [69] gọi BV-Shim [41] Các tham số dùng BV-Shim: Hàm ánh xạ e : G1 × G2 → GT , G1 , G2 , GT nhóm có cấp q Cho P1 , P2 tạo ngẫu nhiên tương ứng G1 , G2 Với tham số bí mật λ, thuật toán chọn ngẫu nhiên s ∈ Zq làm khố tính Ppub = sP2 g = e(P1 , P2 ) Các hàm băm: H : {0, 1}k → Zq , H1 : {0, 1}∗ → Zq , H : {0, 1}∗ → {0, 1}l Như vậy, tham số BV-Shim pp = (q, G1 , G2 , GT , e, P1 , P 2, Ppub , g, H, H1 , H2) Với ID ∈ {0, 1}k khố s, thuật tốn tính ZID = H(ID) ∈ Zq khố bí mật SID = P S+ZID ∈ G1 Tạo chữ ký: Chọn ngẫu nhiên r ∈ Z∗q tính X = rP1 ∈ G1 , h = H1 (m, X), Y = (r + h)SID ∈ G1 Chữ ký σ = (X, Y ) Kiểm tra chữ ký: Tính z = H(ID) ∈ Zq , QID = Ppub + zP2 ∈ G2 , h = H1 (m, X) kiểm tra e(Y, QID ) = e(X, P2 )g h chữ ký hợp lệ, ngược lại chữ ký không hợp lệ Xác thực lô: Kiểm tra k chữ ký σi = (Xi , Yi ) tương ứng với IDi , mi , ≤ i ≤ k BV-Shim tính zi = H(IDi ) ∈ Zq , hi = H1 (mi , Xi ) Chọn ngẫu nhiên ξ ∈ {0, 1}l tính δi = H2 (ξ, hi ) Sau kiểm tra biểu thức e( k j=1 δj Yj , Ppub )e( k j=1 (δj Zj Yj − δj Xj ), P2 ) =g k j=1 δj hj , thoả mãn k chữ ký hợp lệ Ngược lại, chữ ký σi không hợp lệ Kittur cộng trình bày thuật tốn xác thực lô dựa đường cong Elliptic [48] Thuật tốn Kittur mơ tả sau: Cho đường cong Elliptic E(Fp ), chọn P ∈ E(Fp ) có bậc n Chọn ngẫu nhiên số nguyên d làm khoá bí mật, ≤ d ≤ n − Tính Q = dP khố cơng khai Tạo chữ ký: Chọn ngẫu nhiên số nguyên t, ≤ t ≤ n − Tính R = tP , 30 r = x(R) mod n, với x(R) toạ độ x R Tính s = k −1 (h(m) + dr) mod n Chữ ký σ = (R, s) Xác thực lô: Kiểm tra k chữ ký σi = (Ri , si ) tương ứng với liệu mi , ≤ i ≤ k Chọn ngẫu nhiên k số nguyên tố b1 , b2 , , bk < n, ∈ Fp Lần lượt tính ri = x(Ri ), wi = s−1 mod n, ui = h(mi )wi mod n, vi = ri wi mod i n Kiểm tra biểu thức k i=1 Ri bi = ( k i=1 (bi ui ) mod n)P + ( k i=1 (bi vi ) mod n)Q k chữ ký hợp lệ Ngược lại, chữ ký khơng hợp lệ Nhận xét 1.5 Các thuật tốn xác thực lơ đề xuất thường dựa độ khó tốn phân tích số logarit rời rạc Ưu điểm thuật toán thời gian xác thực chữ ký nhanh Để tăng tính an tồn cho chữ ký, nhà khoa học đưa ý tưởng kết hợp hai tốn khó vào lược đồ chữ ký số Tuy nhiên, nhược điểm làm tăng độ phức tạp tính tốn Trong trường hợp cụ thể, hệ thống cần xem xét nâng cao độ an toàn tốc độ xử lý để có lựa chọn thuật tốn xác thực cho phù hợp Có lược đồ chữ ký số dựa hai tốn khó [79, 42, 24, 14] theo khảo sát luận án chưa có lược đồ xác thực lơ dựa hai tốn khó Đề xuất lược đồ xác thực lô dựa hai tốn khó có an tồn từ việc khó giải hai tốn khó thời gian xác thực đồng thời nhiều liệu nhanh xác thực thơng thường tính chất xác thực lô 1.4.4 Hệ thống tệp tin không gian người dùng Hệ thống tệp tin không gian người dùng (Filesystem in Userspace FUSE) [73] thành phần nhân hệ điều hành Linux FUSE cung cấp thư viện giao diện lập trình (Application programming interface API) cho phép người dùng tạo truy cập hệ thống tệp người dùng FUSE có sẵn mơi trường Android, Linux macOS Khi hệ thống tệp thực thi, chương trình xử lý tạo liên kết đến thư viện FUSE (được gọi libfuse) Chương trình xác tation details FUSE is available for several OSes: we FUSE daemon F selected Linux due to its wide-spread use We analyzed pages are cached the code of and ran experiments on the latest stable verto be forwarded to sion of the Linux kernel available at the beginning of the 2.2 Impleme project—v4.1.13 We also31used FUSE library commit #386b1b; on top of FUSE v2.9.4, this commit contains We now discuss several which we didđược not want định trạng thái củaimportant hệ thống patches tệp phản hồi yêu exclude cầu đọc/ghi/thống tation details: th from our evaluation We manually examined all new APIkết levels, in-ke kê Trình xử lý đăng ký với nhân hệ thống tệp tin gắn commits up to the time of this writing and confirmed threading, and wri Nếu người dùng thực yêu cầu đọc/ghi/thống cho hệ thống tệp that no newthi major features or improvementskêwere added Group (#) R to FUSE since the release ofyêu the selected versions gắn kết, nhân chuyển tiếp cầu IO đến trình xử lý gửi Special (3) Metadata (14) Kernel User phản hồi xử lý trở lại cho người dùng 2.1trìnhHigh-Level Architecture Application VFS Kernel−based file system N FUSE file−system daemon /dev/fuse FUSE driver Q u e u e L C FUSE library cache I Other kernel subsystems Figure FUSE Hình 1: 1.3: Kiếnhigh-level trúc architecture FUSE [77] F Data (2) Attributes (2) Extended Attributes (4) Symlinks (2) Directory (7) R G S L S M L F FUSE consists of a kernel part and a user-level daeLocking (3) G The kiến kernel part is FUSE implemented as phần: a Linux kernel Hình 1.3 mon cho thấy trúc gồm hai Phần nhân trình Misc (6) B module that, when loaded, registers a fuse file-system P tiện ích người dùng Phần nhân thuộc nhân Linux, đăng ký trình driver with Linux’s VFS This Fuse driver acts as a proxy điều khiển for hệ various thống tệp tin FUSE hệ thống tệp by tindifferảo (Virtual Tablefile 1: FUSE requ specific file systems implemented thesis) Requests we ent user-level daemons systems - VFS) Linux Trình điều khiển FUSE coi User-kernel pro In addition to registering a new file system, FUSE’s thành phần trung gian chuyển hướng u cầu đến trình tiện ích người dùng communicates to kernel module also registers a /dev/fuse block deKhi người hệ serves thống as tệpan tininterface không gian người bằngrequest str FUSE vice.dùng Thistạo device between user- dùng on the space FUSE daemons andtinthe kernel general, dae- dịchdepending ứng dụng (Application), tệp người In dùng biên thành 43 FUSE request mon reads FUSE requests from /dev/fuse, processes tệp tinthem, nhị phân Nếu người dùng thực đọc/ghi tệp đó, VFS định seen, most reques and then writes replies back to /dev/fuse VFS operations: w Figure shows FUSE’s architecture When tuyến hoạt động đến 1trình điều khiểnhigh-level nhân FUSE Trình điều khiển cấp phát (e.g., READ , CRE a user application performs some operation on a cấu trúc yêu cầu FUSE đặt vào hàng đợi FUSE Tại thời điểm này, tiến less intuitive requ mounted FUSE file system, the VFS routes the operation trình chỉtođịnh hoạt kernel động làdriver thơng thường đặt atrạng thái chờ.The Sau INIT reque FUSE’s The driver allocates FUSE request structure puts lấy it inyêu a FUSE At this nhân filebằng system is mo đó, trình tiện ích người dùngand FUSE cầu từqueue hàng đợi point, the process that submitted the operation is usukernel negotiate ( cách đọc từ /dev/fuse xử lý u cầu Trình tiện ích đọc ghi từ ally put in a wait state FUSE’s user-level daemon then erate on (7.23 at t khối Khi thực xong việc xửthe lý kernel u cầu, trình ích from FUSE ghimutually phản supporte pickshiện the request from queue by tiện reading /dev/fuse andđiều processes request thedấu yêu FLOCK support), a hồi trở lại /dev/fuse Trình khiển the nhân FUSE Processing sau đánh cầu request might require re-entering the kernel again: for FUSE read-ahead hoàn example, thành in kích hoạt trình người ban đầu.theMột số case of atiến stackable FUSEdùng file system, thehoạt DESTROY req daemon submits operations to the underlying file system file system’s unm (e.g., Ext4); or in case of a block-based FUSE file sysSTROY , the daemo 32 động hệ thống tệp gọi ứng dụng hồn thành mà khơng liên lạc với trình tiện ích FUSE người dùng Ví dụ, đọc từ tệp có trang lưu đệm nhân, không cần phải chuyển tiếp đến trình điều khiển FUSE [77] 1.4.4.1 Giao diện lập trình FUSE API FUSE cung cấp hai API: Một API đồng hóa mức cao API khơng đồng hóa mức thấp Với hai API, yêu cầu từ kernel chuyển tiếp đến chương trình cách sử dụng gọi ngược (callback) Khi sử dụng API mức cao, callback hoạt động với tên tệp đường dẫn thay nút việc xử lý yêu cầu kết thúc hàm callback trả giá trị Khi sử dụng API mức thấp, callback phải hoạt động với nút phản hồi phải gửi cách sử dụng tập hợp hàm API riêng biệt API mức cao định nghĩa chủ yếu fuse.h API mức thấp chủ yếu lưu fuse_lowlevel.h Callback tập hợp hàm để thực thao tác tệp cấu trúc fuse_operations chứa trỏ tới hàm callback: struct fuse_operations{ int(*getattr)(const char *,struct stat *); int(*mknod)(const char *, mode_t, dev_t); int(*mkdir)(const char *, mode_t); int(*rmdir)(const char *); int(*rename)(const char *, const char *); int(*chmod)(const char *, mode_t); int(*open)(const char *, struct fuse_file_info *); int(*read)(const char *, char *, size_t, off_t, struct fuse_file_info *); int (*write)(const char *, const char *, size_t, off_t, struct fuse_file_info *); }; 33 Các thành phần cấu trúc trỏ hàm Mỗi hàm cấu trúc FUSE gọi kiện cụ thể xảy hệ thống tệp Chẳng hạn, người dùng ghi vào tệp tin, hàm trỏ thành phần "write" cấu trúc gọi Để thực hệ thống tệp mình, cần sử dụng cấu trúc định nghĩa hàm sau hồn thành cấu trúc với trỏ hàm định nghĩa Hầu hết hàm tùy chọn, ta không cần phải thực tất 1.4.5 Lưu trữ khóa-giá trị Lưu trữ khóa-giá trị loại CSDL NoSQL (Not Only SQL) Nó có hình thức đơn giản bảng với hai cột tương ứng với hai trường khóa giá trị Kiểu giá trị chuỗi/nhị phân cấu trúc Kiểu khóa số nguyên chuỗi/nhị phân Có nhiều triển khai thiết kế lưu trữ khóa-giá trị bao gồm dựa nhớ đĩa Lưu trữ khóa-giá trị dựa nhớ thường sử dụng để lưu trữ liệu đệm, lưu trữ khóa-giá trị đĩa sử dụng để lưu trữ liệu vĩnh viễn hệ thống tệp Một thư viện lưu trữ khóa-giá trị viết tác giả ThanhNT gọi OpenStars [59] OpenStars hỗ trợ nhiều CSDL khóa-giá trị LevelDB [80], RockDB [86], Kyoto Cabinet, ZDB [72] 1.4.5.1 Cấu trúc OpenStars CSDL OpenStars sử dụng số lớp trừu tượng để cung cấp truy cập lớp cụ thể leveldb, rocksdb, ZDB [72] Lớp AbstractKVStorage lớp sở, định nghĩa hàm get(), put(), multiget(), multiput(), remove() để ghi lấy liệu Các lớp kế thừa từ lớp xử lý hoạt động liệu lưu trữ khóa-giá trị Lớp AbstractCursor trỏ sở, trỏ trỏ đến ghi CSDL Lớp KVStorageFactory sử dụng để tạo AbstractKVStorage dựa chuỗi tùy chọn cụ thể Hình 1.4 mơ tả lớp CSDL khóa-giá trị Ta sử dụng KVStorageFactory để tạo thể AbstractKVStorage, truyền tham số đầu vào 34 Hình 1.4: Mơ hình lớp OpenStars [59] cho hàm tạo KVStorageFactory chuỗi cụ thể Các nhà phát triển thực AbstractKVStorage để xử lý với CSDL khóa-giá trị Lưu trữ khóa-giá trị phục vụ với dịch vụ phụ trợ từ xa Chúng ta đọc ghi liệu từ xa cách sử dụng RemoteKVStorage 1.4.5.2 Triển khai API OpenStars Chúng ta sử dụng kiểu CSDL khóa-giá trị cách truyền tham số qua chuỗi configString để khởi tạo CSDL Cụ thể: AbstractKVStorage* database = factory.createStorage(configString, name, rwmode); Sau khởi tạo CSDL, đọc ghi liệu cách gọi hàm put get sau: string sVal ; string sKey; //Đọc liệu từ CSDL database->get (sVal, sKey); //Ghi liệu vào CSDL database->put(sVal,sKey); 1.4.6 Mơ hình lập trình MapReduce MapReduce [22, 30, 68] mơ hình lập trình cho phép xử lý khối liệu lớn cách chia công việc thành nhiệm vụ độc lập, thực tác vụ song song thông qua cụm máy tính (cluster) tự động thu thập kết nhiều cụm để trả kết Lợi lớn 35 chương trình thực MapReduce chạy nút (node) trung tâm xử lý (một, hàng trăm hay hàng nghìn nút) mà khơng quan tâm đến mã lệnh chương trình Lập trình MapReduce việc tạo hai hàm map() reduce(), hàm thực song song nút tính tốn ❼ Giai đoạn đầu MapReduce giai đoạn map: MapReduce tự động phân chia liệu đầu vào cho nút tính tốn trung tâm liệu Mỗi nút tính tốn chạy hàm map() với mục đích chia nhỏ liệu Trong giai đoạn map, hàm map() xử lý đầu vào cặp khóa-giá trị (key-value), tạo cặp khóa-giá trị trung gian chuyển thành đầu vào cho giai đoạn Reduce ❼ Giai đoạn thứ hai giai đoạn Reduce: Giai đoạn tổng hợp xử lý liệu trung gian từ giai đoạn map Reduce thực nút tính tốn, nút nhận khoá, tuỳ thuộc vào giá trị giai đoạn map mà chia sẻ khoá cho nút xử lý, sau tổng hợp lại thành giá trị cho khố Q trình thực tiến trình MapReduce mô tả sau: ❼ Giai đoạn Map: → ❼ Giai đoạn Reduce: → Trong , ≤ i ≤ cặp khoá-giá trị người dùng xác định trước thực MapReduce Một tập liệu truyền đến hàm map() dạng cặp Hàm map() xử lý cặp xuất kết trung gian dạng cặp Kết trung gian tính tốn lại hàm reduce(), đưa kết cuối dạng Mơ hình lập trình MapReduce dùng để xử lý liệu lớn tảng khác nhau, trong thành phần Apache Hadoop, ngồi tương thích tảng Apache Spark 36 Trộn Phân mảnh Bộ nhớ đệm Bắt đầu Trộn đĩa Trộn Map Reduce Kết thúc Các hàm map khác Hình 1.5: Tiến trình xử lý MapReduce [87] ❼ Apache Hadoop dự án phần mềm mã nguồn mở cho phép xử lý phân tán tập liệu lớn cụm máy tính mơ hình lập trình đơn giản Hadoop cung cấp dịch vụ có khả tính tốn lớn cụm máy tính với máy tính có khả chịu lỗi cao Nó thiết kế để mở rộng quy mô từ vài máy đến hàng ngàn máy chủ, máy cung cấp khả tính tốn lưu trữ cục Thay dựa vào phần cứng để thực cơng việc xử lý thư viện thiết kế để có khả tính tốn, phát xử lý lỗi lớp ứng dụng Hadoop thực xử lý liệu từ hệ thống tệp tin HDFS (Hadoop Distributed File System) HDFS gồm hai thành phần "namenode" "datanodes" với mục đích quản lý cơng việc đọc/ghi liệu ❼ Apache Spark hệ thống xử lý liệu lớn tính tốn nhanh Nó cung cấp API cấp cao ngôn ngữ lập trình cơng cụ tối ưu hỗ trợ mơ hình thực thi chung Nó hỗ trợ công cụ cấp cao bao gồm Spark SQL cho SQL xử lý liệu có cấu trúc, MLlib để học máy, GraphX để xử lý đồ thị Spark Streaming Sự khác biệt Hadoop Spark cách tiếp cận xử lý lưu trữ: Spark thực xử lý liệu nhớ RAM, Hadoop phải đọc ghi vào ổ cứng Do đó, tốc độ xử lý Spark nhanh tới 100 lần so với Hadoop Tuy nhiên, Hadoop thực xử lý tính toán 37 với tập liệu lớn nhiều so với Spark Trong trường hợp liệu kết trả lớn dung lượng RAM, Hadoop vượt trội Spark Mặt khác, cần nhiều nhớ RAM để xử lý, nên Spark tốn nhiều chi phí đầu tư so với Hadoop Bên cạnh đó, Hadoop xử lý liệu lớn phân bố nút tạo thành cụm máy chủ nên người dùng mua bảo trì thiết bị chuyên dụng đắt tiền Hadoop lập mục theo dõi trạng thái liệu, giúp xử lý phân tích hiệu Spark công cụ xử lý liệu mà cho phép thực hoạt động khác liệu phân tán, không cung cấp chế lưu trữ phân tán chúng Tuỳ thuộc vào mục đích sử dụng cụ thể mà người dùng có lựa chọn đắn Spark thích hợp với chương trình tính tốn xử lý liệu theo thời gian thực, Hadoop phù hợp với liệu lớn mặt dung lượng Hadoop xử lý tuyến tính liệu khổng lồ, Spark mang lại hiệu suất nhanh, xử lý lặp, xử lý đồ thị, học máy Đối với trường hợp thực đổi khố cho tồn CSDL chương trình thực thi bảng CSDL Do dung lượng bảng CSDL lớn không cần xử lý theo thời gian thực nên DO cần dùng tảng Hadoop để giảm chi phí đầu tư thuê hệ thống máy chủ 1.4.7 Bộ liệu mẫu TPC-H TPC-H bao gồm CSDL mẫu thay đổi số lượng liệu câu truy vấn mẫu Các truy vấn mẫu TPC-H phù hợp với nhiều ngữ cảnh khác TPC-H hỗ trợ kiểm tra lượng liệu lớn, thực truy vấn với mức độ phức tạp cao phản ánh nhiều khía cạnh khả hệ thống để xử lý truy vấn Các khía cạnh bao gồm kích thước CSDL chọn dựa vào truy vấn thực thi, sức mạnh xử lý truy vấn truy vấn gửi luồng thông lượng truy vấn truy vấn gửi nhiều người dùng đồng thời [75] TPC-H sử dụng liệu chuẩn để đánh giá nghiên cứu đề xuất trước 38 CSDL nói chung ODBS nói riêng CSDL TPC-H có bảng cột bảng tương ứng sau: nation(n_nationkey, n_name, n_regionkey, n_comment); region(r_regionkey, r_name, r_comment); part(p_partkey, p_name, p_mfgr, p_brand, p_type, p_size, p_container, p_retailprice, p_comment); supplier(s_suppkey, s_name, s_address, s_nationkey, s_phone, s_acctbal, s_comment); partsupp(ps_partkey, ps_suppkey, ps_availqty, ps_supplycost, ps_comment); customer(c_custkey, c_name, c_address, c_nationkey, c_phone, c_acctbal, c_mktsegment, c_comment); orders(o_orderkey, o_custkey, o_orderstatus, o_totalprice, o_orderdate, o_orderpriority, o_clerk,o_shippriority, o_comment); lineitem(l_orderkey, l_partkey, l_suppkey, l_linenumber, l_quantity, l_extendedprice, l_discount, l_tax, l_returnflag, l_linestatus, l_shipdate, l_commitdate, l_receiptdate, l_shipinstruct, l_shipmode, l_comment); Muốn tạo liệu mẫu TPC-H ta sử dụng lệnh DBGEN Theo chế độ mặc định, DBGEN tạo tệp tin chứa liệu tương ứng với bảng định nghĩa lược đồ CSDL TPC-H Các tệp tin tạo thư mục có tên .tbl Ví dụ: Tệp region.tbl chứa liệu cho bảng region Một số cú pháp mẫu sử dụng DBGEN để tạo liệu: ❼ Tạo bảng liệu mẫu với tỉ lệ 1: dbgen -s Tỉ lệ thay đổi là: 1, 10, 100, 300, 1000, 3000, 10000, 30000, 100000 ❼ Chỉ tạo bảng lineitem, cho CSDL tỷ lệ 10, ghi đè lên tệp tin có: dbgen -s 10 -f -T L 39 Bảng 1.1: Số lượng ghi bảng TPC-H với dbgen -s Tên bảng Số ghi nation 25 region part 200000 supplier 10000 partsupp 800000 customer 150000 orders 1500000 lineitem 6001215 1.5 Kết luận Chương trình bày kiến thức chung ODBS, toán đảm bảo an toàn cho ODBS số kiến thức liên quan đến đề xuất Chương khảo sát nghiên cứu nước an toàn ODBS đồng thời đưa định hướng, toán nghiên cứu giải Bối cảnh nghiên cứu luận án dựa mơ hình ODBS với liệu mã hoá trước lưu trữ lên máy chủ DSP Khi đó, vấn đề đặt cho luận án nghiên cứu giảm thời gian truy vấn liệu mã, đảm bảo kết truy vấn trả xác, quản lý, kiểm sốt khố người dùng thay đổi khoá mã CSDL 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ý khố người dùng, mã hóa hệ thống tệp tin hệ điều hành phương pháp đổi khoá CSDL mã Cuối kết luận luận án đề nghị hướng phát triển nghiên cứu Chương GIẢM THỜI GIAN TRUY VẤN VÀ XÁC THỰC KHI TRUY VẤN CSDL MÃ TRÊN ODBS Nội dung chương đề xuất mơ hình, thuật tốn giảm thời gian thực truy vấn liệu mã ODBS, đề xuất công bố [CT1] Chương giới thiệu vấn đề xác thực liệu mã truy vấn ODBS, lược đồ chữ ký số xác thực lô Luận án đề xuất hai thuật tốn xác thực lơ dựa hai tốn khó phân tích số (Integer Factorization Problem - IFP) logarit rời rạc (Discrete Logarithm Problem - DLP) áp dụng thuật tốn xác thực lơ đề xuất Rabin-Schnorr vào xác thực liệu mã truy vấn mơi trường th ngồi Kết nghiên cứu xác thực liệu mã truy vấn cơng bố cơng trình [CT2][CT3][CT6] Cuối kết luận chương 2.1 Giới thiệu chung Mơ hình ODBS ln tiềm ẩn nhiều nguy an tồn, gây nguy hại đến liệu DO Để đảm bảo tính bí mật liệu mình, DO mã hóa liệu trước lưu trữ lên DSP (hình 2.1) Cùng với mã hóa, nghiên cứu truy vấn liệu mã nghiên cứu phát triển Tuy nhiên, áp dụng phương pháp 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õ Đặt biệt, số lượng người dùng nhiều, số ghi trả lớn phương pháp truy vấn mã khó thực Mặt khác, truy vấn CSDL từ ODBS, người dùng muốn kết trả xác Tuy nhiên, thực tế có nhiều nguyên nhân xảy làm thay đổi nội dung liệu ban đầu DO như: 40 41 Dữ liệu mã hoá Tru yv Người dùng Kế t ấn qu ả iệu ữl d ập nh iệu p ữl Cậ d y Lấ Internet Nhà cung cấp dịch vụ thuê CSDL Chủ sở hữu liệu Hình 2.1: Mơ hình ODBS với CSDL mã Phần mềm, phần cứng máy chủ DSP bị lỗi; Thao tác nhân viên quản trị hệ thống máy chủ DSP bị sai cố tình can thiệp bất hợp pháp vào liệu; Hệ thống DSP bị công; Dữ liệu bị thay đổi đường truyền Để xác định liệu đắn trả kết quả, DO phải kiểm tra (xác thực) liệu phải với liệu mà tạo Các nghiên cứu xác thực ODBS thường xây dựng cấu trúc liệu xác thực (Authenticated Data Structure – ADS) [90, 58, 44] Tuy nhiên, ADS tốn nhiều thời gian để tính tốn lại liệu bị thay đổi Chỉ cần ghi thêm, sửa xóa, ADS bắt buộc phải xây dựng lại cấu trúc xác thực Một số nghiên cứu hỗ trợ vài dạng truy vấn đặc biệt mà chưa hỗ trợ truy vấn nhiều bảng; Hoặc nghiên cứu đề xuất phương pháp xác thực độc lập với trình giải mã, đó, sau xác thực, DO tốn thêm thời gian để tiến hành giải mã, trả liệu rõ cho người dùng Trong phạm vi nghiên cứu chương này, luận án tập trung vào việc giảm thời gian truy vấn, xác thực liệu trả truy vấn liệu mã 42 hoá Khi người dùng truy vấn, DSP trả liệu mã, luận án dùng phương pháp xử lý song song để tính tốn, giải mã liệu, giảm thời gian cho trình truy vấn Đối với xác thực liệu mã, luận án sử dụng xác thực lô để kiểm tra kết trả về, liệu trả tiến hành giải mã trả kết rõ cho người dùng Phương pháp đề xuất hiệu CSDL động xây dựng lại cấu trúc xác thực Đồng thời, phương pháp luận án đề xuất tiến hành xác thực đồng thời với trình giải mã liệu nên khơng tốn thời gian giải mã liệu sau xác thực phương pháp xác thực trước 2.2 Giảm thời gian thực thi truy vấn liệu mã 2.2.1 Một số phương pháp truy vấn liệu mã Tùy thuộc vào mơ hình mã hóa CSDL mà có phương pháp truy vấn CSDL mã cho phù hợp Có nhiều mơ hình mã hóa CSDL, hai dạng thường nhà nghiên cứu quan tâm là: Mã hóa ghi thành giá trị mã mã hóa ô liệu Hacigumus cộng [32] đề xuất giải pháp mã hóa ghi thành giá trị mã thực truy vấn CSDL mã hoá Ý tưởng giải pháp dùng chương trình biến đổi truy vấn để chuyển đổi truy vấn người dùng thành truy vấn thích hợp để thực thi máy chủ DSP Trong mơ hình này, câu truy vấn chia thành hai phần: (1) Truy vấn phía máy chủ (Server Site) liệu mã hóa, truy vấn thực máy chủ DSP, (2) Truy vấn phía người dùng (Client Site), truy vấn thực máy người dùng kết truy vấn có sau loại bỏ ghi không thỏa mãn truy vấn Như vậy, người dùng truy vấn liệu, DSP trả liệu mã liên quan câu truy vấn Người dùng giải mã kết trả truy vấn liệu rõ Để cho phép máy chủ chọn liệu trả 43 ❇✎✛✠❯✜✴✠❄☛❉✧✩✌✏✓☞✠☞✕✱❍▲❖✷✣✬✳✛✌✚✕✱✳ ✹ ✧✩✥☞✽❷✜✩✳✍✖❅✎✛✠✭✜✴✠✭❏✮✠✭✘❂✖ ✩✌✚✥✒✔ ❂❍✍☛❉✜✩✖✷✎❪✎✍✠✭✜✴✠✾✽✠✗❍❪✔✛✥✭✜ ↕✘◗✜❂✧✴✠✭✌✚✫✒✳▲✜ ✹ ✥✭✧❂✣❃✠✭✧✴✎➙✠✭☛✍▼ ❉☛✍✜✩✖✷✎✑✜✴✠☞❏✍✵✏✖✢✘ ✹ ✧✩✥✒✽✐✜✩✳✍✖ ✷❖✪✎✍✖✢✕✢✧❂❍❉☛✍✜❑✜✩✳✛✖✦✜✴✠✭❏✛✵✚✖✗✘✗❖ ✜❴✜✩✳✛✌✚✘✼✠☞☛✛☛❉✧✩✥✸✠✭✕✱✳✾✽✾✌■✜✩✌■▼ ✩✓✪✌✚✕✗✖✢▼◆☛✍✧✩✥❯✓✪✌✏✎✍✖✢✧✦✽✾✥✪✎✍✖✗✵❶❖ ☞✘❳✜✩✥❥✥▲✕✢✕ ✺ ✧✥☞✔❦✕✗✵✚✌✚✖✗✔▲✜ ☞✧✻✠✵✏✠✭✧✩✫✒✖❀✔ ✺ ✽❀❏❱✖✢✧❄✥ ✹ ✺ ✔✛✌✚✥✒✔✍✘✗❖✦✽ ✺ ✕✴✳♠✥ ✹ ✜✩✳✍✖ ✩✓✒✖✢✧✷❖❱✠✭✔✮✎❜✜✩✳✍✖✻✠☞✔✛✘◗✣❩✖✢✧✩✘ ✩✳✛✖✰✕✢✵✏✌✚✖✗✔▲✜✷❈ ✭✧✩✕✴✳✛✌■✜✩✖✗✕✱✜ ✺ ✧✩✖❳✠✭✔✮✎❫✕✗✥☞✔✍▼ ✾☛❉✧✩✌✚✘❂✖✷✎❭✥ ✹ ✜✩✳✍✧✩✖✗✖ Hình 2.2:➸✬➺☎Mơ truy liệu mã đề❮ xuất [32] ➻❱➼⑤➽✭hình ➾❞➚✮➪✑ ➶❬➹❋vấn ➾❤➘✗➾✪trên ➽❯➴⑤➺➊➷✒dữ ➾▲➬❂➮✶ ➽❯➱❉➴❋ ➺➊✃⑤➾❉ ➽❐✍➽☞Hacigumus ➷✭➹✶➺☎❒✢➾✍➷☞❒✷➼❋➽❯➾❱ ✹➊✺ ✔✍▼ ❘♥ ✺ ✖✢✧❂❍❢✜✩✥❞✜✩✳✍✖❘✕✢✵✏✌✚✖✗✔▲✜✷❈ thoả ✪✌✏✎✍✖✢✧❬✣✬✳✛✥❘✘◗✜✩✥☞✧✩✖✗✘❳✜✩ ✳✍✖ mãn✠☞✔❣ truy tập hợp mục liên kết với bảng ✖✗✔✛✕✢✧❂vấn ❍❉☛❉✜✩✖✷thì ✎✧✩✖✢một ✵❧✠❯✜✩✌✚✥✒✔⑤ ➌ ❯✜✴✠☞❏✮✠✭✘❂✖❬✌✚✘✡✠ ✺ ✫✒✽✾✖✗✔▲✜✩✖✷✎ liệu mã Trong trường hợp bảng mã hố với ➭✑❰✙này, ➛✂Ï✷Ð❁Đ✸Ị❱máy Ĩ➊Ï ➯❇chủ ❰ ➯❇❰ lưu trữ ➯✰➵❰ ➜ ➲ ✷✠☞✵✚✵✍✜✩✳✍✖❃✌✚✔✮✎✍✖✱●✮➜✶✠✭✵✚✵✏✥✷✣✬✘ ❤✥▲✕✗✕ ✺ ✧✾✠❯✜❀✜✩✳✛✖✘❂✖✢✧✩một ✓✒✖✢✧ ✗➠ ➂ ➈✱➡ ❿ ✘◗✜✩✥✭✧✩✖✗✘✡✜✩✳✍✖❲✎✛✠✭✜✴✠ ❪➢➈ ❿◆❾✒❽✸❾☞❿◆❾❫✹ ✥☞✧✜❂✧✴✠✭✔✛✘◗▼ ✩✖✗☛✍✧✩✖✢✘❂✖✗✔▲✜✴✠✭✜✩✌✚✥✒✔❪✥☞✔❜✜✩ ✳✍✖ rõ ❲✘❂✖✢✧✩✓✸✖✢✧❴♥ ✺ ✖✱✧❂❍✰✧✩✖✗✘ ✺ ✵■✜✩✘✗❈ ✄ ➲ ✆ ➲✗➳✗➳✗➳✢➲ mục cho thuộc tính mục cần phải xác định trước ✣✬✳✛✖✱✧✩✖❙✜✩✳✍✖❣✠❯✜❂✜❂✧✩✌✏❏ ✺ ✜✩✖❜Ï✗Ð◗Đ✸Ị❱Ĩ☎Ï❘➛➊➥❥✖❙✣✬✌✚✵✚✵❃✖✢●❉☛✛✵✏✠☞✌✚✔❝✳✛✥✷✣❨Ï✷Ð❁Đ✸Ị❱Ĩ➊Ï❙✌✚✘ ❵✮✔✛rõ ✖✗✎❙hơn ✌✚✔❣❊❉✖✗phương ✕✢✜✩✌✚✥☞✔❫➤✪❈ ➣ pháp ❈ ➜❀✘◗✜✩✥✭✧✩của ✖✗✘❄✠☞Hacigumus, ✔❙✖✗✔✛✕✱✧❂❍✍☛❉✜✩✖✷✎✘◗luận ✜❂✧✩✌✏✔✍✫❬ ✜✩✳✛✠✭cho ✜❃✕✗✥✭một ✧❂▼ Để mô✎✍✖✱tả án CSDL ✧✩✖✗✘❂☛❱✥☞✔✮✎✍✘❄✜✩✥❣✠❳✜ ✺ ☛✛✵✚✖❬✌✚✔❪✧✩✖✗✵✏✠❯✜✩✌✏✥☞✔✉➭❬❈ ✆ ➏❴✠☞✕✴✳❥✠❯✜❂✜❂✧✩✌✚❏ ✺ ✜✩✖❲➯ ❰ ✕✗✥✭✧❂▼ DB, với lược đồ R(A , A , , A ) DB✜✩✳✛được ánhÔ xạ thành lược ✧✩✖✗✘❂☛❱✥☞✔✮✎✍✘✦✜✩✥❲✜✩✳✛✖✰✌✚✔✛✎✍✖✢1● ✹ ✥☞2✧❃✜✩✳✛✖✰✠✭✜❂n✜❂✧✩✌✚❏ ✺ ✜✩✖✑➯ ✠✭✜❃✣✬✌✚✵✚✵⑤❏❱✖ ✺ ✘❂✖✷✎ S Ô S ✠✭✜❄✜✩✳✛✖✻✘❂✖✢✧✩✓✒✖✢✧✷❈❄❡✛✥☞✧✡✖✢●✍✠☞✽✾☛✍✵✚✖✒❖✮✕✗✥☞✔✛✘❂✌✏✎✍✖✱✧✰✠ ✹ ✥✭✧✑♥ ✺ ✖✱✧❂S ❍❣☛❉✧✩S ✥▲✕✗✖✗✘❂✘❂✌✚✔✛✫❙ n CSDL mã hóa tương ứng Ở đây, ✧✩✖✗✵✏✠✭✜✩✌✚✥☞✔❀Ï✷Õ❀Ò❲❏❱✖✗✵✚✥✷✣✉✜✩✳✮✠❯✜✶✘◗✜✩✥✭✧✩✖✗✘✶✌✚✔ ✹ ✥☞✧✩✽✠✭✜✩✌✚✥☞✔❀✠✭❏❱✥ ✺ ✜❋✖✗✽✾☛✛✵✚✥✷❍▲✖✗✖✢✘✗❈ đồ R (etuple, A , A , , A ) ✩✖✷✎✙❖✪✣✦✖❇✎✍✖✗✓✒✖✗✵✚✥✒☛✜✩✖✗✕✱✳❉▼ ✔✛✖✗✔✍✕✢✧❂❍❉☛✍✜✩✖✷✎❳✧✩✖✗✵✏✠❯✜✩✌✏✥☞ là✔✛✘ thuộc tính chứa mã hoá mà giá trị thu cách sử dụng ✍✕✢✧❂❍❉☛✍✜✩✖✷✎❫✧✩✖✗✵✏✠✭✜✩✌✚✥☞✔✛✘❬✜✩✥ ✹ ✥☞✧✦☛❱✥✒✘◗✜❂▼◆☛✍✧✩✥▲✕✗✖✢✘❂✘❂một ✌✏✔✍✫ ❂❍ Ø Ö✴bộ Ù✸Ú✗Û✑ Ö Ü❁Ú✗Ý✚Ú✗rõ ịò vi ỉkỉị l khúaỉbớ ìỉ mt C th, vi hàm mã hố EkƯ✴×■trên liệu ✢✓✸✖❘✜✩✳✍✌✚✘❣✫✒✥✒✠☞✵✑❏▲❍t✎❉✖✢▼ à✷á â❱ã ỏ óớ mc ỗốíệ ộồ ỡ ợồổ ùì ệị ợồ tng ng vi thuộc tính A i ã rõ, dùng để thực ê ä✗ỵ ◗✜✩✌✚✔✛✫❄✜✩✳✛✖✼☛❱✖✢✧ ✹ ỡệịịò ợợổ ủ ốệũệíí úúồ truy trờn mỏy chủ Để ánh xạ mục ASi đến giá trị ✺ ✧⑤✧✩✖✗✘ ✺ ✵■✜✩✘⑤✘❂✳✛✥✷✣✉✜✩✳✮✠❯✜ ☞✕✴✳✛✌✚✖✗✓✒✖✷✎✣✬✌■✜✩✳✧✩✖✷✠☞✘❂✥☞ ✔✍▼ ❁❍❣✥ ✹ ✜✩✳✛✖❇✽✾✥✪✎✍✖✗✵❶❈ ❛✦✳✛✖❇Ï✷Õ❀Ị❜✜✴✠✭❏✛✵✚✖❇✌✚✘❃✽✠✭☛✛☛❱✖✷✎❳✜✩✥❳✠✻✕✗✥✭✧❂✧✩✖✗✘❂☛❱✥✒✔✛✎✍✌✚✔✛✫❀✜✴✠✭❏✛✵✚✖✰✠❯✜❃✜✩✳✛✖ mã etuple ✘❂✖✢✧✩✓✸✖✱✧✷➌ ta thường chia khoảng thành vùng liên tiếp, không giao gọi bucket Một bucket khoảng giá trị Ï✷Õ❀Ị❱❰✙➛✂Ï✗Ð◗Đ✸Ị✮Ĩ➊Ï Ï✷ơ◆õ❉❰ Ï✷ư✙÷✪Õ❣Ï☞❰ ÷✍Ĩ❧÷❉ù✭ú✍❰ ÷✪õ▲õ▲ù✒❰ õ▲ô✂õ❉❰❱➜ ❀✧✩✖✗✘❂✖✷✠✭✧✩✕✴✳q✠❯✧✩✖✷✠☞✘✘❂✥☞✽✾✖ ➲ ✴✳❣✥✒✔❜✖✗✔✛✕✱✧❂❍✍☛❉✜✩✖✷✎❙✎✛nằm ✠✭✜✴✠ ✗✖✗✔❣✘◗✜ ✺ ➲✱ø ➲ ➲ ✯✤✜✦✌✏✘❩✥✒✔✛✵■❍✔✍✖✗✕✗✖✗✘❂✘✩✠❯✧❂❍❙✜✩✥❬✕✢✧✩✖✷✠❯✜✩✖✰✠☞✔❙✌✚✔✮✎❉✖✢● ✹ ✥✭✧❄✠✭✜❂✜❂✧✩✌✚❏ ✺ ✜✩✖✗✘✦✌✚✔✪✓✸✥✒✵✚✓✸✖ ✌✚✔❥✘❂✖✷✠❯ ✧✩✕✱✳❥✠☞Với ✔✛✎➝❁mỗi ✥✒✌✚✔✉☛✍ ✧✩✖✗✎✍✌✚✕✷✠✭tính ✜✩✖✢✘✗❈❳A ✯❁✔❤ ✳✛✖❳ ✠☞❏❱✥❯định ✓✸✖❀✖✱●✛các ✠✭✽✾☛✛bucket ✵✚✖✒❖⑤✌ ✹ ✣✦✖ là: trị thuộc tính thuộc xác i , ✜✩ta ✎✍✌✚✖✷✎❙✌✏✔❙✜✩✳✛✖✰✵✚✌■✜❂▼ ★✪✔✛✖✢✣⑧✜✩✳✮✠✭✜✡✜✩✳✛✖✢✧✩✖❲✣✦✥ ✺ ✵✏✎❘❏❱✖❬✔✛✥❜♥ ✺ ✖✢✧❂❍❪✜✩✳✛✠✭✜❇✌✏✔✪✓✸✥☞✵✚✓✸✖✗✘✑✠❯✜❂✜❂✧✩✌✏❏ ✺ ✜✩✖ ✍✖✗✎❙❏▲❍✾✜✩✳✛✥☞✘❂✖✑✠✭✧✩✖✑✓✒✖✢✧❂❍ ÷✪õ▲õ▲ù✌✏✔❭✖✗✌■✜✩✳✛✖✢✧❲✠❙✘❂✖✗✵✚✖✗✕✢✜✩✌✚✥✒✔❥✥☞✧❲✠❲➝❁✥✒✌✚✔⑤❖⑤✜✩✳✛✖✗✔❤✜✩✳✛✖❀✌✏✔✛✎✍✖✢●❤✥☞✔❘✜✩✳✍✌✚✘ i k ✠✭✜❂✜❂✧✩✌✚❏ ✺ ✜✩✖✔✛✖✗✖✗✎❥✔✛✥✭✜❀❏❱✖✕✢✧✩✖✷✠❯✜✩✖✷✎✙❈❫➥q✌✚✜✩✳✍✥ ✺ ✜❬✵✚✥☞✘❂✘❀✥ ✹ ✫☞✖✗✔✛✖✢✧✴✠✭✵✚✌✚✜✤❍▲❖ bucket(A ) = {p , p , , p } ✗✥✒✽✾☛✍✵✚✖✢●❝❊✍♦✰♣❷♥ ✺ ✖✢✧✩✌✚✖✗✘ ✹ ✥✒✵✚✵✚✥❯✣✬✘✗❈❭❊✪✖✗✕✢✜✩✌✚✥✒✔❞ ➤ ◗✜✩✥✭✧✩✖✷✎❢✥☞✔❦✜✩✳✛✖❣✘❂✖✢✧✩✓✸✖✢✧✷❈ ❪✠❀♥ ✺ ✖✢✧❂❍✌✚✘✬✜❂✧✴✠✭✔✛✘❂✵✏✠✭✜✩✖✗✎ ✭✜❄✜✩✳✛✖✻✘❂✖✢✧✩✓✸✖✢✧✷❈✦✯❁✔❤❊✪✖✗✕✢▼ ✩✌✏✥☞✔✮✠✭✵❑✥✒☛❱✖✢✧✴✠❯✜✩✥☞✧✩✘❇✘ ✺ ✕✱✳ ❢✫☞✧✩✥ ✺ ☛❦❏✪❍❦✠❯✧✩✖❫✌✏✽✾☛✍✵✚✖✢▼ ❄✠✑♥ ✺ ✖✢✧❂❍❬❏▲❍❬✘❂☛✍✵✚✌✚✜❂✜✩✌✚✔✍✫ ▲❖▲✘ ✺ ✕✱✳✾✜✩✳✛✠✭✜❩✜✩✳✍✖❇✕✗✥☞✽❳▼ ➔ ➲ giá trị thấp p.low giá trị cao p.high miền giá ❂✜✩✖✗✎✙❖✭✠☞✔✛✎✻✎✍✥✒✌✚✔✍✫✡✠❯✧✩✌■✜✩✳✍▼ ✒✔ ä✗å✷æ t = (a1 , a2 , , an ) Rỗthỡ tớnh ASi l cỏc ch ờở ồổ = Eỗ k (t) ịò etuple ì Mi thuc etuple ✺ ✧✬✖✢●❉☛❱✖✢✧❂▼ ✣✦✖❜✠☞✘❂✘ ✺ ✽✾✖❳✜✩✳✮✠❯✜❳✠✭✔❞✌✏✔✛✎✍✖✢●❥✌✚✘❬✕✢✧✩✖✗✠✭✜✩✖✷✎❞✥❯✓✸✖✢✧❬✖✷✠☞✕✴✳❝✠✭✜❂✜❂✧✩✌✚❏ ✺ ✜✩✖✥ ✹ pi ⊂ [p.low, p.high], i ∈ [1, k] ✜✩✳✛✖✡✧✩✖✗✵✏✠✭✜✩✌✚✥✒✔✙❈ Cụ thể, giả sử giá trị thuộc tính DIEMSV có miền giá trị từ [0,10], ta 2.1 Partition Functions ➥✉✖❇✖✢●❉☛✛✵✏✠☞✌✚✔❜✣✬✳✛✠✭✜❄✌✚✘✬✘◗✜✩✥☞✧✩✖✷✎❙✌✏✔❣✠✭✜❂✜❂✧✩✌✚❏ ✺ ✜✩✖✻➯ ❰ ✥ ✹ ➭ ❰ ✹ ✥☞✧❄✖✷✠✭✕✱✳ Ô ✠✭✜❂✜❂✧✩✌✚❏ ✺ ✜✩✖✡➯ Ô ✥ ✹ ➭❬❈❅❡✍✥☞✧❩✜✩✳✍✌✚✘✦☛ ✺ ✧✩☛❱✥✒✘❂✖✒❖▲✣❩✖✡✣✬✌✚✵✚✵❱✔✛✖✗✖✷✎❳✜✩✥❬✎✍✖✗✓✒✖✗✵✚✥✒☛ ✘❂✥✒✽✾✖❣✔✛✥☞✜✴✠❯✜✩✌✚✥✒✔✛✘✗❈t➥❥✖❣❵✛✧✩✘◗✜✽✠✭☛♠✜✩✳✍✖❫✎✍✥☞✽✠☞✌✚✔♠✥ ✹ ✓☞✠☞✵ ✺ ✖✢✘❫➛❶û Ơ ➜ Ị ✄✗➲✗➳✗➳✗➳✷➲ Ị✲ü ❖✮✘ ✺ ✕✱✳❣✜✩✳✛✠✭✜❲➛ ❺ ➜ ➳ ➯ Ô ✌✚✔▲✜✩✥❳☛✛✠✭✧❂✜✩✌■✜✩✌✚✥✒✔✛✘ ✝ ✞ ✜✩✳✛✖✢✘❂✖❃☛✮✠✭✧❂✜✩✌■✜✩✌✚✥✒✔✍✘✼✜✴✠✭★✸✖✗✔❬✜✩✥☞✫✒✖✢✜✩✳✍✖✢✧✼✕✗✥❯✓✸✖✢✧❅✜✩✳✛✖✦✣✬✳✍✥✒✵✚✖❄✎✍✥✒✽✠✭✌✚✔⑤ý✪✠✭✔✮✎ ✥ ✹ ✠❯✜❂✜❂✧✩✌✚❏ ✺ ✜✩✖✻➭ 44 Bảng 2.1: Bảng DIEMSV rõ bảng DIEM SV S mã DIEM SV Tên SV Điểm Quang Chiến Mai Bảo DIEM SV S Etuple C8dilQWWvc5dsqHU1w7WJ828 mRSjcH01cIo2rB56ARMJg FZpzMJd6VzkkY1LbPs8g tNmYWHCJ6HSVD8qok6oaEA H I γ α β γ chia miền mày thành phân hoạch sau: bucket(DIEM SV ) = {[0, 2], (2, 4], (4, 6], (6, 8], (8, 10]} Mỗi bucket liên kết với giá trị tập hợp giá trị miền cho mục I tương ứng với Ai Cho tS RS , giá trị thuộc tính ASi tS bucket Điều quan trọng cần lưu ý để bảo vệ bí mật liệu tốt hơn, miền mục ASi không thứ tự thuộc tính rõ Ai Thuộc tính Etuple bảng 2.1 giá trị mã thuộc tính Tên SV Điểm Thuộc tính H I số thu cách ánh xạ giá trị thuộc tính Tên SV Điểm tương ứng bảng DIEMSV vào khoảng bucket định danh thành giá trị đại diện Các giá trị I1 I4 bảng DIEM SV S có bucket nên có giá trị γ Để biết giá trị nằm khoảng Hacigumus dùng hàm ident() để định danh hàm M ap() để ánh xạ giá trị vào định danh Sau tạo bảng DIEM SV S , DO lưu trữ bảng mã lên DSP Quá trình xử lý câu truy vấn Q thực hai nhiệm vụ: (1) Máy khách tiếp nhận Q, chuyển đổi Q thành QS để thực truy vấn liệu mã máy chủ Máy khách gửi QS đến máy chủ (2) Máy chủ thực thi QS trả ghi thoả mãn điều kiện RS cho máy khách (có thể trả nhiều liệu yêu cầu Q) Máy khách giải mã RS , loại bỏ liệu không thoả mãn điều kiện Q trả liệu kết rõ theo yêu cầu người dùng 45 Giả sử câu truy vấn Q có dạng: "SELECT * FROM DIEM SV WHERE Điểm = 7" chuyển thành QS là: "SELECT etuple FROM DIEM SV S WHERE I = γ " Sau thực câu truy vấn QS , máy chủ DSP trả cho người dùng với hai ghi số thỏa mãn điều kiện I = γ Sau đó, phía người dùng giải mã ghi thu ghi rõ ban đầu loại bỏ ghi số khơng thỏa mãn điều kiện Điểm = 7" Kết cuối người dùng thu ghi số 1, kết câu truy vấn Q CSDL mã Nhược điểm phương pháp lập mục dựa bucket phía máy chủ thực câu truy vấn với điều kiện QS , điều kiện ánh xạ vào điều kiện tương đương số Một điều kiện truy vấn Q có dạng Ai = c, c giá trị khơng đổi, điều kiện tương ứng QS mục I I = x, x bucket (một khoảng giá trị) Trong trường hợp Q có điều kiện Điểm = điều kiện QS chuyển thành I = γ Nhưng Q có điều kiện khoảng (range quey) phương pháp khó xử lý Vì miền mục khơng thiết bảo toàn thứ tự miền rõ, điều kiện phạm vi có dạng Ai ≤ c, c giá trị không đổi, phải ánh xạ thành loạt điều kiện hoạt động số I có dạng I = x1 I = x2 I = xk , xi giá trị liên quan đến bucket tương ứng với giá trị rõ nhỏ c Như Q có điều kiện Điểm ≤ điều kiện QS chuyển thành I = γ I = α γ, α bucket đại diện cho Điểm ≤ Trong trường hợp p.high - p.low lớn ta có nhiều phân hoạch, với điểu kiện khoảng hợp phân hoạch cho thỏa mãn điền kiện truy vấn where PRP is a pseudorandom permutation (e.g., AES) Each onion starts out with the most secure encryption scheme as the top level (RND for onions Eq and Ord, HOM for onion Add, and SEARCH for onion Search) As the proxy RCH is used to perform receives SQL queries from the application, it determines need to be removed If a query support operations such as whether layers of encryption46 H is nearly as secure as RND requires predicate P on column c, the proxy first establishes of Song et al.22 SEARCH cur- what onion layers are needed to compute P on c If the A Popaencryption cộng sựof[60] đề xuất giải pháp truy vấn liệu mã earches c is not already at an onion layer that allows P, uery such as SELECT the proxy strips onion to allow P on c, by sendgọi* FROM CryptDB, off mơthe hình mãlayers hố theo phương pháp mã hóa alice %”,the proxy gives the ing the corresponding onion key to the server The proxy liệu thực the thi data truypast vấn the trênleast-secure CSDL mã non-plaintext cách sử dụng an encryption of alice Thevà cách neverthức decrypts n to figure out the máy underlyencryption onion which may be overridden the ô chủ làm trung gian gọilayer, CryptDB proxy Với mã hóabytheo function, the DBMS server schema developer to be a more secure layer (e.g., one may liệu CSDL đảm bảo mối quan hệ bảng, nên sử ptions in any message match Figure onion encryption layers and the classes of computation rns from a SEARCHdụng querycác is tính chất quan hệ CSDL CryptDB sử dụng nhiều thuật toán message or not, and only for they allow onion names stand for the operations they allow at some of their layers Search,loại and câu addition) random iV để (equality, phù hợporder, với truyavấn Chính vậy, r The server would mã learnhóa thekhác for RnD (Section 3.1), shared by the RnD layers in Eq and Ord, is also ng the result set to the users, stored for each data item liệu sau mã hóa tăng lên đáng kể thêm nhiều cột mã hóa nimal amount of additional he result SEARCH ween two different columns r relations We provide a new (Section 3.4) RND: no functionality text value RND: no functionality encryption OPE: order ure encryption schemes that DET: equality selection Onion Search OPE-JOIN: queries For example, if the range join JOIN: equality join HOM: add that compare data items in any value any value int value mn, the column should be umns that require equality Onion Eq Onion Ord Onion Add ET suffices The problem is known in advance Thus, we Hình 2.3: Mơ hình mã hố củ hành (Onion) Popa đề xuất [60] e pte M B er 20 12 | voL 5 | N o CryptDB sử dụng kết hợp hai kỹ thuật mã hóa mã hóa nhận thức SQL (SQL-aware encryption - SQLAE) mã hóa dựa truy vấn điều chỉnh (adjustable query-based encryption -AQE) SQLAE sử dụng nhiều thuật tốn mã hóa khác như: Mã hóa ngẫu nhiên (Random RND) để bảo mật tối đa lớp mã hóa CryptDB, mã hóa tất định (Deterministic - DET) để thực phép bằng, GROUP BY, COUNT, DISTINCT , mã hóa bảo toàn thứ tự (Order-preserving encryption - OPE) để thực phép toán ORDER BY, MIN, MAX, SORT , mã hóa đồng cấu (Homomorphic encryption - HOM) để tính tốn liệu mã mà khơng cần giải mã liệu, mã hóa tìm kiếm (Word search - SEARCH) để tìm kiếm chuỗi sử dụng phép tốn LIKE Chính vậy, SQLAE sử dụng cho hầu hết truy vấn SQL tạo thành từ tập hợp toán tử như: So sánh bằng, so sánh thứ tự, tổng, phép nối Trong 47 đó, mục đích AQE điều chỉnh linh hoạt lớp mã hóa máy chủ research highlights DBMS Ý tưởng AQE mã hóa mục liệu nhiều củ hành (Onion) Nghĩa là, giá trị mã hóa nằm lớp mã Figure CryptDB’s architecture consisting of two parts: a proxy and an unmodified DBMS CryptDB uses user-defined functions (uDFs) to perform cryptographic operations in the DBmS Rectangular and rounded boxes represent processes and data, respectively Shading indicates components added by CryptDB Dashed lines indicate separation between users’ computers, the application server, a server running CryptDB’s proxy (which is usually the same as the application server), and the DBmS server the scope of the two threats CryptDB addresses is shown as dotted lines hóa mạnh (hình 2.3) Mỗi lớp củ hành cho phép thực số phép tính tốn tương ứng với loại SQLAE User Password P1 User Active session Application Proxy Unmodified DBMS CryptDB UDFs Key setup Active keys: P1 Password P2 Users' computers Threat Threat Application server Annotated schema CryptDB proxy Data (encrypted) DBMS server Hình 2.4: Mơ hình truy vấn liệu mã Popa đề xuất [60] CryptDB is careful about what relations between tuples it 2.1 threat 1: DBmS server compromise BYon column c, CryptDB provides confidentiality (data secrecy) in the face reveals to the DBMS server To execute a GROUP Figure examples of (a) how CryptDB transforms a table’s schema andCryptDB encrypts a database, and of mô (b) a query showing onion2.5 Cách thức thực vấn tả flow hình for instance, of anadjustments attacker with read totruy the data stored in to their Stringsfull of the formaccess “x…” denote ciphertexts (not shown full length).the server need not know the order of the items the DBMS server The attacker is assumed to be passive: in column c, nor any information about other columns To (a) Outer onion layers are execute an ORDER BY, or to find the MAX or MIN, CryptDB she wants to learn confidential data, but does or not change load table load table queries issued by the application, query results, or the data reveals the order of items in that column, but not otherwise : CryptDB incorporates two techniques: SQL-aware in the DBMS This threat includes DBMS software Application CryptDB proxy comproDBMS encrymises, root access to DBMS machines, and even access to ption and adjustable query-based encryption SQL-aware the RAM of physical machines With the rise in database encryption uses the observation that most SQL queries of basic operators, such consolidation inside enterprise data centers, outsourcing are made up of a well-defined set (b) DBMS of databases to public cloud computing infrastructures, as equality checks, order comparisons, aggregates (sums), (2) and joins CryptDB supports these operators over encrypted and the use of third-party DBAs, thisNeed threat is forincreasingly but it is at : adjust! (1) on confidentiality, not data integrity data By adapting known encryption schemes (for equality, important We focus additions, and order checks), and using a new privacyor availability CryptDB proxy Application preserving cryptographic(3) scheme foronion joins, CryptDB encryCryptDB addresses this threat by executing SQL queremoving layer (6) results: (4) ries over encrypted data on the DBMS server As shown in pts each data item in a way that allows the DBMS to execute Figure 1, CryptDB works by intercepting all SQL queries on the transformed data The second technique is adjustable query-based encrypin a trusted proxy; existing applications not need (5) to results: be modified to use CryptDB, but all queries must go through tion: CryptDB carefully adjusts the SQL-aware encryption the proxy The proxy stores a master secret key, which scheme for any given data item to support different operaHình 2.5: queries Ví dụ to vềexecute (a) cách biến đổi lược đồ To bảng mãthese hóa adjustments CSDL effitionsmột on this data implement it uses to rewrite on CryptDB encrypted data specify that credit card information may at worst be at DET, query contains WHERE Name =“Alice”, the proxy encrypts ciently, CryptDB uses onions of encryption Onions are a novel The proxy encrypts(b) andtruy decrypts all data, and changes vấn liệu mã CryptDB [60] and never at OPE) “Alice” by successively applying all encryption layers corresome query operators, while preserving the semantics of way to compactly store multiple ciphertexts within each CryptDB implements onion layer decryption using UDFs sponding to onion Eq that have not yet been removed in the database and avoid revealing weaker encryption the query Because DBMS server receives decrypthat run on the the DBMS server For never example, in Figure 3, to other from C2-Eq schemes they are not needed tion decrypt keys toonion the Ord plaintext, it never sees1 to sensitive data, of column in Table layer OPE, the Finally, the proxy replaces certain operators with UDFMộtour truy vấnadversary CryptDB thực hiệnCryptDB quawhen bốn bước: provides foraggregate the content of the ensuring gain accessthe to based proxy that issues thepassive following query to cannot the server, invoking counterparts Forconfidentiality instance, the SUM operadata and names of columns and tables, does not private information DECRYPT_RND UDF: tor and thefor + column-addition operator must bebut replaced ❼ Ứng dụng gởiexecuting truy vấn đếnonmáy chủhide trung gian table vàa UDF proxy viết the overall structure, the number of lại: rows, The main challenge when queries encrypwith an invocation of that performs HOM addition of the of columns, theorder approximate ofasdata in 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 3.2.2.3 Quản lý khóa mã hố tệp Q trình mã/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 khố để 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 89 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ị 3.2.3 Mơ hình quản lý truy cập liệu mức cột người dùng 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ý Khi người dùng ui truy vấn liệu máy chủ trung gian xác thực DO dựa vào ma trận quản lý truy cập A để có tên cột liệu mà ui truy cập, đồng thời giải mã KMT từ biết khoá cột tương ứng quyền truy cập người dùng tạo bảng khoá tạm thời Kui Bảng Kui giữ máy chủ trung gian khơng can thiệp từ người dùng Sau đó, ui truy vấn liệu theo ma trận kiểm soát truy cập để lấy thông tin cần thiết DO giải mã liệu khoá bảng Kui Việc trao đổi thông tin người dùng, kết truy vấn trả người dùng máy chủ trung gian thông qua giao thức TLS (Transport Layer Security) để bảo đảm liệu không bị công theo dạng man in the middle Cơ chế quản lý truy cập liệu người dùng thực qua bước sau: ❼ Bước 1: Người dùng gửi thông tin người dùng thông qua giao thức TLS Sau xác thực, người dùng gửi câu truy vấn liệu đến máy chủ trung gian Máy chủ trung gian dựa vào ma trận kiểm soát truy cập dùng khoá mã DO để giải mã KMT Từ đó, máy chủ đưa bảng khố người dùng ❼ Bước 2: Máy chủ trung gian dựa vào ma trận kiểm soát truy cập để truy vấn cột liệu mà người dùng phép truy cập DSP ❼ Bước 3: DSP trả kết truy vấn liệu mã máy chủ trung gian ❼ Bước 4: Máy chủ trung gian dựa vào bảng khoá người dùng giải liệu Server 90 KMT Máy chủ trung gian Thông tin người dùng + câu truy vấn Khoá ui Ma trận kiểm soát truy cập ui Kết mã Người dùng Truy vấn người dùng Kết truy vấn (qua TLS) f1 f2 fm 1 f1 f2 fm k11 k12 Khoá giải mã Nhà cung cấp dịch vụ thuê CSDL Hình 3.3: Mơ hình truy cập liệu mức cột người dùng mã liệu, trả kết liệu rõ cho người dùng thông qua giao thức Dữ liệu mã hoá TLS Vớidùng chế Người Tru yv ấn Kế truy t q cập uả liệu người dùng đề xuất người dùng Internet quản lý thông tin người dùng mà không nắm giữ thơng tin khố iệu ữ l nên khơng thể cơng theo hình thức thoả hiệp Bên khố KMT pd cạnh đó, ậ nh iệu p ữl Cậ khoá d y Lấ quản lý máy chủ trung gian vàcung số cấp lượng Nhà dịchkhố vụ th ngồi CSDL tương ứng với số cột bảng CSDL nên việc thay khố tương đối dễ dàng, khơng ảnh hưởng không phụ thuộc đến người dùng tham Chủ sở hữu liệu hệ thống giadữ 3.3 Đề xuất phương pháp thay đổi khóa mã cho ODBS Bài tốn thay đổi khóa q trình thực thay đổi lại khoá mã liệu mã ODBS Bài toán thường đặt trường hợp DO lo ngại khóa CSDL khơng cịn an tồn Chủ sở hữu liệu (DO) Tạo k v Truy Lưu trữ CSDL mã hoá chữ ký; Truy vấn liệu hoá ấn tr ả Máy chủ trung gian (proxy server) Kết truy vấn (dữ liệu mã, chữ ký) Nhà cung cấp dịch vụ th ngồi CSDL (DSP) 91 3.3.1 Phương pháp đổi khố ngây thơ Đổ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ã, 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 Thuật toán 3.5: Thuật toán NaiveKeyChanged Input: Outsourced database name Output: Change key of encrypted data listOldKey ← readKMT("OldKMT.file") listNewKey ← readKMT("NewKMT.file") db ← connect to outsourced database DataTable dt ← SELECT * FROM tableName DELETE * FROM tableName while dt.nextRow() list[] ← ∅ for each value ∈ dt.column plaintext = DlistOldKey(i) (value) 10 ciphertext = ElistNewKey(i) (plaintext) 11 list.append(ciphertext) 12 end 13 INSERT INTO tableName VALUES(list) 14 end Phương pháp ngây thơ (naive method) giải tốn thay khóa mơ tả sau: ❼ Bước 1: DO tải toàn CSDL máy chủ mình, 92 ❼ 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ã lên ODBS Phương pháp đổi khoá ngây thơ thực thuật tốn 3.5 Ta xem thời gian thực giải mã, mã hóa liệu đầu vào khác thay đổi khơng đáng kể; Cho CSDL có bảng T với n dòng m cột Độ phức tạp thời gian tính tốn thuật tốn 3.5 là: O(n)) = 2.tread + n.m.(tdec + tenc ) Vì vậy, CSDL có số lượng ghi n lớn phương pháp ngây thơ tốn nhiều thời gian không thực 3.3.2 Đề xuất phương pháp đổi khoá dựa MapReduce Luận án đề xuất thuật toán đổi khoá liệu mã mức cột thực dựa MapReduce theo bước sau đây: ❼ Bước 1: Chuyển liệu mã 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.6) ❼ Bước 3: Cập nhập liệu mã đổi khóa tệp tin HDFS hadoop lên ODBS Q trình thay khóa liệu mã mơ tả hình 3.4 Trong phương pháp này, Hadoop framework cấu hình máy chủ trung gian DO toàn quyền quản lý CSDL thuê quản lý DSP Quá trình nạp cập nhận CSDL liệu truyền qua mạng Internet Dữ liệu từ tệp tin HDFS xử lý qua hai giai đoạn: Map Reduce Giai 93 Hình 3.4: Mơ hình đổi khố dựa MapReduce đoạn Map, dòng liệu ghi chia thành nhiều phần xử lý cụm máy tính(cluster); Giai đoạn Reduce tiến hành giải mã mã hóa (thay khóa) giá trị kết giai đoạn map Kết thúc hai giai đoạn ta thu tệp tin mã hóa với khóa mã Thời gian thực đổi khoá theo mức cột tổng thời gian trình chuyển liệu từ OBDS thành tệp tin định dạng HDFS hadoop, thời gian xử lý thay khóa bảng liệu thời gian cập nhập liệu từ hadoop lên máy chủ dịch vụ Trong đó, ta quan tâm đến thời gian xử lý thay khóa, lúc số lượng liệu cần xử lý lớn Thời gian chuyển đổi liệu từ DSP vào trung tâm tính tốn MapReduce ngược lại phụ thuộc q trình phân chia xử lý, tính tốn quản lý cụm máy tính Giai đoạn thực đổi khố mức cột bảng CSDL đề xuất thuật toán 3.6 Hàm map() reduce() làm việc nút nên số lần thực đồng thời x (x số nút MapReduce) Thời gian cho lần lặp liệu map() reduce() nút n (n số lượng ghi) Như vậy, thời gian cần thực xong map() reduce() x nút n/x Trong hàm reduce() thực việc đổi khoá, nghĩa giải mã mã hoá lại liệu giữ nguyên số lượng ghi Số lượng cột 94 Thuật toán 3.6: 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 bảng CSDL m Như vậy, thời gian thực đổi khoá xong ghi m.(tdec + tenc ) Do đó, độ phức tạp thời gian tính tốn thuật tốn 3.6 O(n) = (n/x).m(tdec + tenc ) 3.3.3 Đảm bảo an tồn cho phương pháp thay đổi khố Phương pháp thay đổi khóa thực chủ yếu Hadoop framework Trong Hadoop, liệu lưu trữ phân tán nhiều DataNode, NameNode lưu trữ siêu liệu nhật ký hoạt động Giao tiếp thực tế khối liệu xảy Client Node DataNode Vì vậy, số vấn đề liên quan đến an toàn Hadoop framework [66] là: 95 Dữ liệu bị phân mảnh: Các cụm liệu lớn cho phép có nhiều liệu trao đổi nút khác để đảm bảo dự phòng khả phục hồi Từ gây khó khăn việc bảo mật liệu Từ gây khó khăn việc bảo mật liệu Máy tính phân tán: Hadoop framework cấu hình hệ thống máy tính phân tán để tận dụng tối đa tài nguyên Vì vậy, để bảo mật liệu Hadoop framework đòi hỏi cần phải bảo vệ tất máy tính tham gia hệ thống tính tốn DataNodes khơng có chế kiểm sốt truy cập Do đó, kẻ cơng đọc khối liệu tùy ý từ DataNodes Ngồi ra, kẻ cơng truy cập tệp HDFS qua RPC qua giao thức HTTP mà khơng có kiểm sốt Từ nhận định trên, để đảm bảo an tồn cho phương pháp thay đổi khóa, ta cần thực số nội dung sau: Đảm bảo tính tồn vẹn liệu: Thực tính tốn số lượng ghi bảng thay đổi khóa trước sau đổi khóa so sánh hai liệu này, tránh trường hợp lỗi sai sót liệu tính tốn DataNode cụm máy tính Do Hadoop framework triển khai máy chủ trung gian nên DO cần có chế hạn chế truy cập tệp HDFS qua RPC qua giao thức HTTP Ngồi ra, cần xóa hết liệu lưu trữ liên quan đến liệu đổi khóa Hadoop framework sau phiên làm việc Mặc dù liệu giai đoạn nạp cập nhập liệu liệu mã, nhiên, để tránh công thay đổi liệu đường truyền, ta nên dùng giao thức TLS để trao đổi liệu 96 3.4 Phân tích, thử nghiệm phương pháp đề xuất 3.4.1 Phân tích KVEFS Vì sử dụng thư viện lưu trữ khóa-giá trị OpenStars, KVEFS tự động chọn kho lưu trữ khóa-giá trị khác liệu phân tán với RemoteKVStorage Trong đó, EncFS [26] lưu trữ liệu hệ thống tệp cục hệ điều hành Ta so sánh khác biệt KVEFS với EncFS thể bảng 3.3 Bảng 3.3: So sánh KVEFS Encfs Tính Độ an tồn Lưu trữ tùy chỉnh Khả phân tán Ẩn cấu trúc thư mục KVEFS AES 256 bit Có, người dùng chọn loại lưu trữ Có, với RemoteKVStorage EncFS [26] AES, Blowfish Không, ghi trực tiếp vào tệp Không, liệu phải phù hợp với máy chủ cục Có, ẩn tất cấu trúc thư mục lưu trữ khóa-giá trị Khơng, Ta thấy mục thư mục thời gian truy cập 3.4.2 Thử nghiệm phương pháp thay đổi khoá Trong trình nghiên cứu, luận án chưa phát 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.6 Luận án sử dụng Hadoop 2.7.0 [6] với chế độ mặc định Hadoop chạy máy tính 1GB CSDL TPC-H để thay đổi khoá 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, Ram 8GB, ổ cứng HDD 1TB Hệ điều hành Ubuntu 16.10 Sử dụng sqoop-1.4.4 [7] để chuyển đổi liệu CSDL HDFS Kết thời gian tính tốn mơ tả bảng 3.4 97 Bảng 3.4: Thời gian đổi khoá thuật toán 3.5 thuật toán 3.6 Tên bảng Số ghi Thuật toán Naive KeyChange(s) 25 10000 150000 200000 800000 1500000 6001215 0,595 1,499 449,528 6.908,127 9.526,048 36.963,637 100.763,852 309.241,736 region nation supplier customer part partsupp orders lineitem Bước CSDL → HDFS(s) 21,734 16,571 16,766 18,897 28,198 26,125 42,734 218,252 Bước Đổi khoá(s) 17,518 18,67 19,995 36,312 43,239 76,68 202,997 1.376,162 Bước HDFS → CSDL(s) 19,521 38,101 25,807 66,872 92,563 219,674 618,088 4.963,679 Thời gian thực đổi khoá mức cột MapReduce: tM R = tI +tC +tE ; Trong tI thời gian nạp bảng từ ODBS thành tệp tin định dạng HDFS Hadoop, tC thời gian thực thay đổi khoá MapReduce, tE thời gian xuất liệu từ Hadoop lên ODBS Dựa vào bảng 3.4, toàn thời gian đổi khoá phương pháp đề xuất so sánh với phương pháp NaiveKeyChange hình 3.5 Sheet1 Thuật toán Naive KeyChange Thuật toán MR-EncColumnKeyChange Thời gian thực (s) 350000 300000 250000 200000 150000 100000 50000 25 10000 150000 200000 800000 1500000 6001215 Số lượng ghi Hình 3.5: Kết thời gian thực đổi khoá Kết thực nghiệm cho thấy, liệu bảng có ghi region, nation thời gian thực ngây thơ nhanh so với phương pháp đề xuất tương ứng 0.6s/58.773s, 1.5s/73.342s Điều xảy 98 thuật tốn 3.5 duyệt ghi đổi khoá Khi số lượng ghi (region: dịng, nation: 25 dịng) q trình duyệt xử lý nhanh Trong đó, thuật tốn 3.6 thực xử lý phân tán lên nút (Map) thực đổi khoá (Reduce) nên chậm thuật toán 3.5 Tuy nhiên, bảng có số lượng ghi đáng kể supplier với 10.000 dịng thời gian thực phương pháp ngây thơ 7.4921 phút phương pháp đề xuất 62.568s Thậm chí bảng orders có 1.5 triệu ghi thời gian thực phương pháp ngây thơ ≈ 28 giờ, lớn so với 14 phút phương pháp đề xuất Khi số lượng ghi lớn bảng lineitem với khoảng triệu phương pháp ngây thơ thực khoảng 3.57 ngày, lâu để tạo phiên bảo trì CSDL xem khơng khả thi cho tính sẵn sàng liệu, phương pháp đề xuất thực đổi khoá khoảng thời gian 1.8 Hình 3.5 cho thấy tính hiệu thời gian thực phương pháp đề xuất so với phương pháp ngây thơ số lượng ghi lớn Khi liệu lớn, hiệu phương pháp đề xuất cao 3.4.3 Vấn đề tồn phương pháp đề xuất Trong trình đổi khoá, DO phải thực chuyển đổi CSDL sang HDFS ngược lại Trong hai trình này, DO phải sử dụng công cụ chuyển đổi sqoop Apache Đây phần mềm bên thứ ba nên DO không kiểm sốt cơng nghệ Vì vậy, phương pháp đề xuất chưa giải trường hợp liệu bị gián đoạn, hư hại chuyển tải liệu đường truyền phần mềm sqoop tạo 3.5 Kết luận Chương giới thiệu quản lý khố người dùng tốn thay đổi khóa cho ODBS Luận án dùng máy chủ trung gian để lưu trữ khóa quyền truy cập người dùng Cây khóa mã hóa có DO có quyền giải mã Khi bắt đầu phiên làm việc, DO cung cấp mật 99 M K dùng USB token xác thực để giải mã khóa Người dùng quản lý thông tin người dùng không nắm giữ thơng tin khố mã CSDL 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 Do người dùng khơng quản lý khố mã nên khơng thể cơng theo hình thức thoả hiệp Bên cạnh đó, số lượng khố mã CSDL với số cột bảng quản lý máy chủ trung gian nên việc thay khoá tương đối dễ dàng, không phụ thuộc đến người dùng tham gia hệ thống 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 đổi khóa Vì vậy, phương pháp đảm bảo cho CSDL sẵn sàng hoạt động thay khóa Kết chứng minh liệu lớn, tính hiệu phương pháp cao Ngoài tảng Hadoop, hướng nghiên cứu mơ hình, thuật tốn đổi khố tảng Spark có khả mang lại kết tốt bỏ qua việc quan tâm đến chi phí đầu tư hay thuê dịch vụ Spark Hoặc việc kết hợp hai tảng: dung lượng bảng CSDL thấp nhớ RAM dùng tảng Spark, ngược lại dùng tảng Hadoop Tuy nhiên, nhược điểm tảng không kiểm soát hai giai đoạn chuyển đổi CSDL → HDFS HDFS → CSDL Trong tương lai, hướng nghiên cứu xây dựng mơ hình đổi khố trực tiếp CSDL không phụ thuộc vào tảng bên thứ ba khắc phục nhược điểm KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Luận án tiến hành khảo sát kiến thức ODBS, tốn liên quan đến bảo đảm an tồn cho CSDL mơi trường ODBS cơng trình nghiên cứu ngồi nước có liên quan đến an toàn ODBS Trên sở nghiên cứu lý thuyết, luận án đề xuất mơ hình, thuật tốn nhằm mục đích bảo vệ an tồn cho CSDL ODBS Những kết thử nghiệm cho thấy tính hiệu phương pháp đề xuất, từ áp dụng mơ hình, thuật tốn đề xuất để triển khai vào ứng dụng cụ thể A 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 xác thực liệu từ giảm thời gian thực truy vấn Đề xuất hai thuật toá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 toán xác thực liệu truy vấn CSDL mã th ngồi 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 Khi liệu thay đổi, DO tính toán chữ ký dựa giá trị thay đổi mà khơng tính lại tồn giá trị xác thực liệu dùng phương pháp ADS Đề 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 100 101 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 Phương pháp giúp DO quản lý khố người dùng khơng giữ khố, tránh cơng theo hình thức "thoả hiệp" 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 khoá mã CSDL nghi ngờ khoá khơng cịn an tồn B Hướng phát triển Mặc dù nghiên cứu sinh cố gắng việc nghiên cứu lý thuyết đề xuất mơ hình, thuật tốn nhằm nâng cao tính an tồn cho hệ thống ODBS Tuy nhiên, theo nhận định chủ quan nghiên cứu sinh có số vấn đề cần tiếp tục nghiên cứu phát triển tiếp theo: ❼ Nghiên cứu, phát triển mơ hình, thuật tố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 tốn xác thực liệu đảm bảo tính đủ tính thích hợp với CSDL động DANH MỤC CÁC CƠNG TRÌNH CƠNG BỐ A CÁC CƠNG TRÌNH SỬ DỤNG TRONG LUẬN ÁN [CT1] Kim Giau Ho, Ly Vu, Nam Hai Nguyen, and Hieu Minh Nguyen, "Speed Up Querying Encrypted Data on Outsourced Database", In Proceedings of the 2017 International Conference on Machine Learning and Soft Computing (ICMLSC ’17), ISBN: 978-1-4503-4828-7, 2017, pp 47–52 ACM http://doi.acm.org/10.1145/3036290.3036299 [CT2] Giau Ho Kim, Manh Tran Cong, and Minh Nguyen Hieu, "A Study on Batch Verification Scheme in Outsourced Encrypted Database", In The Tenth International Symposium on Information and Communication Technology (SoICT 2019), ISBN: 978-1-4503-7245-9/19/12, 2019, pp 502-507 ACM http://doi.acm.org/10.1145/3368926.3369732 [CT3] Hồ Kim Giàu, Nguyễn Hiếu Minh, "Xác thực sở liệu mã hố th ngồi dựa xác thực lơ", Tạp chí Khoa học Cơng nghệ - Đại học Thái Nguyên, ISSN: 1859-2171, Tập 204, Số 11, 2019, pp 107-116 [CT4] Kim Giau Ho, Son Hai Le, Trung Manh Nguyen, Vu Thi Ly, Thanh Nguyen Kim, Nguyen Van Cuong, Thanh Nguyen Trung, and Ta Minh Thanh "KVEFS: Encrypted File System based on Distributed Key-Value Stores and FUSE." In International Journal of Network Security & Its Applications (IJNSA), ISSN: 0975-2307, Vol 11(2), 2019, pp 55-66 [CT5] Hồ Kim Giàu, Nguyễn Hiếu Minh, "Quản lý thay đổi khoá sở liệu mã hố mơi trường th ngồi", Chuyên san Công nghệ thông tin Truyền thông - Học viện KTQS (LQDTU-JICT), ISSN: 1859-0209, Số 13, 2019, pp 77-90 [CT6] Lều Đức Tân, Hồ Kim Giàu, "Khắc phục lỗi nâng cao tính hiệu cho lược đồ chữ ký số dựa hai toán khó", Tạp chí Khoa học Cơng nghệ Thơng tin Truyền thông - Học viện Công nghệ BCVT, ISSN: 2525-2224, Số 01(CS.01), 2020, pp 50-56 102 103 B CÁC CƠNG TRÌNH CƠNG BỐ KHÁC [CT7] Hồ Kim Giàu, Vũ Thị Đào, Nguyễn Hiếu Minh, "Thay đổi khoá sở liệu mã hố mơi trường th ngồi," Hội thảo lần thứ II: Một số vấn đề chọn lọc an tồn an ninh thơng tin (SOIS) – TP Hồ Chí Minh, 2017, pp 30-34 [CT8] Nguyen Hieu Minh, Vu Thi Dao, Kim Giau Ho, Do Van Tuan, "Some new multisignature schemes based on discrete logarithm problem", Một số vấn đề chọn lọc an toàn an ninh thông tin 2018, ISSN: 1859-3550, 2018, pp 122-130 [CT9] Hồ Kim Giàu, Trần Thanh Tùng, Nguyễn Hiếu Minh, "Xác thực sở liệu mã hố th ngồi", Hội thảo Công nghệ thông tin Truyền thông, ISBN: 978-604-67-1191-9, 2018, pp 30-33 TÀI LIỆU THAM KHẢO Tiếng Việt [1] 1Phạm Thị Bạch Huệ, (2013), Nghiên cứu phát triển số giải pháp bảo mật bảo vệ tính riêng tư sở liệu thuê (ODBS) – LUẬN ÁN TIẾN SĨ [2] Nguyễn Anh Tuấn, (2011), Về giải pháp bảo mật sở liệu – LUẬN ÁN TIẾN SĨ Tiếng Anh [3] Agrawal Divyakant, et al (2009), “Database management as a service: Challenges and opportunities”, in: 2009 IEEE 25th International Conference on Data Engineering, IEEE, 1709–1716 [4] Ahmad Awais, et al.(2019), “Parallel query execution over encrypted data in database-as-a-service (DaaS)”, The Journal of Supercomputing, 75 (4), 2269–2288 [5] Amazon Web Services (AWS) - Cloud Computing Services, url: https: //aws.amazon.com/ (visited on 10/2019) [6] Apache Hadoop, url: http://hadoop.apache.org/ (visited on 10/2019) [7] Apache Sqoop, url: https://sqoop.apache.org/ (visited on 10/2019) [8] Bellare Mihir, Garay Juan A Rabin Tal, (1998), “Fast batch verification for modular exponentiation and digital signatures”, in: International Conference on the Theory and Applications of Cryptographic Techniques, Springer, 236–250 104 105 [9] Brinkman Richard, Doumen Jeroen, Jonker Willem, (2004), “Using secret sharing for searching in encrypted data”, in: Workshop on Secure Data Management, vol 13, 3, Springer, 18–27 [10] Camenisch Jan, Hohenberger Susan, Pedersen Michael Østergaard, (2012), “Batch verification of short signatures”, Journal of cryptology, 25 (4), 723–747 [11] Chauhan Sanjeev Kumar, Sharma Aravendra Kumar, (2013), “Secure Access to Outsourced Databases”, IOSR Journal of Computer Engineering, (5), 2278–661, url: www.iosrjournals.org [12] Chen B H K Et al.(2015), “CypherDB: A Novel Architecture for Outsourcing Secure Database Processing”, IEEE Transactions on Cloud Computing, issn: 2168-7161, doi: 10.1109/TCC.2015.2511730 [13] Chiou S, He Y, (2013), “Remarks on new Digital Signature Algorithm based on Factorization and Discrete Logarithm problem”, International Journal of Computer Trends and Technology (IJCTT), 4, 3322–3324 [14] Chiou Shin-Yan, (2016), “Novel digital signature schemes based on factoring and discrete logarithms”, International Journal of Security and Its Applications, 10 (3), 295–310 [15] Cloud Computing Services, Google Cloud, url: https://cloud.google com/ (visited on 10/2019) [16] Cloud Security Company | CASB Vendors, CipherCloud, url: https: //www.ciphercloud.com/ (visited on 10/2019) [17] CMC TSSG, CMC TSSG, url: https://www.cmctssg.vn/en/homepage/ (visited on 10/2019) 106 [18] Codd Edgar F, (1970), “A relational model of data for large shared data banks”, Communications of the ACM, 13 (6), 377–387 [19] Codd Edgar F, (1990), The relational model for database management: version 2, Addison-Wesley Longman Publishing Co., Inc [20] Crandall Richard, Pomerance Carl B, (2006), Prime numbers: a computational perspective, vol 182, Springer Science & Business Media [21] Damiani Ernesto, et al.(2007), “Selective data encryption in outsourced dynamic environments”, Electronic Notes in Theoretical Computer Science, 168, pp 127–142 [22] Dean Jeffrey, Ghemawat Sanjay, (2010), “MapReduce: A Flexible Data Processing Tool”, Commun ACM, 53 (1), 72–77, issn: 0001-0782, doi: 10 1145 / 1629175 1629198, url: https : / / doi org / 10 1145 / 1629175.1629198 [23] Dermova E S “Information Authentication Protocols on two hard problems Ph D Dissertation”, 2009 [24] Do Binh V, Nguyen Minh H, Moldovyan Nikolay A, “Digital Signature Schemes from Two Hard Problems”, in: Multimedia and Ubiquitous Engineering, Springer, 2013, 817–825 [25] El-Khoury Vanessa, Bennani Nadia, Ouksel Aris M (2009), “Distributed key management in dynamic outsourced databases: A trie-based approach”, in: 2009 First International Confernce on Advances in Databases, Knowledge, and Data Applications, IEEE, 56–61 [26] EncFS: an Encrypted Filesystem for FUSE, url: https : / / github com/vgough/encfs (visited on 10/2019) 107 [27] Etemad Mohammad, Kă upácu ă Alptekin, (2018), Verifiable database outsourcing supporting join, Journal of Network and Computer Applications, 115, 1–19 [28] FIPS PUB, (1994), “186”, Digital Signature Standard, [29] Gayathri NB, et al.(2018), “Efficient pairing-free certificateless authentication scheme with batch verification for vehicular ad-hoc networks”, IEEE Access, 6, 31808–31819 [30] Gopalani Satish, Arora Rohan, (2015), “Comparing apache spark and map reduce with performance analysis using k-means”, International journal of computer applications, 113 (1) [31] GOST R (1994), “R 34.10-94 Russian Federation Standard”, Information Technology Cryptographic data Security Produce and check procedures of Electronic Digital Signature based on Asymmetric Cryptographic Algorithm Government Committee of the Russia for Standards [32] Hacigumus Hakan, et al (2002), “Executing SQL over encrypted data in the database-service-provider model”, in: Proceedings of the 2002 ACM SIGMOD international conference on Management of data, 216–227 [33] Hakuta Keisuke, et al (2013), “Batch Verification Suitable for Efficiently Verifying a Limited Number of Signatures”, in: Information Security and Cryptology - ICISC 2012, ed by Kwon Taekyoung, Lee MunKyu, Kwon Daesung, Berlin, Heidelberg: Springer Berlin Heidelberg, 425–440, isbn: 978-3-642-37682-5 [34] Hang Isabelle, Kerschbaum Florian, Damiani Ernesto, (2015), “ENKI: Access Control for Encrypted Query Processing”, in: Proceedings of the 2015 ACM SIGMOD International Conference on Management of 108 Data, SIGMOD ’15, event-place: Melbourne, Victoria, Australia, ACM, 183–196 [35] Hankerson Darrel, Menezes Alfred J, Vanstone Scott, (2006), Guide to elliptic curve cryptography, Springer Science & Business Media [36] Harn L, (1994), “Public-key cryptosystem design based on factoring and discrete logarithms”, IEE Proceedings-Computers and Digital Techniques, 141 (3), 193–195 [37] Harn Lein, (1998), “Batch verifying multiple RSA digital signatures”, Electronics Letters, 34 (12), 1219–1220 [38] Hong Seungtae, Kim Hyeong-Il, Chang Jae-Woo, (2017), “An efficient key management scheme for user access control in outsourced databases”, World Wide Web, 20 (3), 467–490 [39] Huang Yin-Fu, Chen Wei-Cheng, (2015), “Parallel query on the inmemory database in a CUDA platform”, in: 2015 10th International Conference on P2P, Parallel, Grid, Cloud and Internet Computing (3PGCIC), IEEE, 236–243 [40] Hue T B P Et al (2012), “An Efficient Fine-grained Access Control mechanism for database outsourcing service”, in: Information Security and Intelligence Control (ISIC), IEEE, 65–69 [41] Hwang Jung Yeon, et al.(2015), “New efficient batch verification for an identity-based signature scheme”, Security and Communication Networks, (15), 2524–2535 [42] Ismail E S Tahat N M F (2011), “A New Signature Scheme Based on Multiple Hard Number Theoretic Problems”, CN, 2011, issn: 2090-4355, 109 doi: 10.5402/2011/231649, url: https://doi.org/10.5402/2011/ 231649 [43] Ismail Eddie Shahril, Tahat NMF, Ahmad Rokiah R, (2008), “A new digital signature scheme based on factoring and discrete logarithms”, Journal of mathematics and statistics, (4), 222–225 [44] Jain Rohit, Prabhakar Sunil, (2013), “Trustworthy data from untrusted databases”, in: Data Engineering (ICDE), 2013 IEEE 29th International Conference on, IEEE, 529–540 [45] Jiang S Et al.(2019), “Publicly Verifiable Boolean Query Over Outsourced Encrypted Data”, IEEE Transactions on Cloud Computing, (3), 799–813 [46] Katz Jonathan, et al.(1996), Handbook of applied cryptography, CRC press [47] Kittur Apurva S, Jain Ashu, Pais Alwyn Roshan, (2017), “Fast verification of digital signatures in IoT”, in: International Symposium on Security in Computing and Communication, Springer, 16–27 [48] Kittur Apurva S, Pais Alwyn R, (2019), “A new batch verification scheme for ECDSA signatures”, Sadhana, 44 (7), p 157 [49] Lee N-Y, Hwang T, (1996), “Modified Harn signature scheme based on factorising and discrete logarithms”, IEE Proceedings-Computers and Digital Techniques, 143 (3), 196–198 [50] Li Jin, et al.(2015), “L-EncDB: A lightweight framework for privacypreserving data queries in cloud computing”, Knowledge-Based Systems, 79, 18–26 110 [51] Lim Chae Hoon, Lee Pil Joong, (1998), “A study on the proposed Korean digital signature algorithm”, in: International Conference on the Theory and Application of Cryptology and Information Security, Springer, 175–186 [52] Liu Jingwei, et al.(2018), “A large-scale concurrent data anonymous batch verification scheme for mobile healthcare crowd sensing”, IEEE Internet of Things Journal, (2), 1321–1330 [53] Mallaiah Kurra, Ramachandram S (2014), “Applicability of Homomorphic Encryption and CryptDB in Social and Business Applications: Securing Data Stored on the Third Party Servers while Processing through Applications”, International Journal of Computer Applications, 100, 5–19, issn: 0975-8887 [54] Mykletun Einar, Narasimha Maithili, Tsudik Gene, (2006), “Authentication and integrity in outsourced databases”, ACM Transactions on Storage (TOS), (2), 107–138 [55] Naccache David, et al (1994), “Can DSA be improved?—Complexity trade-offs with the digital signature standard—”, in: Workshop on the Theory and Application of of Cryptographic Techniques, Springer, 77–85 [56] Namasudra Suyel, Roy Pinki, (2016), “Secure and efficient data access control in cloud computing environment: A survey”, Multiagent and Grid Systems, 12 (2), 69–90 [57] Narasimha Maithili, Tsudik Gene, (2005), “DSAC: An Approach to Ensure Integrity of Outsourced Databases using Signature Aggregation and Chaining.”, IACR Cryptology ePrint Archive, 2005, p 297 111 [58] Niaz Muhammad Saqib, Saake Gunter, (2015), “Merkle Hash Tree based Techniques for Data Integrity of Outsourced Data.”, in: GvD, 66–71 [59] OpenStars, url: https://github.com/openstars (visited on 10/2019) [60] Popa Raluca Ada, et al.(2012), “CryptDB: Processing queries on an encrypted database”, Communications of the ACM, 55, 103–111, issn: 0001-0782 [61] Porticor Cloud Security - Overview | Crunchbase, url: https://www crunchbase.com/organization/porticor-cloud-security (visited on 10/2019) [62] Rabin Michael O, Digitalized signatures and public-key functions as intractable as factorization, tech rep., Massachusetts Inst of Tech Cambridge Lab for Computer Science, 1979 [63] Rivest Ronald L Shamir Adi, Adleman Leonard, (1978), “A method for obtaining digital signatures and public-key cryptosystems”, Communications of the ACM, 21 (2), 120–126 [64] Schnorr Claus-Peter, (1989), “Efficient identification and signatures for smart cards”, in: Conference on the Theory and Application of Cryptology, Springer, 239–252 [65] Shao Zuhua, (2001), “Batch verifying multiple DSA-type digital signatures”, Computer Networks, 37 (3-4), 383–389 [66] Sharma Priya P, Navdeti Chandrakant P, (2014), “Securing big data hadoop: a review of security issues, threats and solution”, Int J Comput Sci Inf Technol, (2), pp 2126–2131 [67] Shastri S Kresman R Lee J K (2015), “An Improved Algorithm for Querying Encrypted Data in the Cloud”, in: 2015 Fifth Interna- 112 tional Conference on Communication Systems and Network Technologies (CSNT), 653–656 [68] Shi Juwei, et al.(2015), “Clash of the titans: Mapreduce vs spark for large scale data analytics”, Proceedings of the VLDB Endowment, (13), 2110–2121 [69] Shim Kyung-Ah, (2012), “A round-optimal three-party ID-based authenticated key agreement protocol”, Information Sciences, 186 (1), 239–248 [70] Song Wei, et al.(2017), “Tell me the truth: Practically public authentication for outsourced databases with multi-user modification”, Information Sciences, 387, 221–237 [71] Thales eSecurity: Cloud and Data Security | Encryption | Key Management | Digital Payment Security Solutions, url: https : / / www thalesesecurity.com/ (visited on 10/2019) [72] Thanh Trung Nguyen, Minh Hieu Nguyen, (2015), “Zing database: highperformance key-value store for large-scale storage service”, Vietnam Journal of Computer Science, (1), 13–23 [73] The Linux FUSE (Filesystem in Userspace) interface, Oct 2019, url: https://github.com/libfuse/libfuse (visited on 10/2019) [74] The Office of Inadequate Security: DataBreaches.net, url: https : / / www.databreaches.net/ (visited on 10/2019) [75] TPC-H, url: http://www.tpc.org/tpch/ (visited on 10/2019) [76] Tu Stephen, et al (2013), “Processing analytical queries over encrypted data”, in: Proceedings of the VLDB Endowment, vol 6, VLDB Endowment, 289–300 113 [77] Vangoor Bharath Kumar Reddy, Tarasov Vasily, (2017), “To FUSE or Not to FUSE: Performance of User-Space File Systems”, in: 15th USENIX Conference on File and Storage Technologies (FAST) 17, 59–72 [78] Vishnoi Sushila, Shrivastava Vishal, (2012), “A new DigitalSignature Algorithm based on Factorization and Discrete Logarithm problem” [79] Wang Ching-Te, Lin Chu-Hsing, Chang Chin-Chen, (2003), “Signature schemes based on two hard problems simultaneously”, in: 17th International Conference on Advanced Information Networking and Applications, 2003 AINA 2003 IEEE, 557–560 [80] Wang Lei, et al (2017), “Optimization of leveldb by separating key and value”, in: 2017 18th International Conference on Parallel and Distributed Computing, Applications and Technologies (PDCAT), IEEE, 421–428 [81] Wang Yimin, et al.(2016), “ECPB: Efficient Conditional Privacy-Preserving Authentication Scheme Supporting Batch Verification for VANETs.”, IJ Network Security, 18 (2), 374–382 [82] Wang Zheng-Fei, Tang Ai-Guo, (2010), “Implementation of encrypted data for outsourced database”, in: Computational Intelligence and Natural Computing Proceedings (CINC), 2010 Second International Conference on, vol 2, IEEE, 150–153 [83] World’s Biggest Data Breaches & Hacks, Information is Beautiful, url: https://informationisbeautiful.net/visualizations/worldsbiggest-data-breaches-hacks/ (visited on 10/2019) [84] Xiang Tao, et al.(2016), “Processing secure, verifiable and efficient SQL over outsourced database”, Information Sciences, 348, 163–178 114 [85] Yang Anjia, et al.(2015), “A new ADS-B authentication framework based on efficient hierarchical identity-based signature with batch verification”, IEEE Transactions on Services Computing, 10 (2), 165–175 [86] Yang F Et al (2015), “Optimizing NoSQL DB on Flash: A Case Study of RocksDB”, in: 2015 IEEE 12th Intl Conf on Ubiquitous Intelligence and Computing and 2015 IEEE 12th Intl Conf on Autonomic and Trusted Computing and 2015 IEEE 15th Intl Conf on Scalable Computing and Communications and Its Associated Workshops (UIC-ATC-ScalCom), 1062–1069 [87] Yin Linzi, et al.(2019), “An efficient attribute reduction algorithm using MapReduce”, Journal of Information Science, 1–17 [88] Yuan Jiawei, Yu Shucheng, (2013), “Flexible and publicly verifiable aggregation query for outsourced databases in cloud”, in: Communications and network security (cns), 2013 ieee conference on, IEEE, 520–524 [89] Zhang Q Li S Xu J (2014), “QScheduler: A Tool for Parallel Query Processing in Database Systems”, in: 2014 19th International Conference on Engineering of Complex Computer Systems (ICECCS), 73–76 [90] Zhang Yupeng, Katz Jonathan, Papamanthou Charalampos, (2015), “Integridb: Verifiable SQL for outsourced databases”, in: Proceedings of the 22nd ACM SIGSAC Conference on Computer and Communications Security, ACM, 1480–1491 [91] Zych Anna, Petkovi´c Milan, Jonker Willem, (2008), “Efficient key management for cryptographically enforced access control”, Computer Standards & Interfaces, 30 (6), 410–417 ... GIÁO DỤC VÀ ĐÀO TẠO BỘ QUỐC PHÒNG HỌC VIỆN KỸ THUẬT QUÂN SỰ HỒ KIM GIÀU NGHIÊN CỨU PHÁT TRIỂN GIẢI PHÁP XÁC THỰC AN TOÀN VÀ QUẢN LÝ KHỐ CHO CƠ SỞ DỮ LIỆU TH NGỒI Chun ngành: CƠ SỞ TOÁN HỌC CHO TIN... 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ý. .. lên làm giảm khả xử lý máy chủ Ngoài ra, nghiên cứu chưa quan tâm giải toán xác thực liệu, quản lý thay đổi khoá Tác giả Phạm Thị Bạch Huệ [1] nghiên cứu phát triển số giải pháp bảo mật bảo vệ