Mã hóa đồng cấu hoàn toàn: Giới thiệu và các trường hợp sử dụng

Nâng cao8/22/2024, 9:21:34 AM
Bài viết này nhằm mục đích cung cấp cho người đọc một cái nhìn tổng quan cấp cao hơn về những gì FHE có thể được sử dụng và các kịch bản hoặc thiết lập khác nhau tận dụng FHE. Trong một bài đăng trên blog trong tương lai, chúng tôi sẽ đi sâu vào chi tiết hơn về các loại FHE (ảnh hưởng đến loại tính toán chúng tôi có thể thực hiện) và cuối cùng là loại trình biên dịch nào chúng tôi có thể tìm thấy để dịch các chương trình của mình thành các hoạt động có thể được tính toán bằng FHE.

Khi nghĩ về việc mã hóa, những ứng dụng đầu tiên mà người ta nghĩ đến là mã hóa khi nằm yên và mã hóa trong quá trình vận chuyển. Ứng dụng đầu tiên cho phép lưu trữ một số dữ liệu trên ổ cứng được mã hóa, thiết bị di động hoặc thậm chí cơ sở dữ liệu đám mây và đảm bảo chỉ có chủ sở hữu hợp pháp mới có thể xem hoặc chỉnh sửa nội dung rõ nguyên bản. Mã hóa trong quá trình vận chuyển đảm bảo rằng dữ liệu được truyền qua Internet chỉ có thể truy cập bởi người nhận được chỉ định, ngay cả khi nó đi qua các bộ định tuyến hoặc kênh công cộng. Cả hai kịch bản đều phụ thuộc vào mã hóa, với đảm bảo toàn vẹn bổ sung rằng dữ liệu cũng không bị tấn công xâm nhập từ một kẻ tấn công độc hại ở giữa. Điều này được gọi là mã hóa xác thực: sau khi dữ liệu được mã hóa, không ai trong chuỗi có thể suy ra bất kỳ bit dữ liệu nào (bảo mật) và không ai có thể thay đổi văn bản mã hóa mà không bị phát hiện (toàn vẹn/xác thực).

Một số trường hợp sử dụng cộng tác yêu cầu một số xử lý không tầm thường được cho phép ngay cả trên bản mã. Đây là lĩnh vực của các kỹ thuật bảo vệ quyền riêng tư, hoặc mã hóa khi sử dụng, với mã hóa đồng cấu hoàn toàn (FHE) là một trong số đó. Một ví dụ là bỏ phiếu điện tử trên đám mây: ví dụ, cử tri có thể mã hóa lá phiếu của họ, sau đó một số thực thể ở giữa sẽ tổng hợp tất cả các lá phiếu để đếm số phiếu bầu và chỉ có kết quả cuối cùng mới được công bố. Thật không may, với mã hóa được xác thực, thực thể ở giữa sẽ cần phải giải mã tất cả các lá phiếu để thực hiện tính toán như vậy và sẽ thấy các phiếu bầu riêng lẻ rõ ràng, điều này khá cồng kềnh. Về lý thuyết, chúng ta có thể xáo trộn các lá phiếu (một số giao thức bỏ phiếu điện tử thực sự dựa vào điều này), nhưng, không giống như phiếu bầu giấy, các cơ chế mật mã truyền thống đảm bảo tính toàn vẹn cũng khiến việc hủy liên kết một lá phiếu được mã hóa khỏi danh tính của người gửi trở nên khó khăn hơn nhiều. Trong sơ đồ bỏ phiếu điện tử, người ta có thể thêm một bức tường phần cứng xung quanh thực thể đếm phiếu. Ví dụ, đây là mục tiêu của các khu vực thực thi đáng tin cậy. Những vùng đất như vậy sẽ khiến kẻ tấn công khó tương tác với thực thể hơn nhiều. Nhưng sau đó, một lỗi trong phần cứng có thể làm rò rỉ khóa giải mã và không giống như lỗi phần mềm, các lỗ hổng thiết kế phần cứng không thể được vá dễ dàng.

Để giải quyết vấn đề này và các trường hợp sử dụng tương tự khác, chúng ta có thể sử dụng mã hóa đồng cấu hoàn toàn (FHE). FHE là một dạng đặc biệt của mã hóa cho phép tính toán một hàm trên các văn bản mã hóa mà không cần giải mã chúng, và thu được một bản mã hóa của kết quả của hàm trực tiếp.

Hầu hết thời gian, hàm f để đánh giá là công khai, vì vậy chuỗi các bước xử lý để chuyển đổi một mã hóa của f(x) là kiến thức công khai và có thể được thực hiện trên đám mây mà không liên quan đến bất kỳ bí mật nào.

Hình này miêu tả 3 kịch bản cho việc bỏ phiếu điện tử: trong hình ảnh bên trái, một thực thể đáng tin cậy trộn và giải mã những phiếu bầu cá nhân trước khi công bố việc thêm chúng. Chúng ta phải tin tưởng thực thể thực hiện tính toán để bảo vệ quyền riêng tư của cử tri và đếm phiếu đúng. Trong hình ảnh ở giữa, một Khu vực Đáng tin cậy, đáng tin cậy để cung cấp cam kết về tính toàn vẹn và quyền riêng tư, được sử dụng để thực hiện cùng một tính toán. Trong hình ảnh bên phải, mã hóa đồng cấu được sử dụng: những phiếu bầu đã được mã hóa có thể được thêm vào (công khai) trước khi kết quả được giải mã. E() đại diện cho phép mã hóa, trong khi D() đại diện cho giải mã.

FHE cũng gọn nhẹ, điều này có nghĩa là kích thước của văn bản mật đầu ra và nỗ lực giải mã chỉ phụ thuộc vào số bit trong kết quả văn bản mật. Điều này không phụ thuộc vào chuỗi các phép tính đã được áp dụng. Điều này loại trừ các hệ mật mã không gọn nhẹ đơn giản chỉ cần nối các văn bản mật đầu vào của x với mã nguồn của f và để người nhận làm tất cả công việc bằng cách giải mã x và sau đó áp dụng f.

Gia công phần mềm FHE thường được trình bày như một giải pháp thay thế cho các vùng đất an toàn, dựa trên độ cứng của một vấn đề toán học hơn là các rào cản thực tế. Do đó, FHE hoàn toàn bất khả xâm phạm đối với các cuộc tấn công kênh bên thụ động hoặc các tham nhũng khác của máy chủ đám mây. Hãy tưởng tượng rằng ai đó cần thuê ngoài một số tính toán, nhưng dữ liệu thực sự nhạy cảm. Người đó có thể sẽ miễn cưỡng sử dụng máy ảo đám mây nếu người khác có thể root trên máy. Họ có lẽ cũng sẽ ngần ngại chạy nó trong một vùng đất như SGX, biết rằng CPU và bộ nhớ của các máy chủ đám mây được theo dõi liên tục về tải, công suất, nhiệt độ. Có lẽ một số thông tin có thể được trích xuất từ các phép đo này. Người đó có thể được trấn an bởi lời hứa của FHE rằng việc trích xuất bất kỳ bit thông tin nào cũng đòi hỏi phải phá vỡ một vấn đề toán học hậu lượng tử, độc lập với bất kỳ loại phép đo nào chúng ta có thể thu thập.

Nếu tính bảo mật được cung cấp bởi hệ thống ngăn chặn kẻ tấn công đọc bất kỳ bit thông tin nào mà không có khóa bí mật, sự đa dạng chung của FHE cho phép, một cách khác, kẻ tấn công lật đổ bất kỳ bit nào được tính toán: trong mạch, điều này tương đương với các cuộc tấn công kênh phụ hoạt động, nơi kẻ tấn công được cấp quyền sử dụng tia laser ma thuật có thể nhắm vào bất kỳ bit nào. Ban đầu, điều này có thể nghe có vẻ rất đáng sợ, nhưng trong FHE, những cuộc tấn công này tương ứng với các thực thi không trung thực của các hoạt động đồng cấu. Chúng có thể được tránh bằng cách thêm sao chép hoặc dư thừa trong quá trình tính toán.

FHE thường được trình bày dưới dạng khóa công khai. Có:

  1. Một khóa giải mã: Đây là khóa chính của hệ mật mã, từ đó tất cả các khóa khác có thể được tạo ra. Khóa giải mã thường được tạo ra cục bộ và không bao giờ được truyền, và chỉ người sở hữu khóa giải mã mới có thể giải mã một văn bản mã hóa đồng cấu hoàn toàn.
  2. Một khóa mã hóa: Ở chế độ khóa công khai, khi bên cung cấp văn bản mật ban đầu không phải chủ sở hữu khóa giải mã, khóa kích cỡ trung bình này thường bao gồm các mã hóa ngẫu nhiên của số không. Do FHE hỗ trợ các hàm tuyến tính, điều này đủ để mã hóa bất kỳ thông điệp nào.
  3. Một khóa đánh giá: Khóa này sẽ được cung cấp cho bất kỳ bên nào muốn đánh giá một chức năng trên các bản mã. Khóa này cũng an toàn để công bố hoặc truyền như bất kỳ khóa công khai nào. Kích thước của khóa đánh giá thay đổi từ trống đến rất lớn, phụ thuộc vào chức năng cần đánh giá có phải là tuyến tính hay tùy ý.

Người sở hữu khóa giải mã là người sở hữu bí mật nhạy cảm nhất của hệ mã hóa. Người này chịu trách nhiệm đảm bảo rằng chuỗi các hoạt động đồng cấu đã được thực thi là hợp lệ và rằng văn bản mã hóa cuối cùng an toàn để giải mã, sau đó giải mã kết quả văn bản gốc. Nếu có các hoạt động độc hại được đưa vào chuỗi, khóa giải mã có thể bị rò rỉ trong quá trình giải mã. May mắn thay, các hoạt động đồng cấu có thể được thực hiện công khai và xác minh được.

Các kịch bản FHE

Trong phần này, chúng tôi mô tả một số kịch bản mà FHE có thể được sử dụng, cũng như một số ưu điểm và nhược điểm của mỗi cài đặt.

Chế độ Outsourcing


Trong hình này, biểu tượng chìa khóa màu cam biểu thị chìa khóa giải mã (và chủ sở hữu của nó). Văn bản mã hóa đồng cấu được biểu thị bằng những cái khóa có cùng màu với chìa khóa giải mã. Các bên đóng góp dữ liệu riêng tư được biểu thị bằng một hình trụ: ở đây, chỉ có Alice đóng góp dữ liệu riêng tư. Ở phía Bob, hàm đánh giá và chìa khóa đánh giá là công khai, và tính toán, được miêu tả bằng một hộp màu xanh lá cây, có thể được thực hiện một cách xác định. Ai cũng có thể theo dõi tính toán và phát hiện nếu văn bản mã hóa đầu ra được tuyên bố là không chính xác.

Đây là trường hợp sử dụng đầu tiên trong lịch sử được xuất bản cho FHE. Nó nhằm mục đích biến điện toán đám mây thành một máy tính riêng tương tự như một vùng an toàn, nhưng dựa trên bảo mật mật mã thay vì bảo mật phần cứng. Trong bối cảnh như vậy, Alice sở hữu một số dữ liệu riêng tư, nhưng có khả năng tính toán hạn chế. Bob bắt chước một phiên bản đám mây với sức mạnh tính toán lớn hơn nhiều. Bob không đóng góp với bất kỳ dữ liệu riêng tư bổ sung nào. Alice có thể thuê ngoài một tính toán bằng cách mã hóa các đầu vào, Bob sau đó đánh giá hàm mong muốn (công khai) đồng cấu và gửi kết quả được mã hóa trở lại cho Alice.

Với khả năng phần cứng hiện tại, chế độ outsourcing vẫn chậm một chút để sử dụng một cách toàn diện trong thực tế - chúng ta thường có thể tính một yếu tố tăng thời gian chạy khoảng 1 triệu lần và một yếu tố tăng bộ nhớ khoảng 1 nghìn trên các trường hợp sử dụng phi tuyến tính. Tuy nhiên, phần cứng FHE đang được phát triển để bắt kịp khoảng cách, giống như Dự án DPRIVE của DarpahoặcCryptoLight.

Hiện tại, chế độ outsourcing được sử dụng trong thực tế cho các trường hợp sử dụng PIR (Private Information Retrieval), nơi một máy chủ (Bob) có cơ sở dữ liệu công cộng lớn, một khách hàng (Alice) phát ra một truy vấn, và chỉ số được truy vấn phải được giữ riêng tư. Các kế hoạch PIR như vậy được hưởng lợi rất nhiều từ tính tuyến tính và tính chất nhỏ gọn của các hoạt động mã hóa đồng cấu, trong khi độ sâu nhân tích nhỏ của mạch giữ cho chi phí tính toán trong giới hạn hợp lý.

Bảng này tóm tắt những ưu điểm và nhược điểm của chế độ giao việc ngoài.

Chế độ tính toán hai bên

Hình vẽ này sử dụng cùng mã màu như trước đó. Lần này, Bob đóng góp vào phép tính bằng một số dữ liệu riêng. Phép tính trên phía Bob không còn được công khai xác minh nữa, được biểu thị bằng một hộp màu đỏ, chế độ này nên được giới hạn trong các trường hợp sử dụng chỉ tòan vẹn nhưng tòan tìm hiểu.

Trong cài đặt mới này, sự khác biệt duy nhất là Bob đóng góp vào tính toán với một số dữ liệu riêng. Trong trường hợp này, FHE là một giải pháp tính toán hai bên tốt, với giao tiếp tối thiểu và đảm bảo mạnh mẽ cho phía người truy vấn: Bob không biết gì về dữ liệu của Alice và Alice biết kết quả của tính toán.

Một ứng dụng tiềm năng cho tình huống này có thể là vấn đề của triệu phú, trong đó Alice và Bob là hai triệu phú muốn biết ai giàu hơn mà không tiết lộ tài sản của mình cho bên kia. Các giải pháp cho vấn đề này được sử dụng trong các ứng dụng thương mại điện tử.

Chế độ tổng hợp

Đây là một sự tinh chỉnh của chế độ outsourcing, nơi dữ liệu từ nhiều người tham gia có thể được tổng hợp theo cách (theo nghĩa là kết quả không tăng lên theo số lượng người tham gia) và cách thức có thể kiểm tra công khai. Các cách sử dụng điển hình bao gồm học liên minh và bỏ phiếu điện tử.

Chế độ Client-Server

Bộ cài đặt này là sự tinh tế của chế độ tính toán hai bên, trong đó bên tính toán hiện đang cung cấp dịch vụ tính toán an toàn cho nhiều khách hàng, mỗi khách hàng đều có khóa bí mật riêng của họ. FHE có thể được sử dụng như một dịch vụ dự đoán mô hình riêng tư (ví dụ: một dịch vụ ML với mô hình riêng tư và đầu vào): máy chủ có mô hình riêng tư (riêng tư nhưng ở dạng văn bản thô) và mỗi khách hàng có dữ liệu riêng của mình và muốn chạy một dự đoán. Kết quả là, mỗi khách hàng nhận được dự đoán được mã hóa riêng của mình, với khóa bí mật riêng của mình.

Làm thế nào mã hóa đồng cấu đảm bảo rằng hàm tính toán được xem là hợp pháp?

Luôn dễ dàng hơn để sử dụng FHE trong các tình huống hợp tác, trong đó mỗi người tham gia có động lực để tuân theo giao thức một cách trung thực. Ví dụ, FHE có thể được sử dụng để tính toán số liệu thống kê giữa hai pháp nhân của cùng một nhóm ở hai quốc gia khác nhau: các quy định như GDPR cho phép một số thống kê được công bố, nhưng ngăn chặn nói chung thu thập tất cả dữ liệu riêng biệt ở cùng một nơi. Trong trường hợp này, sử dụng FHE là có thể và tất cả những người tham gia đều có động lực để tuân theo giao thức một cách trung thực. Trong kịch bản không hợp tác, cách dễ nhất để đảm bảo rằng chức năng liên quan đã được tính toán là giới thiệu dự phòng. Ví dụ, trong các kịch bản thuê ngoài và tổng hợp, các tính toán đồng cấu là hoàn toàn công khai và có thể được thực hiện xác định. Miễn là hai hoặc nhiều thực thể độc lập kết thúc với cùng một bản mã đầu ra, thì việc tính toán là chính xác và kết quả là an toàn để giải mã. Càng dư thừa, chúng ta càng có thể tin tưởng vào kết quả cao hơn, tất nhiên đó là sự đánh đổi với hiệu quả.

Ngoài ra, khi bên tính toán bảo đảm cho kết quả FHE bằng cách ký số các ciphertext đầu vào và đầu ra, mọi người có thể theo dõi lại quá trình tính toán FHE đó và kiểm tra xem chứng cứ có hợp lệ không. Mọi nỗ lực gian lận của bên tính toán FHE có thể bị phát hiện công khai và liên kết với một chứng chỉ công khai có thể xác minh để tiết lộ hành vi gian lận và người gian lận - chúng tôi gọi mô hình như vậy là mô hình bảo mật bí mật mạnh.

Chữ ký đồng cấu hoàn toànlà một cách khác để xác minh tính chính xác của một phép tính, mà không cần sự xác nhận độc lập, nhưng tổng quát yêu cầu nhiều tài nguyên hơn.

Làm thế nào FHE đảm bảo rằng người nhận cuối cùng chỉ giải mã kết quả cuối cùng mà không phải là biến trung gian?

Cách dễ nhất để làm điều này là đảm bảo chủ sở hữu khóa giải mã không có quyền truy cập vào bất kỳ văn bản mã trung gian nào.

Trong kịch bản hai bên hoặc trong kịch bản máy khách-máy chủ, Alice mã hóa đầu vào, Bob thực hiện tính toán trên văn bản mã hóa và truyền kết quả mã hóa trở lại cho Alice. Rõ ràng là Alice chỉ có thể giải mã kết quả, cô ấy không có quyền truy cập vào bất kỳ biến số nào khác.

Trong kịch bản tổng hợp đám mây, như e-voting nơi nhiều người tham gia gửi phiếu bầu được mã hóa trên một đám mây chung, một kỹ thuật khác được sử dụng: Khóa giải mã thường không được cung cấp cho một người nhận duy nhất mà thay vào đó được chia sẻ bí mật giữa các thành viên của một cơ quan giải mã khác nhau. Trong trường hợp này, việc giải mã chỉ có thể được kích hoạt trên một văn bản mã hóa cụ thể bằng cách thực hiện một tính toán đa bên, có liên quan đến truyền thông trực tuyến giữa các thành viên của cơ quan. Nếu một thành viên từ chối giải mã một văn bản mã hóa, việc giải mã sẽ không thể thực hiện được. Điều này đảm bảo rằng chỉ có các văn bản mã hóa được đồng ý bởi tất cả các thành viên của cơ quan mới có thể được giải mã.

Các khối xây dựng của Mã hóa đồng cấu

Có ba loại mã hóa đồng cấu: mã hóa đồng cấu một phần (PHE), mã hóa đồng cấu cấp độ (LHE) và mã hóa đồng cấu hoàn toàn (FHE). Mã hóa đồng cấu một phần chỉ cho phép chúng ta tính toán một tập hợp các hàm bị hạn chế (ví dụ: chỉ một tổng, chỉ các hàm tuyến tính, chỉ các hàm song tuyến), trong khi mã hóa đồng cấu và đồng cấu hoàn toàn có thể đánh giá các mạch tùy ý, hoặc, tương đương, các hàm có luồng điều khiển độc lập với dữ liệu. Đối với LHE, các tham số mật mã phụ thuộc vào chức năng và phát triển theo độ phức tạp của mạch, từ đó dẫn đến các bản mã và khóa lớn hơn. Lược đồ FHE cho phép, đối với một tập hợp các tham số nhất định, và do đó đối với một khóa và kích thước bản mã nhất định, chúng tôi đánh giá bất kỳ hàm nào có thể được biểu diễn dưới dạng mạch với Cổng số học hoặc nhị phân. Đó là, trái ngược với LHE, ngay cả khi mạch để đánh giá ngày càng phát triển, các tham số sơ đồ (và khóa và bản mã) không lớn hơn.

Nói cách khác, khi câu hỏi được hỏi liệu một mạch văn bản rõ nhất định có thể chạy đồng cấu hay không và với chi phí nào (về thời gian và chi phí bộ nhớ), PHE có thể trả lời không cho câu hỏi. LHE trả lời có, nhưng có thể đặt chi phí cao tùy ý cho các mạch phức tạp. FHE cũng trả lời có, và, ngoài ra, nó cung cấp các khóa, thuật toán mã hóa và giải mã, và cách đánh giá đồng cấu một tập hợp Gates phổ quát trước khi mạch văn bản thuần túy thậm chí được chỉ định. Do đó, FHE là chế độ duy nhất đảm bảo rằng bộ nhớ và thời gian chạy của đánh giá đồng cấu vẫn tỷ lệ thuận với mạch bản rõ ban đầu. Để làm điều này, tất cả các sơ đồ FHE được biết đến ngày nay đều xử lý các bản mã ồn ào ngày càng ồn ào hơn khi tính toán được thực hiện. Để tránh tiếng ồn tràn vào tính toán được thực hiện và dẫn đến lỗi giải mã, các sơ đồ này thường xuyên thực hiện một hoạt động khá tốn kém gọi là bootstrapping, giúp giảm tiếng ồn trở lại mức có thể quản lý được. Thông tin thêm về các chi tiết cụ thể của từng loại sơ đồ, về bootstrapping và cách giảm thiểu tiếng ồn và các chi phí khác với trình biên dịch FHE, trong bài đăng trên blog thứ hai của loạt bài này!

Disclaimer:

  1. Bài viết này được in lại từ [Mật mã học], Tất cả bản quyền thuộc về tác giả gốc [Nicolas Gama và Sandra Guasch]. Nếu có bất kỳ đối tượng phản đối việc tái bản này, vui lòng liên hệ với Gate Họcđội, và họ sẽ xử lý nhanh chóng.
  2. Miễn trừ trách nhiệm: Quan điểm và ý kiến được thể hiện trong bài viết này chỉ thuộc về tác giả và không thành lập bất kỳ lời khuyên đầu tư nào.
  3. Các bản dịch của bài viết sang các ngôn ngữ khác được thực hiện bởi nhóm Gate Learn. Trừ khi có đề cập, việc sao chép, phân phối hoặc đạo văn các bài viết đã dịch là cấm.

Mã hóa đồng cấu hoàn toàn: Giới thiệu và các trường hợp sử dụng

Nâng cao8/22/2024, 9:21:34 AM
Bài viết này nhằm mục đích cung cấp cho người đọc một cái nhìn tổng quan cấp cao hơn về những gì FHE có thể được sử dụng và các kịch bản hoặc thiết lập khác nhau tận dụng FHE. Trong một bài đăng trên blog trong tương lai, chúng tôi sẽ đi sâu vào chi tiết hơn về các loại FHE (ảnh hưởng đến loại tính toán chúng tôi có thể thực hiện) và cuối cùng là loại trình biên dịch nào chúng tôi có thể tìm thấy để dịch các chương trình của mình thành các hoạt động có thể được tính toán bằng FHE.

Khi nghĩ về việc mã hóa, những ứng dụng đầu tiên mà người ta nghĩ đến là mã hóa khi nằm yên và mã hóa trong quá trình vận chuyển. Ứng dụng đầu tiên cho phép lưu trữ một số dữ liệu trên ổ cứng được mã hóa, thiết bị di động hoặc thậm chí cơ sở dữ liệu đám mây và đảm bảo chỉ có chủ sở hữu hợp pháp mới có thể xem hoặc chỉnh sửa nội dung rõ nguyên bản. Mã hóa trong quá trình vận chuyển đảm bảo rằng dữ liệu được truyền qua Internet chỉ có thể truy cập bởi người nhận được chỉ định, ngay cả khi nó đi qua các bộ định tuyến hoặc kênh công cộng. Cả hai kịch bản đều phụ thuộc vào mã hóa, với đảm bảo toàn vẹn bổ sung rằng dữ liệu cũng không bị tấn công xâm nhập từ một kẻ tấn công độc hại ở giữa. Điều này được gọi là mã hóa xác thực: sau khi dữ liệu được mã hóa, không ai trong chuỗi có thể suy ra bất kỳ bit dữ liệu nào (bảo mật) và không ai có thể thay đổi văn bản mã hóa mà không bị phát hiện (toàn vẹn/xác thực).

Một số trường hợp sử dụng cộng tác yêu cầu một số xử lý không tầm thường được cho phép ngay cả trên bản mã. Đây là lĩnh vực của các kỹ thuật bảo vệ quyền riêng tư, hoặc mã hóa khi sử dụng, với mã hóa đồng cấu hoàn toàn (FHE) là một trong số đó. Một ví dụ là bỏ phiếu điện tử trên đám mây: ví dụ, cử tri có thể mã hóa lá phiếu của họ, sau đó một số thực thể ở giữa sẽ tổng hợp tất cả các lá phiếu để đếm số phiếu bầu và chỉ có kết quả cuối cùng mới được công bố. Thật không may, với mã hóa được xác thực, thực thể ở giữa sẽ cần phải giải mã tất cả các lá phiếu để thực hiện tính toán như vậy và sẽ thấy các phiếu bầu riêng lẻ rõ ràng, điều này khá cồng kềnh. Về lý thuyết, chúng ta có thể xáo trộn các lá phiếu (một số giao thức bỏ phiếu điện tử thực sự dựa vào điều này), nhưng, không giống như phiếu bầu giấy, các cơ chế mật mã truyền thống đảm bảo tính toàn vẹn cũng khiến việc hủy liên kết một lá phiếu được mã hóa khỏi danh tính của người gửi trở nên khó khăn hơn nhiều. Trong sơ đồ bỏ phiếu điện tử, người ta có thể thêm một bức tường phần cứng xung quanh thực thể đếm phiếu. Ví dụ, đây là mục tiêu của các khu vực thực thi đáng tin cậy. Những vùng đất như vậy sẽ khiến kẻ tấn công khó tương tác với thực thể hơn nhiều. Nhưng sau đó, một lỗi trong phần cứng có thể làm rò rỉ khóa giải mã và không giống như lỗi phần mềm, các lỗ hổng thiết kế phần cứng không thể được vá dễ dàng.

Để giải quyết vấn đề này và các trường hợp sử dụng tương tự khác, chúng ta có thể sử dụng mã hóa đồng cấu hoàn toàn (FHE). FHE là một dạng đặc biệt của mã hóa cho phép tính toán một hàm trên các văn bản mã hóa mà không cần giải mã chúng, và thu được một bản mã hóa của kết quả của hàm trực tiếp.

Hầu hết thời gian, hàm f để đánh giá là công khai, vì vậy chuỗi các bước xử lý để chuyển đổi một mã hóa của f(x) là kiến thức công khai và có thể được thực hiện trên đám mây mà không liên quan đến bất kỳ bí mật nào.

Hình này miêu tả 3 kịch bản cho việc bỏ phiếu điện tử: trong hình ảnh bên trái, một thực thể đáng tin cậy trộn và giải mã những phiếu bầu cá nhân trước khi công bố việc thêm chúng. Chúng ta phải tin tưởng thực thể thực hiện tính toán để bảo vệ quyền riêng tư của cử tri và đếm phiếu đúng. Trong hình ảnh ở giữa, một Khu vực Đáng tin cậy, đáng tin cậy để cung cấp cam kết về tính toàn vẹn và quyền riêng tư, được sử dụng để thực hiện cùng một tính toán. Trong hình ảnh bên phải, mã hóa đồng cấu được sử dụng: những phiếu bầu đã được mã hóa có thể được thêm vào (công khai) trước khi kết quả được giải mã. E() đại diện cho phép mã hóa, trong khi D() đại diện cho giải mã.

FHE cũng gọn nhẹ, điều này có nghĩa là kích thước của văn bản mật đầu ra và nỗ lực giải mã chỉ phụ thuộc vào số bit trong kết quả văn bản mật. Điều này không phụ thuộc vào chuỗi các phép tính đã được áp dụng. Điều này loại trừ các hệ mật mã không gọn nhẹ đơn giản chỉ cần nối các văn bản mật đầu vào của x với mã nguồn của f và để người nhận làm tất cả công việc bằng cách giải mã x và sau đó áp dụng f.

Gia công phần mềm FHE thường được trình bày như một giải pháp thay thế cho các vùng đất an toàn, dựa trên độ cứng của một vấn đề toán học hơn là các rào cản thực tế. Do đó, FHE hoàn toàn bất khả xâm phạm đối với các cuộc tấn công kênh bên thụ động hoặc các tham nhũng khác của máy chủ đám mây. Hãy tưởng tượng rằng ai đó cần thuê ngoài một số tính toán, nhưng dữ liệu thực sự nhạy cảm. Người đó có thể sẽ miễn cưỡng sử dụng máy ảo đám mây nếu người khác có thể root trên máy. Họ có lẽ cũng sẽ ngần ngại chạy nó trong một vùng đất như SGX, biết rằng CPU và bộ nhớ của các máy chủ đám mây được theo dõi liên tục về tải, công suất, nhiệt độ. Có lẽ một số thông tin có thể được trích xuất từ các phép đo này. Người đó có thể được trấn an bởi lời hứa của FHE rằng việc trích xuất bất kỳ bit thông tin nào cũng đòi hỏi phải phá vỡ một vấn đề toán học hậu lượng tử, độc lập với bất kỳ loại phép đo nào chúng ta có thể thu thập.

Nếu tính bảo mật được cung cấp bởi hệ thống ngăn chặn kẻ tấn công đọc bất kỳ bit thông tin nào mà không có khóa bí mật, sự đa dạng chung của FHE cho phép, một cách khác, kẻ tấn công lật đổ bất kỳ bit nào được tính toán: trong mạch, điều này tương đương với các cuộc tấn công kênh phụ hoạt động, nơi kẻ tấn công được cấp quyền sử dụng tia laser ma thuật có thể nhắm vào bất kỳ bit nào. Ban đầu, điều này có thể nghe có vẻ rất đáng sợ, nhưng trong FHE, những cuộc tấn công này tương ứng với các thực thi không trung thực của các hoạt động đồng cấu. Chúng có thể được tránh bằng cách thêm sao chép hoặc dư thừa trong quá trình tính toán.

FHE thường được trình bày dưới dạng khóa công khai. Có:

  1. Một khóa giải mã: Đây là khóa chính của hệ mật mã, từ đó tất cả các khóa khác có thể được tạo ra. Khóa giải mã thường được tạo ra cục bộ và không bao giờ được truyền, và chỉ người sở hữu khóa giải mã mới có thể giải mã một văn bản mã hóa đồng cấu hoàn toàn.
  2. Một khóa mã hóa: Ở chế độ khóa công khai, khi bên cung cấp văn bản mật ban đầu không phải chủ sở hữu khóa giải mã, khóa kích cỡ trung bình này thường bao gồm các mã hóa ngẫu nhiên của số không. Do FHE hỗ trợ các hàm tuyến tính, điều này đủ để mã hóa bất kỳ thông điệp nào.
  3. Một khóa đánh giá: Khóa này sẽ được cung cấp cho bất kỳ bên nào muốn đánh giá một chức năng trên các bản mã. Khóa này cũng an toàn để công bố hoặc truyền như bất kỳ khóa công khai nào. Kích thước của khóa đánh giá thay đổi từ trống đến rất lớn, phụ thuộc vào chức năng cần đánh giá có phải là tuyến tính hay tùy ý.

Người sở hữu khóa giải mã là người sở hữu bí mật nhạy cảm nhất của hệ mã hóa. Người này chịu trách nhiệm đảm bảo rằng chuỗi các hoạt động đồng cấu đã được thực thi là hợp lệ và rằng văn bản mã hóa cuối cùng an toàn để giải mã, sau đó giải mã kết quả văn bản gốc. Nếu có các hoạt động độc hại được đưa vào chuỗi, khóa giải mã có thể bị rò rỉ trong quá trình giải mã. May mắn thay, các hoạt động đồng cấu có thể được thực hiện công khai và xác minh được.

Các kịch bản FHE

Trong phần này, chúng tôi mô tả một số kịch bản mà FHE có thể được sử dụng, cũng như một số ưu điểm và nhược điểm của mỗi cài đặt.

Chế độ Outsourcing


Trong hình này, biểu tượng chìa khóa màu cam biểu thị chìa khóa giải mã (và chủ sở hữu của nó). Văn bản mã hóa đồng cấu được biểu thị bằng những cái khóa có cùng màu với chìa khóa giải mã. Các bên đóng góp dữ liệu riêng tư được biểu thị bằng một hình trụ: ở đây, chỉ có Alice đóng góp dữ liệu riêng tư. Ở phía Bob, hàm đánh giá và chìa khóa đánh giá là công khai, và tính toán, được miêu tả bằng một hộp màu xanh lá cây, có thể được thực hiện một cách xác định. Ai cũng có thể theo dõi tính toán và phát hiện nếu văn bản mã hóa đầu ra được tuyên bố là không chính xác.

Đây là trường hợp sử dụng đầu tiên trong lịch sử được xuất bản cho FHE. Nó nhằm mục đích biến điện toán đám mây thành một máy tính riêng tương tự như một vùng an toàn, nhưng dựa trên bảo mật mật mã thay vì bảo mật phần cứng. Trong bối cảnh như vậy, Alice sở hữu một số dữ liệu riêng tư, nhưng có khả năng tính toán hạn chế. Bob bắt chước một phiên bản đám mây với sức mạnh tính toán lớn hơn nhiều. Bob không đóng góp với bất kỳ dữ liệu riêng tư bổ sung nào. Alice có thể thuê ngoài một tính toán bằng cách mã hóa các đầu vào, Bob sau đó đánh giá hàm mong muốn (công khai) đồng cấu và gửi kết quả được mã hóa trở lại cho Alice.

Với khả năng phần cứng hiện tại, chế độ outsourcing vẫn chậm một chút để sử dụng một cách toàn diện trong thực tế - chúng ta thường có thể tính một yếu tố tăng thời gian chạy khoảng 1 triệu lần và một yếu tố tăng bộ nhớ khoảng 1 nghìn trên các trường hợp sử dụng phi tuyến tính. Tuy nhiên, phần cứng FHE đang được phát triển để bắt kịp khoảng cách, giống như Dự án DPRIVE của DarpahoặcCryptoLight.

Hiện tại, chế độ outsourcing được sử dụng trong thực tế cho các trường hợp sử dụng PIR (Private Information Retrieval), nơi một máy chủ (Bob) có cơ sở dữ liệu công cộng lớn, một khách hàng (Alice) phát ra một truy vấn, và chỉ số được truy vấn phải được giữ riêng tư. Các kế hoạch PIR như vậy được hưởng lợi rất nhiều từ tính tuyến tính và tính chất nhỏ gọn của các hoạt động mã hóa đồng cấu, trong khi độ sâu nhân tích nhỏ của mạch giữ cho chi phí tính toán trong giới hạn hợp lý.

Bảng này tóm tắt những ưu điểm và nhược điểm của chế độ giao việc ngoài.

Chế độ tính toán hai bên

Hình vẽ này sử dụng cùng mã màu như trước đó. Lần này, Bob đóng góp vào phép tính bằng một số dữ liệu riêng. Phép tính trên phía Bob không còn được công khai xác minh nữa, được biểu thị bằng một hộp màu đỏ, chế độ này nên được giới hạn trong các trường hợp sử dụng chỉ tòan vẹn nhưng tòan tìm hiểu.

Trong cài đặt mới này, sự khác biệt duy nhất là Bob đóng góp vào tính toán với một số dữ liệu riêng. Trong trường hợp này, FHE là một giải pháp tính toán hai bên tốt, với giao tiếp tối thiểu và đảm bảo mạnh mẽ cho phía người truy vấn: Bob không biết gì về dữ liệu của Alice và Alice biết kết quả của tính toán.

Một ứng dụng tiềm năng cho tình huống này có thể là vấn đề của triệu phú, trong đó Alice và Bob là hai triệu phú muốn biết ai giàu hơn mà không tiết lộ tài sản của mình cho bên kia. Các giải pháp cho vấn đề này được sử dụng trong các ứng dụng thương mại điện tử.

Chế độ tổng hợp

Đây là một sự tinh chỉnh của chế độ outsourcing, nơi dữ liệu từ nhiều người tham gia có thể được tổng hợp theo cách (theo nghĩa là kết quả không tăng lên theo số lượng người tham gia) và cách thức có thể kiểm tra công khai. Các cách sử dụng điển hình bao gồm học liên minh và bỏ phiếu điện tử.

Chế độ Client-Server

Bộ cài đặt này là sự tinh tế của chế độ tính toán hai bên, trong đó bên tính toán hiện đang cung cấp dịch vụ tính toán an toàn cho nhiều khách hàng, mỗi khách hàng đều có khóa bí mật riêng của họ. FHE có thể được sử dụng như một dịch vụ dự đoán mô hình riêng tư (ví dụ: một dịch vụ ML với mô hình riêng tư và đầu vào): máy chủ có mô hình riêng tư (riêng tư nhưng ở dạng văn bản thô) và mỗi khách hàng có dữ liệu riêng của mình và muốn chạy một dự đoán. Kết quả là, mỗi khách hàng nhận được dự đoán được mã hóa riêng của mình, với khóa bí mật riêng của mình.

Làm thế nào mã hóa đồng cấu đảm bảo rằng hàm tính toán được xem là hợp pháp?

Luôn dễ dàng hơn để sử dụng FHE trong các tình huống hợp tác, trong đó mỗi người tham gia có động lực để tuân theo giao thức một cách trung thực. Ví dụ, FHE có thể được sử dụng để tính toán số liệu thống kê giữa hai pháp nhân của cùng một nhóm ở hai quốc gia khác nhau: các quy định như GDPR cho phép một số thống kê được công bố, nhưng ngăn chặn nói chung thu thập tất cả dữ liệu riêng biệt ở cùng một nơi. Trong trường hợp này, sử dụng FHE là có thể và tất cả những người tham gia đều có động lực để tuân theo giao thức một cách trung thực. Trong kịch bản không hợp tác, cách dễ nhất để đảm bảo rằng chức năng liên quan đã được tính toán là giới thiệu dự phòng. Ví dụ, trong các kịch bản thuê ngoài và tổng hợp, các tính toán đồng cấu là hoàn toàn công khai và có thể được thực hiện xác định. Miễn là hai hoặc nhiều thực thể độc lập kết thúc với cùng một bản mã đầu ra, thì việc tính toán là chính xác và kết quả là an toàn để giải mã. Càng dư thừa, chúng ta càng có thể tin tưởng vào kết quả cao hơn, tất nhiên đó là sự đánh đổi với hiệu quả.

Ngoài ra, khi bên tính toán bảo đảm cho kết quả FHE bằng cách ký số các ciphertext đầu vào và đầu ra, mọi người có thể theo dõi lại quá trình tính toán FHE đó và kiểm tra xem chứng cứ có hợp lệ không. Mọi nỗ lực gian lận của bên tính toán FHE có thể bị phát hiện công khai và liên kết với một chứng chỉ công khai có thể xác minh để tiết lộ hành vi gian lận và người gian lận - chúng tôi gọi mô hình như vậy là mô hình bảo mật bí mật mạnh.

Chữ ký đồng cấu hoàn toànlà một cách khác để xác minh tính chính xác của một phép tính, mà không cần sự xác nhận độc lập, nhưng tổng quát yêu cầu nhiều tài nguyên hơn.

Làm thế nào FHE đảm bảo rằng người nhận cuối cùng chỉ giải mã kết quả cuối cùng mà không phải là biến trung gian?

Cách dễ nhất để làm điều này là đảm bảo chủ sở hữu khóa giải mã không có quyền truy cập vào bất kỳ văn bản mã trung gian nào.

Trong kịch bản hai bên hoặc trong kịch bản máy khách-máy chủ, Alice mã hóa đầu vào, Bob thực hiện tính toán trên văn bản mã hóa và truyền kết quả mã hóa trở lại cho Alice. Rõ ràng là Alice chỉ có thể giải mã kết quả, cô ấy không có quyền truy cập vào bất kỳ biến số nào khác.

Trong kịch bản tổng hợp đám mây, như e-voting nơi nhiều người tham gia gửi phiếu bầu được mã hóa trên một đám mây chung, một kỹ thuật khác được sử dụng: Khóa giải mã thường không được cung cấp cho một người nhận duy nhất mà thay vào đó được chia sẻ bí mật giữa các thành viên của một cơ quan giải mã khác nhau. Trong trường hợp này, việc giải mã chỉ có thể được kích hoạt trên một văn bản mã hóa cụ thể bằng cách thực hiện một tính toán đa bên, có liên quan đến truyền thông trực tuyến giữa các thành viên của cơ quan. Nếu một thành viên từ chối giải mã một văn bản mã hóa, việc giải mã sẽ không thể thực hiện được. Điều này đảm bảo rằng chỉ có các văn bản mã hóa được đồng ý bởi tất cả các thành viên của cơ quan mới có thể được giải mã.

Các khối xây dựng của Mã hóa đồng cấu

Có ba loại mã hóa đồng cấu: mã hóa đồng cấu một phần (PHE), mã hóa đồng cấu cấp độ (LHE) và mã hóa đồng cấu hoàn toàn (FHE). Mã hóa đồng cấu một phần chỉ cho phép chúng ta tính toán một tập hợp các hàm bị hạn chế (ví dụ: chỉ một tổng, chỉ các hàm tuyến tính, chỉ các hàm song tuyến), trong khi mã hóa đồng cấu và đồng cấu hoàn toàn có thể đánh giá các mạch tùy ý, hoặc, tương đương, các hàm có luồng điều khiển độc lập với dữ liệu. Đối với LHE, các tham số mật mã phụ thuộc vào chức năng và phát triển theo độ phức tạp của mạch, từ đó dẫn đến các bản mã và khóa lớn hơn. Lược đồ FHE cho phép, đối với một tập hợp các tham số nhất định, và do đó đối với một khóa và kích thước bản mã nhất định, chúng tôi đánh giá bất kỳ hàm nào có thể được biểu diễn dưới dạng mạch với Cổng số học hoặc nhị phân. Đó là, trái ngược với LHE, ngay cả khi mạch để đánh giá ngày càng phát triển, các tham số sơ đồ (và khóa và bản mã) không lớn hơn.

Nói cách khác, khi câu hỏi được hỏi liệu một mạch văn bản rõ nhất định có thể chạy đồng cấu hay không và với chi phí nào (về thời gian và chi phí bộ nhớ), PHE có thể trả lời không cho câu hỏi. LHE trả lời có, nhưng có thể đặt chi phí cao tùy ý cho các mạch phức tạp. FHE cũng trả lời có, và, ngoài ra, nó cung cấp các khóa, thuật toán mã hóa và giải mã, và cách đánh giá đồng cấu một tập hợp Gates phổ quát trước khi mạch văn bản thuần túy thậm chí được chỉ định. Do đó, FHE là chế độ duy nhất đảm bảo rằng bộ nhớ và thời gian chạy của đánh giá đồng cấu vẫn tỷ lệ thuận với mạch bản rõ ban đầu. Để làm điều này, tất cả các sơ đồ FHE được biết đến ngày nay đều xử lý các bản mã ồn ào ngày càng ồn ào hơn khi tính toán được thực hiện. Để tránh tiếng ồn tràn vào tính toán được thực hiện và dẫn đến lỗi giải mã, các sơ đồ này thường xuyên thực hiện một hoạt động khá tốn kém gọi là bootstrapping, giúp giảm tiếng ồn trở lại mức có thể quản lý được. Thông tin thêm về các chi tiết cụ thể của từng loại sơ đồ, về bootstrapping và cách giảm thiểu tiếng ồn và các chi phí khác với trình biên dịch FHE, trong bài đăng trên blog thứ hai của loạt bài này!

Disclaimer:

  1. Bài viết này được in lại từ [Mật mã học], Tất cả bản quyền thuộc về tác giả gốc [Nicolas Gama và Sandra Guasch]. Nếu có bất kỳ đối tượng phản đối việc tái bản này, vui lòng liên hệ với Gate Họcđội, và họ sẽ xử lý nhanh chóng.
  2. Miễn trừ trách nhiệm: Quan điểm và ý kiến được thể hiện trong bài viết này chỉ thuộc về tác giả và không thành lập bất kỳ lời khuyên đầu tư nào.
  3. Các bản dịch của bài viết sang các ngôn ngữ khác được thực hiện bởi nhóm Gate Learn. Trừ khi có đề cập, việc sao chép, phân phối hoặc đạo văn các bài viết đã dịch là cấm.
Bắt đầu giao dịch
Đăng ký và giao dịch để nhận phần thưởng USDTEST trị giá
$100
$5500