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

Nghiên cứu giao thức trao đổi khóa EKE trên đường cong Elliptic có mã hóa

90 3 0

Đ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 đề Nghiên cứu Giao thức trao đổi khóa EKE trên đường cong Elliptic có mã hóa
Tác giả Mai Văn Tuấn
Người hướng dẫn TS. Trần Quan Huy
Trường học Học viện Bưu chính Viễn thông
Chuyên ngành Công nghệ Thông tin
Thể loại Đề án tốt nghiệp
Năm xuất bản 2022
Thành phố Hà Nội
Định dạng
Số trang 90
Dung lượng 1,45 MB

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

Cấu trúc

  • CHƯƠNG 1: TỔNG QUAN VỀ TRAO ĐỔI KHOÁ TRÊN ĐƯỜNG CONG (10)
    • 1.1. Lý thuyết về đường cong Elliptic (10)
      • 1.1.1. Khái niệm đường cong Elliptic (10)
      • 1.1.2. Phép toán trên đường cong Elliptic (10)
      • 1.1.3. Hệ mật trên đường cong Elliptic (10)
      • 1.1.4. Bài toàn logarit rời rạc trên đường cong Elliptic (ECDLP) (12)
      • 1.1.5. Phép nhân với số nguyên và bài toán logarit rời rạc trên đường cong Elliptic.4 1.2. Giao thức thỏa thuận khóa Diffie – Hellman trên đường cong Elliptic (13)
      • 1.2.1. Lược đồ giao thức thỏa thuận khóa Diffie – Hellman nguyên thủy (14)
      • 1.2.2. Lược đồ giao thức thỏa thuận khóa Diffie – Hellman trên đường cong Elliptic (15)
      • 1.2.3. Vấn đề mất an toàn của giao thức trao đổi khóa trên đường cong Elliptic (17)
    • 1.3. Kết luận chương 1 (20)
  • CHƯƠNG 2: GIAO THỨC TRAO ĐỔI KHÓA CÓ MÃ HÓA EKE (21)
    • 2.1. Giới thiệu (21)
    • 2.2. Giao thức EKE trên trường hữu hạn (22)
      • 2.2.1. Giao thức trao đổi khóa có mã hóa EKE trên trường hữu hạn (22)
      • 2.2.2. Các ví dụ về hoạt động của giao thức trao đổi khóa có mã hóa EKE trên trường hữu hạn (24)
    • 2.3. Giao thức EKE trên đường cong Elliptic (25)
      • 2.3.1. Giao thức trao đổi khóa có mã hóa EKE trên đường cong Elliptic (25)
      • 2.3.2. Các bài toán cụ thể về đường cong Elliptic (27)
    • 2.4. Ứng dụng của giao thức EKE (28)
    • 2.5. Vấn đề an toàn các giao thức EKE (29)
    • 2.6. Kết luận chương 2 (30)
  • CHƯƠNG 3: CÀI ĐẶT MÔ PHỎNG GIAO THỨC EKE TRÊN ĐƯỜNG (32)
    • 3.1. Phân tích thiết kế chương trình cài đặt mô phỏng (32)
      • 3.1.1. Biểu đồ Use case tổng quát (32)
      • 3.1.2. Biểu đồ phân rã chức năng tạo khóa (32)
      • 3.1.3. Biểu đồ phân rã chức năng bên gửi (33)
      • 3.1.4. Biểu đồ phân rã chức của bên nhận (34)
    • 3.2. Phân tích luồng thông tin truyền nhận (36)
    • 3.3. Modun cài đặt (38)
      • 3.3.1. Modun đường cong SECP 256k1 (38)
      • 3.3.2. Modun mã hóa và giải mã (38)
      • 3.3.3. Modun hàm dẫn xuất khóa PBKDF2 (41)
    • 3.4. Kết quả thử nghiệm (42)
      • 3.4.1. Giao diện chương trình hoàn thiện (42)
      • 3.4.2. Kết quả chạy thử nghiệm (45)
    • 3.5. Phân tích độ an toàn của các tham số cài đặt (0)
      • 3.5.1. Độ an toàn của thuật toán mã khối AES (49)
      • 3.5.2. Độ an toàn của tham số SECP (50)
      • 3.5.3. Độ an toàn của tham số PBKDF2-HMAC-SHA256 (50)
    • 3.6. Kết luận chương 3 (50)
  • KẾT LUẬN (51)
  • TÀI LIỆU THAM KHẢO (52)

Nội dung

Trao đổi khóa được mã hóa EKE được tạo ra bởi Steven M. Bellovin và Michael Meritt có sử dụng cơ chế xác thực bên liên lạc và mã hóa các thông điệp trao đổi khóa DiffieHellman. Điều này khắc phục được những nhược điểm của giao thức trao đổi khóa DiffieHellman như không có cơ chế xác thực và bị tấn công xen giữa. Với những lý do như vậy nên tôi đã chọn đề tài “Tìm hiều, thực thi giao thức trao đổi khóa có mã hóa EKE trên đường cong Elliptic” nhằm hiểu sâu hơn về giao thức trao đổi khóa này.

Trang 1

BỘ THÔNG TIN VÀ TRUYỀN THÔNG

HỌC VIỆN BƯU CHÍNH VIỄN THÔNG

- -

ĐỒ ÁN TỐT NGHIỆP

Đề tài

TÌM HIỂU, THỰC THI GIAO THỨC TRAO ĐỔI KHÓA CÓ

MÃ HÓA EKE TRÊN ĐƯỜNG CONG ELLIPTIC

Giảng viên hướng dẫn: TS Trần Quan Huy

Sinh viên thực hiện: Mai văn Tuấn

Lớp: K26

Khóa: 2019 – 2022

Chuyên ngành: CÔNG NGHỆ THÔNG TIN

Hà Nội, 2022

Trang 2

BỘ THÔNG TIN VÀ TRUYỀN THÔNG

HỌC VIỆN BƯU CHÍNH VIỄN THÔNG

- -

ĐỒ ÁN TỐT NGHIỆP

Đề tài

TÌM HIỂU, THỰC THI GIAO THỨC TRAO ĐỔI KHÓA CÓ

MÃ HÓA EKE TRÊN ĐƯỜNG CONG ELLIPTIC

Giảng viên hướng dẫn: TS Trần Quan Huy

Sinh viên thực hiện: Mai văn Tuấn

Lớp: K26

Khóa: 2019 – 2022

Chuyên ngành: CÔNG NGHỆ THÔNG TIN

Hà Nội, 2022

Trang 3

LỜI CẢM ƠN

Qua thời gian tìm hiểu và nghiên cứu, em đã hoàn thành đồ án tốt nghiệp của mình Để có thể hoàn thành đồ án này, đầu tiên em xin gửi lời cảm ơn chân thành tới thầy giáo TS Trần Quan Huy đã tận tình hướng dẫn giúp đỡ em trong quá trình nghiên cứu và làm đồ án

Em xin bày tỏ lòng biết ơn sâu sắc tới toàn thể thầy, cô trường Học viện bưu chính viễn thông, đặc biệt là các thầy, cô giáo trong Khoa cntt đã dạy bảo, truyền đạt những kiến thức quý giá cho em trong suốt quãng thời gian 3 năm học tập, rèn luyện tại trường Kiến thức mà các thầy, cô đã truyền đạt không chỉ là nền tảng cho quá trình nghiên cứu và làm đồ án tốt nghiệp mà còn là hành trang quý báu để em bước vào thực

tế công việc sau khi ra trường

Em xin gửi lời cảm ơn đến gia đình, bạn bè, đồng chí đồng đội đã luôn bên cạnh, giúp đỡ em trong thời gian qua

Trong quá trình thực hiện đồ án không tránh khỏi có những thiếu sót Em mong nhận được sự giúp đỡ, đóng góp ý kiến từ thầy cô, bạn bè, đồng chí đồng đội để em có thể tiếp tục đi sâu, tìm hiểu và mở rộng thêm nhằm hoàn thiện và phát triển đề tài

Em xin chân thành cảm ơn!

Trang 4

LỜI CAM ĐOAN

Tôi xin cam đoan đồ án này là do tôi tự nghiên cứu dưới sự hướng dẫn của thầy

TS Trần Quan Huy

Để hoàn thành đồ án này, tôi chỉ sử dụng tài liệu đã ghi trong mục tài liệu tham khảo, ngoài ra không sử dụng bất cứ tài liệu nào khác mà không được ghi

Nếu sai tôi xin chịu mọi hình thức kỷ luật theo quy định của Học viện

Hà Nội, ngày tháng năm 2022

Học viên thực hiện

Mai văn Tuấn

Trang 5

MỤC LỤC

LỜI CẢM ƠN i

LỜI CAM ĐOAN ii

MỤC LỤC iii

DANH MỤC CÁC TỪ VIẾT TẮT v

DANH MỤC HÌNH VẼ vi

LỜI NÓI ĐẦU vii

CHƯƠNG 1: TỔNG QUAN VỀ TRAO ĐỔI KHOÁ TRÊN ĐƯỜNG CONG ELLIPTIC 1

1.1 Lý thuyết về đường cong Elliptic 1

1.1.1 Khái niệm đường cong Elliptic 1

1.1.2 Phép toán trên đường cong Elliptic 1

1.1.3 Hệ mật trên đường cong Elliptic 1

1.1.4 Bài toàn logarit rời rạc trên đường cong Elliptic (ECDLP) 3

1.1.5 Phép nhân với số nguyên và bài toán logarit rời rạc trên đường cong Elliptic.4 1.2 Giao thức thỏa thuận khóa Diffie – Hellman trên đường cong Elliptic 5

1.2.1 Lược đồ giao thức thỏa thuận khóa Diffie – Hellman nguyên thủy 5

1.2.2 Lược đồ giao thức thỏa thuận khóa Diffie – Hellman trên đường cong Elliptic 6

1.2.3 Vấn đề mất an toàn của giao thức trao đổi khóa trên đường cong Elliptic 8

1.3 Kết luận chương 1 11

CHƯƠNG 2: GIAO THỨC TRAO ĐỔI KHÓA CÓ MÃ HÓA EKE 12

2.1 Giới thiệu 12

2.2 Giao thức EKE trên trường hữu hạn 13

2.2.1 Giao thức trao đổi khóa có mã hóa EKE trên trường hữu hạn 13

2.2.2 Các ví dụ về hoạt động của giao thức trao đổi khóa có mã hóa EKE trên trường hữu hạn 15

2.3 Giao thức EKE trên đường cong Elliptic 16

2.3.1 Giao thức trao đổi khóa có mã hóa EKE trên đường cong Elliptic 16

2.3.2 Các bài toán cụ thể về đường cong Elliptic 18

2.4 Ứng dụng của giao thức EKE 19

2.5 Vấn đề an toàn các giao thức EKE 20

Trang 6

2.6 Kết luận chương 2 21

CHƯƠNG 3: CÀI ĐẶT MÔ PHỎNG GIAO THỨC EKE TRÊN ĐƯỜNG CONG ELLIPTIC 23

3.1 Phân tích thiết kế chương trình cài đặt mô phỏng 23

3.1.1 Biểu đồ Use case tổng quát 23

3.1.2 Biểu đồ phân rã chức năng tạo khóa 23

3.1.3 Biểu đồ phân rã chức năng bên gửi 24

3.1.4 Biểu đồ phân rã chức của bên nhận 25

3.2 Phân tích luồng thông tin truyền nhận 27

3.3 Modun cài đặt 29

3.3.1 Modun đường cong SECP 256k1 29

3.3.2 Modun mã hóa và giải mã 29

3.3.3 Modun hàm dẫn xuất khóa PBKDF2 32

3.4 Kết quả thử nghiệm 33

3.4.1 Giao diện chương trình hoàn thiện 33

3.4.2 Kết quả chạy thử nghiệm 36

3.5 Phân tích độ an toàn của các tham số cài đặt 40

3.5.1 Độ an toàn của thuật toán mã khối AES 40

3.5.2 Độ an toàn của tham số SECP 41

3.5.3 Độ an toàn của tham số PBKDF2-HMAC-SHA256 41

3.6 Kết luận chương 3 41

KẾT LUẬN 42

TÀI LIỆU THAM KHẢO 43

Trang 7

DANH MỤC CÁC TỪ VIẾT TẮT

AES

Advanced Encryption Standard Chuẩn mã hóa tiên tiếnCCM Counter with Cipher Block Chaining Message Authentication Code Chế độ bộ đếm kết hợp mã xác thực CBC

ECC Elliptic Curve Cryptography Mật mã đường cong Elliptic

ECDLP Elliptic Curve Discrete Logarithm Problem Bài toán Logarithm rời rạc trên đường cong ElllipticECIES Elliptic Curve Integrated Encryption Scheme Lược đồ mã hoá kết hợpHMAC Hashed Message Authentication Code Mã xác thực thông báo dựa trên hàm băm

PBKDF Password-Based Key Derivation Function Hàm dẫn xuất khóa dựa trên mật khẩu

SECP Standards for Efficient Cryptography

Tiêu chuẩn đánh giá mật mã

hiệu quả

NIST National Institure of Standard and Technology Viện tiêu chuẩn công nghệ Quốc gia Hoa kỳ

Trang 8

DANH MỤC HÌNH VẼ

Hình 1.1 Sơ đồ hoạt động của hệ mật trên đường cong Elliptic 2

Hình 1.2 Lược đồ giao thức trao đổi khóa Diffie – Hellman nguyên thủy 5

Hình 1.3 Lược đồ giao thức thỏa thuận Diffie – Hellman 7

Hình 2.1 Giao thức EKE trên trường hữu hạn 13

Hình 2.2 EKE với Elliptic Curves ECC 21Error! Bookmark not defined. Hình 2.3 Trao đổi EAP-EKE thành công 19

Hình 2.4 Quá trình thực thi EAP-EKE 20

Hình 3.1 Use case tổng quát 23

Hình 3.2 Phân rã chức năng tạo khóa 24

Hình 3.3 Phân rã chức năng của bên gửi 25

Hình 3.4 Phân rã chức năng của bên nhận 26

Hình 3.5 Luồng thông tin truyền nhận 27

Hình 3.6 Tham số đường cong Secp256r1 29

Hình 3.7 Lưu đồ thuật toán mã hoá 30

Hình 3.8 Lưu đồ thuật toán giải mã 31

Hình 3.9 Chế độ hoạt động sách mã điện tử ECB 32

Hình 3.10 Giao diện tạo khóa 34

Hình 3.11 Giao diện bên gửi 35

Hình 3.12 Giao diện bên nhận 36

Hình 3.13 Tạo mật khẩu và băm mật khẩu 37

Hình 3.14 Sinh số ngẫu nhiên a và tính Ep(aG) 37

Hình 3.15 Sinh số ngẫu nhiên b và tính Ep(bG) 38

Hình 3.16 Tính khoá bí mật dùng chung 38

Hình 3.17 Bob tính thông điệp chào 39

Hình 3.18 Alice tính thông điệp chào 39

Hình 3.19 Hai bên trao đổi khoá thành công 40

Hình 3.20 Độ an toàn của thuật toán mã khối AES 40

Trang 9

LỜI NÓI ĐẦU

Thời gian gần đây các cuộc tấn công mạng đang gia tăng cả về số lượng và quy

mô, diễn ra ngày càng tinh vi và phức tạp Nhiều cuộc tấn công có chủ đích nhằm vào các cơ quan Chính phủ, các hệ thống thông tin quan trọng trong nhiều lĩnh vực Hầu hết các doanh nghiệp còn chưa chú trọng hay có nhận thức đầy đủ về các vấn đề an ninh mạng và dễ bị tấn công vào các lỗ hổng

Mật mã là một biện pháp chính trong việc đảm bảo các dịch vụ an toàn thông tin như: bí mật, xác thực, toàn vẹn và chống chối bỏ Để việc sử dụng mật mã có thể đảm bảo được an toàn thông tin thì cần những yêu cầu về thuật toán, các tham số sử dụng

và khóa Trong đó, khóa là một thành phần rất quan trọng trong việc đảm bảo an toàn của hệ mật sử dụng Bài toán trao đổi khóa được đặt ra giữa các bên liên lạc và có rất nhiều giao thức trao đổi khóa khác nhau được nghiên cứu áp dụng vào hệ thống công nghệ thông tin ngày nay

Trao đổi khóa được mã hóa EKE được tạo ra bởi Steven M Bellovin và Michael Meritt có sử dụng cơ chế xác thực bên liên lạc và mã hóa các thông điệp trao đổi khóa Diffie-Hellman Điều này khắc phục được những nhược điểm của giao thức trao đổi khóa Diffie-Hellman như không có cơ chế xác thực và bị tấn công xen giữa Với những

lý do như vậy nên tôi đã chọn đề tài “Tìm hiều, thực thi giao thức trao đổi khóa có

mã hóa EKE trên đường cong Elliptic” nhằm hiểu sâu hơn về giao thức trao đổi khóa

này

Trang 10

CHƯƠNG 1: TỔNG QUAN VỀ TRAO ĐỔI KHOÁ

TRÊN ĐƯỜNG CONG ELLIPTIC 1.1 Lý thuyết về đường cong Elliptic

1.1.1 Khái niệm đường cong Elliptic

Phương trình đường cong Elliptic sử dụng trong mật mã thường dùng dạng weierstrass:

𝑦2 = 𝑥3+ 𝑎𝑥 + 𝑏(𝑚𝑜𝑑 𝑝) Với điều kiện: 4𝑎3+ 27𝑏2(𝑚𝑜𝑑 𝑝) ≠ 0 Đường cong trên có thể được ký hiệu

là 𝐸𝑝(𝑎, 𝑏)

1.1.2 Phép toán trên đường cong Elliptic

Giả sử 𝑃 = (𝑥1, 𝑦1), 𝑄 = (𝑥2, 𝑦2) là các điểm trong nhóm 𝐸𝑝(𝑎, 𝑏), O là điểm

vô cùng Các quy tắc đối với phép cộng trên nhóm con E p

( )

a b, như sau:

(1) 𝑃 + 𝑂 = 𝑂 + 𝑃 = 𝑃

(2) Nếu 𝑥2 = 𝑥1 và 𝑦2 = −𝑦1, tức là 𝑃 = (𝑥1, 𝑦1) và 𝑄 = (𝑥2, 𝑦2) =(𝑥1, −𝑦1) = −𝑃 thì 𝑃 + 𝑄 = 𝑂

(3) Nếu 𝑄 ≠ −𝑃 thì tổng 𝑃 + 𝑄 = (𝑥3, 𝑦3) được cho bởi:

𝑥3 = (𝜆2− 𝑥1− 𝑥2) 𝑚𝑜𝑑 𝑝

𝑦3 = (𝜆(𝑥1− 𝑥3) − 𝑦1) 𝑚𝑜𝑑 𝑝 Trong đó:

𝜆 ={

𝑦2-y1

𝑥2-x1 khi P ≠ 𝑄3x12+a

2y1 𝑘ℎ𝑖 P=Q

1.1.3 Hệ mật trên đường cong Elliptic

Năm 1993, Demytko đưa ra một thuật toán mới tương tự như RSA cho các đường cong Elliptic trên Z n, Menezes và Vanstone đã đưa ra phương pháp thực thi trên các thiết bị phần cứng để cải thiện các phép tính toán trên Elliptic trên một trường hữu

Trang 11

hạn Những năm 1997, 1998 việc tìm ra các hệ mã trên đường cong Elliptic ngày càng thu hút nhiều sự chú ý và một số thuật toán đã được đưa thành chuẩn trong các RFC [1]

Sơ đồ hoạt động của hệ mật trên đường cong Elliptic được mô tả theo hình 1:

Khóa công khai:

Nguồn khóa Tham số chung của hệ mật ECC:

Khóa công khai:

A A

E =P E B=P B

Kênh truyền tin

( ) , , ( ) ,

E a b GE a b

Hình 1.1 Sơ đồ hoạt động của hệ mật trên đường cong Elliptic

Theo sơ đồ hoạt động của hệ mật trên đường cong Elliptic, đầu mối A cần truyền

thông báo mật R cho đầu mối B qua kênh truyền tin, có sử dụng hệ mật trên đường

cong Elliptic để bảo mật thông tin Khi đó, hệ mật trên đường cong Elliptic được xây dựng như sau:

Sinh tham số chung cho hệ mật: Khi sử dụng hệ mật Elliptic để bảo mật thông

tin cho mạng liên lạc, các tham số sau cần phải được quy ước chung cho hệ mật:

- Chọn một đường cong Elliptic 𝐸𝑝(𝑎, 𝑏) Việc chọn một đường cong Elliptic sẽ ảnh hưởng đến tốc độ, tính hiệu quả, độ dài khóa và tính an toàn của hệ mật trên đường cong này

- Chọn điểm sinh (điểm cơ sở) 𝐺 ∈ 𝐸𝑝(𝑎, 𝑏) Điểm 𝐺 có cấp 𝑛, 𝑛𝐺 = 0 Để an toàn thì n phải là một số nguyên tố lớn

Các tham số của hệ mật: đường cong 𝐸𝑝(𝑎, 𝑏) và điểm sinh 𝐺 ∈ 𝐸𝑝(𝑎, 𝑏) được đưa ra công khai

Trong hệ mật này, mỗi bản rõ 𝑅 sẽ được biểu diễn lại thành một điểm 𝑃𝑅 trong tập hữu hạn các điểm của nhóm 𝐸𝑝(𝑎, 𝑏) mà nhờ đó chúng ta có thể thực hiện được các tính toán trên 𝐸𝑝(𝑎, 𝑏)

Trang 12

Lược đồ tạo khóa: Mỗi đầu mối liên lạc (mỗi người dùng) tạo một cặp khóa, bao

gồm một khóa công khai và một khóa riêng bí mật tương ứng theo các bước sau:

1 Chọn một số nguyên ngẫu nhiên 𝑎, 2 ≤ 𝑎 ≤ 𝑛 − 2

2 Tính giá trị của điểm P như sau: 𝑃 = 𝑎𝐺

3 Đặt𝐾 = {(𝑎, 𝑃): 𝑃 = 𝑎𝐺}ta có khóa công khai là 𝐸𝐾 = 𝑃, khóa riêng bí mật

là 𝐷𝐾 = 𝑎

Lược đồ mã hóa: A phải mã hóa bản rõ R để tạo bản mã M gửi cho B theo các

bước sau:

1 Nhận khóa công khai 𝐸𝐵 = 𝑃𝐵 của B

2 Biểu diễn bản rõ R thành một điểm P R trong tập hữu hạn các điểm của nhóm

𝐸𝑝(𝑎, 𝑏)

3 Chọn số nguyên ngẫu nhiên bí mật 𝑘, 2 ≤ 𝑘 ≤ 𝑝 − 2

4 Tính cặp điểm của bản mã PM bằng cách dùng khóa công khai PB của B:

5 Gửi cặp điểm bản mã PM cho B

Lược đồ giải mã: Để khôi phục bản rõ R từ bản mã PM đã nhận B phải dùng

khóa riêng D B =a B và thực hiện phép tính sau:

1 Nhân điểm thứ nhất

( )

kG với khóa riêng a B của B và lấy kết quả nhận được

trừ đi điểm thứ hai trong cặp điểm của P M :

(𝑃𝑅 + 𝑘𝑃𝐵) − 𝑎𝐵(𝑘𝐺) = (𝑃𝑅 + 𝑘𝑎𝐵𝐺) − 𝑎𝐵(𝑘𝐺) = 𝑃𝑅 (3)

Đây chính là điểm tương ứng với bản rõ R Chỉ có B mới có khóa riêng a Bvà mới

có thể tách 𝑎𝐵(𝑘𝐺) khỏi điểm thứ hai của 𝑃𝑀 để thu thông tin về bản rõ 𝑃𝑅

2 Ánh xạ điểm - điểm bản rõ P R trở lại thông báo gốc R

1.1.4 Bài toàn logarit rời rạc trên đường cong Elliptic (ECDLP)

Định nghĩa: Cho 𝐸là một đường cong Elliptic và 𝐺 ∈ 𝐸 là một điểm có cấp 𝑛

Trang 13

Cho điểm 𝑃 ∈ 𝐸, hãy tìm số nguyên dương 𝑥, 2 ≤ 𝑥 ≤ 𝑛 − 2 sao cho 𝑃 = 𝑥𝐺

Hiện nay, chưa có thuật toán nào được xem là hiệu quả để giải bài toán này Để giải bài toán logarit rời rạc trên đường cong Elliptic, cần phải kiểm tra tất cả các giá trị của 𝑥 ∈[2, 𝑛 − 2] Nếu điểm 𝐺 được chọn cẩn thận với 𝑛 rất lớn thì việc giải bài toán ECDLP xem như không khả thi Việc giải bài toán ECDLP được đánh giá là khó hơn việc giải bài toán DLP trên trường hữu hạn

1.1.5 Phép nhân với số nguyên và bài toán logarit rời rạc trên đường cong Elliptic

Giả sử 𝐺 là một điểm trên đường cong elliptic 𝐸 sinh ra nhóm cyclic < 𝐺 >

Có lực lượng hữu hạn 𝑛 đối với phép cộng “+” của nhóm Khi đó, mỗi điểm 𝑄 của < 𝐺 > có biểu diễn 𝑄 = 𝑘𝐺, 𝑘 ∈ 𝑍

Ví dụ: Cho đường cong Elliptic 𝑦2 = 𝑥3+ 4𝑥 + 11(mod 73) Giả sử 𝑃 =(6,18) thuộc đường cong trên Tính 19𝑃

+ Khởi tạo: 𝑄 = ∞; 𝑘 = 19 = 100112

Trang 14

𝑖 4 3 2 1 0

𝑄 = 𝑃 = (6,18) 2𝑃

=(6,18) ∙ 2

= (23,15) + Vậy 𝑄 = 19𝑃 = (23,15)

1.2 Giao thức thỏa thuận khóa Diffie – Hellman trên đường cong Elliptic

1.2.1 Lược đồ giao thức thỏa thuận khóa Diffie – Hellman nguyên thủy

Giao thức thỏa thuận khóa Diffie – Hellman dùng để thiết lập một khóa chia sẻ

bí mật giữa người gửi và người nhận mà không cần dùng đến mã hóa công khai Độ an toàn của giao thức thỏa thuận khóa phụ thuộc vào bài toán tính Logarith rời tạc

p

=

Hình 1.2 Lược đồ giao thức trao đổi khóa Diffie – Hellman nguyên thủy

Trước tiên Alice và Bob sẽ thống nhất sử dụng chung một số nguyên tố p và một

số g nhỏ hơn p và là căn nguyên thủy của p ( nghĩa là phép toán gx mod p khả nghịch ) Hai số p và g không cần giữ bí mật Sau đó Alice chọn một số a và giữ bí mật số a này Bob cũng chọn số b và giữ bí mật số b Tiếp theo Alice tính và gửi ga mod p cho Bob, Bob tính và gửi gb mod p cho Alice

Trên cơ sở đó Alice tính :

(𝑔𝑏)𝑎𝑚𝑜𝑑 𝑝 = 𝑔𝑎𝑏𝑚𝑜𝑑 𝑝

Trang 15

𝑎 = 𝑙𝑜𝑔𝑔𝑔𝑎𝑚𝑜𝑑 𝑝 hay 𝑏 = 𝑙𝑜𝑔𝑔𝑔𝑏𝑚𝑜𝑑 𝑝

là không khả thi do tính phức tạp của phép tính logarith rời rạc Vậy Oscar không thể nào tính được gab mod p Hay nói cách khác, khóa dùng chung được trao đổi bí mật giữa Alice và Bob

1.2.2 Lược đồ giao thức thỏa thuận khóa Diffie – Hellman trên đường cong Elliptic

Cũng giống như lược đồ thỏa thuận khóa Diffie-Hellman trên trường hữu hạn (nguyên thủy), lược đồ thỏa thuận khóa Diffie-Hellman trên đường cong Elliptic cũng công khai để dùng chung hai tham số cơ bản: đường cong Ep và điểm sinh 𝐺 ∈ 𝐸𝑝(Điểm G có cấp n, n là một số nguyên tố lớn)

Trang 16

Hình 1.3 Lược đồ giao thức thỏa thuận Diffie – Hellman

trên đường cong Elliptic

Lược đồ thỏa thuận khóa Diffie-Hellman trên đường cong Elliptic được mô tả

như sau: Giả sử có 2 người dùng Alice và Bob cần thỏa thuận khóa phiên với nhau, Alice và Bob sẽ thực hiện giao thức tương tác để thiết lập một khóa mật chung cho

phiên liên lạc:

1 Alice chọn một số ngẫu nhiên 𝑎 (2   −a n 2) và đây là khóa riêng của Alice

không chia sẻ Sau đó Alice tính 𝐾𝑎 = 𝑎𝐺 và gửi cho Bob

2 Tương tự Alice, Bob cũng chọn ngẫu nhiên 𝑏

(

2  −b n 2

)

, giữ bí mật b Sau

đó Bob tính 𝐾𝑏 = 𝑏𝐺 và gửi cho Alice

Trang 17

3 Alice và Bob cùng tính ra một khóa bí mật:

Alice tính 𝐾𝑎,𝑏 = 𝑎𝐾𝑏 = 𝑎𝑏𝐺 Bob tính 𝐾𝑎,𝑏 = 𝑏𝐾𝑎 = 𝑎𝑏𝐺 Như vậy, kết thúc giao thức tương tác , Alice và Bob có thể cùng tính và dùng chung một khóa mật chung là 𝐾𝑎,𝑏 = 𝑎𝑏𝐺

Quá trình tính toán trong giao thức thỏa thuận khóa Diffie – Hellman trên đường cong Elliptic là chính quá trình tính toán của hệ mật trên đường cong Elliptic và đã được trình bày trong phần 1.1 lý thuyết về đường cong Elliptic của chương

1.2.3 Vấn đề mất an toàn của giao thức trao đổi khóa trên đường cong Elliptic

Sự an toàn của lược đồ trao đổi khóa Diffe-Hellman trên đường cong Elliptic phụ

thuộc vào việc xác định số ngẫu nhiên bí mật k từ các giá trị kP và P Bài toàn này được

gọi là bài toán Logarit rời rạc trên đường cong Elliptic Hiện nay, chưa có thuật toán nào được xem là hiệu quả để giải quyết bài toán này, do đó lược đồ này là an toàn đối với đối phương thụ động Chúng ta cùng tìm hiểu một số thuật toán tấn công thụ động:

Thuật toán Bước nhỏ - Bước lớn

Thuật toán được phát triển bởi D.Shanks, thuật toán này đòi hỏi xấp xỉ N bước

và chừng N bộ nhớ Chú ý rằng ta không cần biết chính xác bậc N của P Chúng ta

Trang 18

chỉ yêu cầu mép cận trên của N Do đó, nó có hiệu quả với những N cỡ trung bình Ký hiệu m = ⌈√𝑁⌉

Vì giả thiết phương trình 𝑘𝑃 = 𝑄 có nghiệm nên có thể xem 0 < k < N và có

thể biểu diễn:

k=i + jm, với 0 j, i < m (do m 2 > N)

Khi đó, kP = Q tương đương với: iP + jmP = Q hay QjmP = iP

Các bước của thuật toán như sau:

(1) Cố định số nguyên m  N và tính mP Cụ thể lấy

(2) Tạo ra và lưu trữ danh sách iP với 0 < i < m

(3) Tính các điểm 𝑄 − 𝑗𝑚𝑃 với 𝑗 = 0, 1, … , 𝑚 − 1cho đến khi trùng khớp với

một điểm trong danh sách lưu trữ iP thì dừng và lấy giá trị i, j

Trang 19

2 (45, 62) 6 (20, 71)

3 (35, 50) 7 (50, 21) Tính các điểm 𝑄 − 𝑗𝑚𝑃 đối với 𝑗 = 0, 1, … , 𝑚 − 1cho đến khi trùng khớp

với một điểm trong danh sách lưu trữ iP thì dừng và lấy giá trị i, j

Do đó, như đã nói ở trên, hiện này chưa có thuật toán nào được xem là hiệu quả

để giải quyết bài toán Logarit rời rạc trên đường cong Elliptic Vì vậy, Lược đồ trao đổi khóa Diffie-Hellman trên đường cong Elliptic là an toàn đối với đối phương thụ động

Mặt khác, theo Hình1.4 thấy rõ giao thức trao đổi khóa Diffie-Hellman trên đường cong Elliptic thiếu cơ chế xác thực người dùng Theo đó, lược đồ là không an toàn đối với đối phương chủ động Điều này dẫn tới giao thức này bị tổn thương bởi tấn công xen giữa theo mô hình:

Hình 1.1 Mô hình tấn công xen giữa trong giao thức D-H

trên đường cong Elliptic

Trang 20

Cụ thể, Oscar thay a mà Alice định gửi cho Bob bằng ' a , và thay b mà Bob định gửi cho Alice bằng ' b Như vậy Oscar có thể tính các khóa phiên được tạo nên giữa Alice và Oscar, giữa Bob và Oscar (tương ứng là KA,O = 'b aG và KB,O = 'a bG) Lúc này cả Alice và Bob đều không biết rằng mình đang liên lạc với Oscar và dùng những khóa này mã hóa những thông báo của mình để gửi cho Oscar Như vậy Oscar sẽ dịch được các thông báo của Alice (gửi cho Bob) và Bob (gửi cho Alice), đồng thời O sẽ mã

hóa các thông báo này bằng khóa phiên đã được thỏa thuận và chuyển tiếp chúng tới

- Mỗi một bên của phiên liên lạc không chắc chắn rằng đối tác của mình đã thực

sự tính được khóa thỏa thuận hay không Đây là vấn đề xác nhận khóa

1.3 Kết luận chương 1

Chương 1 đã trình bày một cách chi tiết, rõ ràng về tổng quan về trao đổi khóa trên đường cong Elliptic Cụ thể đã trình bày được những nội dung sau:

- Lý thuyết về đường cong Elliptic

- Giao thức trao đổi khóa trên đường cong Elliptic

- Vấn đề mất an toàn của giao thức trao đổi khóa trên đường cong

Qua đó có thể thấy nhược điểm của giao thức thỏa thuận khóa Diffie – Hellman trên đường cong Elliptic là không có cơ chế xác thực và bị tấn công xen giữa Để khắc phục được nhược điểm này, trao đổi khóa được mã hóa EKE được tạo ra bởi Steven M Bellovin và Michael Meritt có sử dụng cơ chế xác thực bên liên lạc và mã hóa các thông điệp trao đổi khóa Diffie-Hellman

Trang 21

CHƯƠNG 2: GIAO THỨC TRAO ĐỔI KHÓA CÓ MÃ HÓA EKE

2.1 Giới thiệu

Trao đổi khóa được mã hóa, thường được viết tắt là EKE, được phát minh bởi Steven M Bellovin và Michael Merritt vào năm 1992, khi họ làm việc trong Phòng thí nghiệm AT&T Bell

Trong giao thức trao đổi khóa có xác thực dựa trên mật khẩu EKE, ít nhất một bên tham gia sẽ sử dụng mật khẩu chung với một số ngẫu nhiên để tạo khóa công khai tạm thời (một lần) và gửi nó cho một bên thứ hai khác, người nhận có thể sử dụng khóa công khai tạm thời này để tạo một khóa công khai khác để gửi cho bên tiếp theo hoặc gửi lại cho bên đầu tiên Sau một hoặc nhiều vòng trao đổi khóa công khai một lần, các bên tham gia có thể sử dụng chúng với mật khẩu chung để tạo khóa chia sẻ để mã hóa

Nói chung, việc bảo vệ thông tin trong phân phối khóa được mã hóa ngụ ý sự hiện diện của kẻ tấn công, không chỉ có thể lắng nghe một cách thụ động dữ liệu được truyền qua kênh mà còn có thể tự mình thay đổi chúng Hiện tại, tất cả giao thức EKE được sử dụng đều tuân thủ yêu cầu này trong trường hợp: kẻ tấn công không thể đoán mật khẩu, đây là phần được sử dụng để xác thực hoặc một cuộc tấn công brute-force với mật khẩu phải yêu cầu tương tác với một bên và không nhanh hơn so với việc sử dụng một nỗ lực duy nhất để đoán mật khẩu trong một lần lặp lại giao thức

Vì hạn chế duy nhất đối với giao thức là khả năng chống lại các cuộc tấn công mật khẩu bạo lực, nên tính năng chính của tất cả các giao thức thỏa thuận khóa được mã hóa là tính tương tác( sự tương tác ở đây là khi có khóa công khai tạm thời và gửi cho một người khác, thì người đó cũng có thể tạo được một khóa công khai tạm thời khác dựa trên thông tin của người gửi) Ngoài ra, đặc điểm của khóa EKE, không giống như các giao thức khác, là sử dụng khóa tạm thời và che khóa Khóa tạm thời ở đây được coi là khóa công khai dùng một lần với kích thước nhỏ hơn khoảng hai lần so với khóa công khai RSA truyền thống Việc che giấu tất cả các khóa và bằng chứng mật khẩu nhằm mục đích giảm bề mặt tấn công trên một số khóa tạm thời nhất định để tránh khả năng phân tích các giá trị trung gian không tương tác để trích xuất bí mật được chia sẻ Tất

cả các biện pháp bảo mật này sẽ đặt kẻ tấn công vào điều kiện làm việc khó khăn: khai thác khóa tạm thời bị che, nhiệm vụ khó khăn hơn so với brute-force trực tiếp của một

số mật khẩu được chia sẻ nhất định Để đạt được chất lượng tốt, có thể sử dụng chức

Trang 22

năng tạo mặt nạ, có số lần lặp lại lớn và để hiển thị mật khẩu trên tập hợp, sức mạnh có thể so sánh với số lượng của bộ khóa tạm thời

2.2 Giao thức EKE trên trường hữu hạn

2.2.1 Giao thức trao đổi khóa có mã hóa EKE trên trường hữu hạn

Hoạt động giao thức trao đổi khóa có mã hóa EKE trên trường hữu hạn được mô

tả chi tiết trong hình 2.1

Hình 2.1 Giao thức EKE trên trường hữu hạn

Trang 23

Các bước hoạt động cụ thể của EKE trong hình 2.1 là:

Bước 1: Thực hiện bên gửi Alice

Ban đầu Alice và Bob đồng ý về mật khẩu và sau đó tạo khóa mã hóa từ hàm băm của mật khẩu p

- Sau đó Alice sinh tham số 𝑎 < 𝑝 − 1, tiếp theo tính khóa công khai của 𝑎 (𝐾𝐴 =

𝑔𝑎𝑚𝑜𝑑 𝑝)

- Mã hóa khóa công khai của 𝑎 và gửi bản mã 𝑀𝐴 sang cho Bob

Bước 2: Thực hiện bên nhận Bob

- Bob sinh tham số 𝑏

- Tiếp theo tính khóa công khai của 𝑏 (𝐾𝐵 = 𝑔𝑏𝑚𝑜𝑑 𝑝) và mã hóa 𝑀𝐵 = 𝐸𝑝(𝐾𝐵)

- Bob thu được bản mã 𝑀𝐴 và tiến hành giải mã 𝐾𝐴 = 𝐷𝑝(𝑀𝐴)

- Tính khóa chung 𝐾 = (𝐾𝐴)𝑏 = 𝑔𝑎𝑏 𝑚𝑜𝑑 𝑝

- Bob sinh tham số 𝑐1

- Mã hóa bản mã 𝑀1 = 𝐸𝑘(𝑐1)

Bob gửi bản mã 𝑀𝐵, 𝑀1 sang cho Alice

Bước 3: Thực hiện bên nhận Alice

- Alice thu được bản mã 𝑀𝐵, 𝑀1tiến hành giải mã 𝑀𝐵 bằng 𝐾𝐵 = 𝐷𝑝(𝑀𝐵)

- Sau khi giải mã 𝑀𝐵 tiến hành tính khóa chia sẻ chung 𝐾 = (𝐾𝐵)𝑎 =

𝑔𝑎𝑏 𝑚𝑜𝑑 𝑝

- Giải mã bản mã 𝑐1bằng khóa 𝐾 vừa tính M1: = 𝐷𝐾(𝑀1)

- Alice sinh tham số 𝑐2

- Dùng khóa 𝐾 vừa tính được mã hóa 𝑐1 của Bob và 𝑐2 của Alice vừa tạo 𝑀12 =

𝐸𝐾(𝑐1𝑐2) sau đó gửi bản mã 𝑀12 sang Bob

Bước 4: Thực hiện bên nhận Bob

- Bob thu được bản mã 𝑀12, sau đó tiến hành giải mã dùng khóa chung 𝐾 của Bob sau đó giải mã 𝐷𝐾(𝑀12) sau khi giải mã xong ta thu được 2 giá trị 𝑐1𝑐2

- Bob khẳng định đã nhận được 𝑐1

- Tiếp theo Bob mã 𝑐2 bằng khóa 𝐾: 𝑀2(𝑐2)

- Sau đó gửi bản mã 𝑀2 cho Alice

Bước 5: Thực hiện bên nhận Alice

- Alice thu được bản mã 𝑀2 sau đó dùng khóa K giải mã 𝑀2 = 𝐷𝐾(𝑀2) thu được

Trang 24

giá trị 𝑐2

- Lúc này Alice khẳng định đã nhận được 𝑐2 của Bob

2.2.2 Các ví dụ về hoạt động của giao thức trao đổi khóa có mã hóa EKE trên trường hữu hạn

Để lấy một ví dụ cụ thể, chẳng hạn ta chọn p = 13 và g=7 (sao cho thỏa mãn điều kiện g< P và g và P phải là số nguyên tố) Lúc này hàm 1 chiều sẽ là 7𝑥𝑚𝑜𝑑13 Sau đây ta thực hiện trao đổi khóa

Bob nhận được giá trị với Key và giải

mã thu được 𝐴 = 6, Bob chọn 1 giá trị ngẫu nhiên b=5 và thực hiện tính

𝐵 = 75𝑚𝑜𝑑13 = 11 và 𝐾 = (75)7𝑚𝑜𝑑𝑝 = 2

Đồng thời Bob tạo 1 challenge 𝑐1

Và thực hiện gửi 2 giá trị bao gồm:

+ 𝐸𝑃(𝐵) + 𝐸𝐾(𝑐1) Sang Alice Alice thực hiện giải mã và thu được

giá trị B, Alice thực hiện tính toán 𝐾 =

𝐴 𝐵 = (77)5𝑚𝑜𝑑𝑝 = 2 Lúc này giá

trị K bên Alice và Bob có giá trị giống

nhau, Alice thực hiện tạo 1 response

𝑐2, sau đó gửi sang Bob 𝐸𝐾(𝑐1, 𝑐2)

Bob lúc này nhận được cả 𝑐1, 𝑐2 và Bob thực hiện xác minh rằng 𝑐1 được lặp lại đúng với 𝑐1 trước đó Bob thực hiện gửi 𝐸𝐾(𝑐2) sang Alice

Alice nhận được 𝐸𝐾(𝑐2) và thực hiện

𝐷𝐾(𝑐2) để thu được 𝑐2 Alice thực hiện

xác minh xem challenge 𝑐2 này có

Trang 25

giống với 𝑐2nguyên gốc hay không

2.3 Giao thức EKE trên đường cong Elliptic

2.3.1 Giao thức trao đổi khóa có mã hóa EKE trên đường cong Elliptic

Hoạt động giao thức trao đổi khóa có mã hóa EKE trên đường cong Elliptic được

mô tả chi tiết trong hình 2.2

Hình 2.2 EKE với Elliptic Curves ECC

Trang 26

Các bước hoạt động cụ thể của EKE trong hình 2.2 là:

Bước 1: Thực hiện bên gửi Alice

Ban đầu Alice và Bob đồng ý về mật khẩu và sau đó tạo khóa mã hóa từ hàm băm của mật khẩu p

- Sau đó Alice sinh tham số 𝑎 < 𝑛, tiếp theo tính khóa công khai của 𝑎 (𝐾𝐴 =

𝑎 𝐺)

- Mã hóa khóa công khai bằng hàm dẫn xuất khóa thu được bản mã 𝑀𝐴 và gửi bản mã 𝑀𝐴 sang cho Bob

Bước 2: Thực hiện bên nhận Bob

- Tương tự Bob sinh tham số 𝑏 < 𝑛

- Tiếp theo tính khóa công khai của 𝑏 (𝐾𝐵 = 𝑏 𝐺 và mã hóa 𝑀𝐵 = 𝐸𝑝(𝐾𝐵)

- Bob thu được bản mã 𝑀𝐴 và tiến hành giải mã 𝐾𝐴 = 𝐷𝑝(𝑀𝐴) để tính 𝐾𝐴

- Tính khóa chung 𝐾 = 𝐾𝐴 𝑏 = 𝑎 𝑏 𝐺

- Bob sinh tham số 𝑐1

- Dùng khóa 𝐾 chung vừa tính được mã hóa 𝑐1 thu được bản mã 𝑀1 = 𝐸𝑘(𝑐1)

- Sau đó Bob gửi bản mã 𝑀𝐵, 𝑀1 sang cho Alice

Bước 3: Thực hiện bên nhận Alice

- Alice thu được bản mã 𝑀𝐵, 𝑀1

- Sau đó dùng khóa dẫn xuất tiến hành giải mã 𝑀𝐵 bằng 𝐾𝐵 = 𝐷𝑝(𝑀𝐵)

- Sau khi giải mã 𝑀𝐵 tiến hành tính khóa chia sẻ chung 𝐾 = (𝐾𝐵) 𝑎 = 𝑎 𝑏 𝐺

- Sau khi tính được khóa chung 𝐾 tiến hành giải mã M1: 𝐷𝐾(𝑀1) = 𝑐1

- Alice sinh tham số 𝑐2

- Dùng khóa 𝐾 vừa tính được mã hóa 𝑐1 của Bob và 𝑐2 của Alice vừa tạo 𝑀12 =

𝐸𝐾(𝑐1𝑐2)

- Sau đó gửi bản mã 𝑀12 sang Bob

Bước 4: Thực hiện bên nhận Bob

- Bob thu được bản mã 𝑀12, sau đó tiến hành giải mã dùng khóa chung 𝐾 của Bob sau đó giải mã 𝐷𝐾(𝑀12) sau khi giải mã xong ta thu được 2 giá trị 𝑐1𝑐2

- Bob khẳng định đã nhận được 𝑐1

- Tiếp theo Bob mã 𝑐2 bằng khóa 𝑀2 = 𝐸𝐾(𝑐2)

Trang 27

- Sau đó gửi bản mã 𝑀2 cho Alice

Bước 5: Thực hiện bên nhận Alice

- Alice thu được bản mã 𝑀2 sau đó dùng khóa 𝐾 giải mã 𝑀2 = 𝐷𝐾(𝑀2) thu được giá trị 𝑐2

- Lúc này Alice khẳng định đã nhận được 𝑐2 của Bob

2.3.2 Các bài toán cụ thể về đường cong Elliptic

Và thực hiện mã hóa với khoá từ hàm

dẫn xuất 𝑀𝐴 = 𝐸𝑃(𝐾𝐴) rồi gửi sang

Đồng thời Bob tạo 1 challenge 𝑐1

Và thực hiện gửi 2 giá trị bao gồm:

+ 𝑀𝐵 = 𝐸𝑝(𝐾𝐵) + 𝑀1 = 𝐸𝐾(𝑐1) Sang Alice Alice thực hiện giải mã và thu được

giá trị 𝐾𝐵, Alice thực hiện tính toán

𝐾 = (𝐾𝐵) 𝑎 = 𝑎 𝑏 𝐺 = 10(1,16) =

(6,4) Lúc này giá trị K bên Alice và

Bob có giá trị giống nhau, Alice thực

hiện giải mã 𝑀1 với khoá K vừa tính

Bob lúc này nhận được cả 𝑐1, 𝑐2 và Bob thực hiện xác minh rằng 𝑐1 được lặp lại đúng với 𝑐1 trước đó Bob thực hiện gửi 𝐸𝐾(𝑐2) sang Alice

Trang 28

được thu được 𝑐1, đồng thời tạo 1

response 𝑐2, sau đó gửi sang Bob

𝐸𝐾(𝑐1, 𝑐2)

2.4 Ứng dụng của giao thức EKE

Trên thực tế, EKE được ứng dụng trong cơ chế xác thức EAP EAP hay còn gọi

là giao thức xác thực mở rộng (EAP) là một giao thức dành cho mạng không dây mở rộng các phương thức xác thực được sử dụng bởi Giao thức điểm-điểm (PPP), một giao thức thường được sử dụng khi kết nối máy tính với internet EAP được sử dụng trên các mạng được mã hóa để cung cấp một cách an toàn để gửi thông tin nhận dạng nhằm cung cấp xác thực mạng Nó hỗ trợ các phương thức xác thực khác nhau, bao gồm như thẻ token, thẻ thông minh, chứng chỉ, mật khẩu dùng một lần và mã hóa khóa công khai Dưới đây là quá trình trao đổi EAP-EKE thành công

Hình 2.3 Trao đổi EAP-EKE thành công

Trang 29

Hình 2.4 Quá trình thực thi EAP-EKE

2.5 Vấn đề an toàn các giao thức EKE

Như đã nói trước đó, động cơ chính để tạo ra EKE là vấn đề xác thực người dùng với máy chủ Tuy nhiên, cũng có những công dụng khác Một ứng dụng thú vị nhất cho EKE là đảm bảo điện thoại công cộng an toàn Hãy giả sử rằng mã hóa điện thoại công cộng được triển khai Nếu ai đó muốn sử dụng một trong những điện thoại này, một số loại thông tin khóa phải được cung cấp Các giải pháp thông thường - tức là điện thoại/ dữ liệu an toàn STU-III - yêu cầu người gọi phải có khóa vật lý Đây là điều không mong muốn trong nhiều tình huống EKE cho phép sử dụng mật khẩu ngắn, nhập

Trang 30

bằng bàn phím, nhưng sử dụng khóa phiên dài hơn nhiều cho cuộc gọi

Ý tưởng tương tự cũng được sử dụng bởi hệ thống xác thực SPX Ngoài ra, nó

sử dụng hai hàm băm một chiều khác nhau của mật khẩu của người dùng, thay vì mật khẩu của chính nó; do đó, bản thân trung gian “LEAF” và trung tâm phân phối chứng chỉ cũng không cần biết mật khẩu thực EKE cũng sẽ hữu ích với điện thoại di động EKE cũng cung cấp một sự thay thế cho Rivest và Shamir's Giao thức khóa liên động Giao thức này được thiết kế để phát hiện những kẻ nghe trộm đang hoạt động Nếu giao thức khóa liên động được sử dụng để xác thực, theo đề xuất của Davies và Price các cuộc tấn công nhất định có thể xảy ra Cuộc tấn công của sẽ không thành công trước EKE Từ quan điểm chung, EKE hoạt động như một bộ khuếch đại riêng tư Nghĩa là,

nó có thể được sử dụng để tăng cường các hệ thống đối xứng và bất đối xứng tương đối yếu khi được sử dụng cùng nhau Ngược lại, độ khó của việc bẻ khóa trao đổi khóa theo cấp số nhân có thể được sử dụng để làm nản lòng những nỗ lực đoán mật khẩu Các cuộc tấn công đoán mật khẩu là khả thi vì mỗi lần đoán có thể được xác minh nhanh như thế nào Nếu việc thực hiện xác minh như vậy đòi hỏi phải giải quyết một trao đổi khóa theo cấp số nhân, thì tổng thời gian, nếu không phải là khó khăn về mặt khái niệm,

sẽ tăng lên đáng kể Việc kiểm tra tất cả các mật khẩu có thể chỉ gồm năm chữ cái viết thường sẽ mất hơn hai năm Tuy nhiên, lưu ý rằng các chương trình đoán mật khẩu dựa trên các kỹ thuật phức tạp hơn, chẳng hạn như danh sách các tên thông dụng Người ta vẫn nên sử dụng độ dài mô-đun dài hơn để duy trì bảo mật

Độ bảo mật EKE phụ thuộc vào mật khẩu người dùng lựa chọn, thuật toán mã hóa bí mật sử dụng và độ dài số 𝑃

- Mật khẩu người dùng phải đảm bảo an toàn: dài 8 ký tự

- Mật mã khóa bí mật: nên sử dụng thuật toán mã hóa tiên tiến AES, ko sử dụng thuật toán cũ như DES hay 3DES

- Số modun 𝑃 phải dài 2048 bit theo tiêu chuẩn ISO và TCVN

2.6 Kết luận chương 2

Trong chương 2 em đã trình bày về giao thức trao đổi khóa có mã hóa EKE gồm các nội dung sau

Trang 31

- Giới thiệu về giao thức trao đổi khóa có mã hóa EKE

- Giao thức EKE trên trường hữu hạn

- Giao thức EKE trên đường cong Elliptic

- Úng dụng của giao thức EKE

- Vấn đề an toàn các giao thức EKE

Vấn đề trọng tâm của chương là phần 2.2 Giao thức EKE trên trường hữu hạn và phần 2.3 Giao thức EKE trên đường cong Elliptic

Trang 32

CHƯƠNG 3: CÀI ĐẶT MÔ PHỎNG GIAO THỨC EKE

TRÊN ĐƯỜNG CONG ELLIPTIC 3.1 Phân tích thiết kế chương trình cài đặt mô phỏng

3.1.1 Biểu đồ Use case tổng quát

Chương trình cài đặt mô phỏng giao thức EKE trên đường cong Elliptic có biểu

đồ Use case được mô tả tại hình 3.1

Hình 3.1 Use case tổng quát

Chương trình phần mềm gồm có ba phần: tạo khóa, bên gửi và bên nhận

Phân rã biểu đồ Use case: chương trình gồm 3 chức năng chính là tạo khóa, bên gửi và bên nhận

3.1.2 Biểu đồ phân rã chức năng tạo khóa

Chức năng tạo khóa có hai bước chính, gồm:

1) Nhập khóa

2) Khóa bí mật đầu ra

Trang 33

Hình 3.2 Phân rã chức năng tạo khóa 3.1.3 Biểu đồ phân rã chức năng bên gửi

Chức năng của bên gửi gồm có chín bước chính, gồm:

Nhập khóa

Khóa bí mật đầu ra

Trang 34

Hình 3.3 Phân rã chức năng của bên gửi 3.1.4 Biểu đồ phân rã chức của bên nhận

Chức năng của bên gửi gồm có bảy bước chính, gồm:

1) Nhập khóa

2) Nhập giá trị bí mật b

3) Tính bG, Ep(bG)

Bên nhận (Bob - Receiver)

Nhập Ep (b,G), Ek(C ) từ bên Bob gửi

Nhập khóa (Input Key)

Nhập Ek (c )

Giải mã c

Trang 35

4) Nhập Ep(bG), Ek(c1) từ bên Alice gửi

Trang 36

3.2 Phân tích luồng thông tin truyền nhận

Hình 3.5 Luồng thông tin truyền nhận

Alice và Bob thỏa thuận phương trình đường cong có dạng: 𝑦2 = 𝑥3+ 𝑎𝑥 +

𝑏 (modp)

Với điều kiện 4𝑎3+ 27𝑏2(𝑚𝑜𝑑𝑝) ≠ 0, dùng đường cong SECP 256K1 và tham

số K1 = PBKDF2-HMAC-SHA 256(MK)

Phân tích các bước của luồng thông tin truyền nhận bao gồm 5 gói tin chính gồm

Bước 1: Thực hiện bên gửi Alice

Ban đầu Alice và Bob đồng ý về mật khẩu và sau đó tạo khóa mã hóa từ hàm băm của mật khẩu K1 = PBKDF2-HMAC-SHA 256(MK)

- Sau đó Alice sinh tham số 𝑎 < 𝑛, tiếp theo tính khóa công khai của 𝑎 (𝐾𝐴 = 𝑎 𝐺)

- Mã hóa khóa công khai bằng hàm dẫn xuất khóa thu được bản mã 𝑀𝐴 và gửi

Trang 37

bản mã 𝑀𝐴 sang cho Bob

Bước 2: Thực hiện bên nhận Bob

- Tương tự Bob sinh tham số 𝑏 < 𝑛

- Tiếp theo tí nh khóa công khai của 𝑏 (𝐾𝐵 = 𝑏 𝐺 và mã hóa 𝑀𝐵 = 𝐸𝐾1(𝐾𝐵)

- Bob thu được bản mã 𝑀𝐴 và tiến hành giải mã 𝐾𝐴 = 𝐷𝑝(𝑀𝐴) để tính 𝐾𝐴

- Tính khóa chung 𝐾 = 𝐾𝐴 𝑏 = 𝑎 𝑏 𝐺

- Bob sinh tham số 𝑐1

- Dùng khóa 𝐾 chung vừa tính được mã hóa 𝑐1 thu được bản mã 𝑀1 = 𝐸𝑘(𝑐1)

- Sau đó Bob gửi bản mã 𝑀𝐵, 𝑀1 sang cho Alice

Bước 3: Thực hiện bên nhận Alice

- Alice thu được bản mã 𝑀𝐵, 𝑀1

- Sau đó dùng khóa dẫn xuất tiến hành giải mã 𝑀𝐵 bằng 𝐾𝐵 = 𝐷𝐾1(𝑀𝐵)

- Sau khi giải mã 𝑀𝐵 tiến hành tính khóa chia sẻ chung 𝐾 = (𝐾𝐵) 𝑎 = 𝑎 𝑏 𝐺

- Sau khi tính được khóa chung 𝐾 tiến hành giải mã M1: 𝐷𝐾(𝑀1) = 𝑐1

- Alice sinh tham số 𝑐2

- Dùng khóa 𝐾 vừa tính được mã hóa 𝑐1 của Bob và 𝑐2 của Alice vừa tạo 𝑀12 =

𝐸𝐾(𝑐1𝑐2)

- Sau đó gửi bản mã 𝑀12 sang Bob

Bước 4: Thực hiện bên nhận Bob

- Bob thu được bản mã 𝑀12, sau đó tiến hành giải mã dùng khóa chung 𝐾 của Bob sau đó giải mã 𝐷𝐾(𝑀12) sau khi giải mã xong ta thu được 2 giá trị 𝑐1𝑐2

- Bob khẳng định đã nhận được 𝑐1

- Tiếp theo Bob mã 𝑐2 bằng khóa 𝑀2 = 𝐸𝐾(𝑐2)

- Sau đó gửi bản mã 𝑀2 cho Alice

Bước 5: Thực hiện bên nhận Alice

- Alice thu được bản mã 𝑀2 sau đó dùng khóa 𝐾 giải mã 𝑀2 = 𝐷𝐾(𝑀2) thu được giá trị 𝑐2

- Lúc này Alice khẳng định đã nhận được 𝑐2 của Bob

Trang 38

3.3 Modun cài đặt

3.3.1 Modun đường cong SECP 256k1

Như đã đề cập trong lược đồ hình 3.1 giao thức trao đổi khóa có mã hóa EKE lựa chọn đường cong Elliptic Secp256k1 (Chuẩn đường cong của Certicom)

Phương trình đường cong có dạng: 𝑦2 = 𝑥3+ 𝑎𝑥 + 𝑏 (modp) Với điều kiện 4𝑎3+ 27𝑏2(𝑚𝑜𝑑𝑝) ≠ 0

Đường cong sử dụng các tham số như bảng 3.2

cơ sở

G

(0x6b17d17d1f2e12c4247f8bce6e563a440f27703d812deb33a0f4a13945d898c296, 0x4fe342e2f1a7f9b8ê7eb4a7c0f9e162bce33576b315êcccbb6406837bf51f)

Bậc n 0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551

Hình 3.6 Tham số đường cong Secp256k1 3.3.2 Modun mã hóa và giải mã

- Modun mã hóa AES

Mô đun mã hóa gồm có 3 bước:

1 Khi khởi chạy chức năng mã hóa, chương trình yêu cầu nhập mật khẩu để mã hóa, chương trình dùng hàm dẫn xuất khóa PBKDF2-HMAC-SHA256 sinh khóa bí mật

có độ dài 256 bit từ mật khẩu Sau đó chọn File rõ để mã hóa,

2 Thực hiện mã hóa bằng mã khối AES-ECB

3 Lưu file mã vào thư mục chứa file mã

Trang 39

Hình 3.7 Lưu đồ thuật toán mã hoá

- Modun giải mã

Mô đun giải mã gồm có 3 bước:

1 Khi khởi chạy chức năng giải mã, chương trình yêu cầu nhập mật khẩu để giải

mã, chương trình dùng hàm dẫn xuất khóa PBKDF2-HMAC-SHA256 sinh khóa bí mật

có độ dài 256 bit từ mật khẩu Sau đó chọn File mã để giải mã,

2 Thực hiện giải mã bằng mã khối AES-ECB

3 Lưu file rõ vào thư mục chứa file rõ

Bắt đầu

Nhập khóa và File rõ

Mã hóa AES (Khóa K, File rõ)

File mã

Kết thúc

Trang 40

Hình 3.8 Lưu đồ thuật toán giải mã

- Chế độ mã hóa và giải mã ECB

Mã hóa:

Đầu vào: khóa K có k-bit; các khối bản rõ 𝑥1, ,𝑥𝑡, mỗi khối có n-bit Đầu ra: Các khối mã, mỗi khối có n bit

𝑐𝑗 = 𝐸𝐾(𝑥𝑗), với 1 ≤ 𝑗 ≤ 𝑡 Giải mã:

Đầu vào: khóa K có k bit; các khối bản mã 𝑐1, ,𝑐𝑡, mỗi khối có n bit Đầu ra: Các khối rõ, mỗi khối có n bit

, với 1 ≤ 𝑗 ≤ 𝑡

Bắt đầu

Nhập khóa và File mã

Giải mã AES (Khóa K, File mã)

Ngày đăng: 08/06/2023, 16:22

HÌNH ẢNH LIÊN QUAN

Hình 1.2. Lược đồ giao thức trao đổi khóa Diffie – Hellman nguyên thủy - Nghiên cứu giao thức trao đổi khóa EKE trên đường cong Elliptic có mã hóa
Hình 1.2. Lược đồ giao thức trao đổi khóa Diffie – Hellman nguyên thủy (Trang 14)
Hình 1.3. Lược đồ giao thức thỏa thuận Diffie – Hellman - Nghiên cứu giao thức trao đổi khóa EKE trên đường cong Elliptic có mã hóa
Hình 1.3. Lược đồ giao thức thỏa thuận Diffie – Hellman (Trang 16)
Hình 2.3. Trao đổi EAP-EKE thành công - Nghiên cứu giao thức trao đổi khóa EKE trên đường cong Elliptic có mã hóa
Hình 2.3. Trao đổi EAP-EKE thành công (Trang 28)
Hình 3.3. Phân rã chức năng của bên gửi  3.1.4. Biểu đồ phân rã chức của bên nhận - Nghiên cứu giao thức trao đổi khóa EKE trên đường cong Elliptic có mã hóa
Hình 3.3. Phân rã chức năng của bên gửi 3.1.4. Biểu đồ phân rã chức của bên nhận (Trang 34)
Hình 3.5. Luồng thông tin truyền nhận - Nghiên cứu giao thức trao đổi khóa EKE trên đường cong Elliptic có mã hóa
Hình 3.5. Luồng thông tin truyền nhận (Trang 36)
Hình 3.7. Lưu đồ thuật toán mã hoá - Nghiên cứu giao thức trao đổi khóa EKE trên đường cong Elliptic có mã hóa
Hình 3.7. Lưu đồ thuật toán mã hoá (Trang 39)
Hình 3.9. Chế độ hoạt động sách mã điện tử ECB  3.3.3. Modun hàm dẫn xuất khóa PBKDF2-HMAC-SHA256 - Nghiên cứu giao thức trao đổi khóa EKE trên đường cong Elliptic có mã hóa
Hình 3.9. Chế độ hoạt động sách mã điện tử ECB 3.3.3. Modun hàm dẫn xuất khóa PBKDF2-HMAC-SHA256 (Trang 41)
Hình 3.10: Lược đồ thực thi hàm PBKDF2-HMAC-SHA256 - Nghiên cứu giao thức trao đổi khóa EKE trên đường cong Elliptic có mã hóa
Hình 3.10 Lược đồ thực thi hàm PBKDF2-HMAC-SHA256 (Trang 41)
Hình 3.11. Giao diện tạo khóa - Nghiên cứu giao thức trao đổi khóa EKE trên đường cong Elliptic có mã hóa
Hình 3.11. Giao diện tạo khóa (Trang 43)
Hình 3.12. Giao diện bên gửi - Nghiên cứu giao thức trao đổi khóa EKE trên đường cong Elliptic có mã hóa
Hình 3.12. Giao diện bên gửi (Trang 44)
Hình 3.13. Giao diện bên nhận  3.4.2. Kết quả chạy thử nghiệm - Nghiên cứu giao thức trao đổi khóa EKE trên đường cong Elliptic có mã hóa
Hình 3.13. Giao diện bên nhận 3.4.2. Kết quả chạy thử nghiệm (Trang 45)
Hình 3.16. Sinh số ngẫu nhiên b và tính Ep(bG) - Nghiên cứu giao thức trao đổi khóa EKE trên đường cong Elliptic có mã hóa
Hình 3.16. Sinh số ngẫu nhiên b và tính Ep(bG) (Trang 47)
Hình 3.17. Tính khoá bí mật dùng chung - Nghiên cứu giao thức trao đổi khóa EKE trên đường cong Elliptic có mã hóa
Hình 3.17. Tính khoá bí mật dùng chung (Trang 47)

TỪ KHÓA LIÊN QUAN

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