đổi dữ liệu cho mô hình FL
3.2.1. Áp dụng kỹ thuật mã hoá đồng hình CKKS với TenSEAL
Lượt đồ mã hoá Cheon-Kim-Kim-Song (CKKS) [15] là một lượt đồ mã hoá công khai thuộc dạng mã hoá đồng hình cho phép thực hiện tính toán trên véc-tơ hoặc các giá trị phức tạp với độ nhiễu nhất định. Do đó, CKKS được đánh giá là phù hợp nhất
để ứng dụng vào học máy [5], CKKS mang lại một sự đánh đổi độ chính xác để đảm bảo tính an toàn với một cái giá hợp lý. CKKS là một lượt đồ mã hoá có trong thư viện Mircosoft SEAL! và được Openmined dùng làm nên tang để tạo nên TenSEAL, nên
về cơ bản TenSEAL CKKS vẫn tuân theo cách hoạt động của CKKS [3].
Trong TenSEAL CKKS, một thông điệp m sẽ được chuyển định dang (encode)
thành dạng đa thức p(x) trước khi thực hiện mã hoá bằng khoá công khai. Sau khi m được mã hoá thành c, TenSEAL CKKS sẽ cho phép người dùng thực hiện một số phép
tính trên c như: cộng, nhân hay phép quay. Phép tính f được thực hiện trên c lúc này
được gọi là f(c) hay c’, c’ sau khi được giải mã bằng khoá bí mật và chuyển định dang (decode) sẽ cho ra kết quả của phép tính ƒ thực hiện trên m đó là ƒ(m) hay mí.
!https://github.com/mierosof/SEAL
cv Z|X]/(X" +1) (#4|X]/(XY +1))?
Message encode Plaintext encrypt Giphertext.
m „(X) = (œ(X),e(X))
compute ƒ
Message decode Plaintext decrypt Ciphertext.
m! = f(m) v= f(r) c=ƒ()
cnr #|X]/(X + 1) Z4(X]/(XN +1))?
Hình 3.2: Lượt đồ mã hoá CKKS!
Một thành phần quan trọng trong TenSEAL CKKS đó là TenSEAL Context, đây là một đối tượng đặc biệt được sử dụng xuyên suốt trong CKKS. TenSEAL Context chứa các thành phần như:
* Loại lược đồ sử dụng cho mã hoá (scheme type): BFV hoặc CKKS
* Bậc đa thức (polynomial degree) - N: đây là kích thước tối đa của véc-tơ mà Context này có thể mã hoá và thực hiện được tất cả các phép tính mà CKKS hỗ trợ. Nếu véc-tơ lớn hơn N, một số phép toán thực hiện dành cho ma trận sẽ có kết quả sai. Giá trị của N càng lớn thi mức độ bảo mật của lượt đồ mã hoá càng cao nhưng phải đánh đổi bằng hiệu suất tính toán của lượt đồ.
ằ Hệ số mụ-đun (coefficient modulus) - ứ: g là cỏc số nguyờn tố nhỏ hơn 60 bits,
số lượng g chính là số lượng phép nhân tối đa mà Context này có thể hỗ trợ. Cụ thé hơn thì g được sử dụng trong chức năng thay đổi tỉ lệ (Rescaling). Khi thực hiện một phép nhân trên c mức độ nhiễu của kết quả sẽ tăng lên theo cấp số nhân,
'https://blog.openmined.org/ckks-explained-part- I-simple-encoding-and-decoding/
27
lúc này chức năng Rescaling sẽ được thực hiện để độ nhiễu của kết quả chỉ tăng tuyến tính. Trong TenSEAL CKKS, chức năng Rescaling sẽ được thực hiện tự động sau mỗi lần thực hiện phép nhân và tiêu thụ một hệ số mô-đun, khi không còn hệ số mô-đun thì không thể thực hiện phép nhân nữa (Độ nhiễu sẽ làm sai lệch hoàn toàn kết quả). Số lượng hệ số mô-đun càng nhiều sẽ làm cho mức độ bảo mật của lượt đồ càng thấp.
5 Hệ số tỉ lệ toàn cục (global scale) - A: A được sử dụng trong quá trình tái encode
và decode của lượt đồ.
* Khoá công khai - p: dùng để mã hoá dữ liệu.
* Khoá bí mật - s: dùng để giải mã dữ liệu.
* Khoá tái cấu trúc (Relinearization key): đây là khoá được sử dụng khi thực hiện các phép nhân. Chức năng tái câu trúc (Relinearization) sẽ được thực hiện sau mỗi phép tính trên ma trận. Ví dụ cụ thể trong phép nhân ma trận, với 2 ma trận lần lượt có kích thước K và L khi nhân nhau kết quả sẽ là một ma trận có kích thước là (K +L— 1). Điều nay sẽ không ảnh hưởng quá nhiều néu như các phép
tính khi thực hiện trên dit liệu mã hoá có kích thước càng lớn thì thời gian thực
hiện sẽ càng dài, vì vậy chức năng Relinearization sẽ được thực hiện để giảm
kích thước của các ma trận.
s Khoá Galois: khoá nay sẽ không được tạo tự động và được sử dụng trong các phép quay ma trận.
Các phép tính được hỗ trợ trong TenSEAL CKKS:
* Phu định (negation).
s Luy thừa (power).
Cộng (addition) cipher-to-cipher và cipher-to-plain.
Nhân (multiplication) cipher-to-cipher và cipher-to-plain.
Trừ (subtraction) cipher-to-cipher và cipher-to-plain.
Tích vô hướng (dot product) cipher-to-cipher va cipher-to-plain.
Tinh đa thức.
Nhân ma trận (matrix multiplication).
Ứng dụng TenSEAL vào mô hình thực nghiệm
TenSEAL sé được ứng dụng vào mô hình thực nghiệm tai quá trình trao đổi dữ liệu
giữa Data Owner và Scientist. Data Owner và Scientist sẽ khởi tạo TenSEAL context
của riêng minh.Context của Scientist sẽ được dùng để mã hoá các tham số mô hình của Owner trước khi gửi. Context của các Owner sẽ được dùng để mã hoá bản cập nhật
trước khi gửi cho các Owner tương ứng.
3.2.2 Áp dụng kỹ thuật Quyền riêng tư khác biệt (DP) với Opacus
Thư viện Opacus cung cấp một số công cụ để tính toán cũng như thêm nhiễu vào
mô hình DL trong quá trình huấn luyện mô hình, cụ thể hơn nhiễu sẽ được tính bằng hàm Gauss và thêm vào các tham số mô hình trong giai đoạn lan truyền ngược của quá trình huấn luyện. Mục tiêu chính của Opacus chính là đảm bảo được quyên riêng tư của các mẫu dữ liệu huấn luyện đồng thời vẫn đảm bảo được độ chính xác của mô hình.
Opacus hoạt động dựa trên thuật toán DP-SGD [1].
Ý tưởng cốt lõi của thuật toán này chính là bảo vệ quyền riêng tư của các đối tượng tham gia vào tập dự liệu huấn luyện bằng cách can thiệp vào các građien được sử dụng trong quá trình cập nhập các tham số mô hình, thay vì thêm nhiễu vào tập dữ liệu huấn
29
luyện. Việc thêm nhiễu vào các gradient mỗi lần lặp sẽ ngăn mô hình ghi nhớ các mẫu trong tập dữ liệu huấn luyện.
Tuy nhiên việc thêm nhiễu vào mô hình lại đối mặt với một thách thức lớn, quá nhiều nhiễu trong mô hình sẽ "phá huỷ" mô hình nhưng quá ít sẽ không đảm bảo được
sự riêng tư. Vì vậy, để xác định đúng lượng nhiễu, định mức của gradient sẽ được xem xét. Việc hạn chế các mức độ ảnh hưởng của các mẫu lên gradient là vô cũng quan
trọng bởi vì các trường hợp ngoại lệ (outlier [16]) trong tập dif liệu có gradient lớn hơn
hầu hết các mẫu [23]. Quyền riêng tư của các ngoại lệ này cần được đặc biệt chú ý bởi
nó có khả năng rất cao sẽ bị mô hình ghi nhớ. Để cụ thể hoá điều nay, gradient của từng mẫu sẽ được tính toán trong một minibatch [10]. Khi đạt một ngưỡng nhất định các gradient riêng lẻ này sẽ được cắt rồi tổng hợp lại thành một tensor gradient duy nhất và sau đó sẽ được thêm nhiễu.
Thuật toán Differential Privacy SGD
Algorithm 1 Differentially private SGD (Outline)
Input: Examples {zi,...,zv}, loss function £(0) = +3, Ê(0,ô:). Parameters: learning rate 7, noise scale
ỉ, group size L, gradient norm bound C.
Initialize ỉo randomly for t € [7] do
Take a random sample L; with sampling probability L/N
Compute gradient For each i € Lr, compute gy(x:) — Vo, £(61,2%) Clip gradient
Be(wi) — ge(wi)/ max (1, ÍéfGÐls )
Add noise
& â 1 (S;8.(zĂ) +.V(0,ứ2C21))
Descent Or41 CÔ: — Thết
Output 47 and compute the overall privacy cost (c,ổ) using a privacy accounting method.
Hình 3.3: Mã gia mô phỏng thuật toán DP-SGD.
Một mô hình DL thông thường sẽ nhắm đến mục tiêu giảm thiểu tối đa kết quả của
hàm tính loss £(@). Với mỗi bước trong thuật toán DP-SGD ta tính gradient từ Joss của
các mẫu ngẫu nhiên được đưa vào mô hình Vạ/£(6,x;). Tiếp đó, định mức của từng gradient /2 sẽ được cắt (clip), tính trung bình và thêm nhiễu để để đảm bảo sự riêng tư. Cuối cùng, quyền riêng tư bị ảnh hưởng của thuật toán sẽ được tính. Tiếp theo, từng
bước trong thuật toán sẽ được giải thích.
Cắt định mức (Norm clipping)
Mỗi gradient sẽ được cắt theo định mức fy (ví dụ: véc-tơ g sẽ được thay thế bởi
g/max(1,!8!2)) khi đạt ngưỡng cắt C. Việc cắt này sẽ đảm bao nếu ||g||2 < C thi g sé
được bảo quản, trong trường hợp nếu ||gÌ|› < C thì g sẽ được thu nhỏ về định mức C.
Ứng dụng Opacus vào mô hình thực nghiệm
Opacus sẽ được ứng dụng vào quá trình huấn luyện mô hình DL của các Data Owner. Cụ thể hơn, các Owner sẽ tạo ra một PrivacyEngine, sau đó sẽ dùng PrivacyEngine vừa tạo để gắn vào hàm tối ưu hoá của mô hình DL và tiến hành huấn luyện mô hình. PrivacyEngine sẽ thay thé quy trình huấn luyện của mô hình thành phương pháp DP- SGD của Opacus, từ đó các tham số mô hình sẽ được thêm nhiễu để đảm bảo rằng các tham số này sẽ không ghi nhớ được các dữ liệu của Owner.