1. Trang chủ
  2. » Luận Văn - Báo Cáo

Luận văn thạc sĩ Khoa học máy tính: Ứng dụng đảm bảo tính riêng tư cho dữ liệu đồ thị trong cơ sở dữ liệu Neo4J

44 1 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Ứng dụng Đảm bảo Tính Riêng Tư Cho Dữ Liệu Đồ Thị Trong Cơ Sở Dữ Liệu Neo4J
Tác giả Trần Thế Huy
Người hướng dẫn PGS. TS Đặng Trần Khánh
Trường học Đại học Quốc gia TP. HCM
Chuyên ngành Khoa học Máy Tính
Thể loại Luận văn thạc sĩ
Năm xuất bản 2021
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 44
Dung lượng 2,05 MB

Cấu trúc

  • 1.1 Tổng quan về cơ sở dữ liệu đồ thị thuộc tính (12)
  • 1.2 Cơ sở dữ liệu đồ thị Neo4j (13)
  • 1.3 Đặt vấn đề đảm bảo tính riêng tư cho dữ liệu đồ thị thuộc tính (14)
  • 1.4 Các công trình liên quan (16)
  • 1.5 Cây khái quát hoá (Generalization hierarchy) (18)
  • 1.6 Thuật toán graph pertubation (19)
  • 1.7 Thuật toán ẩn danh k-Degree anonymity (19)
  • 2.1 Thuật toán Mondrian Multidimensional K-Anonymity (20)
  • 2.2 Thuật toán k-Degree anonymity (22)
  • 2.3 Các độ đo kết quả (22)
    • 2.3.1 Discernability metric (22)
    • 2.3.2 Normalized average equivalence class size metric (23)
    • 2.3.3 Normalized Certainty Penalty metric (23)
    • 2.3.4 Degree anonymization cost (23)
  • 2.4 Các câu truy vấn cơ bản của ngôn ngữ Cypher (24)
    • 2.4.1 Tạo nút trong mạng (24)
    • 2.4.2 Tạo quan hệ giữa các nút (24)
    • 2.4.3 Xoá nút trong mạng (24)
    • 2.4.4 Xoá quan hệ giữa các nút (25)
    • 2.4.5 Cập nhật giá trị nút (25)
    • 2.4.6 Tìm kiếm nút hay quan hệ trong mạng (25)
  • 3.1 Kiến trúc ứng dụng (25)
  • 3.2 Các công nghệ để hiện thực ứng dụng (26)
    • 3.2.1 Yêu cầu hệ thống (26)
    • 3.2.2 Thư viện xây dựng giao diện người dùng ReactJS (27)
    • 3.2.3 Phần mềm Node.js (27)
    • 3.2.4 Ngôn ngữ lập trình Python (27)
  • 3.3 Tổng quan về mã nguồn ứng dụng (28)
  • 3.4 Chức năng ứng dụng (28)
    • 3.4.1 Ẩn danh hoá dữ liệu bằng giải pháp trên cây khái quát (28)
    • 3.4.2 Ẩn danh hoá dữ liệu bằng thuật toán Mondrian Multidimensional K-Anonymity (33)
    • 3.4.3 Áp dụng thuật toán ẩn danh hoá đồ thị k-Degree anonymity (35)
    • 3.4.4 Đăng ký và đăng nhập (36)
    • 3.4.5 Quản lý kết nối đến các cơ sở dữ liệu đồ thị thuộc tính (37)
    • 3.4.6 Xem dữ liệu cơ sở dữ liệu đồ thị (Database Overview) (38)
  • 4.1 Cấu hình máy tính chạy kiểm thử (40)
  • 4.2 Kết quả kiểm thử với thuật toán Mondrian (40)
  • 4.3 Kết quả kiểm thử với thuật toán ẩn danh đồ thị k-Degree anonymity và Graph pertubations (40)

Nội dung

Tổng quan về cơ sở dữ liệu đồ thị thuộc tính

Cơ sở dữ liệu đồ thị [1] là bất kỳ hệ thống lưu trữ nào sử dụng cấu trúc đồ thị với các nút và cạnh, để biểu diễn và lưu trữ dữ liệu

Mô hình đồ thị được sử dụng phổ biến nhất trong ngữ cảnh của cơ sở dữ liệu đồ thị được gọi là mô hình đồ thị thuộc tính - Attributed Graph Model (có nhãn) Mô hình đồ thị thuộc tính chứa các thực thể được kết nối (các nút) có thể chứa bất kỳ số lượng thuộc tính (thuộc tính) được biểu thị dưới dạng cặp khóa-giá trị Các nút và cạnh có thể được gắn thẻ bằng các nhãn thể hiện các vai trò khác nhau của chúng trong miền ứng dụng Một số cách tiếp cận gọi nhãn là loại Nhãn cũng có thể dùng để đính kèm siêu dữ liệu — chỉ mục hoặc thông tin ràng buộc — vào một số nút nhất định

Các mối quan hệ cung cấp các kết nối có hướng, có liên quan về mặt ngữ nghĩa (các cạnh) giữa hai nút Một mối quan hệ luôn có một hướng, một nút bắt đầu và một nút kết thúc Giống như các nút, các mối quan hệ có thể có bất kỳ thuộc tính nào Thông thường, các mối quan hệ có các thuộc tính định lượng, chẳng hạn như trọng lượng, chi phí, khoảng cách, xếp hạng hoặc khoảng thời gian Thuộc tính làm cho các nút và các cạnh mang tính mô tả và thực tế hơn Cả hai nút và cạnh đều được xác định bởi một mã định danh duy nhất

Ví dụ về mô hình đồ thị thuộc tính (Hình 1-1) với các thực thể là: Employee, Company và City Các mối quan hệ là: Company HAS_STAFF Employee { Tên:

“Johnny Chen” ; Năm sinh: 1994 } hay Company LOCATED_IN City

Hình 1-1 Ví dụ về mô hình đồ thị thuộc tính

2 Khi các mối quan hệ được lưu trữ hiệu quả, hai nút có thể chia sẻ bất kỳ số lượng hoặc mối quan hệ nào thuộc các loại khác nhau mà không làm giảm hiệu suất Lưu ý rằng mặc dù chúng được định hướng nhưng các mối quan hệ luôn có thể được điều hướng bất kể hướng nào Trên thực tế, mô hình đồ thị thuộc tính liên quan đến cấu trúc dữ liệu trong lý thuyết đồ thị được gọi là “labelled and directed attributed multigraphs”

Cơ sở dữ liệu đồ thị tập trung vào:

• Xử lý dữ liệu được kết nối tốc độ cao

• Linh hoạt trong các mô hình dữ liệu sử dụng đằng sau các đồ thị được sử dụng

• Hiệu suất đặc biệt cao cho các lần đọc cục bộ, bằng cách duyệt qua cây.

Cơ sở dữ liệu đồ thị Neo4j

Cơ sở dữ liệu đồ thị Neo4j [2] là một cơ sở dữ liệu đồ thị gốc, NoSQL, mã nguồn mở, cung cấp phần phụ trợ giao dịch tuân thủ ACID cho các ứng dụng Sự phát triển ban đầu bắt đầu vào năm 2003, nhưng nó đã được công bố rộng rãi từ năm

2007 Mã nguồn, được viết bằng Java và Scala, có sẵn miễn phí trên GitHub hoặc dưới dạng tải xuống ứng dụng máy tính thân thiện với người dùng Neo4j có cả phiên bản cộng đồng và phiên bản doanh nghiệp của cơ sở dữ liệu Phiên bản doanh nghiệp bao gồm tất cả những gì cộng đồng phải cung cấp, cùng với các yêu cầu bổ sung dành cho doanh nghiệp như khả năng sao lưu, phân cụm và chuyển đổi dự phòng

Neo4j được gọi là cơ sở dữ liệu đồ thị gốc vì nó triển khai hiệu quả mô hình đồ thị thuộc tính xuống cấp lưu trữ Điều này có nghĩa là dữ liệu được lưu trữ chính xác như khi bạn viết bảng trắng và cơ sở dữ liệu sử dụng con trỏ để điều hướng và duyệt qua đồ thị Trái ngược với xử lý đồ thị hoặc thư viện trong bộ nhớ, Neo4j cũng cung cấp các đặc điểm cơ sở dữ liệu đầy đủ, bao gồm tuân thủ giao dịch ACID, hỗ trợ cụm và chuyển đổi dự phòng thời gian chạy - làm cho nó phù hợp để sử dụng đồ thị cho dữ liệu trong các kịch bản sản xuất

Một số tính năng cụ thể sau làm cho Neo4j rất phổ biến trong số các nhà phát triển, kiến trúc sư và nhà quản trị cơ sở dữ liệu:

• Cypher, một ngôn ngữ truy vấn khai báo tương tự như SQL, nhưng được tối ưu hóa cho đồ thị Hiện được sử dụng bởi các cơ sở dữ liệu khác như SAP HANA Graph và Redis graph thông qua dự án OpenCypher

• Constant time traversals (Thời gian ngắn để duyệt) trong đồ thị lớn cho cả chiều sâu và chiều rộng do biểu diễn hiệu quả các nút và mối quan hệ Cho phép mở rộng quy mô lên đến hàng tỷ nút trên phần cứng vừa phải

• Cơ sở dữ liệu đồ thị thuộc tính linh hoạt có thể thích ứng theo thời gian, có thể hiện thực hóa và thêm các mối quan hệ mới sau này để cập nhật và tăng tốc suy suất dữ liệu khi nhu cầu kinh doanh thay đổi

• Trình điều khiển cho các ngôn ngữ lập trình phổ biến, bao gồm Java, JavaScript, NET, Python,…

Các công trình liên quan

Nói về ẩn danh hoá dữ liệu, đầu tiên rất nổi tiếng và đơn giản là mô hình k- anonymity [6] Mô hình đưa ra một ví dụ về tấn công quyền riêng tư như sau Giả sử kẻ tấn công có 2 tập dữ liệu (Hình 1-2 Mô tả về 2 tập dữ liệu) [6]:

• Tập thứ nhất là bảng dữ liệu danh sách bầu cử có tên, địa chỉ, giới tính, số vùng và ngày sinh

• Tập thứ hai là bảng bệnh án bệnh nhân gồm tên bệnh của nhiều bệnh nhân đã xoá đi cột tên, tuy nhiên vẫn còn các cột như giới tính, số vùng và ngày sinh

Dựa vào các cột dữ liệu trùng nhau, kẻ tấn công có thể liên kết dữ liệu của tập dữ liệu thứ nhất qua tập dữ liệu thứ hai để biết chính xác bệnh nhân nào bị bệnh gì, tên gì và địa chỉ ở đâu

Hình 1-2 Mô tả về 2 tập dữ liệu

Từ đó, trong ví dụ này, tên bệnh thuộc tập các cột dữ liệu nhạy cảm Thêm nữa, bài báo xem các cột: giới tính, số vùng và ngày sinh là tập các thuộc tính bán định danh hay còn gọi là tập quasi-identifier Nghĩa là nếu ai đó có được dữ liệu gồm giới tính, số vùng và ngày sinh thì sẽ có thể xác định lại một người cách liên kết lại các dữ liệu từ bảng thứ hai về bảng thứ nhất Để giải quyết cho vấn đề này, mô hình k-anonymity với ý tưởng chính như sau Một tập dữ liệu được cho là thoả k-anonymity nếu thông tin của mỗi người không thể phân biệt được với ít nhất k - 1 cá nhân có thông tin cũng xuất hiện trong đó Ví dụ,

6 dữ liệu sẽ được biến đổi thoả mô hình k-anonymity (Hình 1-3 Bảng dữ liệu đã biến đổi để thoả mô hình k-anonymity với k=2) [6] với k = 2

Hình 1-3 Bảng dữ liệu đã biến đổi để thoả mô hình k-anonymity với k=2

Tuy nhiên, mô hình k-anonymity vẫn có những điểm yếu nhất nhất định của nó như có thể bi tấn công dựa trên kiến thức đã biết hay bị tấn công đồng nhất Điều này dẫn đến mô hình khắc phục dạng tấn công đồng nhất cho k-anonymity, là mô hình l- diversity [7]

Mô hình l-diversity với ý tưởng chính là: Một lớp dữ liệu thỏa mãn mô hình l- diversity khi có ít nhất L giá trị biểu diễn tốt phân biệt cho thuộc tính nhạy cảm Mô hình l-diversity có ưu điểm là có thể cản trở kẻ tấn công tận dụng phân phối toàn cục của tập dữ liệu với các giá trị dữ liệu của thuộc tính để suy ra thông tin về các giá trị dữ liệu nhạy cảm Tuy nhiên trong tập dữ liệu thực, các giá trị thuộc tính có thể bị lệch hoặc tương tự về mặt ngữ nghĩa vì vậy mô hình t-closeness được đề xuất để để khắc phục nhược điểm đó

Mô hình t-closeness: Một lớp tương đương được cho là thoả t-closeness nếu khoảng cách giữa phân phối của một thuộc tính nhạy cảm trong lớp này và phân phối của thuộc tính trong toàn bộ bảng không quá ngưỡng t Một bảng được cho thỏa t- closeness nếu tất cả các lớp tương đương thoả t-closeness [8]

Hỗ trợ xây dựng mô hình k-anonymity trên có thể hiện thực bằng các thuật như: Suppression hay Generalization [9] Với kỹ thuật Generalization là kỹ thuật tổng quát hoá dữ liệu, ví dụ ta có 1 giá trị ngày sinh trong bảng dữ liệu là ‘24-01-1994’ chúng ta có thể tổng quát hoá lại thành ‘01-1994’ hay ‘1994’ hay ‘19**’ Với kỹ thuật Suppression ta sẽ loại bỏ những giá trị trong bảng dữ liệu Ví dụ (Hình 1-4 Ví dụ minh hoạ kỹ thuật Suppression) [9]

Hình 1-4 Ví dụ minh hoạ kỹ thuật Suppression

Tổng quát các vấn đề thì có công trình “Graph-Based Privacy-Preserving Data Publication” [10] Bài báo đề xuất một framework bảo vệ quyền riêng tư dữ liệu mở bao gồm nhiều kiểu dữ liệu như mạng xã hội, định nghĩa mạng ẩn danh và các độ đo hỗ trợ.

Cây khái quát hoá (Generalization hierarchy)

Việc ẩn danh hoá còn được kết hợp với việc mã hoá bằng cây khái quát [11] Cách mã hoá này có thể áp dụng cho dữ liệu có tính liên tục như số hoặc rời rạc Ý

8 tưởng của việc áp dụng cây khái quát nhầm mục tiêu loại bỏ các bảng ghi vi phạm quyền riêng tư và thay thế bằng dữ liệu khái quát hơn trong một cây

Ví dụ dữ liệu là màu sắc có khoảng từ 8 màu

Cấp 0: 4 nhóm gồm: “xanh”, “đỏ”, “tím”, “vàng”

Cấp 1: 2 nhóm gồm “xanh-đỏ” và “tím-vàng”

Cấp 2: Chia thành 1 nhóm “màu” (tất cả giá trị được khái quát hoá về 1 giá trị màu)

Với giá trị đỏ và khái quát hoá cấp 1 thì giá trị sẽ được mã hoá thành nhãn

“xanh-đỏ” Như vậy việc biến đổi giá trị với cấp độ khái quát càng cao, thì mức độ đảm bảo quyền riêng tư càng tốt Lúc này cây khái quát sẽ được biểu diễn (Hình 1-5

Ví dụ cây khái quát) như sau:

Thuật toán graph pertubation

Thuật toán graph pertubations [12] thuộc nhóm thuật toán nhiễu loạn ngẫu nhiên Đồ thị mới Gp = (Vp, Ep) được xây dựng từ Gna thông qua một chuỗi xóa m cạnh sau đó là chèn m cạnh Các phép xóa được chọn ngẫu nhiên đồng nhất từ tập hợp tất cả các cạnh tồn tại trong Gna Các phần chèn được chọn ngẫu nhiên đồng nhất từ tập hợp tất cả các cạnh không tồn tại của đồ thị tạm thời.

Thuật toán ẩn danh k-Degree anonymity

Nổi bật gần đây nhất có công trình lớn về ẩn danh đồ thị là “Towards Plausible Graph Anonymization” [13] Bài báo chỉ ra điểm yếu nổi bật nhất của các thuật toán ẩn danh đồ thị đó là: Khi tạo ra thêm các cạnh giả trong đồ thị, thuật toán không tính đến các đặc điểm chính của cấu trúc đồ thị, cụ thể như “Vấn đề dự đoán liên kết cho

9 mạng xã hội” [14] Từ đó, bài báo đề xuất ra các giải thuật, nổi bật trong đó là giải thuật k-Degree anonymity [15]

Do k-Degree anonymity đáp ứng được khái niệm chính là mô hình k-anonymity trong cơ sở dữ liệu riêng tư mà vẫn hạn chế thay đổi dữ liệu ban đầu nên ứng dụng tập trung vào triển khai k-Degree anonymity Giải thuật giả định rằng kẻ tấn công có kiến thức trước về số liên kết nút mục tiêu trong mạng xã hội, cụ thể như biết được số lượng liên kết bạn bè của mục tiêu để xác định được mục tiêu Để gảm thiểu điểm yếu này k-Degree anonymity sửa đổi đồ thị ban đầu, sao cho tạo ra đồ thị ẩn danh, mỗi người chia sẻ cùng một mức độ (degree) với ít nhất k -1 người dùng khác

2 CÁC PHƯƠNG PHÁP ĐỀ XUẤT Ứng dụng có 2 chế độ cho người dùng ẩn danh hoá dữ liệu cá nhân ở các nút của đồ thị với thuật toán k-anonymity và l-diversity, gồm:

• Run with Optimal Method - Ứng dụng sẽ dùng thuật toán Mondrian Multidimensional [16] để ẩn danh hoá dữ liệu

• Run with Manually Configs - Ứng dụng sẽ dùng các thông số người dùng cung cấp để ẩn danh hoá dữ liệu Ứng dụng còn dùng thêm thuật toán để ẩn danh đồ thị là thuật toán k-Degree Anonymity

Sau quá trình ẩn danh hoá, ứng dụng tiến hành áp dụng các độ đo phổ biến để đánh giá kết quả là Discernability metric (CDM) [16], Normalized average equivalence class size metric (CAVG) [16] và Information loss of Generalization [17] Ứng dụng sử dụng ngôn ngữ Cypher để truy xuất và lưu trữ dữ liệu trong cơ sở dữ liệu đồ thị Neo4j trong quá trình ẩn danh hoá dữ liệu.

Thuật toán Mondrian Multidimensional K-Anonymity

Thuật toán Mondrian [16] là 1 thuật toán greedy partitioning algorithm Giống như xây dựng kd-tree, độ phức tạp thời gian là O (nlogn), trong đó n = | T | Thuật toán kiểm tra nếu có thể phân chia 1 phân vùng thì sẽ tìm giá trị trung bình của phân vùng là điểm phân chia Sau đó thuật toán tiếp tục đệ quy và lấy điểm chia đặt vào phân vùng con bên trái và phân vùng con bên phải để tiếp tục xử lý bằng đệ quy

Cơ chế chính của giải thuật là:

Anonymize(partition) if (no allowable multidimensional cut for partition) return φ : partition → summary else dim ← choose dimension() fs ← frequency set(partition, dim) splitV al ← find median(f s) lhs ← {t ∈ partition : t.dim ≤ splitV al} rhs ← {t ∈ partition : t.dim > splitV al} return Anonymize(rhs) ∪ Anonymize(lhs)

Ví dụ như sau, đối với việc ẩn danh Mondrian có thể khái quát động thành những khoảng chồng lên nhau, tuy nhiên vẫn đảm bảo được mô hình k-anonymization Ví dụ ta có các điểm dữ liệu 2 cột Age và Zipcode Sau khi áp dụng giải thuật có thể minh hoạ như cách phân cụm (Hình 2-1 Ví dụ điểm dữ liệu và áp dụng Mondrian) và kết quả đạt được (Hình 2-2 Bảng dữ liệu sau khi ẩn danh bằng Mondrian)

Hình 2-1 Ví dụ điểm dữ liệu và áp dụng Mondrian

Thuật toán k-Degree anonymity

Ứng dụng áp dụng triển khai với k-Degree vì cách ẩn danh của đảm bảo được đặc trưng cấu trúc của đồ thị và kết quả là đồ thị đã ẩn danh vẫn có thể tích tục được dùng truy vấn bằng ngôn ngữ Cypher trong Neo4j

Thuật toán k-Degree anonymity [15]gồm 2 bước chính như sau: Đầu vào là: đồ thị G(V, E) với tập degree sequence d và số dương k

Bước 1: Từ d, tạo một tập degree sequence 𝑑$ thoả ẩn danh k để độ đo degree anonymization cost:

𝐷 ! &𝑑$, 𝑑( = 𝐿 " (𝑑$ − 𝑑) là nhỏ nhất Bước 2: Từ tập degree sequence 𝑑$ chúng ta tạo ra đồ thị 𝐺0&𝑉, 𝐸0( sao cho

𝑑 #$ = 𝑑$ 𝑣à 𝐸0 ∩ 𝐸 = 𝐸 hoặc phiên bản relaxed là 𝐸0 ∩ 𝐸 ≈ 𝐸

Một số định nghĩa liên quan

Tập d được gọi là tập degree sequence của đồ thị G(V,E) là tập có các phần tử sắp xếp với d(1) ≥ d(2) ≥ … ≥ d(n), với di là độ của một đỉnh trong đồ thị và n là số đỉnh.

Các độ đo kết quả

Discernability metric

Discernability metric (CDM) [16] đã được sử dụng như một độ đo tiêu chuẩn phổ biến trong nhiều nghiên cứu Đây là một số đo bằng tổng hình phạt cho mỗi bản ghi

12 dựa trên kích thước của lớp tương đương chứa bản ghi và đo lường số lượng bản ghi có thể phân biệt được với nhau Công thức như sau:

Với E là một lớp tương đương.

Normalized average equivalence class size metric

Normalized average equivalence class size metric (CAVG) [16] đo lường mức độ tiếp cận của phân vùng trong trường hợp tốt nhất Chỉ số này có nghĩa là chất lượng của dữ liệu ẩn danh được đo bằng kích thước trung bình của các lớp tương đương và mục tiêu của nó là giảm kích thước lớp tương đương trung bình được chuẩn hóa Công thức như sau:

G(𝑘)Với total_records là tổng số bảng ghi, total_quiv_classes là tổng số lớp tương đương và thông số k ẩn danh.

Normalized Certainty Penalty metric

Với cây phân cấp tổng quát hóa ℋ, Normalized Certainty Penalty (NCP) [18] cho một mục i trong ℐ được định nghĩa là:

|ℐ| , 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒 Với 𝚤̃ kí hiệu cho phần tử đã ẩn danh hoá, thuộc một lá của cây ℋ

Và subtr : ℐ̃ → [1, |ℐ|] là hàm đếm số thứ tự cấp độ nốt lá chứa 𝚤̃

Dựa trên hàm này, có thể tính NCP của một tập dữ liệu D như sau:

Degree anonymization cost

Chi phí 𝐿 " (𝑑$ − 𝑑) là chi phí ẩn danh độ, được tính bằng công thức sau:

13 Với 𝑑$ là tập degree sequence đã bị ẩn danh hoá k từ tập d Và d(v) là hàm lấy số độ của đỉnh v.

Các câu truy vấn cơ bản của ngôn ngữ Cypher

Tạo nút trong mạng

Với n là thông tin nút cần tạo

Ví dụ: CREATE (n:Person {name: 'Huy'}) Với “Person” là nhãn của nút n cần tạo và “Huy” là giá trị của thuộc tính name của nút n.

Tạo quan hệ giữa các nút

Cú pháp tạo 1 quan hệ cho 2 nút trong mạng:

WHERE (điều kiện để tìm được a và b)

WHERE a.name = 'Huy' AND b.name = 'Chi'

Giải thích ví dụ: Câu truy vấn trên để tạo 1 quan hệ cho 2 nút có name là Huy và Chi với loại quan hệ là KNOWS Trong thực tế tạm hiểu là người tên Huy biết(KNOWS) người tên Chi Mối quan hệ là biết.

Xoá nút trong mạng

14 MATCH (n:Person {name: ‘Huy’}) DELETE n

Giải thích ví dụ: Xoá nút có thuộc tính name là Huy.

Xoá quan hệ giữa các nút

MATCH (n {name: 'Huy'})-[r:KNOWS]->() DELETE r

Giải thích ví dụ: Xoá mối quan hệ KNOWS của nốt có name là Huy.

Cập nhật giá trị nút

Cập nhật thuộc tính property1 của nút n thành giá trị value1.

Tìm kiếm nút hay quan hệ trong mạng

Tìm kiếm các nút b sao cho có quan hệ r với a

MATCH (a {name: 'Huy'})-[:KNOWS]->(b) RETURN b.name

Tìm tên những người b, mà a tên Huy và a có mối quan hệ KNOWS với b

3 TỔNG QUAN VỀ ỨNG DỤNG

Kiến trúc ứng dụng

Ứng dụng gồm 3 thành phần chức năng chính (Hình 3-1 Kiến trúc ứng dụng):

• Giao diện người dùng là ứng dụng web application – UI Web(Khối số 1)

• Khối API Server để nhận các yêu cầu từ người dùng và điều khiển dòng dữ liệu (Khối số 2)

• Khối ẩn danh hoá dữ liệu để nhận các yêu cầu của người dùng (Khối số 3), đây là nơi tiếp nhận 3 thành phần chính từ yêu cầu là thông số để cấu hình cho

15 các thuật tóan ẩn danh; thông tin cấu hình của cơ sở dữ liệu đồ thị nguồn và đích

• Trong quá trình vận hành, ứng dụng lưu trữ thông tin người dùng tại cơ sỡ dữ liệu NOSQL MongoDb.

Các công nghệ để hiện thực ứng dụng

Yêu cầu hệ thống

Hệ điều hành: Ubuntu version 20.4 hoặc MacOS version 11.4

Thư viện xây dựng giao diện người dùng ReactJS

ReactJS là thư viện lập trình ngôn ngữ JavaScript, nó mở và miễn phí Thư viện đang được bảo trì bởi công ty Facebook và cộng đồng các lập trình viên độc lập ReactJS tập trung vào quản lý trạng thái ứng dụng và render giao diện Thư viện được giới thiệu lần đầu tiên vào ngày 29-05-2013 và được chia sẻ công khai tại https://github.com/facebook/react Ứng dụng sử dụng ReactJS để xây dựng khối giao diện người dùng web application (UI Web).

Phần mềm Node.js

Node.js là phần mềm để viết máy chủ web có tính mở rộng và được viết bằng ngôn ngữ JavaScript Node.js sử dụng kỹ thuật driven-event, tức là hướng điều khiển theo sự kiện và sử lý bắt đồng bộ để tăng hiệu năng ứng dụng Node.js hiện tại được chia sẻ tài liệu cũng như bộ cài đặt tại trang https://nodejs.org/en/ Ứng dụng sử dụng phần mềm Node.js để viết khối máy chủ (API Server) để nhận các yêu cầu từ người dùng thông qua khối giao diện Từ đây mỗi khi có yêu cầu ẩn danh hoá dữ liệu của người dùng, ứng dụng sẽ sinh ra tệp task dạng json và chạy mã

Ngôn ngữ lập trình Python

Python là ngôn ngữ lập trình được tạo ra bởi tác giả Guido van Rossum vào năm 1991 Python cho phép chạy ứng dụng ở dạng thông dịch nên tốt độ triển khai và nâng cấp nhanh cho các yêu cầu xây dựng data pipeline để khai phá dữ liệu Có thể tải và cài đặt tại trang chủ https://www.python.org/ Ứng dụng xây dựng chức năng ẩn danh trong các thư mục có chứa script python khác nhau Từ đấy người dùng dễ nâng cấp cũng như mở rộng ra thêm nhiều thuật toán khác

Tổng quan về mã nguồn ứng dụng

Ứng dụng sử dụng phần mềm git để quản lý mã nguồn và version Mã nguồn được chia sẻ tại https://github.com/tranthehuy/lvtn.git

Cấu trúc thư mục của ứng dụng bao gồm:

• Tệp README.md chứa thông tin cài đặt ứng dụng và chạy các ứng dụng

• Tệp package.json chứa thông tin cài đặt các thư viện node module để hỗ trợ xây dựng khối giao diện người dùng và khối hệ thống web

• Thư mục src và public chứa mã nguồn ReactJS để xây dựng giao diện người dùng

• Thư mục server chứa mã nguồn Node.js để xây dựng khối hệ thống web nhận yêu cầu từ người dùng để sinh task có dạng json

• Thư mục con serve/anonymazation có chứa các thư mục con như: kdegree, manually, morian-k và morian-l Đây là những khối ứng dụng Python script độc lập để nhận các task yêu cầu ẩn danh từ khối hệ thống web.

Chức năng ứng dụng

Ẩn danh hoá dữ liệu bằng giải pháp trên cây khái quát

Chức năng này của ứng dụng sẽ trải qua 3 trang màn hình chính (Hình 3-2 Các bước ẩn danh dữ liệu cây khái quát):

Hình 3-2 Các bước ẩn danh dữ liệu cây khái quát

Quá trình sử dụng trải qua 4 bước sau:

Bước 1: Tại trang 1, chọn cơ sở dữ liệu nguồn cần biến đổi (Source Database), cơ sở dữ liệu sẽ chứa dữ liệu đã ẩn danh (Destination Database) và nhập câu query Cypher Query truy suất danh sách cạnh hay đỉnh để ẩn danh và chọn chế độ ẩn danh là: “Manual Config” Ví dụ: Hình 3-3 Ví dụ chọn Manual Config đã chọn dữ liệu nguồn là “Neo4j Source Database”, dữ liệu đích là “Neo4j Destination Database 2” và câu query “MATCH (n) RETURN * LIMIT 1001” Câu query có ý nghĩa là lấy

Hình 3-3 Ví dụ chọn Manual Config

Bước 2: Tại trang 1, chọn cấu hình các thuộc tính sẽ ẩn danh, loại dữ liệu các thuộc tính và cấu hình cây khái quát từng thuộc tính Sau khi cấu hình xong người dùng sẽ nhấn nút “Choose solution in Generation Hierarchy” để qua bước tiếp theo

Ví dụ: Hình 3-4 Cấu hình cây khái quát đã chọn 2 thuộc tính native-country và hours-per-week để ẩn danh hoá Với thuộc tính native-country có gíá trị là rời rạc và hours-per-week có giá trị là số liên tục Cây khái quát của từng giá trị là:

Với thuộc tính native-country cây khái quát là: [[["United-States" , "Mexico" ,

"Philippines" , "Puerto-Rico" , "Japan" , "Laos" , "Italy" , "Nicaragua" , "Jamaica" ,

1 Trang cấu hình chạy thuật toán

2 Trang lựa chọn giải pháp ẩn danh

"Hong" , "France"],["?" , "Dominican-Republic" , "Thailand" , "Vietnam" , "India" ,

"England" , "Canada" , "Honduras" , "Ecuador" , "Greece" , "Holand-

Netherlands"]],[["Peru" , "Ireland" , "Haiti" , "South" , "Cambodia" , "Cuba" ,

"Portugal" , "Iran" , "Yugoslavia" , "Trinadad&Tobago"],["Guatemala" ,

"Germany" , "El-Salvador" , "Columbia" , "Poland" , "Taiwan" , "China" ,

"Scotland" , "Hungary" , "Outlying-US(Guam-USVI-etc)"]]]

Với thuộc tính hours-per-week là: [[[1,25],[26,50]],[[51,75],[76,99]]] Ý nghĩa của cấu hình hours-per-week như sau: Đối với ẩn danh cho thuộc tính này cấp độ 0 sẽ được chia vào 4 nhóm là [1,25], [26,50], [51,75], [76,99] Khái quát tại cấp độ 1 sẽ chia thành 2 nhóm là [1,50], [51,99] Khái quát tại cấp độ 2 là [1,99] Còn cấp độ -1, nghĩa là không ẩn danh cho thuộc tính này Các cấp độ này sẽ được kí hiệu cho bước tiếp theo trong phần cây khái quát

Hình 3-4 Cấu hình cây khái quát

20 Bước 3: Trang 2, trang lựa chọn cấu hình trong cây khái quát Dựa trên thông tin cấu hình khái quát cho từng thuộc tính tại bước trước, ứng dụng sẽ tổng hợp lại cây không gian khái quát, mà tại đó, các node trong cây là 1 tổ hợp giải pháp khái quát cho các thuộc tính đã chọn Người dùng sẽ chọn 1 giải pháp, giải pháp sẽ được tô sáng màu cam Sau đó người dùng nhấn nút “Next” để bắt đầu tiến trình ẩn danh

Ví dụ Hình 3-5 Chọn giải pháp ẩn danh thuộc cây khái quát Giải pháp “hours- per-week [1,1]” có nghĩa là sẽ ẩn danh “native-country” cấp độ ẩn danh là 1 và

Hình 3-5 Chọn giải pháp ẩn danh thuộc cây khái quát

Bước 4: Trang 3, xem và nhận kết quả đã ẩn danh Ví dụ: Hình 3-6 Kết quả ẩn danh bằng cây khái quát Sau khi kết thúc quá trình, cây tiến trính sẽ hiện màu xanh 100% đã hoàn tất Phía dưới là khung nhìn với 3 lựa chọn để xem cơ sở dữ liệu đã ẩn danh: xem dạng dữ liệu trực quan, xem dạng dữ liệu dạng bảng từng đỉnh với các thuộc tính và nhập xuất dữ liệu đối với cơ sở dữ liệu đã ẩn danh

Hình 3-6 Kết quả ẩn danh bằng cây khái quát

Dòng dữ liệu của ứng dụng để sinh ra 1 task ẩn danh hoá dữ liệu như sau:

Hình 3-7 Tạo task ẩn danh hoá dữ liệu

22 Bước 1: Người dùng truy cập đến trang tạo task ẩn danh trên UI website Tạo một yêu cầu gởi đến khối API Server, với các yêu cầu ẩn danh hoá dữ liệu

Bước 2: Nếu người dùng chọn ẩn danh với thông số Manual Config ứng dụng sẽ trả về không gian giải pháp

Bước 3: Người dùng chọn 1 giải pháp từ không gian giải pháp

Bước 4: Từ các thông số đã chọn và giải pháp, khối API Server sẽ tạo 1 task ẩn danh hoá để khối ẩn danh Anonymization Module tiến hành đọc cơ sở dữ liệu nguồn và đích để biến đổi

Bước 5: Sau khi Anonymization Module bắt đầu sẽ trả thông tin task về người dùng Từ thông tin đó, người dùng có thể kiểm tra trạng thái task làm đến đâu hay đã xong và hiện lên màn hình UI website.

Ẩn danh hoá dữ liệu bằng thuật toán Mondrian Multidimensional K-Anonymity

Chức năng này của ứng dụng sẽ trải qua 2 trang màn hình chính (Hình 3-8 Cấu hình thuật toán thuật toán Mondrian):

Hình 3-8 Cấu hình thuật toán thuật toán Mondrian

Quá trình sử dụng trải qua các bước sau:

Bước 1: Tại trang 1, chọn cơ sở dữ liệu nguồn cần biến đổi (Source Database), cơ sở dữ liệu sẽ chứa dữ liệu đã ẩn danh (Destination Database) và nhập câu query Cypher Query truy suất danh sách cạnh hay đỉnh để ẩn danh và chọn chế độ ẩn danh là: “l-Diversity” hay “k-Anonymity” và cấu hình thông số k hay l cho thuật toán Ví dụ: Hình 3-9 Ví dụ cấu hình thuật toán thuật toán Mondrian đã chọn dữ liệu nguồn là

“Neo4j Source Database”, dữ liệu đích là “Neo4j Destination Database 2” và câu query “MATCH (n) RETURN * LIMIT 10000” Câu query có ý nghĩa là lấy 10.000

1 Trang cấu hình chạy thuật toán

23 đỉnh để ẩn danh Với thông số l=7 để áp dụng thuật toán Mondrian phù hợp với mô hình l-diversity

Hình 3-9 Ví dụ cấu hình thuật toán thuật toán Mondrian

Bước 2: Tại trang 1, chọn cấu hình các thuộc tính sẽ ẩn danh, loại dữ liệu các thuộc tính và cấu hình cây khái quát từng thuộc tính Sau khi cấu hình xong người dùng sẽ nhấn nút “Run Morian alogrithm (l-Diversity model)” để qua bước tiếp theo

Ví dụ: Hình 3-10 Cấu hình l-Diversity Ví dụ đã chọn 2 cột để ẩn danh là cột age và gender Với cột thông tin nhạy cảm là fnlwgt

24 Bước 3: Trang 2, xem và nhận kết quả đã ẩn danh Trong kết quá sẽ có thêm thời gian chạy và thông số độ đo NCP (Hình 3-11 Kết quả l-Diversity)

Áp dụng thuật toán ẩn danh hoá đồ thị k-Degree anonymity

Tương tự như chạy thuật toán bằng Mondrian Multidimensional K-Anonymity Tuy nhiên bước 1 cấu hình, người dùng sẽ chọn thuật toán k-Degree Anonymity Ví dụ (Hình 3-12 Cấu hình cho thuật toán k-Degree Anonymity)

Hình 3-12 Cấu hình cho thuật toán k-Degree Anonymity

Đăng ký và đăng nhập

• Trang đăng ký Để sử dụng hệ thống người dùng sẽ đăng ký tài khoản bằng email và nhập password lặp lại 2 lần để gửi yêu cầu đăng ký hệ thống

Sau khi nhập email và nhập password, người dùng phải nhập lại password để xác nhận, nhấn nút submit để hoàn tất yêu cầu tạo tài khoản mới trong hệ thống

Người dùng đăng nhập vào hệ thống bằng email và password đã đăng ký

26 Sau khi nhập email và password, người dùng có thể nhấn nút “Log in” để đăng nhập vào hệ thống

Quản lý kết nối đến các cơ sở dữ liệu đồ thị thuộc tính

Trang quản lý danh sách kết nối có 2 mục (Hình 3-15 Trang quản lý kết nối)

• Mục “Add New Connection” để thêm vào 1 kết nối đến cơ sở dữ liệu đồ thị thuộc tính vào danh sách kết nối Người dùng sẽ nhập tên kết nối, địa chỉ kết nối, tên đăng nhập và mật khẩu để truy cập cơ sở dữ liệu Sau đó người dùng nhấn add để thêm kết nối vào danh sách

• Mục “Database Connections Management” liệt kê danh sách các kết nối người dùng đã thêm vào Mỗi dòng trong bảng cho người dùng 3 nút chức năng: o View: khi người dùng bấm vào sẽ vào trang “Database Overview” xem hay tương tác dữ liệu của cơ sở dữ liệu đồ thị đó o Edit: thay đổi các thông tin kết nối đến cơ sở dữ liệu quan hệ đó

27 o Delete: xoá kết nối khỏi danh sách kết nối

Hình 3-15 Trang quản lý kết nối

Xem dữ liệu cơ sở dữ liệu đồ thị (Database Overview)

Có ba mục chức năng chính trong trang này gồm:

• Xem dữ liệu trực quan dạng đồ thị thuộc tính (Hình 3-16 Trang xem cơ sở dữ liệu dạng đồ thị) Đây là trang trực quan hoá dữ liệu đồ thị thuộc tính trong cơ sở dữ liệu Neo4j, trang cung cấp ô nhập câu truy vấn dữ liệu trong đồ thị Neo4j và nút kích hoạt truy vấn đó (Query) Từ đó ứng dụng sẽ truy cập và hiện lên các nút truy vấn được cũng như các cạnh quan hệ truy vấn được

Hình 3-16 Trang xem cơ sở dữ liệu dạng đồ thị

• Xem dữ liệu các nút trong đồ thị dạng bảng (Hình 3-17 Trang xem cơ sở dữ liệu dạng bảng) Đây là trang xem các nút dữ liệu dưới dạng bảng, số hàng tương ứng với số nút và số cột tương ứng với số thuộc tính của nút và nhãn

Hình 3-17 Trang xem cơ sở dữ liệu dạng bảng

• Thêm và xuất dữ liệu vào cơ sở dữ liệu đồ thị (Hình 3-18 Trang thêm hay xuất dữ liệu)

Trang này cho phép người dùng nhập hoặc xuất cơ sở dữ liệu đang xem

Hình 3-18 Trang thêm hay xuất dữ liệu

4 KẾT QUẢ KIỂM THỬ ỨNG DỤNG

Cấu hình máy tính chạy kiểm thử

• Hệ điều hành: macOS version 11.4

• Processor: 1,4 GHz Quad-Core Intel Core i5

Kết quả kiểm thử với thuật toán Mondrian

Tập dữ liệu được dùng Adult dataset được tải tại https://archive.ics.uci.edu/ml/datasets/adult (Đã lọc bớt các dòng dữ liệu lỗi, còn lại

32561 dòng để chạy kiểm thử)

Tham số k Tham số l Mô hình bảo mật Thời gian chạy thuật toán (s) NCP of dataset

Kết quả kiểm thử với thuật toán ẩn danh đồ thị k-Degree anonymity và Graph pertubations

Tập dữ liệu được dùng để kiểm thử là “email-Eu-core network” được tải tại trang https://snap.stanford.edu/data/email-Eu-core.html Tổng số nút là 1005, tổng số cạnh là 16706

30 Với thuật toán k-Degree anonymity

Tham số k Thời gian chạy thuật toán (s)

Với thuật toán Graph pertubations

Tỷ lệ số cạnh được làm nhiễu Thời gian chạy thuật toán (s)

Dữ liệu đồ thị ngày càng được thu thập trên nhiều lĩnh vực như giao thông, mạng xã hội, giáo dục và y tế Dữ liệu đồ thị còn chứa trong đó là thông tin của rất nhiều cá nhân và tổ chức Loại dữ liệu này mang đến nhiều giá trị to lớn cho cộng đồng nếu biết khai thác và phân tích hợp lý Để làm được vậy dữ liệu phải được mở hay chia sẻ một cách hợp pháp và đảm bảo được tính riêng tư cho các cá nhân hay tổ chức có liên quan Ứng dụng được viết ra để góp thêm một cách tiếp cận hợp lý cho việc đảm bảo tính riêng tư của dữ liệu nhất là dữ liệu đồ thị thuộc tính

Luận văn đã xây dựng được ứng dụng để ẩn danh hoá đồ thị thuộc tính thông qua việc kết hợp với cơ sở dữ liệu đồ thị Neo4j Sau đó với đồ thị đã ẩn danh, các nhà nghiên cứu có thể tiếp tục truy vấn dữ liệu đồ thị một cách trực quan và với tốc độ truy suất xử lý cao với ngôn ngữ Cypher

Thêm nữa, ứng dụng đảm bảo được có thể tạo ra đồ thị ẩn danh cho các nút hoặc cạnh trong đồ thị với các mô hình ẩn danh phổ biến là k-anonymity, l-diversity hay thuật toán ẩn danh đồ thị như k-Degree anonymity

DANH MỤC CÁC TÀI LIỆU THAM KHẢO

[1] J Pokorný "Graph Databases: Their Power and Limitations,” Lecture Notes in Computer Science, vol 9339, Oct 2015

[2] NEO4J “What is a Graph Database?.” Internet: https://neo4j.com/developer/graph-database, Jan 1 st , 2021

[3] L Backstrom, D P Huttenlocher, J M Kleinberg and X Lan, "Group formation in large social networks: membership, growth, and evolution,” presented at Proceedings of the Twelfth ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, Philadelphia, PA, USA, Aug 20-23, 2006

[4] R Kumar, J Novak and A Tomkins, "Structure and evolution of online social networks,” Intelligent Systems Reference Library, vol 65, 2006

[5] L T Hieu and D T Khanh, "An Elastic Anonymization Framework for Open

Data,” In Proceedings of the 7th International Conference (FDSE 2020 – Part

II), Virtual (QNU, Binh Dinh, Vietnam), November 25-27, 2020, CCIS 1306,

[6] L Sweeney "k-Anonymity: A Model for Protecting Privacy,” International

Journal of Uncertainty, Fuzziness and Knowledge-Based Systems, vol 10,

[7] A Machanavajjhala, J Gehrke, D Kifer and M Venkitasubramaniam, "L- diversity: privacy beyond k-anonymity,” in the 22nd International Conference on Data Engineering, 2006

[8] N Li, T Li and S Venkatasubramanian, "t-Closeness: Privacy Beyond k-

Anonymity and l-Diversity,” in 2007 IEEE 23rd International Conference on

[9] Turner, K Mivule and Claude "Applying Data Privacy Techniques on

Tabular Data in Uganda,” Internet: https://arxiv.org/abs/1107.3784, 2011

32 [10] X.-Y Li, C Zhang, T Jung, J Qian và L Chen "Graph-Based Privacy-

Preserving Data Publication,” in IEEE INFOCOM 2016 - The 35th Annual

IEEE International Conference on Computer Communications, Jul 2016

[11] P Samarati "Protecting respondents identities in microdata release,” in IEEE

[12] M Hay, G Miklau, D Jensen, P Weis and S Srivastava, "Anonymizing

[13] Y Zhang, M Humbert, B Surma, P Manoharan and M B Jilles Vreeken,

"Towards Plausible Graph Anonymization,” in Network and Distributed Systems Security (NDSS), 2020

[14] D Liben-Nowell and J Kleinberg, "The Link-prediction Problem for Social

Networks,” Journal of the American Society for Information Science and Technology, vol 58, 2007

[15] K Liu and E Terzi, "Towards Identity Anonymization on Graphs,” presented at Proceedings of the 2008 ACM SIGMOD International Conference on Management of Data (SIGMOD), p 93–106, 2008

[16] K LeFevre, D DeWitt and R Ramakrishnan, "Mondrian Multidimensional k-anonymity,” in ICDE, vol 1, 2006

[17] J.-W Byun, A Kamra, E Bertino and N Li, "Efficient k -Anonymization

Using Clustering Techniques,” in DASFAA, p 188–200, 2007

[18] M Terrovitis, N Mamoulis and P Kalnis, "Privacy-preserving anonymization of set-valued data,” in VLDB, p 115–125, 2008.

Ngày đăng: 03/08/2024, 12:38

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] J. Pokorný. "Graph Databases: Their Power and Limitations,” Lecture Notes in Computer Science, vol. 9339, Oct. 2015 Sách, tạp chí
Tiêu đề: Graph Databases: Their Power and Limitations
[2] NEO4J. “What is a Graph Database?.” Internet: https://neo4j.com/developer/graph-database, Jan. 1 st , 2021 Sách, tạp chí
Tiêu đề: What is a Graph Database
[3] L. Backstrom, D. P. Huttenlocher, J. M. Kleinberg and X. Lan, "Group formation in large social networks: membership, growth, and evolution,”presented at Proceedings of the Twelfth ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, Philadelphia, PA, USA, Aug. 20-23, 2006 Sách, tạp chí
Tiêu đề: Group formation in large social networks: membership, growth, and evolution
[4] R. Kumar, J. Novak and A. Tomkins, "Structure and evolution of online social networks,” Intelligent Systems Reference Library, vol. 65, 2006 Sách, tạp chí
Tiêu đề: Structure and evolution of online social networks
[5] L. T. Hieu and D. T. Khanh, "An Elastic Anonymization Framework for Open Data,” In Proceedings of the 7th International Conference (FDSE 2020 – Part II), Virtual (QNU, Binh Dinh, Vietnam), November 25-27, 2020, CCIS 1306, Springer Verlag, 2020 Sách, tạp chí
Tiêu đề: An Elastic Anonymization Framework for Open Data
[6] L. Sweeney. "k-Anonymity: A Model for Protecting Privacy,” International Journal of Uncertainty, Fuzziness and Knowledge-Based Systems, vol. 10, 2002 Sách, tạp chí
Tiêu đề: k-Anonymity: A Model for Protecting Privacy
[7] A. Machanavajjhala, J. Gehrke, D. Kifer and M. Venkitasubramaniam, "L- diversity: privacy beyond k-anonymity,” in the 22nd International Conference on Data Engineering, 2006 Sách, tạp chí
Tiêu đề: L-diversity: privacy beyond k-anonymity
[8] N. Li, T. Li and S. Venkatasubramanian, "t-Closeness: Privacy Beyond k- Anonymity and l-Diversity,” in 2007 IEEE 23rd International Conference on Data Engineering, 2007 Sách, tạp chí
Tiêu đề: t-Closeness: Privacy Beyond k-Anonymity and l-Diversity
[9] Turner, K. Mivule and Claude. "Applying Data Privacy Techniques on Tabular Data in Uganda,” Internet: https://arxiv.org/abs/1107.3784, 2011 Sách, tạp chí
Tiêu đề: Applying Data Privacy Techniques on Tabular Data in Uganda
[10] X.-Y. Li, C. Zhang, T. Jung, J. Qian và L. Chen. "Graph-Based Privacy- Preserving Data Publication,” in IEEE INFOCOM 2016 - The 35th Annual IEEE International Conference on Computer Communications, Jul. 2016 Sách, tạp chí
Tiêu đề: Graph-Based Privacy-Preserving Data Publication
[11] P. Samarati. "Protecting respondents identities in microdata release,” in IEEE Trans Knowl Data Eng, p. 1010–1027, 2001 Sách, tạp chí
Tiêu đề: Protecting respondents identities in microdata release
[12] M. Hay, G. Miklau, D. Jensen, P. Weis and S. Srivastava, "Anonymizing Social Networks,” in VLDB, 2008 Sách, tạp chí
Tiêu đề: Anonymizing Social Networks
[13] Y. Zhang, M. Humbert, B. Surma, P. Manoharan and M. B. Jilles Vreeken, "Towards Plausible Graph Anonymization,” in Network and Distributed Systems Security (NDSS), 2020 Sách, tạp chí
Tiêu đề: Towards Plausible Graph Anonymization
[14] D. Liben-Nowell and J. Kleinberg, "The Link-prediction Problem for Social Networks,” Journal of the American Society for Information Science and Technology, vol. 58, 2007 Sách, tạp chí
Tiêu đề: The Link-prediction Problem for Social Networks
[15] K. Liu and E. Terzi, "Towards Identity Anonymization on Graphs,” presented at Proceedings of the 2008 ACM SIGMOD International Conference on Management of Data (SIGMOD), p. 93–106, 2008 Sách, tạp chí
Tiêu đề: Towards Identity Anonymization on Graphs
[16] K. LeFevre, D. DeWitt and R. Ramakrishnan, "Mondrian Multidimensional k-anonymity,” in ICDE, vol. 1, 2006 Sách, tạp chí
Tiêu đề: Mondrian Multidimensional k-anonymity
[17] J.-W. Byun, A. Kamra, E. Bertino and N. Li, "Efficient k -Anonymization Using Clustering Techniques,” in DASFAA, p. 188–200, 2007 Sách, tạp chí
Tiêu đề: Efficient k -Anonymization Using Clustering Techniques
[18] M. Terrovitis, N. Mamoulis and P. Kalnis, "Privacy-preserving anonymization of set-valued data,” in VLDB, p. 115–125, 2008 Sách, tạp chí
Tiêu đề: Privacy-preserving anonymization of set-valued data

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN