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

MÃ hóa ĐỒNG cấu đầy đủ VÀ ỨNG DỤNG TRONG THEO dõi sức KHỎE AN TOÀN dựa TRÊN điện TOÁN đám mây

67 24 3

Đ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

Định dạng
Số trang 67
Dung lượng 1,81 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Các hệ mã hóa đồng cấu đầy đủ Fully Homomorphic Encryption – FHE được phát minh ra để giải quyết bài toán này, nó cho phép tính toán trên các dữ liệu đã được mã hóa mà không cần giải m

Trang 1

+

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Khuất Thanh Sơn

MÃ HÓA ĐỒNG CẤU ĐẦY ĐỦ VÀ ỨNG DỤNG TRONG THEO DÕI SỨC KHỎE AN TOÀN DỰA TRÊN

ĐIỆN TOÁN ĐÁM MÂY

LUẬN VĂN THẠC SĨ

Ngành: Công nghệ thông tin

HÀ NỘI – 2021

Trang 2

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Khuất Thanh Sơn

MÃ HÓA ĐỒNG CẤU ĐẦY ĐỦ VÀ ỨNG DỤNG TRONG THEO DÕI SỨC KHỎE AN TOÀN DỰA TRÊN

ĐIỆN TOÁN ĐÁM MÂY

LUẬN VĂN THẠC SĨ

Ngành: Công nghệ thông tin

Cán bộ hướng dẫn: TS Lê Phê Đô

HÀ NỘI – 2021

Trang 3

ii

LỜI CẢM ƠN

Trước tiên, tôi xin gửi lời cảm ơn các thầy cô và các cán bộ của trường Đại học Công nghệ - Đại học Quốc Gia Hà Nội Đặc biệt, các thầy cô giáo thuộc khoa CNTT đã dạy bảo tận tình và luôn tạo điều kiện thuận lợi cho tôi được học tập và nghiên cứu trong điều kiện tốt nhất có thể

Tôi xin chân thành gửi lời cảm ơn sâu sắc đến thầy giáo TS Lê Phê Đô, người

đã tận tình hướng dẫn và đóng góp ý kiến quý báu trong suốt quá trình tôi thực hiện luận văn thạc sĩ của mình

Cuối cùng, tôi muốn gửi lời cảm ơn đến gia đình, bạn bè luôn bên cạnh và ủng hộ, động viên tôi trong suốt thời gian vừa qua

Tôi xin chân thành cảm ơn!

Trang 4

iii

TÓM TẮT

Nhu cầu tính toán trên dữ liệu lớn (big data) ngày càng tăng, đặc biệt là các

dữ liệu y – sinh, đã dẫn đến việc các công ty và tổ chức phải thuê các công ty có năng lực tính toán mạnh Đến đây lại nảy sinh vấn đề là làm sao để đảm bảo được

sự an toàn của dữ liệu? Các hệ mã hóa đồng cấu đầy đủ (Fully Homomorphic

Encryption – FHE) được phát minh ra để giải quyết bài toán này, nó cho phép

tính toán trên các dữ liệu đã được mã hóa mà không cần giải mã với số phép toán tùy ý

Để đạt được thành tựu như ngày nay, mã hóa đồng cấu đã có một quá trình phát triển hơn 30 năm Trước tiên, các hệ mật RSA và ElGamal là các hệ mã hóa đồng cấu một phần xuất hiện vào năm 1978 và 1985 Sau đó, là các hệ mật được phát biểu bởi các tác giả: Benaloh năm 1994, Naccache và Stern năm 1998, Paillier năm 1999, Damgård và Jurik năm 2001, Galbraith năm 2002, Kawachi và các cộng sự năm 2007…[57] Đa số các hệ mật này chỉ có tính đồng cấu với phép toán nhân mà không còn có tính đồng cấu với phép cộng

Để khắc phục nhược điểm này, các nhà mật mã đã sáng tạo ra mã hóa đồng

cấu một số phần (Somewhat Homomorphic Encryption – SWHF) được giới thiệu

vào với các hệ mật Yao năm 1982, Sander và các cộng sự năm 1999, Boneh và các cộng sự năm 2005, Ishai và Paskin năm 2007, … các hệ mật này có nhược điểm là làm tăng kích cỡ bản mã so với bản rõ nhiều lần, hoặc có nhiều lỗ hổng

dễ bị tấn công, hoặc số lượng phép toán có thể thực hiện bị hạn chế [57]

Đến năm 2009, bằng công trình của Gentry, hệ mã hóa đồng cấu đầy đủ (Fully

Homomorphic Encryption – FHE) mới được phát minh Từ đó đến nay đã xuất

hiện nhiều hệ mật FHE đã được phát minh với những tính năng tốt và hiệu quả ngày càng cao

Tích hợp điện toán đám mây và blockchain là hướng phát triển trong tương lai có thể mang lại những đột phá chưa từng có trong các dịch vụ y tế, sự kết hợp giữa IoT và theo dõi bệnh nhân từ xa với thời gian thực cho phép bệnh nhân quyền kiểm soát và chủ động theo dõi tình trạng sức khỏe của mình Tuy nhiên đi song song với việc phát triển nhanh chóng của sự tích hợp này khiến việc cải thiện bảo mật điện toán đám mây đang trở nên một đề tài thu hút sự nghiên cứu của rất nhiều nhà khoa học

Trong Luận văn này, tôi nghiên cứu Mã hóa đồng cấu đầy đủ và ứng dụng trong theo dõi sức khỏe an toàn dựa trên điện toán đám mây

Từ khóa: IoT, Big data, Cloud computing, Health, Smart Health, FHE

Trang 5

iv

LỜI CAM ĐOAN

Tôi xin cam đoan rằng mọi kết quả trình bày trong luận văn đều do tôi thực hiện dưới sự hướng dẫn của TS Lê Phê Đô

Tất cả các tham khảo nghiên cứu liên quan đều được nêu rõ nguồn gốc một cách rõ ràng từ danh mục tài liệu tham khảo trong luận văn Luận văn không sao chép tài liệu, công trình nghiên cứu từ người khác mà không chỉ rõ về mặt tài liệu tham khảo

Các thống kê, các kết quả trình bày trong luận văn đều được lấy từ thực nghiệm khi chạy chương trình Nếu tôi sai tôi hoàn toàn chịu trách nhiệm theo quy định của trường Đại học Công Nghệ - Đại học quốc gia Hà Nội

Hà Nội, ngày 10 tháng 11 năm 2021

Học viên

Khuất Thanh Sơn

Trang 6

v

MỤC LỤC

MỞ ĐẦU 1

1 Đặt vấn đề 1

2 Mục đích ý nghĩa của luận văn 2

3 Cấu trúc luận văn 2

CHƯƠNG 1: MÃ HÓA ĐỒNG CẤU 4

1.1 Lịch sử mã hóa đồng cấu 4

1.2 Các khái niệm 4

1.3 Các hệ mã hóa đồng cấu một phần (PHE) 5

1.3.1 Hệ mật RSA 6

1.3.2 Hệ mật Goldwasser-Micali – GM 6

1.3.3 Hệ mật ElGamal 7

1.4 Một số bài toán ví dụ 8

1.4.1 Hệ mật ElGamal 8

1.4.2 Hệ mật RSA 10

CHƯƠNG 2: MÃ HÓA ĐỒNG CẤU ĐẦY ĐỦ 13

2.1 Hệ mã hóa đồng cấu đầy đủ 13

2.2 Hệ mật Lattice 15

2.3 Hệ mật LWE 16

2.4 Hệ mật GGH 19

2.5 Mã hóa và giải mã LWE và GGH 21

2.5.1 Hệ mật LWE 21

2.5.2 Hệ mật GGH 22

2.6 Ứng dụng của mã hóa đồng cấu đầy đủ 24

CHƯƠNG 3: ĐIỆN TOÁN ĐÁM MÂY VÀ ỨNG DỤNG TRONG VIỆC KIỂM SOÁT AN TOÀN PHỤC VỤ NHU CẦU THEO DÕI SỨC KHỎE 29 3.1 Điện toán đám mây 29

3.1.1 Định nghĩa 29

3.1.2 Các mô hình điện toán đám mây 30

Trang 7

vi

3.2 Điện toán đám mây và vấn đề an toàn bảo mật thông tin 34

3.3 Ứng dụng điện toán đám mây trong việc kiểm soát an toàn phục vụ nhu cầu theo dõi sức khỏe 35

3.3.1 Thu thập dữ liệu 36

3.3.2 Mã hóa AES 37

3.3.3 Chuyển đổi mã hóa AES sang FHE 40

3.3.4 Lưu trữ và tính toán trong đám mây 41

3.3.5 Quản lý lưu trữ trong đám mây 42

CHƯƠNG 4: KẾT QUẢ THỰC NGHIỆM 44

4.1 Môi trường thực nghiệm 44

4.2 Kết quả thử nghiệm 45

4.2.1 Thu thập dữ liệu liên quan tới sức khỏe 45

4.2.2 Mã hóa dữ liệu bằng mã hóa AES 46

4.2.3 Chuyển đổi mã hóa AES sang FHE 47

4.2.4 Lưu trữ và tính toán trong đám mây: 47

4.2.5 Quản lý lưu trữ trong đám mây 48

4.3 Nhận xét đánh giá 52

KẾT LUẬN VÀ ĐỊNH HƯỚNG PHÁT TRIỂN 53

TÀI LIỆU THAM KHẢO 54

Trang 8

"thiết bị thông minh"), phòng ốc và các trang thiết bị khác được nhúng với các bộ phận điện tử, phần mềm, cảm biến, cơ cấu chấp hành cùng với khả năng kết nối mạng máy tính giúp cho các thiết bị này có thể thu thập và truyền tải dữ liệu

2 Big data Big data

Dữ liệu lớn là một thuật ngữ cho việc xử lý một tập hợp dữ liệu rất lớn và phức tạp mà các ứng dụng xử lý dữ liệu truyền thống không xử lý được Thuật ngữ này thường chỉ đơn giản đề cập đến việc việc sử dụng các phân tích dự báo, phân tích hành vi người dùng, hoặc một số phương pháp phân tích dữ liệu tiên tiến khác trích xuất giá trị từ dữ liệu mà ít khi đề cập đến kích thước của bộ dữ liệu

Điện toán đám mây (Cloud computing)

Còn gọi là điện toán máy chủ ảo, là mô hình điện toán sử dụng các công nghệ máy tính

và phát triển dựa vào mạng Internet

4 E-health Y tế điện tử Ứng dụng công nghệ thông tin vào trong các

dịch vụ y tế

5 FHE Fully

Homomorphic Mã hóa đồng cấu đầy đủ

Trang 9

viii

Encryption

6 LWE Learning with

Errors Bài toán học với lỗi

8 SIS Small Integer

Solution

Trang 10

ix

DANH SÁCH HÌNH VẼ

Hình 1.1: Các hàm mã hóa đồng cấu 5

Hình 2.1: Hai vùng cơ bản của hai cơ sở A và B 20

Hình 2.2: Mô hình triển khai Thông tin Sức khỏe Cá nhân (PHI) 27

Hình 2.3: Thu thập dữ liệu 28

Hình 3.1: Điện toán đám mây 29

Hình 3.2: Tổng quan sự khác nhau giữa các dịch vụ 31

Hình 3.3: Cấu trúc tổng thể của thuật toán AES 37

Hình 3.4: Sơ đồ giảm thiểu thời gian tính toán trong đám mây 42

Hình 4.1: “Dữ liệu bệnh án” dùng để thu thập thông tin 44

Hình 4.2: Bản ghi được thu thập 46

Hình 4.3: Mã hóa AES 46

Hình 4.4: Thông báo của hệ thống đã mã hóa thành công 47

Hình 4.5: File sau khi mã hóa 47

Hình 4.6: Chuyển đổi AES sang FHE 47

Hình 4.7: Tạo một dự án mới 48

Hình 4.8: Lưu trữ dữ liệu trên đám mây 48

Hình 4.9: Phép toán truy vấn 50

Hình 4.10: Nhập thông tin truy vấn 51

Hình 4.11: Kết quả trả về 51

Trang 11

1

MỞ ĐẦU

1 Đặt vấn đề

Mặc dù mã hóa đồng cấu đầy đủ (Fully Homomorphic Encryption - FHE)

là một lĩnh vực mật mã khá mới, nhưng nó đã cho thấy đây là một phương thức bảo vệ thông tin đầy hứa hẹn vì nó cho phép tính toán tùy ý trên dữ liệu được mã hóa Sự phát triển của các sơ đồ FHE thực tế sẽ cho phép phát triển tính toán trên điện toán đám mây an toàn với các dữ liệu nhạy cảm Công nghệ này là một công nghệ rất cần thiết trong xu hướng tính toán và lưu trữ thuê ngoài ngày nay

Hiện nay, trên thế giới, công nghệ thông tin đã tạo ra sự chuyển đổi mạnh mẽ trong ngành y tế, làm cho quá trình chăm sóc sức khỏe ngày càng chất lượng - hiệu quả - hiệu năng Số hóa đã làm cho hệ thống thông tin y tế trở thành nền tảng

để triển khai các nội dung của cách mạng công nghiệp lần thứ 4 như trí tuệ nhân tạo, internet kết nối, dữ liệu lớn, chuỗi khối, điện toán đám mây,… làm cho bệnh viện ngày càng thông minh Tại Việt Nam, Bộ Y tế cũng đã đề ra lộ trình thực hiện bệnh án điện tử và bệnh viện thông minh [1]

Ứng dụng và phát triển công nghệ số, công nghệ thông minh trong y tế góp phần xây dựng hệ thống y tế Việt Nam hiện đại, chất lượng, công bằng, hiệu quả

và hội nhập quốc tế; hỗ trợ người dân dễ dàng tiếp cận thông tin y tế để sử dụng các dịch vụ y tế có hiệu quả cao và được bảo vệ, chăm sóc, nâng cao sức khỏe liên tục, suốt đời Việc triển khai Y tế điện tử (e-health), Y tế số (digital health),

Y tế thông minh (smart health),… trên nền tảng điện toán đám mây sẽ mở ra một kỷ nguyên mới trong việc hình thành hệ thống phòng bệnh và chăm sóc sức khỏe thông minh, giúp người dân chủ động phòng bệnh, dễ dàng tiếp cận các thông tin

y tế, đồng thời được tư vấn, giúp đỡ chăm sóc sức khỏe kịp thời, hiệu quả Tuy nhiên đi song hành với việc triển khai, một trong những vấn đề cần thiết được đặt

ra đó chính là bảo vệ dữ liệu người sử dụng khi tham gia theo dõi sức khỏe Trong luận văn này, chúng tôi sẽ nghiên cứu về các nội dung chính sau: + Nghiên cứu về mã hóa đồng cấu đầy đủ

+ Nghiên cứu về điện toán đám mây và ứng dụng trong các lĩnh vực

+ Nghiên cứu về kiểm soát an toàn

+ Nghiên cứu ứng dụng điện toán đám mây trong kiểm soát an toàn phục vụ nhu cầu theo dõi sức khỏe

Những nghiên cứu này sẽ là nền tảng căn bản cho việc xây dựng một hệ thống theo dõi sức khỏe an toàn mà ở đó, hệ thống sẽ đạt được cơ chế kiểm soát, đảm bảo tính toàn vẹn và minh bạch cho dữ liệu của người sử dụng khi tham gia vào

hệ thống theo dõi sức khỏe

Trang 12

2

2 Mục đích ý nghĩa của luận văn

- Nghiên cứu cơ sở lý thuyết của mã hóa đồng cấu, đi sâu tìm hiểu mã hóa đồng cấu đầy đủ

- Nghiên cứu về điện toán đám mây và ứng dụng của điện toán đám mây

- Trên cở sở các lý thuyết đã nghiên cứu trên, nghiên cứu việc ứng dụng mã hóa đồng cấu đầy đủ vào điện toán đám mây trong việc kiểm soát an toàn phục

vụ nhu cầu theo dõi sức khỏe

- Bên cạnh đó, luận văn là nền tảng cơ sở cho việc xây dựng một hệ thống theo dõi sức khỏe cộng đồng an toàn mà ở đó, nhiệm vụ đảm bảo tính toàn vẹn và minh bạch của dữ liệu người dùng được đặt lên hàng đầu Không chỉ vậy luận văn

sẽ là cơ sở lý thuyết phục vụ cho các môn học thuộc lĩnh vực an toàn thông tin và đặc biệt là mã hóa dữ liệu

Chúng tôi hi vọng rằng luận văn này sẽ là một tài liệu tham khảo hữu ích nhất trong vấn đề an toàn và bảo mật thông tin cho mọi người sau này

3 Cấu trúc luận văn

Các phần còn lại của luận văn này có cấu trúc như sau:

Chương 1: Mã hóa đồng cấu: Trình bày kiến thức nền tảng về lịch sử mã hóa

đồng cấu, các khái niệm, một số hệ mã hóa đồng cấu nổi bật và ví dụ bài toán cụ thể của một số hệ mật đồng cấu

Chương 2: Mã hóa đồng cấu đầy đủ: Trình bày các khái niệm liên quan đến

hệ mã hóa đồng cấu đầy đủ, trình bày một số hệ mã hóa đồng cấu đầy đủ và ứng dụng của mã hóa đồng cấu đầy đủ trong một số lĩnh vực cụ thể

Chương 3: Điện toán đám mây và ứng dụng trong việc kiểm soát an toàn

phục vụ nhu cầu theo dõi sức khỏe: Trình bày khái niệm điện toán đám mây, phân tích các mô hình điện toán đám mây và ứng dụng trong việc kiểm soát an toàn phục vụ nhu cầu theo dõi sức khỏe thông qua các bước: thu thập dữ liệu, mã hóa AES, chuyển đổi mã hóa AES sang FHE, lưu trữ và tính toán trong đám mây, quản lý lưu trữ trong đám mây và khai thác

Chương 4: Kết quả thực nghiệm – Kết quả demo bao gồm đánh giá và so

sánh: Trình bày chi tiết về nội dung thực nghiệm ứng dụng điện toán đám mây trong việc kiểm soát an toàn phục vụ nhu cầu theo dõi sức khỏe dựa trên bộ dữ liệu đó chính là những văn bản bệnh án của bệnh nhân dưới dạng văn bản đã được chuyển thể

Kết luận và định hướng phát triển - tóm lược kết quả mà luận văn đạt được,

những điểm hạn chế, đặc biệt là đưa ra định hướng phát triển nhằm đưa cơ sở lý

Trang 13

3 thuyết trở thành hệ thống được ứng dụng rộng rãi

Trang 14

4

CHƯƠNG 1: MÃ HÓA ĐỒNG CẤU

Mã hóa đồng cấu là sơ đồ mã hóa cho phép tính toán trên dữ liệu được mã hóa Mã hóa đồng cấu có thể được áp dụng trong bất kỳ hệ thống nào bằng cách

sử dụng các thuật toán khóa công khai khác nhau Khi dữ liệu được chuyển đến khu vực công cộng, có nhiều thuật toán mã hóa để bảo mật các hoạt động và lưu trữ dữ liệu Nhưng để xử lý dữ liệu nằm trên máy chủ từ xa mà vẫn bảo vệ được quyền riêng tư, thì mã hóa đồng cấu là rất hữu ích Mã hóa đồng cấu cho phép các tính toán trên văn bản đã được mã hóa, có thể cung cấp kết quả tương tự như tính toán trực tiếp trên dữ liệu ban đầu

Trong chương này, chúng tôi giới thiệu các thuật toán của mã hóa đồng cấu nói chung và lấy ví dụ ba hệ mật là RSA, Goldwasser-Micali (GM) và ElGamal

để minh họa cho sự hoạt động của các hệ mật mã hóa đồng cấu ban đầu

1.1 Lịch sử mã hóa đồng cấu

Năm 1978 Ronald Rivest, Leonard Adleman và Michael Dertouzos lần đầu tiên đề xuất khái niệm mã hóa đồng cấu Kể từ đó, rất ít tiến bộ đã được thực hiện trong vòng 30 năm Hệ thống mã hóa của Shafi Goldwasser và Silvio Micali được

đề xuất vào năm 1982 là một sơ đồ mã hóa đồng cấu với phép cộng, nhưng nó chỉ

có thể mã hóa một bit duy nhất Năm 1999, Pascal Paillier cũng đã đề xuất một

hệ thống mã hóa đồng cấu với phép cộng Vài năm sau, vào năm 2005, Dan Boneh, Eu-Jin Goh và Kobi Nissim đã phát minh ra một hệ thống mã hóa đồng cấu, với số lượng phép cộng không giới hạn nhưng chỉ có thể thực hiện một phép nhân

1.2 Các khái niệm

Định nghĩa 1.2.1 Một sơ đồ mã hóa được gọi là Mã hóa đồng cấu đối với

phép toán (*) nếu đẳng thức (1) sau đúng:

E(m1*m2) = E(m1)*E(m2) với mọi m1, m2 thuộc M,(1) ở đây E là thuật toán mã hóa và M là tập tất cả các bản tin có thể Một sơ đồ mã hóa đồng cấu (Homomorphic Encryption – HE) được xác định bởi bốn hoạt động: KeyGen, Enc, Dec, và Eval KeyGen là hoạt động tạo ra một cặp khóa bí mật và công khai cho phiên bản không đối xứng của HE hoặc một khóa duy nhất cho phiên bản đối xứng Trên thực tế, KeyGen, Enc và Dec không khác với các tác vụ cổ điển của chúng trong các lược đồ mã hóa thông thường Tuy nhiên, Eval là một hoạt động dành riêng cho HE, lấy bản mã làm đầu vào và đầu ra một bản mã tương ứng với một bản rõ Eval thực hiện hàm f () trên các bản

mã (c1, c2) mà không biết các thông báo (m1, m2) Eval lấy bản mã làm đầu vào

Trang 15

Encrypted data storage

1.3 Các hệ mã hóa đồng cấu một phần (PHE)

Trong các sơ đồ HE, các sơ đồ PHE chỉ hỗ trợ hàm Eval khi thực hiện phép cộng hoặc phép nhân, các lược đồ SWHE chỉ hỗ trợ một số thao tác hạn chế hoặc một số mạch giới hạn (ví dụ: chương trình phân nhánh) trong khi các lược đồ FHE

hỗ trợ hàm tùy ý (ví dụ: tìm kiếm, sắp xếp, MAX, MIN, v.v.) với số lần không giới hạn trên bản mã Các sơ đồ PHE, SWHE và FHE nổi tiếng được tóm tắt theo dòng thời gian trong Hình 1 và được giải thích chi tiết hơn trong các phần sau Sự quan tâm đến lĩnh vực Mã hóa đồng cấu đã tăng lên đáng kể sau công việc của Gentry [2] vào năm 2009

Các sơ đồ mã hóa đồng cấu một phần có một số hệ PHE hữu ích đã được phát biểu trong các công bố của các tác giả: Rivest et al năm 1978; Goldwasser và Mi cali năm 1982; ElGamal năm 1985; Benaloh năm 1994; Naccache và Stern năm 1998; Okamoto và Uchiyama năm 1998; Pailler năm 1999; Damgård và Jurik năm 2001; Kawachi năm 2007 Mỗi hệ đã cải thiện PHE theo một cách nào đó Tuy nhiên, trong phần này, chúng tôi chủ yếu tập trung vào các hệ mật PHE chính là

cơ sở cho nhiều hệ PHE khác

Trang 16

6

1.3.1 Hệ mật RSA

RSA là một ví dụ đầu tiên của PHE và được giới thiệu bởi Rivest, Shamir và Adleman [48] ngay sau khi Diffie Helman phát minh ra mật mã khóa công khai [49] RSA là thành tựu khả thi đầu tiên của hệ mật mã khóa công khai Hơn nữa, thuộc tính đồng cấu của RSA đã được chỉ ra bởi Rivest, Adleman và Dertouzous [50] ngay sau semina về RSA Thật vậy, việc sử dụng thuật ngữ "đồng cấu về quyền riêng tư" đã được giới thiệu trong [50] Tính bảo mật của hệ thống mật mã RSA dựa trên độ khó của bài toán phân tích thừa số nguyên tố lớn [51] RSA được định nghĩa như sau:

Thuật toán sinh khóa: Trước tiên, ta chọn các số nguyên tố lớn p và q, và

tính n = pq và φ = (p - 1) (q - 1) Sau đó, ta chọn e sao cho gcd (e, φ) và tính d bằng cách tính nghịch đảo nhân của e (tức là ed ≡ 1 mod φ) Cuối cùng (e, n) được công bố là cặp khóa công khai, còn (d, n) là cặp khóa bí mật

Thuật toán Mã hóa: Trước tiên, thông điệp được chuyển đổi thành một bản

rõ (bằng số) m sao cho 0 ≤ m <n, sau đó thuật toán mã hóa RSA (2) như sau:

c = E (m) = me (mod n), ∀m ∈ M, (2) ở đây c là bản mã

Thuật toán Giải mã: Thông điệp m có thể khôi phục từ bản mã c bằng cặp

khóa bí mật (d, n) như sau: trước tiên tính m = D (c) = c^d (mod n), sau đó chuyển

m trở lại thông điệp ban đầu

Tính chất đồng cấu: Với m1, m2 ∈ M, E (m1) ∗ E (m2) = (m1e (mod n)) ∗ (m2e

(mod n)) = (m1 ∗ m2)e (mod n) = E (m1 ∗ m2) (4) Tính chất đẳng cấu của RSA cho thấy rằng E (m1 ∗ m2) có thể được tính trực tiếp bằng cách sử dụng E (m1) và

E (m2) mà không cần giải mã chúng Nói cách khác, RSA có tính chất đồng cấu đối với phép nhân các bản mã Tuy nhiên, nó không có tính đồng cấu với phép cộng các bản mã

1.3.2 Hệ mật Goldwasser-Micali – GM

GM là hệ mã hóa khóa công khai theo xác suất đầu tiên được đề xuất trong [52] Hệ mật mã GM dựa trên độ khó của bài toán thặng dư bậc hai [53] Số a được gọi là số thặng dư bậc hai theo modulo n nếu tồn tại số nguyên x sao cho x2

≡ a (mod n) Bài toán thặng dư bậc hai quyết định một số q đã cho có phải là số thặng dư bậc hai theo modulo n hay không Hệ mật mã GM được mô tả như sau:

Thuật toán sinh khóa: Tương tự như RSA, n = pq được tính trong đó p và q

là các số nguyên tố lớn khác nhau và sau đó, x được chọn là một số không phải là

Trang 17

7

số thặng dư bậc 2 theo modulo Sau đó, (x, n) được công bố là khóa công khai, còn (p, q) được giữ làm khóa bí mật

Thuật toán Mã hóa: Trước tiên, thông điệp (m) được chuyển đổi thành một

chuỗi các bit (m0m1m2 … mr) Sau đó, với mỗi bit mi của thông báo, một giá trị không dư bậc hai yi được tạo ra sao cho gcd (yi, n) = 1 Sau đó, mỗi bit được mã hóa thành ci như sau: ci = E (mi) = yi2*(xmi) (mod n), ∀mi = {0, 1}, trong đó m =

m0m1 mr, c = c0c1 cr và r là kích thước khối được sử dụng cho không gian thông báo và x được chọn từ Zn ∗ ngẫu nhiên cho mọi mã hóa, trong đó Zn ∗ là nhóm con nhân của số nguyên modulo n bao gồm tất cả các số nhỏ hơn r và

nguyên tố cùng nhau với r

Thuật toán Giải mã: Để giải mã bản mã ci, người ta xem ci có phải là modulo

dư bậc hai n hay không; nếu đúng, thì quyết định mi là 0, ngược lại mi là 1

Tính chất đồng cấu: Với mỗi bit mi ∈ {0, 1}, E (m1) ∗ E (m2) = (y12*xm1(mod n)) ∗ (y22*xm2 (mod n)) = (y1 ∗ y2)2*x(m1 + m2) (mod n) = E (m1 + m2) (6) Tính chất đồng cấu của hệ mật mã GM cho thấy rằng mã hóa của tổng E (m1 ⊕ m2) có thể được tính trực tiếp từ các bit được mã hóa riêng biệt, E (m1) và E (m2) Vì thông điệp và bản mã là các phần tử của tập hợp {0, 1}, các phép toán chính là phép tuyển loại (XOR) Do đó, GM là đồng cấu với phép cộng các số nhị phân

1.3.3 Hệ mật ElGamal

Năm 1985, Taher ElGamal đề xuất một sơ đồ mã hóa khóa công khai mới [54], nó là phiên bản cải tiến của thuật toán trao đổi khóa Diffie-Hellman ban đầu [49], dựa trên độ khó của một bài toán lôgarit rời rạc [55] Sau đó, hệ mật này chủ yếu được sử dụng trong các hệ thống mã hóa hỗn hợp để mã hóa khóa bí mật của

hệ mật khóa đối xứng Hệ mật El-Gamal được định nghĩa như sau:

Thuật toán sinh khóa: Một nhóm Cyclic G có bậc n với phần tử nguyên thủy

g Trong một nhóm cyclic, tất cả các phần tử của nhóm có thể được tạo ra bằng cách sử dụng lũy thừa một phần tử nguyên thủy của chính nó Khi đó, h = gy được tính cho y ∈ Zn ∗ được chọn ngẫu nhiên Cuối cùng, khóa công khai là (G, n, g, h) và x là khóa bí mật của sơ đồ

Thuật toán Mã hóa: Thông điệp m được mã hóa bằng g và x, trong đó x được

chọn hoàn toàn ngẫu nhiên từ tập {1, 2, , n - 1} và đầu ra của thuật toán mã hóa

là một cặp bản mã (c = (c1, c2)), được mô tả qua thuật toán (3):

c = E (m) = (gx, m*hx) = (gx, m*gxy) = (c1, c2), (3)

Thuật toán Giải mã: Để giải mã bản mã c, trước tiên, ta tính s = c1y trong đó

y là khóa bí mật Sau đó, thuật toán giải mã hoạt động như (4) sau:

c2 · s−1 = m*gxy *g−xy = m (4)

Trang 18

8

Tính chất đồng cấu: Tính chất đồng cấu được thể hiện qua (5):

E (m1) ∗ E (m2) = (gx1, m1*hx1) ∗ (gx2, m2*hx2)

= (g(x1 + x2), (m1 ∗ m2)*h(x1 + x2)) = E (m1 ∗ m2) (5) Như ta đã thấy từ suy luận này, hệ mật mã El-Gamal là đồng cấu với phép nhân Nó không hỗ trợ phép cộng trên các bản mã

1.4 Một số bài toán ví dụ

Tiếp theo chúng tôi sẽ lấy ví dụ cụ thể về hai hệ mã hóa ElGamal và RSA để làm rõ hơn cách thức hoạt động của hai hệ mã hóa này

1.4.1 Hệ mật ElGamal

1.4.1.1 Thuật toán mã hóa ElGamal

Thuật toán 1: Mã hóa ElGamal bổ sung

Output: Khóa công khai kpub và khóa bí mật kpr

Trang 19

1.4.1.2 Ứng dụng ElGamal: Dave và HAL

Ví dụ 1 Để thấy điều này trong thực tế, chúng ta hãy xem tác phẩm 2001 của Arthur C Clarke: “Chuyến du hành vũ trụ”[6] Dave đang thu thập phiếu bầu từ phi hành đoàn của mình và muốn HAL – một máy tính thế hệ 9000 được cho là siêu máy tính lúc bấy giờ sử dụng trí tuệ nhân tạo để kiểm đếm lại số phiếu bầu

đó Kết quả của cuộc bỏ phiếu sẽ xác định xem có hay không bay con tàu của họ vào một trọng trường gần nhất, điều này sẽ phá hủy HAL trong quá trình này Lý

do phá hủy HAL đó chính là sau một thời gian hoạt động, HLA đã được đào tạo

và bắt đầu gặp trục trặc, vì vậy quyết định dừng hoạt động của HAL để ngăn ngừa

sự cố nghiêm trọng hơn đã được đưa ra Và vì là siêu máy tính sử dụng trí tuệ nhân tạo nên nếu HAL biết được mình sẽ bị phá hủy thì HAL sẽ có những tính toán và can thiệp và có thể khiến toàn bộ phi hành đoàn gặp nguy hiểm Do đó, Dave không muốn HAL biết kết quả thực sự của phiếu bầu Anh ta gửi cho HAL các phiên bản mã hóa của hai ký tự phụ để HAL thêm vào và đưa ra bản mã

Trang 20

= 7 mod 19 Trả lại c3 = (x3,y3): (6,7)

Tuy ở bước cuối cùng này yêu cầu phải triển khai tính hiệu quả nhưng luận văn có thể chứng minh rằng αm1 + m2 = 1 mod 19 bởi vì:

57+11 mod 19 = 518 mod 19 = (53)6 mod 19

= (112)3 mod 19 = 73 mod 19

= 343 mod 19 = 1 mod 19 Khi Dave có thể khôi phục m từ giải mã từng phần ở trên, anh ta sẽ có bản kiểm phiếu rõ ràng như mong muốn Lưu ý rằng trong khi hầu hết các tính toán trên dường như rơi được thực hiện bởi Dave, mã hóa của dữ liệu chỉ là chi phí chung của chương trình Nó có thể được thực hiện một lần để cho phép HAL tính toán với các số lớn vô tận

1.4.2 Hệ mật RSA

1.4.2.1 Thuật toán mã hóa RSA

Thuật toán 2: Mã hóa RSA

Output: Khóa công khai kpub và khóa bí mật kpr

Trang 21

Chọn 2 số nguyên tố lớn là p = 13

và q = 19

Tính n = p · q = 13 · 19 = 247

Trang 22

Clyde khôi phục câu trả lời rõ ràng cho truy vấn của mình bằng thuật toán giải mã tiêu chuẩn

Trang 23

13

CHƯƠNG 2: MÃ HÓA ĐỒNG CẤU ĐẦY ĐỦ

Mã hóa đồng cấu đầy đủ (Fully Homomorphic Encryption - FHE) cho phép

tính toán tùy ý trên dữ liệu được mã hóa mà không cần giải mã Do đó, các lo ngại

về quyền riêng tư có thể được giải quyết một cách thỏa đáng bằng cách mã hóa

dữ liệu bằng hệ thống mật mã đồng cấu đầy đủ (FHE) trước khi tải dữ liệu lên nhà cung cấp dịch vụ đám mây

Năm 2009, Gentry [2] trong luận án tốt nghiệp tiến sĩ của mình về đề tài lý thuyết mật mã hiện đại, đã đề xuất một hệ mật mã hóa dựa trên các bài toán khó trên dàn, có thể ước lượng được các phép cộng, và phép nhân, với số lượng tùy ý (theo lý thuyết mạch mọi hàm số có thể biểu diễn dưới dạng mạch Boolean đều

có thể giả lập chỉ bằng hai cổng cộng và nhân), và đưa ra phương án xử lý lỗi cho

hệ mật mã hóa này gọi là bootstrapping, cũng như các kỹ thuật hỗ trợ khác như squashing Tuy rằng trên lý thuyết hệ của Gentry có thể tính toán trên mọi mạch

có độ sâu tùy ý chỉ bằng kỹ thuật bootstrapping, nhưng trên thực tế hệ này đạt được hiệu năng rất thấp, và không ổn nếu đưa vào ứng dụng thực tiễn Sau này, Gentry cũng các cộng sự, và các nhóm nghiên cứu khác cũng đưa ra nhiều hệ mật

mã đồng cấu đầy đủ khác có hiệu năng tốt hơn nhiều hệ ban đầu của ông Một trong số đó là hệ mật mã cho Gentry, Brakersky, Vaikuntanathan [3] có thành công lớn khi được một nhóm tác giả ở Tập đoàn IBM xây dựng một thư viện dựa trên nó, và cùng một số các kỹ thuật tối ưu được đề xuất dành cho hệ BGV

2.1 Hệ mã hóa đồng cấu đầy đủ

Với định nghĩa về hệ đồng cấu như chương 1, một hệ có tập mạch chấp nhận

là một tập hữu hạn thì ta gọi đó là hệ mật mã đồng cấu một phần (partially

homomorphic encry otion scheme), còn nếu Cε là đồng nhất với tập vũ trụ của mạch Boolean thì ta được hệ mật mã đồng cấu đầy đủ (fully homomorphic encry otion scheme)

Định nghĩa 2.1.1 Mật mã đồng cấu chặt: theo [2] một hệ mật mã đồng cấu

ℰ được gọi là “chặt” (compact) nếu như tồn tại một hàm 𝑓 mà đối với mỗi giá trị của tham số bảo mật 𝛌, thuật toán giải mã của ℰ có thể mô tả bởi một mạch Dℰ

với độ lớn không vượt quá giá trị của 𝑓(𝛌)

Định nghĩa 2.1.2 Ước lượng chặt: cũng theo [2] một hệ mật mã đồng cấu ℰ

“ước lượng chặt” (compactly evalutes) với các mạch thuộc lớp Cℰ nếu như ℰ là chặt và đúng với mọi mạch thuộc Cℰ;

Dưới đây là định nghĩa rõ ràng của hệ mật mã đồng cấu đầy đủ được đưa ra bởi [Gen09]

Trang 24

14

Định nghĩa 2.1.3 (Hệ mật mã đồng cấu đầy đủ) Ta nói một hệ mật mã đồng

cấu ε là đồng cấu đầy đủ (fully homomorphic) nếu như nó ước lượng chặt với mọi mạch

Định nghĩa dưới đây về hệ mật mã đồng cấu theo cấp (leveled fully

homomorphic encryption) là nới lỏng của hệ mật mã đồng cấu đầy đủ Ý tưởng ở

đây là khi ta muốn ước lượng chặt tất cả các mạch tùy ý, tuy nhiên lại quá khó để

có thể thiết kế được một hệ mật mã đồng cấu duy nhất, nên thay vì vậy ta sẽ thiết

kế một họ các hệ mật mã đồng cấu thành phần, hệ thành viên của họ này sử dụng mạch giải mã như nhau, mỗi hệ sẽ được giao trọng trách ước lượng chặt một tập hợp các mạch thuộc cấp nào đó, cấp ở đây tức là độ sâu, một hệ mật mã đồng cấu ước lượng cho cấp d sẽ chỉ cần ước lượng chặt cho các mạch có độ sâu lớn nhất

là d Các hệ mật mã đồng cấu thành phần này có chung mạch giải mã và các thành phần cấu trúc mang tính nền móng khác, tuy nhiên chúng khác nhau về các thiết lập tham số, hoặc thiết lập của các yếu tố phụ khác có tính chất dễ dàng thay đổi

Ở mỗi cấp ước lượng chặt ta lại thay thiết lập trên nền cấu trúc sẵn có từ đó sinh

ra một hệ thành phần mới sẵn sàng ước lượng chặt cho các mạch ở cấp đó Chúng

ta sẽ hiểu kỹ hơn về vấn đề này ở trong phần khi báo cáo bàn về hệ BGV, hệ BGV cũng là một hệ đồng cấu theo cấp, và bộ ba tác giả của BGV cũng định nghĩa hệ mật mã đồng cấu theo cấp đơn giản là hệ đồng cấu không giữ nguyên bộ tham số,

mà sẽ thay đổi hợp lý khi có nhu cầu ước lượng một mạch có độ sâu L nào đó

Định nghĩa 2.1.4 (Hệ mật mã đồng cấu đầy đủ theo cấp - [2]) Ta nói một

họ các hệ mật mã đồng cấu {ε(d): d ∈ Z+} là đồng cấu đầy đủ theo cấp, nếu với mọi d ∈ Z+, chúng sử dụng chung một mạch giải mã, ε(d) ước lượng chặt cho tất

cả các mạch với độ sâu lớn nhất là d, và có độ phức tạp tính toán của các thuật toán thành phần là một đa thức phụ thuộc vào tham số bảo mật λ, d và (trong

trường hợp của thuật toán Evalε) độ lớn của mạch ước lượng C

Hãy tưởng tượng, nếu như có một dịch vụ tính toán dành cho những người công dân không giỏi về toán, không biết tính cả phép cộng, và không biết dùng máy tính cầm tay, công ty sở hữu dịch vụ này cũng có một hệ đồng cấu (đầy đủ hoặc một phần), một công dân A muốn tính phép cộng hai số nào đó, anh ta sẽ mật mã hóa hai số này rồi gửi cho máy chủ của công ty dịch vụ, công ty dịch vụ này sẽ dùng hàm ước lượng Eval của mình để tính toán trên bản mã mật cho ra một bản mã mật là mật mã hóa của kết quả cộng hai số đó, rồi gửi lại cho anh A, anh A giải mã ra sẽ biết được kết quả Nhưng anh A lại không muốn ai biết mình không giỏi tính toán, anh sợ anh B nếu ăn cắp được bản mã mật mà biết được nó

là đầu ra của một dịch vụ tính toán đồng cấu thì anh A sẽ lộ sự thật của mình ra Vậy hệ mật mã hóa đồng cấu có cách nào để “phục vụ” cả nhu cầu giấu thông tin của anh A hay không Gentry đã định nghĩa một tính chất khác cho một hệ đồng

Trang 25

15

cấu, mà với tính chất này anh B sẽ không thể nào biết được là anh A đã tính toán xong rồi mã hóa, hay nhận được bản mã mật của một dịch vụ tính toán đồng cấu ở bên ngoài

Định nghĩa 2.1.5 (Hệ đồng cấu riêng tư - thống kê - [2]) Một hệ mật mã

đồng cấu ε là riêng tư nếu như với mọi mạch thuộc tập Cε, nếu như với mọi cặp khóa (sk, pk) được sinh bởi thuật toán Gensε, và với bất kỳ mạch C ∈ Cε, và một tập các bản mã mật xác định Ψ = {c1, , ct} là ảnh của các bản rõ m1, , mt thông qua hàm Encε, thì hai phân phối sau là không thể phân biệt được theo thống kê Encε(pk, C(m1, , mt)) ≈ Evalε(pk, C, Ψ)

2.2 Hệ mật Lattice

Mặc dù lược đồ FHE dựa trên mạng tinh thể lý tưởng do Gentry đề xuất [2]

là rất hứa hẹn, nó cũng có rất nhiều điểm gây khó khăn như chi phí tính toán về khả năng ứng dụng trong cuộc sống thực và một số khái niệm toán học nâng cao khiến nó trở nên phức tạp và khó thực hiện Do đó, nhiều kế hoạch tối ưu hóa mới được hình thành để có thể giải quyết các khó khăn nói trên Sự an toàn của các phương pháp tiếp cận mới để có được một sơ đồ FHE mới chủ yếu dựa trên các bài toán khó trên mạng Các hệ mật thuộc nhóm hệ mật Lattice đã và đang nhận được rất nhiều sự quan tâm và phát triển bởi các bài toán đặc trưng trên mạng tinh thể được đánh giá là đủ khó để chống lại tính toán lượng tử

Lattice là tổ hợp tuyến tính của các vectơ độc lập (vectơ cơ sở) b1, b2, , bn Một mạng tinh thể L được xây dựng như công thức (6) dưới đây:

L = ∑ 𝑏⃗⃗⃗ ∗ 𝑣𝑖 𝑖 , 𝑣𝑖 ∈ ℤ

𝑛 𝑖=1

(6)

Trong đó mọi vectơ b1, b2, , bn được gọi là một cơ sở của mạng tinh thể L

Cơ sở của một mạng tinh thể không phải là duy nhất Có vô số cơ sở cho một mạng tinh thể nhất định Một cơ sở được gọi là “tốt” nếu các vectơ cơ sở gần như trực giao và, nếu không nó được gọi là cơ sở “xấu” của mạng [19]

Lý thuyết Lattice trước hết được trình bày bởi Minkowski [20] Sau đó, với

tư cách là một công trình cụ thể, Ajtai đã đề cập đến một lớp bài toán mạng trường hợp xấu nhất ngẫu nhiên [21] Hai bài toán hiện đại nổi tiếng được đề xuất [21] cho các hệ mật mã dựa trên Lattice là Bài toán vectơ gần nhất (CVP) và Bài toán vectơ ngắn nhất (SVP) [22] Một năm sau, Goldreich, Gold- wasser và Halevi (GGH) [23] đề xuất một loại sơ đồ PKE quan trọng, có độ mật dựa trên các bài toán giảm chiều của Lattice [22] Mục tiêu của sự giảm chiều là tạo ra một cơ sở tốt, tương đối ngắn và trực giao, cho một Lattice nhất định Trong hệ thống mật

mã GGH, khóa công khai và khóa bí mật lần lượt được chọn từ cơ sở “xấu” và

Trang 26

16

“tốt” của Lattice Ý tưởng đằng sau sự lựa chọn này là các bài toán CVP và SVP

có thể dễ dàng được giải quyết trong thời gian đa thức cho các mạng có cơ sở tốt

đã biết Tuy nhiên, các thuật toán được biết đến nhiều nhất (ví dụ LLL [24]) giải quyết các bài toán này theo thời gian hàm mũ mà không cần biết các cơ sở tốt của mạng Lattice

2.3 Hệ mật LWE

Trong công trình nghiên cứu của mình từ năm 2005, Regev [25] đã giới thiệu bài toán trường hợp trung bình được gọi là Bài toán học với lỗi (Learning with Errors (gọi tắt là LWE)) Kể từ đó, nó không chỉ xuất hiện như một bài toán trong

họ các hệ mật Lattice để hỗ trợ một sơ đồ mã hóa mà còn cho thấy tính linh hoạt của nó cho phép hệ thống mật mã bảo mật được lựa chọn [26], sơ đồ mã hóa dựa trên danh tính và mã hóa đồng cấu đầy đủ [27] Chúng tôi sẽ mô tả chi tiết LWE

và phác thảo các đặc tính chính của nó, sau đó chúng tôi giới thiệu một hệ thống mật mã đơn giản dựa trên nó LWE thuộc nhóm hệ mật Modular Lattice Problems, bài toán LWE yêu cầu ta tìm ra giá trị bí mật s ∈ ℤn từ các phương trình tính xấp

xỉ với s Sau đây là một ví dụ về đầu vào bài toán [28]:

14s1 + 15s2 + 5s3 + 2s4 ≈ 8 (mod 17) 13s1 + 14s2 + 14s3 + 6s4 ≈ 16 (mod 17) 6s1 + 10s2 + 13s3 + 1s4 ≈ 3 (mod 17) 10s1 + 4s2 + 12s3 + 16s4 ≈ 12 (mod 17)

Ý tưởng của bài toán LWE được xác định một cách rõ ràng Chọn một tham

số n ≥ 1, một số chia lấy dư q ≥ 2 và một giá trị lỗi X thuộc phân phối xác suất trên ℤq As, ᵪ là giá trị thu được khi chọn véctơ a ∈ ℤn

q một cách ngẫu nhiên, tiếp theo ta chọn e ∈ ℤq theo giá trị của ᵪ và đầu ra là cặp giá trị a và b = <a, s> + e sau khi đã chia lấy dư với q Một thuật toán giải được bài toán LWE với số chia lấy

dư q, phân phối lỗi X nếu thuật toán đó có thể đưa ra một số lượng mẫu độc lập tùy ý từ As, X Ta cũng có thể coi LWE là một bài toán tương đương với bài toán giải mã từ các mã tuyến tính ngẫu nhiên hoặc bài toán giải mã khoảng cách có giới hạn ngẫu nhiên trên họ hệ mật Lattice Ngoài ra với trường hợp đặc biệt q =

2 thì LWE tương đương với bài toán nổi tiếng LPN (Learning parity with noise)

Cụ thể về phân phối lỗi X trong trường hợp này có thể được thể hiện thông qua một tham số ε > 0 có thể gọi là xác suất lỗi

Định nghĩa Phân phối LWE: [29] Cho một véctơ s ∈ ℤqn, tạm coi là một khóa bí mật Phân phối LWE As, X trên ℤqn x ℤq là một mẫu được tạo ra bằng cách

Trang 27

17

chọn ngẫu nhiên a ∈ ℤqn, chọn e ← X, và đầu ra là (a, b = <s, a> + e mod q) ∈ ℤqn

x ℤq

Ý tưởng của bài toán LWE được xác định một cách rõ ràng Chọn một tham

số n ≥ 1, một số chia lấy dư q ≥ 2 và một giá trị lỗi X thuộc phân phối xác suất trên ℤq As, X là giá trị thu được khi chọn véctơ a ∈ ℤq một cách ngẫu nhiên, tiếp theo ta chọn e ∈ ℤq theo giá trị của X và đầu ra là cặp giá trị a và b = <a, s> + e sau khi đã chia lấy dư với q Một thuật toán giải được bài toán LWE với số chia lấy dư q, phân phối lỗi X nếu thuật toán đó có thể đưa ra một số lượng mẫu độc lập tùy ý từ As, X Ta cũng có thể coi LWE là một bài toán tương đương với bài toán giải mã từ các mã tuyến tính ngẫu nhiên hoặc bài toán giải mã khoảng cách

có giới hạn ngẫu nhiên trên Lattice Ngoài ra với trường hợp đặc biệt q = 2 thì LWE tương đương với bài toán nổi tiếng LPN (Learning parity with noise) Cụ thể về phân phối lỗi X trong trường hợp này có thể được thể hiện thông qua một tham số 𝜀 > 0 có thể gọi là xác suất lỗi

Định nghĩa LPN (Learning parity with noise): [29] Cho 𝑒 > 0 và một tập

hợp các phương trình (7) sau:

<s, a1> ≈e b1 mod 2

<s, a2> ≈e b2 mod 2

…(7) với ai đồng đều và độc lập trên toàn bộ ℤ2n và với mỗi bi được chọn sao cho bằng với <s, ai> với xác suất là 1 – e, tìm khóa bí mật s ∈ ℤ2n

Định nghĩa Tìm kiếm LWE n, q, X, m: Cho m mẫu độc lập {(ai, bi)}i=1m ∈ ℤqn

x ℤq từ As, X, với s được chọn một cách ngẫu nhiên Tìm s

Nói một cách đơn giản hơn là ta đang cố để tìm s ∈ ℤqnbằng cách giải hệ phương trình tuyến tính (8) sau:

<s, a1> = b – e1 mod q

<s, am> = b – em mod q (8) với ai và mỗi ei ta có đầu ra là X Ta coi véctơ lỗi e = (e1, e2, …en) là chưa biết nhưng xác suất phân bố rời rạc là một dữ liệu của bài toán

Định nghĩa Quyết định LWE n, q, X, m: [29] Cho một phân phối lỗi X trên ℤ

mà m mẫu độc lập {(ai, bi)}i=1m ∈ ℤqn x ℤq, ở đó mỗi mẫu được phân phối theo hoặc là As, X và số s được chọn ngẫu nhiên s ∈ ℤq hoặc phân phối đồng đều

Trang 28

Một cách để giải bài toán LWE là thông qua một thuật toán khả năng tối đa Với các điều kiện tham số đầu vào được đảm bảo như ở trên thì không khó để có thể thấy sau O(n) phương trình thì tồn tại một giá trị của s sao cho xấp xỉ thỏa mãn các phương trình Điều này dẫn đến một thuật toán chỉ chạy với O(n) mẫu và chạy trong thời gian là 2O(nlogn) Một cách khác là liên tục tìm kiếm mẫu cho tới khi tìm được mẫu có chưa n phương trình có dạng s1 ≈ … (với 1 cặp a, b trong

đó a = (1, 0, 0,…)), từ đó ta có thể giải được giá trị của s1, từ đó ta lặp lại với mọi

si Xác suất để tìm được một mẫu thỏa mãn điều kiện như vậy là 1/qn, thuật toán

sẽ yêu cầu với số lượng phương trình là 2O(nlogn) và thời gian chạy tương tự Thuật toán của Blum, Kalai, and Wasserman được xem thuật toán tốt nhất để giải bài toán LWE tính đến thời điểm hiện tại Thuật toán yêu cầu số lượng phương trình là 2O(n) và thời gian tương đương như vậy Thuật toán dựa trên ý tưởng là tìm ra một tập hợp nhỏ S của các phương trình chứa 2O(n) phương trình (phân chia tọa độ n thành log n khối có kích thước n/logn của mỗi khối, ta xây dựng được S thông qua các va chạm giữa các khối) Bằng cách tính tổng các tọa độ này ta có thể khôi phục tọa độ đầu tiên của s và tương tự với tất cả tọa độ còn lại Bất kỳ một thuật toán nào được cải tiến đều có khả năng dẫn đến đột phá trong thuật toán mạng

Có rất nhiều lý do khẳng định rằng bài toán Learning with Errors là khó Đầu tiên, thuật toán để giải bài toán LWE chạy trên thời gian hàm mũ (kể cả với máy tính lượng tử xem ra cũng không giúp giải bài toán này trong thời gian đa thức) Thứ hai, bài toán LWE là một bản mở rộng của bài toán LPN bởi LPN là trường hợp đặc biệt của LWE khi n = 2 Trong khi bản thân bài toán LPN đang được rất nhiều người cho là khó để giải quyết Hơn nữa bài toán LPN có thể được xây dựng dưới dạng vấn đề giải mã từ các mã nhị phân tuyến tính ngẫu nhiên, do đó bất kỳ thuật toán nào tiến bộ để giải bài toán LPN có thể dẫn đến một bước đột phá trong

mã hóa mạng tinh thể

Thứ ba và cũng là quan trọng nhất, bài toán LWE được xây dựng dựa trên độ khó các giả định về trường hợp xấu nhất của Hệ mật Lattice với các bài toán khó như GapSVP (quyết định véctơ ngắn nhất thuộc mạng Lattice) và SIVP (những

Trang 29

19

véctơ độc lập tuyến tính ngắn nhất thuộc mạng Lattice) Thậm chí với việc số chia lấy dư q là hàm mũ thì độ khó của LWE được xây dựng dựa trên các giả định về bài toán GapSVP là khó khi tính toán xấp xỉ trong nhân tố đa thức Trong trường hợp số chia lấy dư q là đa thức (một điều rất thuận lợi cho việc cài đặt hệ mật), tất nhiên rằng độ khó của bài toán LWE ở một mức độ thấp hơn nhưng vẫn hoàn toàn đáng tin cậy Cụ thể hơn, hoặc bài toán GapSVP là khó để tính toán xấp xỉ kể cả được cung cấp gợi ý dưới dạng một cơ sở sinh ngắn, hoặc là GapSVP hoặc SIVP

là khó khi tính toán xấp xỉ trong các nhân tố đa thức kể cả với máy tính lượng tử [47]

Trong bài toán LWE có chứa một bài toán kép là SIS (viết tắt của Small Integer Solution) Bài toán SIS chúng ta cần tìm một tập hợp con của tập hợp các véctơ a1, a2, … ,an được chọn từ ℤqn sao cho có tổng chia cho số chia lấy dư q có giá trị bằng 0 Ta cũng thể coi SIS là bài toán tìm véctơ ngắn trong Lattice hoặc

mã ngẫu nhiên Bài toán SIS được sử dụng trong việc xây dựng “minicrypt”, chẳng hạn như hàm một chiều, hàm băm chống xung đột, lược đồ chữ ký số và sơ

đồ nhận dạng Trái lại LWE lại có ứng dụng trong hệ mật khóa công khai Độ khó của bài toán SIS rất rõ ràng, đối với bất kỳ số chia lấy dư q nào là một đa thức nào

đó trong n, việc giải bài toán SIS gần như là tiêu chuẩn cho trường hợp xấu nhất của mạng Lattice như SIVP, GapSVP [47]

Hệ mật LWE yêu cầu một tham số số nguyên n (tham số bảo mật), m là số phương trình, q là số chia lấy dư, và một số thực 𝛼 > 0 (tham số gây nhiễu) Sự lựa chọn các tham số trên có ảnh hưởng trực tiếp đến tính bảo mật và tính đúng đắn của hệ mật Ta cần chọn q là một số nguyên tố nằm giữa n2 và 2n2, m = 1,1(nlog q) và 𝛼 = 1 / (√𝑛 log2 n) [47]

2.4 Hệ mật GGH

Hệ mật GGH [30] được công bố vào năm 1997 bởi Oded Goldreich, Shafi Goldwasser và Shai Halevi Hệ mật GGH được thiết kế dựa trên độ khó khi giải bài toán tìm véctơ gần nhất thuộc mạng Lattice (CVP) [31] Một mạng Lattice có rất nhiều các cơ sở, chúng ta luôn có cách để tìm được một cơ sở “tốt”, đặc biệt

là một cơ sở có tính chất trực giao Mặc dù vậy không phải bất kỳ mạng Lattice nào ta cũng có thể tìm được cơ sở trực giao, chính vì vậy ta cần có một cách nào

để có thể xác định được một cơ sở thuộc mạng Lattice đủ tốt hay không Một cơ sở đủ tốt có thể giúp việc giải bài toán liên quan mạng Lattice, hơn nữa kết quả sau khi giải bài toán cũng có chất lượng tốt Hadamard Ratio là tỉ lệ để đánh giá việc một cơ sở có đủ tốt hay không

Định nghĩa Hadamard Ratio: [32] Cho một cơ sở B = {b1, b2,…, bn} và một

Trang 30

Định nghĩa 2.4.1: Cho một mạng Lattice L có n chiều và một cơ sở B thuộc

mạng Lattice L Miền cơ bản tương ứng với cơ sở B được thể hiện như sau:

F(B) = {Br | 0 ≤ ri ≤ 1, (1 ≤ i ≤ n)} (10)

Ví dụ: Cho 2 cơ sở là B = {b1, b2} và A = {a1, a2} Chúng ta xác định được miền cơ bản của hai cơ sở này Dưới góc nhìn hình học thì hai vùng cơ bản là hai hình khác nhau nhưng khu vực mà chúng bao phủ thì là như nhau

Hình 2.1: Hai vùng cơ bản của hai cơ sở A và B [32]

Từ đây ta có một mệnh đề rất quan trọng:

Mệnh đề 2.4.1: Cho một mạng Lattice L ⊂ ℝnvới n chiều với F là miền cơ bản của cơ sở B thuộc mạng Lattice L Với mọi véctơ w ∈ ℝn thì luôn có:

w = t + v (11) (Trong đó tồn tại duy nhất một véctơ t ∈ F và duy nhất một véctơ v ∈ L)

Để có thể tìm được véctơ gần nhất, chúng tôi đã nghiên cứu về thuật toán Babai [33]:

Trang 31

21

Cho một mạng Lattice L và cơ sở B sinh ra L, như vậy với mệnh đề trên thì với mọi véctơ w ta luôn tìm được véctơ t ∈ F (miền cơ bản của B) và véctơ v ∈ L sao cho w = t + v Từ đây ta có ý tưởng để giải bài toán tìm véctơ gần nhất (CVP) với véctơ w trong mạng Lattice L cho trước Đó là thuật toán Babai, nó còn được biết đến với cái tên là The Nearest Plane Algorithm (Thuật toán chuyến bay gần nhất) được tìm ra bởi Babai vào năm 1986 [34] Thuật toán Babai được phát biểu như sau [32]: Cho một mạng Lattice L ⊂ ℝn, một cơ sở B sinh ra L và một véctơ

w ∈ ℝn nhưng ∉ L Nếu cơ sở B tiệm cận đến tính trực giao thì véctơ v gần nhất với véctơ w và ∈ L được tìm ra như sau [47]:

Trong thực tế nếu cơ sở B tiệm cận đến tính trực giao tức Hadamard Ratio của B xấp xỉ 1 thì thuật toán Babai đưa ra kết quả rất tốt, tức tìm chính xác được véctơ gần nhất Đương nhiên nếu cơ sở B có Hadamard Ratio không đủ tốt thì việc tính toán dựa theo thuật toán Babai sẽ đưa ra kết quả sai bởi nó rất xa so với véctơ gần nhất chính xác của w Việc lựa chọn được cơ sở B có tính trực giao cao

có tính quyết định với kết quả mà ta nhận được khi áp dụng thuật toán Babai để tìm véctơ gần nhất (CVP)

2.5 Mã hóa và giải mã LWE và GGH

2.5.1 Hệ mật LWE

Thuật toán sinh khóa: Sinh khóa công khai và khóa bí mật cho LWE [47]

Khóa bí mật: Là véctơ s được chọn từ ℤqn

Khóa công khai:

• Ta chọn A gồm m véctơ được chọn một cách ngẫu nhiên A = [a1, a2,

…, am] với a1, a2, …, am là các số nguyên thuộc ℤqn

• Ta chọn e gồm m véctơ gồm các số nguyên đủ nhỏ được chọn một cách ngẫu nhiên

• Ta tính toán được B với B = As + e (mod q) Đến đây ta kết thúc quá trình sinh khóa công khai với cặp khóa công khai là (A, B)

Input: Một cơ sở B cho Lattice và một véctơ w ∈ ℝn

Output: véctơ v gần nhất với véctơ w và ∈ L

Trang 32

22

Thuật toán Mã hóa: Ta mã hóa đoạn văn bản muốn truyền đi thành một tập

hợp của các số nguyên (véctơ), ví dụ như sử dụng bảng mã ASCII cho từng ký tự thuộc văn bản Mỗi ký tự sau khi chuyển sang giá trị tương ứng trên bản mã ASCII

sẽ được chuyển sang dạng nhị phân và lưu thành 8 bits Cuối cùng ta chuyển bản tin truyền đi thành một chuỗi của nhiều dãy 8 bits và sẵn sàng cho quá trình mã hóa

Với mỗi bit từ bản tin truyền đi, ta chọn một mẫu từ khóa công khai A tạm gọi là Asample và một mẫu từ khóa công khai B tạm gọi là Bsample (mẫu là tập hợp con của A hoặc B) Ta tính toán được cặp giá trị u và v với:

• u = ∑ 𝐴𝑠𝑎𝑚𝑝𝑙𝑒 (mod q)

• v = ∑ 𝐵𝑠𝑎𝑚𝑝𝑙𝑒 + 𝑞

2 m (với m là giá trị bit tương ứng) Kết thúc quá trình mã hóa với đầu ra là mỗi cặp (u, v) tương ứng với mỗi bit Tức với mỗi ký tự ta có đầu ra quá trình mã hóa là 8 cặp (u, v)

Thuật toán Giải mã: Ta nhận giá trị đầu ra của quá trình mã hóa là các cặp

(u, v), giờ là lúc ta sử dụng khóa bí mật để giải mã Ta tính toán thông qua một biến trung gian tạm gọi là Dec:

Dec = v – su (mod q)

Với mỗi giá trị Dec, ta so sánh Dec với q/2:

• Dec < q/2 thì đồng nghĩa với việc bit tương ứng trong bản rõ là 0

• Ngược lại, Dec > q/2 thì bit tương ứng trong bản rõ là 1

Lặp lại như vậy với từng cặp (u, v) đến cuối ta nhận được kết quả là một chuỗi các giá trị 8 bits Với mỗi 8 bits ta chuyển ngược lại sang giá trị số nguyên của chúng rồi chuyển tiếp sang giá trị ký tự theo bảng mã ASCII Kết thúc quá trình giải mã ta nhận được bản rõ

Xét về tính đúng đắn của hệ mật LWE: nếu không tồn tại lỗi trong mẫu

thiết kế LWE thì quá trình giải mã luôn luôn có kết quả chính xác Quá trình giải

mã chỉ xảy ra lỗi khi và chỉ khi tổng các điều kiện lỗi trên toàn bộ S lớn hơn q/4

Ta đang tính tổng m số hạng sai số thông thường, mỗi số hạng có độ lệch chuẩn

là 𝛼q nên độ lệch chuẩn tối đa là √𝑚 (𝛼q) < q/log n ; với một phép tính tiêu chuẩn thì ta thấy xác suất để một biến thông thường lớn hơn q/4 là không đáng

kể

2.5.2 Hệ mật GGH

Thuật toán sinh khóa: Như đã giới thiệu ở Phần 2.4, chúng tôi cần tìm ra hai

Trang 33

23

cơ sở sinh ra mạng Lattice L để làm khóa bí mật và khóa công khai [47] Cơ sở

có tính trực giao cao sẽ là khóa bí mật và ngược lại cơ sở có tính trực giao thấp sẽ

là khóa công khai Hadamard Ratio sẽ là công cụ để đánh giá tính trực giao của

cơ sở Ta chạy chương trình sinh ra ma trận có số chiều tương đương với tập tin

mà ta cần truyền đi, tạm kí hiệu là n Mỗi lần sinh ra một ma trận ta lại tính toán Hadamard Ratio của ma trận đó, nếu đủ tốt ta sẽ dừng lại Tất nhiên việc sinh ra

ma trận trực giao (H = 1) là điều không nhất thiết phải có bởi nhiều mạng Lattice chưa chắc đã chứa trong mình một cơ sở trực giao Chúng tôi khuyến nghị H nên

> 0,9 [47] để đảm bảo cho quá trình giải mã nhận được kết quả chính xác Kết thúc quá trình ta có được một ma trận với H > 0,9, tạm gọi là ma trận V, nó được chọn làm khóa bí mật

Từ khóa bí mật ta tìm khóa công khai bằng cách nhân nó với một ma trận đơn phương Việc ta cần làm tiếp theo là chạy chương trình sinh ra ma trận đơn phương Với mỗi một ma trận đơn phương được sinh ra, ta lấy nó nhân với khóa

bí mật thu được một ma trận khác Ta lại tính Hadamard Ratio của nó, do khóa công khai có tính trực giao càng thấp càng tốt nên chúng tôi khuyến nghị H < 0,001 [47] Khi ta tìm được ma trận có H đủ nhỏ, tạm gọi là ma trận W, nó được chọn làm khóa công khai

Mấu chốt là việc sinh ra liên tục ma trận đơn phương Ta hiểu rằng ma trận

đơn phương tạm gọi là U là ma trận có det(U) = ± 1, vậy cách làm là gì? Liệu có

phải là cứ sinh liên tục ma trận M với n chiều rồi tính det(M), đến khi nào thỏa

mãn det(U) = ± 1 thì dừng lại Đúng, cách làm này không sai nhưng với bản tin

bí mật đủ dài để cần một ma trận đơn phương với n = 100 thì việc sinh ra ma trận

U dần trở thành việc may rủi ngay cả với các máy tính có cấu hình tốt để việc tính toán đủ nhanh, thậm chí chưa kể đến khi sinh ra U rồi nhưng chưa chắc W đã thỏa mãn H < 0,001 Chúng tôi đã từng thử với Google Colab (là dịch vụ đám mây miễn phí, có cung cấp GPU để triển khai chương trình viết bằng Python) để sinh

ma trận M với n = 100 như trên và với 16 tiếng vẫn chưa ra kết quả Vậy cách làm đúng đắn là gì? Chúng ta cần sinh ra hai ma trận thành phần của ma trận đơn phương, tạm gọi là ma trận tam giác trên và ma trận tam giác dưới Ma trận tam giác trên thì tất cả các giá trị dưới đường chéo đều là 0, tương tự vậy với tam giác

ma trận dưới Sau đó ta nhân hai ma trận này với nhau thì sẽ thu được một ma trận đơn phương Với ma trận đơn phương có n = 100 thì thời gian để sinh ra ma trận

U chỉ là dưới 1s với Google Colab Như vậy việc tạo khóa công khai có H thỏa mãn H < 0.001 là hoàn toàn khả thi kể cả với n lớn [47]

Kết thúc quá trình sinh khóa ta có được khóa bí mật V, khóa công khai W và

ma trận đơn phương U

Ngày đăng: 23/03/2022, 15:48

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1]. Quyết định 4888/QĐ-BYT ngày 18/10/2019 của Bộ Trưởng Bộ Y tế về việc “Phê duyệt đề án Ứng dụng và Phát triển Công nghệ thông tin Y tế thông minh giai đoạn 2019 -2025” Sách, tạp chí
Tiêu đề: Phê duyệt đề án Ứng dụng và Phát triển Công nghệ thông tin Y tế thông minh giai đoạn 2019 -2025
[2]. Craig Gentry. A Fully Homomorphic Encryption Scheme. PhD thesis, Stanford, September 2009 Sách, tạp chí
Tiêu đề: PhD thesis, Stanford
[3]. Zvika Brakerski, Craig Gentry, and Vinod Vaikuntanathan. “(Leveled) Fully Homomorphic Encryption Without Bootstrapping”. In: ACM Trans. Comput. Theory 6.3 (July 2014), 13:1–13:36. issn: 1942-3454. doi: 10. 1145/2633600. url:http://doi.acm.org/10.1145/2633600 Sách, tạp chí
Tiêu đề: (Leveled) Fully Homomorphic Encryption Without Bootstrapping”. "In: ACM Trans. Comput. Theory "6.3 (July 2014), 13:1–13:36. issn: 1942-3454. doi: 10. 1145/2633600. url
[4]. R. Rivest, A. Shamir and L. Adleman, “A method for obtaining digital signatures and public-key cryptosystems”, Communications of the ACM, 21 (1978), 120-126 Sách, tạp chí
Tiêu đề: A method for obtaining digital signatures and public-key cryptosystems”
Tác giả: R. Rivest, A. Shamir and L. Adleman, “A method for obtaining digital signatures and public-key cryptosystems”, Communications of the ACM, 21
Năm: 1978
[5]. Wang (2012). "Enterprise cloud service architectures". Information Technology and Management. 13 (4): 445–454. doi:10.1007/s10799-012-0139-4. S2CID 8251298 [6]. "Arthur Clarke's 2001 Diary". visual-memory. Archived from the original on 10 May 2015. Retrieved 2 July 2015 Sách, tạp chí
Tiêu đề: Enterprise cloud service architectures". Information Technology and Management. 13 (4): 445–454. doi:10.1007/s10799-012-0139-4. S2CID 8251298 [6]. "Arthur Clarke's 2001 Diary
Tác giả: Wang
Năm: 2012
[8]. Christof Paar and Jan Pelzl. Understanding Cryptography. Springer-Verlag, second edition, 2010 Sách, tạp chí
Tiêu đề: Springer-Verlag
[13]. Handbook of Research on Cloud Infrastructures for Big Data Analytics. Chapter: Medical Data Analytics in the Cloud Using Homomorphic Encryption. Publisher: IGI Global. Editors: Pethuru Raj Chelliah, Ganesh Deka. Page 472-488, 2014 Sách, tạp chí
Tiêu đề: Publisher: IGI
[7]. Evaluating 2-dnf formulas on ciphertexts. In Theory of Cryptography, Second Theory of Cryptography Conference, TCC 2005, Cambridge, MA, USA, February 10- 12, 2005, Proceedings, pages 325-341 Khác
[10]. Arjan Jeckmans, Andreas Peter, and Pieter H. Hartel. Efficient privacyenhanced familiarity-based recommender system. In Jason Crampton et al., editors, Computer Security - ESORICS 2013, volume 8134 of Lecture Notes in Computer Science, pages 400 - 417. Springer, 2013 Khác
[11]. Frederik Armknecht and Thorsten Strufe. An efficient distributed privacypreserving recommendation system. In The 10th IFIP Annual Mediterranean Ad Hoc Networking Workshop, Med-Hoc-Net 2011, pages 65-70. IEEE, 2011 Khác
[12]. Michael Naehrig, Kristin E. Lauter, and Vinod Vaikuntanathan. Can homomorphic encryption be practical? In Christian Cachin and Thomas Ristenpart, editors, Proceedings of the 3rd ACM Cloud Computing Security Workshop, CCSW, pages 113-124. ACM, 2011 Khác
[14]. HealthDL - Một hệ thống thu thập, lưu trữ dữ liệu y tế lớn, Phan Tân, Trần Việt Trung, Nguyễn Hữu Đức, Nguyễn Thanh Tùng. Khoa học Kỹ thuật và Công nghệ, 2017 Khác
[15]. Mohammed Ikram, Farookh Khadeer Hussain, Software as a Service (SaaS) Service Selection based on Measuring the Shortest Distance to the Consumer's Khác

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w