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

mã hóa đối xứng

42 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Mã hóa đối xứng
Tác giả Phạm Hoàng Dân, Trần Quang Minh, Nguyễn Thành Tuyến, Nguyễn Thành Lộc
Người hướng dẫn TS Nguyễn Văn A
Trường học Trường Đại học Tôn Đức Thắng
Chuyên ngành Công nghệ thông tin
Thể loại Bài tập lớn/Đồ án cuối kì
Năm xuất bản 2023
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 42
Dung lượng 2,95 MB

Nội dung

HMAC Hash-based Message Authentication Code: HMAC là một thuật toán mã hóa dựa trên hàm băm, được sử dụng để xác thực tính toàn vẹn của thông điệp, một phần quan trọng của bảo mật thông

Trang 1

BÀI TẬP LỚN/ĐỒ ÁN CUỐI KÌ MÔN ……….

…tên đề tài…

Người hướng dẫn: TS NGUYỄN VĂN A Người thực hiện: PHẠM HOÀNG DÂN – 52000544

TRẦN QUANG MINH – MSSV NGUYỄN THÀNH TUYẾN – MSSV NGUYỄN THÀNH LỘC – MSSV

Lớp : 20050401 Khoá : 24

THÀNH PHỐ HỒ CHÍ MINH, NĂM 2023

Trang 2

BÀI TẬP LỚN/ĐỒ ÁN CUỐI KÌ MÔN ………

…tên đề tài…

Người hướng dẫn: TS NGUYỄN VĂN A Người thực hiện: PHẠM HOÀNG DÂN – 52000544

TRẦN QUANG MINH – MSSV NGUYỄN THÀNH TUYẾN – MSSV NGUYỄN THÀNH LỘC – MSSV

Lớp : 20050401 Khoá : 24

THÀNH PHỐ HỒ CHÍ MINH, NĂM 2023

Trang 3

LỜI CẢM ƠN

Đây là phần tác giả tự viết ngắn gọn, thể hiện sự biết ơn của mình đối vớinhững người đã giúp mình hoàn thành Luận văn/Luận án Tuyệt đối không sao chéptheo mẫu những “lời cảm ơn” đã có

Trang 4

ĐỒ ÁN ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG

Tôi xin cam đoan đây là sản phẩm đồ án của riêng tôi / chúng tôi và được sựhướng dẫn của TS Nguyễn Văn A; Các nội dung nghiên cứu, kết quả trong đề tài nàylà trung thực và chưa công bố dưới bất kỳ hình thức nào trước đây Những số liệu trongcác bảng biểu phục vụ cho việc phân tích, nhận xét, đánh giá được chính tác giả thuthập từ các nguồn khác nhau có ghi rõ trong phần tài liệu tham khảo

Ngoài ra, trong đồ án còn sử dụng một số nhận xét, đánh giá cũng như số liệucủa các tác giả khác, cơ quan tổ chức khác đều có trích dẫn và chú thích nguồn gốc

Nếu phát hiện có bất kỳ sự gian lận nào tôi xin hoàn toàn chịu trách nhiệm về nội dung đồ án của mình Trường đại học Tôn Đức Thắng không liên quan đến

những vi phạm tác quyền, bản quyền do tôi gây ra trong quá trình thực hiện (nếu có)

TP Hồ Chí Minh, ngày tháng năm

Tác giả (ký tên và ghi rõ họ tên)

Nguyễn Văn B

Trần Văn C

Trang 5

PHẦN XÁC NHẬN VÀ ĐÁNH GIÁ CỦA GIẢNG VIÊN

Phần xác nhận của GV hướng dẫn

_ _ _ _ _ _ _

Tp Hồ Chí Minh, ngày tháng năm (kí và ghi họ tên)

Phần đánh giá của GV chấm bài

_ _ _ _ _ _ _

Tp Hồ Chí Minh, ngày tháng năm (kí và ghi họ tên)

Trang 6

TÓM TẮT

Trong thế giới số hóa ngày nay, việc bảo vệ thông tin và dữ liệu quan trọng là một vấn đề tối quan trọng Đó là lý do tại sao hiểu về các thuật toán mã hóa và các phương phápbảo mật thông tin là điều vô cùng quan trọng Bài viết này sẽ đưa bạn vào thế giới của mã hóa và bảo mật thông tin, giúp bạn hiểu rõ về các yếu tố quan trọng trong lĩnh vực này

Cryptography and Technical Foundations (Cryptography và Nền tảng Kỹ thuật)1 AES (Advanced Encryption Standard): AES là một trong những thuật toán mã

hóa đối xứng phổ biến nhất Nó trở thành "ngôn ngữ" của bảo mật dữ liệu, được sử dụng để mã hóa và giải mã thông tin quý báu trong nhiều lĩnh vực, bao gồm bảo vệ thông tin cá nhân và bảo mật dữ liệu truyền qua mạng

 Các bước thực hiện của AES Tính năng mã hóa đối xử Ưu điểm của việc sử dụng AES2 RSA (Rivest-Shamir-Adleman): RSA là một thuật toán mã hóa bất đối xứng bao

gồm khóa công khai và khóa riêng tư Thường được sử dụng để tạo chữ ký số vàthực hiện quá trình trao đổi khóa mật để bảo vệ thông tin quan trọng trên mạng

 Cặp khóa công khai và khóa riêng tư Quá trình mã hóa và giải mã Sơ đồ tạo khóa công khai và bí mật3 SHA (Secure Hash Algorithm): SHA là một họ thuật toán băm bảo mật được sử

dụng để biến đổi dữ liệu thành giá trị băm có độ dài cố định Các biến thể như SHA-256 và SHA-3 đóng vai trò quan trọng trong các ứng dụng bảo mật và blockchain

 Sự đa dạng trong họ SHA và đặc điểm riêng của từng loại Ứng dụng của SHA trong thế giới kỹ thuật

4 ECC (Elliptic Curve Cryptography): ECC là một họ thuật toán mã hóa sử dụng đường cong elip, cung cấp mức độ bảo mật mạnh với kích thước khóa nhỏ hơn so với RSA Điều này làm cho nó trở nên phù hợp cho các thiết bị có tài nguyên hạn chế

 Cách tính toán và sử dụng đường cong elip Phép cộng điểm và phép nhân điểm5 HMAC (Hash-based Message Authentication Code): HMAC là một thuật toán

mã hóa dựa trên hàm băm, được sử dụng để xác thực tính toàn vẹn của thông điệp, một phần quan trọng của bảo mật thông tin

Trang 7

6 DES (Data Encryption Standard): DES, một trong những thuật toán mã hóa đối xử đầu tiên, đã từng được sử dụng rộng rãi Tuy nhiên, hiện nay nó đã được thaythế bởi AES do yếu điểm bảo mật.

7. ECDSA (Elliptic Curve Digital Signature Algorithm): ECDSA là một thuật toán mã hóa dựa trên đường cong elip được sử dụng để tạo chữ ký số cho thông điệp và xác minh tính toàn vẹn của chúng

Trang 8

1.1.1.2 Tiểu mục cấp 3 tiếp theo 1

1.1.2 Tiểu mục cấp 2 tiếp theo 1

1.2 Nội dung của chương này 1

3.3.1 Tài liệu tham khảo và cách trích dẫn 1

3.3.2 Qui định của Khoa Công nghệ thông tin 1

Trang 9

DANH MỤC KÍ HIỆU VÀ CHỮ VIẾT TẮTCÁC KÝ HIỆU

f Tần số của dòng điện và điện áp (Hz) p Mật độ điện tích khối (C/m3)

CÁC CHỮ VIẾT TẮT

CSTD Công suất tác dụngMF Máy phát điệnBER Tỷ lệ bít lỗi

Trang 10

DANH MỤC CÁC BẢNG BIỂU, HÌNH VẼ, ĐỒ THỊDANH MỤC HÌNH

Hình 2.1: Kiến trúc FTP 1

DANH MỤC BẢNG

Bảng 3.1 Ví dụ cho chèn bảng 1

Trang 11

A Mã hóa đối xứngI Các thuật toán đối xứng:

1 Integer factorization

- Thuật toán Integer Factorization là quá trình phân tích một số nguyên dương lớnthành các thừa số nguyên tố riêng biệt Mục tiêu chính của thuật toán này là tìmra các thừa số nguyên tố mà khi nhân lại với nhau sẽ cho ra kết quả bằng sốnguyên ban đầu Phân tích số nguyên dương lớn thành các thừa số nguyên tố cóứng dụng quan trọng trong nhiều lĩnh vực, đặc biệt là trong mật mã và bảo mậtthông tin

- Một số ví dụ về việc phân tích số nguyên dương thành các thừa số nguyên tố:o Số 28 có thể được phân tích thành 2 x 2 x 7, trong đó 2 và 7 là các

thừa số nguyên tố.o Số 60 có thể được phân tích thành 2 x 2 x 3 x 5, trong đó 2, 3 và 5 là

các thừa số nguyên tố.- Thuật toán Integer Factorization quan trọng trong các lĩnh vực sau:

o Mật mã và bảo mật: Một số thuật toán mã hóa khóa công khai, chẳng hạnnhư RSA, dựa vào khả năng tính toán ngược của thuật toán IntegerFactorization Điều này đồng nghĩa rằng việc phân tích số thành các thừa sốnguyên tố là khó khăn và tốn thời gian

o Bảo mật thông tin: Trong các ứng dụng bảo mật thông tin, việc phát hiệnthừa số nguyên tố của một số có thể được sử dụng để bảo vệ tính bí mật củathông tin và ngăn chặn các cuộc tấn công mạng

o Nghiên cứu toán học: Integer Factorization là một vấn đề toán học quantrọng và thú vị, và nó đòi hỏi sự phát triển của các thuật toán và phươngpháp tính toán mới

Trang 12

2 Discrete logarithm

- Discrete logarithm là một vấn đề trong lĩnh vực toán học và mật mã học, và nó

liên quan đến việc tìm giá trị x của biểu thức a^x ≡ b (mod m), trong đó a, b, vàm là các số nguyên dương cố định Cụ thể, discrete logarithm yêu cầu tìm mộtsố nguyên x sao cho a^x khi chia cho m cho kết quả b

- Thuật toán Discrete logarithm quan trọng trong mật mã học, đặc biệt là trong

mật mã hóa khóa công khai dựa trên các hệ thống mật mã hóa như Hellman và ElGamal Một trong những ứng dụng quan trọng của discretelogarithm là trong việc tạo ra khóa công khai và khóa bí mật cho mạng vàtruyền thông an toàn

Diffie Tuy nhiên, việc giải quyết discrete logarithm có thể trở nên rất khó khi m được

chọn đủ lớn, và đó là lý do tại sao nó được sử dụng trong mật mã hóa Trongmật mã học, việc tìm discrete logarithm khi m đủ lớn trở nên rất khó bởi khôngcó thuật toán hiệu quả đã được phát triển để giải quyết vấn đề này Việc này đảmbảo tính bảo mật của các hệ thống mật mã hóa dựa trên discrete logarithm,chẳng hạn như RSA và ECC (Elliptic Curve Cryptography)

3 Elliptic curves

- Thuật toán Elliptic Curves (EC) là một phần quan trọng của mật mã học và

được sử dụng rộng rãi trong các ứng dụng bảo mật Nó dựa trên một phân nhánhcủa toán học gọi là hình học đường cong elliptic

- Hình học đường cong elliptic thường được biểu diễn bởi một biểu đồ có dạng

đường cong trên một bảng hai chiều Các điểm trên đường cong được định bằngcác cặp số thực (x, y) thỏa mãn phương trình đường cong elliptic cụ thể Hìnhdạng của đường cong elliptic có cấu trúc đặc biệt, và nó có tính chất về tính toánđối xử, trong đó phép cộng và phép nhân được thực hiện

Trang 13

- Giả sử chúng ta có một đường cong elliptic đơn giản được biểu diễn bởi

phương trình sau:

y2 = x3 + 7

- Trong trường hợp này, đường cong elliptic là một đường cong trong

không gian hai chiều, và các điểm trên đường cong là các cặp số thực (x, y) thỏa mãn phương trình trên Để tạo ra một ví dụ cụ thể, hãy chọn một điểm trên đường cong, ví dụ:

P = (2,3)

- Bây giờ, chúng ta có thể sử dụng toán học trên đường cong elliptic để

thực hiện các phép tính, chẳng hạn như phép cộng điểm, nhân điểm với một số nguyên, và các phép tính liên quan đến tính toán trên đường cong này

- Trong mật mã học, ví dụ trên có thể được sử dụng trong các ứng dụng

như ECC (Elliptic Curve Cryptography) Chẳng hạn, để tạo ra một cặp khóa (khóa công khai và khóa bí mật) trong mật mã hóa ECC, bạn có thể chọn một điểm trên đường cong như P và sau đó nhân nó với một số nguyên ngẫu nhiên để tạo ra khóa công khai Việc giải quyết discrete logarithm (tìm số nguyên x trong phương trình xP = Q với Q là một điểm trên đường cong) trở nên khó khăn khi đường cong elliptic được chọn đủ phức tạp và có kích thước lớn

II DES (Data Encryption Standard)

DES được Viện Tiêu chuẩn và Công nghệ Quốc gia Hoa Kỳ (NIST) giới thiệunhư một thuật toán tiêu chuẩn để mã hóa và được sử dụng chính trong những năm 1980và 1990, nhưng nó chưa được chứng minh là có khả năng chống lại các cuộc tấn công,dẫn đến những tiến bộ trong nghiên cứu công nghệ và mật mã Đặc biệt vào tháng 7năm 1998, Electronic Erontier Foundation (EEF) đã phá vỡ DES bằng cách sử dụngmột máy chuyên dụng

DES sử dụng khóa chỉ 56 bit, điều này đã gây ra một số lo ngại Vấn đề này đãđược giải quyết bằng việc giới thiệu Triple DES (3DES), đề xuất sử dụng khóa 168 bitbằng ba khóa 56 bit và cùng số lần thực thi thuật toán DES, do đó khiến các cuộc tấncông vũ phu gần như không thể xảy ra, nhưng những hạn chế khác, chẳng hạn như hiệusuất chậm và kích thước khối 64-bit không mong muốn

Trang 14

- Cách thực thi của DES: 1 Chuẩn bị khóa: Trước khi bắt đầu quá trình mã hóa, khóa được chuẩn bị Khóa

DES có độ dài 56 bit, nhưng thực tế chỉ có 48 bit được sử dụng trong quá trìnhmã hóa Để đảm bảo tính bảo mật, khóa ban đầu được mở rộng từ 56 bit thành64 bit bằng cách thêm vào mỗi byte theo một thứ tự cụ thể

2 Chia dữ liệu thành các khối 64 bit: Dữ liệu cần mã hóa được chia thành các

khối có kích thước 64 bit Nếu dữ liệu cuối cùng không chia hết cho 64 bit, phảisử dụng phần padding để điền vào dữ liệu

3 Quá trình Initial Permutation (IP): Mỗi khối 64 bit đầu tiên trải qua một hoán

đổi ban đầu (Initial Permutation) để thay đổi vị trí các bit theo một cách cụ thể.Đây là bước bắt đầu của quá trình mã hóa

4 Vòng lặp mã hóa (16 vòng): DES sử dụng 16 vòng lặp để thực hiện mã hóa.

Mỗi vòng lặp bao gồm các bước sau:

 Expansion (E): Khối 32 bit của dữ liệu được mở rộng thành 48 bit bằng

cách sao chép và hoán đổi bit theo một cách cụ thể

 Subkey XOR (XOR với con khóa): Một con khóa 48 bit (tạo từ khóa chính

trong quá trình khóa mở rộng và hoán đổi bit) được XOR với kết quả củabước Expansion

 Substitution (S-boxes): Kết quả của bước XOR được chia thành 8 phần, mỗi

phần có 6 bit, và sau đó được đưa vào các hộp thay thế (S-boxes) để tạo racác giá trị thay thế theo cặp

 Permutation (P): Kết quả từ S-boxes sau đó được hoán đổi bit theo một cách

cụ thể bởi hoán đổi hoán đổi bit P

 XOR với khối trước đó: Kết quả của bước Permutation sau đó được XOR

với khối dữ liệu trước đó

 Hoán đổi 2 khối: Sau khi kết quả từ bước XOR với khối trước đó, khối dữ

liệu và khối trước đó được hoán đổi cho nhau Quá trình này lặp lại trong 16vòng

5 Hoán đổi kết quả (Final Permutation): Sau khi 16 vòng lặp đã hoàn thành, kết

quả là một khối dữ liệu 64 bit được thực hiện hoán đổi cuối cùng

6 Kết quả: Khối dữ liệu sau bước hoán đổi cuối cùng được coi là kết quả mã hóa

DES

III AES ( Advanced Encryption Standard)

Trang 15

Năm 2001, sau một cuộc thi mở, một thuật toán mã hóa có tên Rijndael đượcphát minh bởi các nhà mật mã Joan Daenten và Vincen! Rijmen đã được tiêu chuẩn hóathành AES với những sửa đổi nhỏ bởi NIST vào năm 2001 Cho đến nay, chưa có cuộctấn công nào chống lại AES Rijndael gốc cho phép các kích thước khóa và khối khácnhau là 128 bit, 192 bit và 256 bit.

- Cách thực hiện AES

1) Chọn kích thước khối và khóa: Trước tiên, bạn phải chọn kích thước khối

(block size) và độ dài của khóa (key length) AES hỗ trợ ba kích thước khốichính: 128 bit, 192 bit, và 256 bit Tùy thuộc vào mức độ bảo mật mà bạn cần,bạn sẽ chọn kích thước khóa tương ứng (128-bit, 192-bit, hoặc 256-bit)

2) Mở rộng khóa (Key Expansion): Quá trình này tạo ra các khóa con từ khóa

chính theo từng vòng lặp Các khóa con này sẽ được sử dụng trong các vòng lặpmã hóa

3) Quá trình Initial Round: Đây là vòng đầu tiên của quá trình mã hóa Dữ liệu

đầu vào được XOR với khóa con đầu tiên

4) Vòng lặp mã hóa (Rounds): AES sử dụng một loạt các vòng lặp để thực hiện

mã hóa Số vòng lặp (rounds) phụ thuộc vào kích thước khóa: 10 vòng cho bit key, 12 vòng cho 192-bit key, và 14 vòng cho 256-bit key Mỗi vòng lặp baogồm các bước sau:

128- SubBytes: Mỗi byte trong khối dữ liệu được thay thế bằng một giá trịmới từ một hộp thay thế (S-box) Điều này làm cho mối quan hệ giữa dữliệu đầu vào và đầu ra trở nên phi tuyến tính, đóng góp vào tính bảo mậtcủa AES

 ShiftRows: Các hàng trong khối dữ liệu được dịch chuyển theo một cáchcụ thể

 MixColumns: Các cột trong khối dữ liệu được kết hợp theo một cách cụthể

 AddRoundKey: Khóa con tương ứng với vòng lặp được XOR với khốidữ liệu sau các bước trước đó

5) Vòng lặp cuối cùng (Final Round): Vòng lặp cuối cùng không bao gồm bước

MixColumns, và sau đó nó chuyển đến bước kết quả

6) Kết quả (Ciphertext): Kết quả sau khi hoàn thành các vòng lặp được coi là văn

bản mã hóa (ciphertext)

Trang 16

Hình A.1 Các bước tạo khóa để mã hóa

B Mã hóa bất đối xứngI PUBLIC KEY AND PRIVATE KEY

- Các khóa công khai (public key) và khóa bí mật (private key) là cặp khóa được sử dụng trong mật mã hóa khóa công khai để bảo vệ thông tin và xác thực danh tính Đây là một phần quan trọng của nhiều hệ thống mật mã hóa và giao thức bảo mật

- Khóa công khai (Public Key):o Khóa công khai là một phần của cặp khóa và thường được chia sẻ công

khai với tất cả mọi người.o Nó được sử dụng để mã hóa thông tin Bất kỳ ai cũng có thể sử dụng

khóa công khai để mã hóa dữ liệu trước khi gửi nó đến người nhận.o Dữ liệu đã được mã hóa bằng khóa công khai chỉ có thể được giải mã

bằng khóa bí mật tương ứng

Trang 17

- Khóa bí mật (Private Key):o Khóa bí mật là một phần khác của cặp khóa, được bảo mật và chỉ có

người nhận hoặc chủ sở hữu khóa mới biết.o Nó được sử dụng để giải mã thông tin đã được mã hóa bằng khóa công

khai Khóa bí mật này là duy nhất và không thể bị chia sẻ công khai.o Nó cũng được sử dụng để tạo chữ ký số để xác thực danh tính của người

dùng.- Hệ thống mật mã hóa khóa công khai thường dựa vào cặp khóa công khai và

bí mật Khóa công khai cho phép người khác mã hóa thông tin để gửi cho bạn, và sau đó bạn sử dụng khóa bí mật để giải mã nó Ngược lại, bạn cũng có thể sử dụng khóa bí mật của mình để tạo chữ ký số để xác thực thông tin của mình.- Một ví dụ phổ biến về hệ thống mật mã hóa khóa công khai là RSA (Rivest-

Shamir-Adleman), trong đó khóa công khai và khóa bí mật được sử dụng để mã hóa và giải mã thông tin cũng như tạo chữ ký số

1 RSA là gì và cách để tạo khóa trong RSA

- RSA được phát minh vào năm 1977 bởi Ron Ripest, Adi Shamir và Leonard Adelinan, do đó có tên là RSA Điều này dựa trên bài toán nhân tử hóa số nguyên, trong đó phép nhân hai số nguyên tố lớn thì dễ nhưng lại khó phân tích thành nhân tử nó trở lại hai số ban đầu

- RSA được sử dụng rộng rãi trong các ứng dụng bảo mật, chẳng hạn nhưmật mã hóa dữ liệu truyền qua mạng, xác thực danh tính, và tạo chữ ký số Nó được coi là một trong những thuật toán mật mã hóa khóa công khai mạnh mẽ và an toàn, bất kể thông tin về khóa công khai được chia sẻ công khai, việc tính toán ngược của nó (tìm khóa bí mật từ khóa công khai) vẫn rất khó khăn Tuy nhiên, để đảm bảo tính bảo mật, RSA yêu cầu sử dụng khóa có độ dài đủ lớn, đặc biệt trong môi trường tính toán hiện đại

- Để tạo một cặp khóa RSA, bao gồm khóa công khai và khóa bí mật, bạn cần thực hiện các bước sau:

o Chọn hai số nguyên nguyên tố (prime numbers): Chọn hai số nguyên tố lớn và khác nhau, thường được gọi là p và q Đây là

Trang 18

bước quan trọng, vì tính bảo mật của hệ thống RSA phụ thuộc vào khả năng bảo vệ tính nguyên tố của p và q.

o Tính n = p * q: Nhân hai số nguyên tố p và q để tạo ra một số nguyên dương n Số n này sẽ được sử dụng trong cả khóa công khai và khóa bí mật

o Tính toán hàm số Euler phi(n): Hàm số Euler, thường ký hiệu là φ (phi), là số các số nguyên dương nhỏ hơn n mà không có ước chung lớn hơn 1 với n Công thức tính φ(n) là: φ(n) = (p - 1) * (q -1)

o Chọn một số nguyên e (khóa công khai): Chọn một số nguyên e (1< e < φ(n)) sao cho e là số nguyên tố cùng nhau (coprime) với φ(n) Thông thường, số e được chọn là một số nguyên tố nhỏ như 65537

o Tính khóa bí mật d dựa trên e: Tìm số nguyên d (1 < d < φ(n)) sao cho (e * d - 1) chia hết cho φ(n) Tức là, d là phần dư của phép chia (e * d - 1) cho φ(n)

- Xác định khóa công khai và khóa bí mật:o Khóa công khai (n, e): Khóa công khai bao gồm số nguyên n và e Số

n được chia sẻ công khai với mọi người và được sử dụng để mã hóa dữ liệu

o Khóa bí mật (n, d): Khóa bí mật bao gồm số nguyên n và d Số d đượcgiữ kín và chỉ người sở hữu nó mới có thể sử dụng để giải mã dữ liệu.- Cặp khóa RSA (khóa công khai và khóa bí mật) đã được tạo và có thể

được sử dụng để mã hóa và giải mã dữ liệu hoặc để tạo chữ ký số Việc chọn p và q có thể được thực hiện một lần và sau đó sử dụng nó để tạo ra nhiều cặp khóa RSA

2 Cách encryption và decryption sử dụng RSA

- Mã hóa (Encryption) trong RSA:o Chọn khóa công khai của người nhận: Bạn cần biết khóa công

khai của người nhận, bao gồm số nguyên n và e.o Chuẩn bị thông tin cần mã hóa: Chuyển thông tin cần mã hóa

thành một số nguyên M, thường thông qua một hàm hash Đảm bảo rằng 0 < M < n để đảm bảo tính bảo mật của mã hóa

Trang 19

o Mã hóa thông tin: Sử dụng khóa công khai (n, e) của người nhận, tính giá trị của C (ciphertext) bằng cách sử dụng phép tính modulon: C = M^e mod n.

o Gửi C (ciphertext) đến người nhận: Bạn có thể gửi giá trị C cho người nhận

- Giải mã (Decryption) trong RSA:o Chọn khóa bí mật của người nhận: Người nhận sử dụng khóa bí

mật của mình, bao gồm số nguyên n và d.o Nhận C (ciphertext): Người nhận nhận được giá trị C (ciphertext)

từ bạn.o Giải mã thông tin: Sử dụng khóa bí mật (n, d) của mình, người

nhận tính giá trị của M (plaintext) bằng cách sử dụng phép tính modulo n: M = C^d mod n

o Chuyển đổi M thành thông tin ban đầu: M là một số nguyên, và bạn có thể chuyển đổi nó thành thông tin ban đầu (ví dụ: văn bản) thông qua các phép tính phù hợp

III ECC

1 ECC là gì?

- ECC là viết tắt của "Elliptic Curve Cryptography" (Mật mã hóa hình học đường cong elliptic) Đây là một hệ thống mật mã hóa dựa trên hình học đường cong elliptic (elliptic curves), và nó đã trở thành một phần quan trọng của lĩnh vực mật mã hóa và bảo mật thông tin

- ECC sử dụng đường cong elliptic và tính toán trên các điểm trên đường cong này để thực hiện các phép mã hóa và giải mã thông tin, cũng như tạo chữ ký số Một số lợi ích của ECC bao gồm:

o Kích thước khóa nhỏ hơn: So với các hệ thống mật mã hóa truyền thống như RSA, ECC yêu cầu kích thước khóa nhỏ hơn để đạt được cùng mức độ bảo mật Điều này làm cho ECC phù hợp cho các thiết bị có tài nguyên hạn chế

o Hiệu suất tốt: ECC cung cấp hiệu suất cao trong việc mã hóa và giải mã dữ liệu, điều này quan trọng trong các ứng dụng yêu cầu tốc độ cao như giao dịch tài chính trực tuyến và mạng di động

Trang 20

o Độ an toàn cao: Các thuật toán ECC đã được thiết kế để cung cấp tính bảo mật cao, và việc giải quyết các vấn đề bảo mật liên quan đến ECC thường rất khó khăn.

- ECC được sử dụng rộng rãi trong các ứng dụng bảo mật như mật mã hóa dữ liệu trên Internet, xác thực danh tính, tạo chữ ký số, và nhiều ứng dụng khác liên quan đến bảo mật thông tin

2 Các phép toán của ECC

- Phương trình đường cong elliptic trên một trường hữu hạn thường có dạng phương trình Weierstrass Một phương trình Weierstrass chuẩn trên một trường hữu hạn F_p (trường hữu hạn với số nguyên tố p) có dạng như sau:

y3 = x + ax + b (mod p)3- Ở đây:

o y và x là các biến số trên trường hữu hạn F_p.o a và b là các hệ số trong phương trình, cũng thuộc trường F_p, và

chúng định nghĩa hình dạng cụ thể của đường cong elliptic.o p là số nguyên tố đại diện cho trường hữu hạn F_p.- Ta phải đảm bảo rằng đường cong elliptic không có điểm trùng lặp

(repeated points), một số điều kiện phải được thỏa mãn Cụ thể, điều kiệnđó là:

o Độ cong (Cofactor) bằng 1: Độ cong (đôi khi được gọi là cofactor)của đường cong elliptic là số lượng điểm trên đường cong chia cho số điểm trên một nhóm con của đường cong Để đảm bảo đường cong không có điểm trùng lặp, độ cong nên bằng 1.o Đường cong không phải là đường cong đơn lẻ (singular curve):

Điều này đảm bảo rằng đường cong không có điểm uốn (cusp) hoặc điểm singularity Điểm singular có thể dẫn đến sự hiện diện của điểm trùng lặp

o Thủ tục chọn a và b: Các hệ số a và b trong phương trình Weierstrass cần được chọn sao cho phương trình x^3 + ax + b không có nghiệm trên trường hữu hạn F_p Điều này cũng đóng góp vào đảm bảo đường cong không có điểm trùng lặp

Trang 21

Hình B.1

3 Point addition

- Trong ECC (Elliptic Curve Cryptography), "point addition" (phép cộng điểm) là một phép toán quan trọng để thực hiện phép cộng giữa hai điểm trên đường cong elliptic Phép toán này cho phép tính toán điểm mới trên đường cong bằng cách cộng hai điểm đã cho, và nó là một phần quan trọng của các phép toán mã hóa và xác thực trong ECC

- Việc cộng điểm được thể hiện trong sơ đồ sau Đây là biểu diễn hình học của phép cộng điểm trên các đường cong elip Trong phương pháp này, một đường thẳng đi qua đường cong cắt đường cong tại hai điểm bên dưới P và Q, tạo ra điểm thứ ba nằm giữa đường cong và đường thẳng Điểm này được phản chiếu là P+Q, biểu thị kết quả của phép cộng dưới dạng R Giá trị này được biểu thị dưới dạng P+Q trong sơ đồ sau:

Ngày đăng: 26/09/2024, 16:33

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

TÀI LIỆU LIÊN QUAN

w