3. Cấu trúc luận văn
3.3.3 Chuyển đổi mã hóa AES sang FHE
Vì không thể thực hiện mã hóa đồng cấu trong giai đoạn thu thập, nên dữ liệu phải được truyền vào đám mây ở định dạng được mã hóa AES. Phương án được đề xuất là lưu trữ tất cả dữ liệu bệnh nhân ở định dạng được mã hóa AES, vì AES là một chuyển đổi lưu trữ (tức là phiên bản được mã hóa AES của dữ liệu thô 128 bit cũng chiếm 128 bit). Mặc dù điều này hoàn toàn giải quyết được quyền riêng tư của dữ liệu được lưu trữ, nhưng việc chuyển đổi dữ liệu được mã hóa AES sang dữ liệu được mã hóa FHE phải được thực hiện tại một số điểm, trước khi có thể thực hiện bất kỳ tính toán nào bằng cách sử dụng FHE.
Việc chuyển đổi dữ liệu được mã hóa AES sang dữ liệu được mã hóa FHE yêu cầu đánh giá chức năng giải mã AES một cách đồng cấu. Để ước tính chi phí chuyển đổi AES sang FHE, trong (Gentry et al., 2012), các tác giả đã triển khai chức năng giải mã AES-128 với lược đồ BGV (Brakerski et al., 2012) và cung cấp phân tích độ trễ / thông lượng với các lựa chọn thiết kế khác nhau. Giải mã AES-128 hoạt động trên các khối dữ liệu 128 bit (tức là 16B), trong đó mức độ chi tiết của các hoạt động là 1 Byte. Trong thiết kế đầu tiên, một bản mã được đặt để chứa 864 khe văn bản rõ trong đó mỗi khe chứa thông tin cho bản tin 1B. Với cài đặt này, 16 khe cắm có thể được sử dụng để chứa một dữ liệu được mã hóa AES, do đó ⌊864 ÷ 16⌋ = 54 hoạt động giải mã AES có thể được thực hiện song
Rijndael(State, CipherKey) {
KeyExpansion(CipherKey, ExpandedKey); AddRoundKey(State, ExpandedKey[0]);
For (i = 1; i < Nr; i++) Round(State, ExpandedKey[i]); FinalRound(State, ExpandedKey[Nr]);
41 song. Đánh giá tổng thể chạy trong 36 giờ; tuy nhiên vì 54 giải mã AES đã được thực hiện song song, thông lượng là khoảng 40 phút cho một lần giải mã AES. Trong thiết kế thứ hai, 16 bản mã được sử dụng và mỗi bản mã được thiết lập để chứa 720 khe văn bản rõ. Tương tự như cài đặt thiết kế đầu tiên, mỗi khe chứa thông tin cho bản tin 1B, nhưng lần này mỗi khe được liên kết với dữ liệu được mã hóa AES khác nhau, do đó hoạt động giải mã 720 AES có thể được thực hiện song song. Mặc dù với cài đặt này, tổng thời gian đánh giá là khoảng 5 ngày, thông lượng cho một lần giải mã AES giảm xuống còn 5 phút. Mặc dù thiết kế thứ hai cung cấp kết quả thông lượng tốt hơn thiết kế đầu tiên, nhưng nó yêu cầu bộ nhớ lớn hơn để lưu trữ tất cả các biến. Và phương án được đưa ra ở đây là sử dụng cài đặt thiết kế đầu tiên làm tài liệu tham khảo.
Dựa trên kết quả được báo cáo trong (Gentry et al., 2012) là khoảng 36 giờ để giải mã 54 khối AES (mỗi khối 16B), cần khoảng 150 giây để chuyển đổi 1B. Sử dụng các kết quả này làm cơ sở, các tác giả đã tính toán rằng, tác nhân chuyển đổi AES sang FHE sẽ cần xử lý 87.896 chú thích nhịp (175.792B giả sử 2B cho mỗi phần tử chú thích) để chuyển đổi bản ghi chú thích của bệnh nhân 24 giờ thành FHE. Do đó, thời gian tính toán cho việc chuyển đổi này là khoảng 7.324 giờ. Sử dụng thời gian chuyển đổi ước tính, tốc độ tăng tốc cần thiết là khoảng 305 lần để tính toán kết quả theo tốc độ đến (tức là 24 giờ). Phương pháp đã trình bày cách có thể song song hóa quá trình này để thực hiện chuyển đổi AES sang FHE ở tốc độ tối đa nếu có đủ khả năng song song phần cứng.