BAN CƠ YẾU CHÍNH PHỦ HỌC VIỆN KỸ THUẬT MẬT MÃ BÁO CÁO MẬT MÃ ỨNG DỤNG TRONG AN TOÀN THÔNG TIN TÌM HIỂU VỀ HOMOMORPHIC ENCRYPTION Khoa An toàn thông tin Chuyên ngành An toàn ứng dụng Hà Nội – 2020 17 BAN CƠ YẾU CHÍNH PHỦ HỌC VIỆN KỸ THUẬT MẬT MÃ BÁO CÁO MẬT MÃ ỨNG DỤNG TRONG AN TOÀN THÔNG TIN TÌM HIỂU VỀ HOMOMORPHIC ENCRYPTION Khoa An toàn thông tin Chuyên ngành An toàn ứng dụng Giảng viên hướng dẫn ThS Trần Anh Tú Khoa An Toàn Thông Tin – Học viện Kỹ thuật mật mã Thành viên nhóm Đỗ Công Hòa – AT.
Trang 1BAN CƠ YẾU CHÍNH PHỦ
HỌC VIỆN KỸ THUẬT MẬT MÃ
BÁO CÁO
MẬT MÃ ỨNG DỤNG TRONG AN TOÀN THÔNG TIN
TÌM HIỂU VỀ HOMOMORPHIC ENCRYPTION
Khoa: An toàn thông tin Chuyên ngành: An toàn ứng dụng
Trang 2BAN CƠ YẾU CHÍNH PHỦ
HỌC VIỆN KỸ THUẬT MẬT MÃ
BÁO CÁO
MẬT MÃ ỨNG DỤNG TRONG AN TOÀN THÔNG TIN
TÌM HIỂU VỀ HOMOMORPHIC ENCRYPTION
Khoa: An toàn thông tin Chuyên ngành: An toàn ứng dụng
Giảng viên hướng dẫn:
ThS Trần Anh Tú
Khoa An Toàn Thông Tin – Học viện Kỹ thuật mật mã
Thành viên nhóm:
Đỗ Công Hòa – AT130923
Nguyễn Quang Đồng – AT130412
Võ Văn Anh Phong – AT130441
Hà Nội – 2020
Trang 3MỤC LỤ
LỜI NÓI ĐẦU 3
LỜI CẢM ƠN 4
CHƯƠNG 1: TỔNG QUAN VỀ MẬT MÃ HỌC 5
1.1 Khái niệm cơ bản về mật mã học 5
1.2 Những yêu cầu đối với hệ mật mã 5
1.3 Các thành phần của một hệ mật mã 6
1.4 Phân loại mật mã 6
CHƯƠNG 2: MÃ HÓA ĐỒNG HÌNH ( HOMOMORPHIC ENCRYPTION )8 2.1 Giới thiệu chung 8
2.1.1 Vấn đề chung của các hệ mật mã 8
2.1.2 Lịch sử hình thành mã hóa đồng hình 8
2.2 Khái niệm và kịch bản mã hóa đồng hình 9
2.2.1 Khái niệm mã hóa đồng hình 9
2.2.2 Kịch bản mã hóa đồng hình 10
2.3 Các loại mã hóa đồng hình 10
2.3.1 Mã hóa đồng hình một phần (Partially Homomorphic Encryption) 10
2.3.2 Mã hóa hơi đồng hình (Somewhat Homomorphic Encryption) 11
2.3.3 Mã hóa đồng hình hoàn toàn (Fully Homomorphic Encryption) 12
2.4 Vấn đề của mã hóa đồng hình 12
2.5 Ứng dụng thực tế của mã hóa đồng hình 13
CHƯƠNG 3: KẾT LUẬN 15
TÀI LIỆU THAM KHẢO 16
NHẬN XÉT CỦA GIẢNG VIÊN 17
CHƯƠNG 1:
Trang 4LỜI NÓI ĐẦU
Sự phát triển lớn mạnh của công nghệ thông tin trong những năm qua đã dẫn đến việc sử dụng rộng rãi hệ thống thông tin trong mọi tổ chức cá nhân và công cộng, chẳng hạn như ngân hàng, trường học, tổ chức dịch vụ và sản xuất Vì vậy, dữ liệu được lưu giữ
và quản lý trong các hệ thống thông tin nhiều hơn Vấn đề bảo mật, mã hóa thông tin càng trở nên cấp thiết và đóng vai trò then chốt trong ngành An toàn thông tin
Trong xu thế hiện nay, yêu cầu bảo vệ quyền riêng tư đối với dữ liệu số hoá và bảo
vệ bí mật của các thuật toán xử lý dữ liệu đang tăng lên rất nhanh trong những năm gần đây, đặc biệt là với xu thế phát triển của điện toán đám mây và sự xuất hiện của các kiểu tấn công phá huỷ dữ liệu, đánh cắp thông tin nhạy cảm Để lưu trữ và truy cập dữ liệu an toàn, người dùng thường sử dụng các công nghệ như mã hoá và các phần cứng chống can thiệp Sau đó, tiến hành giải mã dữ liệu để sử dụng Điều đó dẫn đến nhu cầu tính toán với dữ liệu bí mật ngay ở dạng mã hoá
Từ đó, mã hoá đồng hình (homomorphic encryption) xuất hiện và được các nhà nghiên cứu kỳ vọng Do đó nhóm chúng em đã tìm hiểu và nghiên cứu đề tài: “Tìm hiểu
về homomorphic encryption” làm đề tài cho môn học Nội dung đề tài sẽ tập trung tìm hiểu về mã hóa đồng hình (HE) và bao gồm ba chương:
CHƯƠNG 1: TỔNG QUAN VỀ MẬT MÃ HÓA HỌC
CHƯƠNG 2: MÃ HÓA ĐỒNG HÌNH (HOMOMORPHIC ENCRYPTION) CHƯƠNG 3: KẾT LUẬN
Trang 5LỜI CẢM ƠN
Nhóm đề tài xin chân thành cảm ơn Khoa An toàn thông tin Học viện kĩ thuật mật
mã, đặc biệt là giảng viên hướng dẫn ThS Trần Anh Tú đã đã giúp đỡ, hướng dẫn cho nhóm thực hiện tốt đề tài môn mật mã ứng dụng trong an toàn thông tin này
Thực hiện đề tài là cơ hội giúp chúng em tổng hợp được kiến thức đã học trên lớp, đồng thời đúc kết được những bài học thực tế phục vụ cho việc học tập và làm việc sau này Mặc dù nhóm đã có gắng thực hiện đề tài này nhưng vì năng lực cũng như thời gian còn hạn chế nên chương trình khó tránh khỏi thiếu sót Nhóm kính mong nhận được sự thông cảm và tận tình đóng góp ý kiến của quý thầy cô
Xin cảm ơn tất cả mọi người đã tạo những điều kiện tốt nhất để chúng em hoàn thành thực tập cơ sở này!
SINH VIÊN THỰC HIỆN
Đỗ Công Hòa Nguyễn Quang Đồng
Võ Văn Anh Phong
Trang 6CHƯƠNG 1: TỔNG QUAN VỀ MẬT MÃ HỌC
2.1 Khái niệm cơ bản về mật mã học
Kỹ thuật mật mã thông qua việc biến đổi hoặc mã hoá thông tin, biến đổi những thông tin nhạy cảm, vấn đề cơ mật thành những văn tự mã hoá có dạng hỗn loạn, làm cho tin tặc khó lòng mà đọc hiểu được, từ đó sẽ đạt được hai mục đích: một là, làm cho tin tặc không biết làm thế nào để giải mã nên cũng không thể thu được những thông tin có bất
kỳ ý nghĩa nào trong chuỗi mật mã hỗn loạn đó; hai là làm cho tin tặc không có khả năng làm giả thông tin với chuỗi mật mã hỗn loạn như thế Khoa học nghiên cứu kỹ thuật mật
mã gọi là mật mã học
Mật mã học bao gồm hai nhánh, là mật mã học lập mã và mật mã học phân tích Mật
mã học lập mã với ý là tiến hành mã hoá thông tin để thực hiện việc che giấu thông tin, còn mật mã học phân tích là ngành học nghiên cứu phân tích giải dịch mật mã Hai cái đối lập với nhau, nhưng lại thúc đẩy lẫn nhau
Dùng phương pháp mật mã có thể che dấu và bảo hộ những thông tin cơ mật, làm cho người chưa được uỷ quyền không thể lấy được thông tin, những thông tin được giấu kín kia được gọi là văn bản rõ, mật mã có thể đem văn bản rõ biến đổi thành một loại hình khác, gọi là văn bản mật Sự biến đổi văn bản rõ thành văn bản mật gọi là mã hoá bảo mật, quá trình người thu nhận hợp pháp khôi phục từ văn bản mật trở thành văn bản
rõ được gọi là quá trình giải mã (hoặc giải mật) Người thu nhận phi pháp có ý đồ phân tích từ văn bản mật ra thành văn bản rõ, gọi là giải dịch
2.2 Những yêu cầu đối với hệ mật mã
An toàn thông tin là bảo vệ các đặc tính riêng tư (confidentialy), toàn vẹn (intergrity) và khả dụng (availabity) của thông tin
C (Confidentialy): bảo vệ tính riêng tư của dữ liệu thông qua các cơ chế chứng
thực và mã hóa, ngăn ngừa những người không hợp lệ sẽ không được đọc những thông tin Giống như các bì thư khi phát lương thưởng được dán chữ Confidentialy, chúng ta có thể hình dung trong môi trường công nghệ thông tin là một người chưa đăng nhập vào Domain sẽ không được truy cập những dữ liệu chỉ chia sẻ cho các Domain User
Trang 7 I (Intergrity): bảo vệ tính toàn vẹn của dữ liệu thông qua các thuật toán RSA,
SHA, MD5 ngăn ngừa attacker thay đổi các thông tin nhạy cảm trong quá trình truyền
A (Available): bảo đảm dữ liệu luôn ở trong trạng thái sẵn sằng đáp ứng nhu cầu
của người dùng
Non-Repudiation: Tính không thể chối bỏ, nghĩa là dữ liệu người nào gửi đi thì
họ phải có trách nhiệm với các thông tin của mình thông qua các xác nhận nguồn gốc như chữ kí điện tử
Để thực hiện điều này chúng ta áp dụng các biện pháp xác thực và mã hóa Và mật
mã học là nghiên cứu về vấn đề mã hóa Mã hóa là một tiến trình biến đổi dữ liệu từ dạng plaintext (văn bản thuần túy dễ dàng nhận biết) thành kết quả ciphertext, dạng dữ liệu không thể đọc được nếu không được giải mã bằng các khóa thích hợp Mục tiêu của mã hóa là ngăn ngừa việc tấn công đánh cắp dữ liệu trái phép hoặc phòng ngừa việc mất mát
dữ liệu khi bị tấn công vật lý như trộm đĩa cứng, máy tính xách tay hay thậm chí đột nhập vào hệ thống vẫn không thể xem được dữ liệu riêng tư, bí mật đã được bảo vệ bằng các thuật toán mã hóa mạnh mẽ
2.3 Các thành phần của một hệ mật mã
Một hệ mật là một bộ 5 (P, C, K, E, D) thoả mãn các điều kiện sau:
P (Plaintext): là một tập hữu hạn các bản rõ có thể.
C (Ciphertext): Là tập hợp hữu hạn các bản mã có thể
K (Key): Là tập hợp các bản khoá có thể
E (Encrytion): Là tập hợp các qui tắc mã hoá có thể
D (Decrytion): Là tập hợp các qui tắc giải mã có thể
Đối với mỗi kK có một quy tắc mã ek: P -> C và một quy tắc giải mã tương ứng dkD Mỗi ek: P -> C và dk: C -> P là những hàm mà: dk(ek(x)) = x với mọi bản rõ xP
Điều kiện thứ 4 là tính chất chủ yếu Nội dung của nó là nếu một bản rõ x được mã hoá bằng ek và bản mã nhận được sau đó được giải mã bằng dk thì ta phải thu được bản
rõ ban đầu x Trong trường hợp này hàm mã hoá ek phải là hàm đơn ánh, nếu không việc giải mã sẽ không thể thực hiện được một cách tường minh
2.4 Phân loại mật mã
Trang 8Hiện nay người ta đã thiết kế ra nhiều loại hệ thống mật mã, nếu như lấy khoá mật mã làm tiêu chuẩn có thể phân các hệ mật mã thành hai loại:
Hệ mật mã đối xứng (còn gọi là mật mã khoá đơn hoặc là mật mã khoá riêng):
Trong các hệ mật mã này, khoá mật mã mã hoá bảo mật giống với khoá giải mã hoặc trên thực tế là cùng đẳng cấp Lúc này khoá mật mã cần phải có một đường truyền an toàn để truyền đưa khoá mật mã từ phía người truyền cho phía người nhận Đặc điểm của mật mã đối xứng là bất luận khi gia công bảo mật hay là khi giải mã đều sử dụng cùng một khoá mật mã Do đó tính an toàn của mật mã này là
sự an toàn của khoá mật mã nếu như khoá mật mã bị tiết lộ, thì hệ thống mật mã này sẽ bị phá vỡ Mật mã đối xứng có ảnh hưởng nhất là phép tính DES do cục tiêu chuẩn quốc gia Mỹ công bố vào năm 1977
Ưu điểm: Tính an toàn cao, tốc độ giải mã nhanh.
Nhược điểm:
Theo sự mở rộng của quy mô mạng lưới, việc quản lý khoá mật mã trở thành một việc khó khăn
Không có cách nào giải quyết vấn đề xác nhận thông tin
Thiếu năng lực kiểm tra tự động sự tiết lộ khoá mật mã
Hệ mật mã bất đối xứng (còn gọi là mật mã khoá công khai):
Trong các hệ mật mã này quá trình mã hoá và giải mã có chìa khoá khác nhau, lúc này không cần có đường truyền an toàn để truyền đưa khoá mật mã mà chỉ cần bộ phát sinh khoá mã tại chỗ để tạo ra khoá giải mã đồng thời lấy đó để khống chế các thao tác giải mã Mật mã bất đối xứng là một thể chế mật mã loại mới do W.Diffie và M.E Hellman đề xuất năm 1976 Do quá trình mã hoá và giải mã của thể chế mật mã bất đối xứng không như nhau và khoá mã bảo mật là công khai, hơn nữa, chỉ yêu cầu bảo mật khoá giải mã, cho nên mật mã bất đối xứng không tồn tại vấn đề quản lý khoá mật mã Mật mã bất đối xứng còn một ưu điểm nữa là
có thể có khả năng ký tên chữ số và một số chức năng mới Mật mã bất đối xứng nổi tiếng nhất là thể chế mật mã RSA do ba người là Rivest, Shamir và Adleman
đề xuất năm 1977
Khuyết điểm của mật mã bất đối xứng là:
phép tính mật mã là tương đối phức tạp
tốc độ giải mã chậm
Trang 9Do đó, việc bảo mật dữ liệu trên mạng nên dùng cơ chế bảo mật hỗn hợp kết hợp giữa mật mã đối xứng và mật mã bất đối xứng, tức là khi giải mã thì dùng mật mã đối xứng, khi truyền đưa khoá mật mã thì dùng mật mã bất đỗi xứng Như thế tức
là đã giải quyết được khó khăn trong việc quản lý khoá mật mã, lại vừa giải quyết được vấn đề tốc độ giải mã
CHƯƠNG 2: MÃ HÓA ĐỒNG HÌNH ( HOMOMORPHIC ENCRYPTION )
2.1 Giới thiệu chung
2.1.1 Vấn đề chung của các hệ mật mã
Các hệ thống mã hóa kế thừa phụ thuộc vào việc chia sẻ khóa (công khai hoặc
riêng tư) giữa các đồng nghiệp liên quan đến việc trao đổi một thông điệp được mã
hóa Tuy nhiên, cách tiếp cận này đặt ra những lo ngại về quyền riêng tư Người dùng
hoặc nhà cung cấp dịch vụ có khóa có độc quyền đối với dữ liệu Đặc biệt với các dịch vụ đám mây phổ biến, quyền kiểm soát quyền riêng tư của dữ liệu nhạy cảm sẽ bị mất Ngay
cả khi các khóa không được chia sẻ, tài liệu được mã hóa được chia sẻ với bên thứ ba mà không nhất thiết phải truy cập nội dung Hơn nữa, các máy chủ, nhà cung cấp và nhà điều hành đám mây không có thật có thể tiếp tục xác định các yếu tố của người dùng sau khi người dùng kết thúc mối quan hệ với dịch vụ
Mã hóa đồng hình (HOMOMORPHIC ENCRYPTION), một loại lược đồ mã hóa đặc biệt, có thể giải quyết những mối quan tâm này khi nó cho phép bất kỳ bên thứ ba nào để thao tác trên dữ liệu được mã hóa mà không cần giải mã trước Mặc dù tính năng cực kỳ hữu ích này của sơ đồ HE đã được biết đến trong hơn 30 năm, nhưng sơ đồ Mã hóa đồng dạng hoàn toàn (FHE) đầu tiên hợp lý và có thể đạt được , cho phép bất kỳ chức năng tính toán nào thực hiện trên dữ liệu được mã hóa, đã được Craig Gentry giới thiệu vào năm 2009 Mặc dù đây là một thành tựu lớn, nhưng các cách triển khai khác nhau cho đến nay đã chứng minh rằng FHE vẫn cần được cải thiện đáng kể để có thể trở nên hiệu quả trên mọi nền tảng
2.1.2 Lịch sử hình thành mã hóa đồng hình
Trang 10Nguồn gốc của mã hóa đồng hình bắt nguồn từ năm 1978 – ngay sau khi Rivest, Shamir và Adman trình bày mã hóa RSA – một thời gian dài trong thế giới công nghệ Rivest, Adman và Dertouzos đã đưa ra khái niệm đồng cấu riêng tư Khái niệm mã hóa của họ đã bị Brickell và Yacobi cho vào dĩ vãng gần 10 năm sau đó Các nhà nghiên cứu khác đã có một cuộc tranh luận về chủ đề này – chẳng hạn như Feigenbaum và Merritt – nhưng thực sự, không có tiến bộ lớn nào được thực hiện cho đến khi Gentry, một sinh viên tốt nghiệp tại Đại học Stanford, quyết định thử sức mình trong việc tạo ra một hệ thống mã hóa đồng hình đại số luận văn tốt nghiệp của mình
Gentry, một thành viên của Quỹ MacArthur và làm nhà khoa học nghiên cứu trong Nhóm nghiên cứu mật mã tại Trung tâm nghiên cứu IBM Thomas J Watson, đã thành lập sơ đồ mã hóa đồng hình hoàn toàn đầu tiên vào năm 2009 Nghiên cứu của ông được tiếp nối bởi các biến thể mã hóa đồng hình khác đề án trong những năm tới
2.2 Khái niệm và kịch bản mã hóa đồng hình
2.2.1 Khái niệm mã hóa đồng hình
Homomorphic encryption là một phương thức mã hóa cho phép mọi dữ liệu được
mã hóa trong khi nó được xử lý và thao tác Nó cho phép bạn hoặc bên thứ ba (chẳng hạn như nhà cung cấp cloud) áp dụng các chức năng trên dữ liệu được mã hóa mà không cần tiết lộ các giá trị của dữ liệu Hệ thống homomorphic cryption giống như các hình thức
mã hóa công khai khác ở chỗ nó sử dụng khóa chung để mã hóa dữ liệu và chỉ cho phép
cá nhân có khóa riêng phù hợp để truy cập dữ liệu không được mã hóa của nó (mặc dù cũng có ví dụ về mã hóa đồng hình khóa đối xứng) Tuy nhiên, điều làm cho nó khác biệt
so với các hình thức mã hóa khác là nó sử dụng hệ thống đại số để cho phép bạn hoặc người khác thực hiện nhiều tính toán (hoặc thao tác) trên dữ liệu được mã hóa
Trong thực tế, hầu hết các sơ đồ mã hóa đồng cấu hoạt động tốt nhất với dữ liệu được biểu diễn dưới dạng số nguyên và trong khi sử dụng phép cộng và phép nhân làm các hàm vận hành Điều này có nghĩa là dữ liệu được mã hóa có thể được thao tác và
El-Gamal '85
Benaloh '94
Paillier '99 SYY '00
BGN '05
PHE
IP '07
SWHE
«Fully Homomorphic Encryption»
Gen '09
FHE
DH '76 GM '82
2016 1976
RSA 78
«Privacy Homomorphism» is introduced
RAD 78
Trang 11phân tích như thể nó ở định dạng văn bản gốc mà không thực sự được giải mã Nói cách khác, HE có thể cho phép nhân viên của bạn (hoặc bên thứ ba) làm việc và sử dụng dữ liệu được mã hóa mà không cần truy cập hoặc biết nội dung của dữ liệu được giải mã Họ
có thể tính toán và xử lý dữ liệu được mã hóa để có câu trả lời được mã hóa, nhưng chỉ bạn mới có thể giải mã được bản mã và hiểu ý nghĩa của nó
Homomorphic cryption đòi hỏi một vài vòng tương tác và sử dụng các mạch số học (tập trung vào phép cộng và phép nhân, cho phép bạn thêm và nhân số) thay vì các mạch Boolean như các phương pháp tính toán an toàn khác (như tính toán hai bên [2PC] hoặc
đa tổng tính toán -party [MPC])
Định nghĩa:
Cho tập hợp rõ P tạo thành nhóm với phép tính ⊕.
Còn tập bản mã C tạo thành nhóm với phép tính
Ek(m) là hàm mã hóa rõ m theo tham số ngẫu nhiên bí mật k
Hệ mã hóa E được gọi là có tính chất ( ⊕ , ) đồng cấu, nếu với các tham số
k=k1 + k2, thỏa mãn công thức đồng cấu:
E k1 (m1) E k2 (m2) = E k (m1 ⨁ m2)
trong đó m1, m2 là 2 bản rõ, k1, k2 là 2 tham số ngẫu nhiên bí mật
2.2.2 Kịch bản mã hóa đồng hình
Bước 1: Trong trường hợp này, khách hàng, C, trước tiên mã hóa dữ liệu cá nhân của
mình
Bước 2: Sau đó gửi dữ liệu được mã hóa đến máy chủ đám mây, S,
Bước 3: Khi khách hàng muốn thực hiện một hàm (tức là truy vấn), f (), trên dữ liệu của
chính mình gửi hàm đến máy chủ
Bước 4: Máy chủ thực hiện hoạt động tương đồng trên dữ liệu được mã hóa bằng cách sử