Thứ Sáu, Tháng Ba 24, 2023
30 C
Ho Chi Minh City
spot_img

Diffie-Hellman Algorithm là gì? Thuật toán trao đổi khóa Diffie-Hellman

Must read

Openlivenft
Openlivenfthttps://openlivenft.info/
Trang tổng hợp thông tin nhanh - mới nhất về NFT, COIN, Metaverse, tài chính, crypto của OpenliveNFT

Thuật toán trao đổi khóa Diffie – Hellman (DH) là gì?

Thuật toán Diffie – Hellman ( DH : Diffie – Hellman Algorithm ) là một giao thức trao đổi khóa cho phép hai bên tiếp xúc qua kênh công khai minh bạch để thiết lập bí hiểm chung mà không cần truyền qua Internet. Diffie – Hellman Algorithm được cho phép cả hai sử dụng khóa công khai minh bạch để mã hóa và giải thuật cuộc trò chuyện hoặc tài liệu của họ bằng mật mã đối xứng ( symmetric cryptography ) .
Diffie – Hellman thường được lý giải bởi hai bên mẫu, Alice và Bob, mở màn một cuộc đối thoại. Mỗi người có một phần thông tin mà họ muốn san sẻ, đồng thời giữ bí hiểm của nó. Để làm điều đó, họ đồng ý chấp thuận về một phần thông tin lành tính công khai minh bạch sẽ được trộn lẫn với thông tin độc quyền của họ khi nó truyền qua một kênh không bảo đảm an toàn. Bí mật của họ được trộn lẫn với thông tin công khai minh bạch, hoặc khóa công khai minh bạch, và khi những bí hiểm được trao đổi, thông tin họ muốn san sẻ sẽ đi kèm với bí hiểm chung .
Khi họ giải thuật thông điệp của người kia, họ hoàn toàn có thể trích xuất thông tin công khai minh bạch và với kiến ​ ​ thức về bí hiểm của riêng họ, suy ra thông tin mới được mang theo. Mặc dù có vẻ như không phức tạp trong diễn đạt của chiêu thức này, nhưng khi những chuỗi số dài được sử dụng cho những khóa riêng tư và khóa công khai minh bạch ,

DH là một trong những triển khai thực tế đầu tiên của mật mã khóa công khai (PKC – public-key cryptography). Nó được xuất bản vào năm 1976 bởi Whitfield Diffie và Martin Hellman. Những người đóng góp khác được ghi nhận trong việc phát triển Diffie – Hellman Algorithm bao gồm Ralph Merkle và các nhà nghiên cứu trong các cơ quan tình báo của Vương quốc Anh (khoảng năm 1969).

Thuật toán trao đổi khóa Diffie Hellman để tạo khóa (Key)

Thuật toán dựa trên Elliptic Curve Cryptography ( ECC ), một chiêu thức thực thi mật mã khóa công khai minh bạch dựa trên cấu trúc đại số của những đường cong elliptic trên những trường hữu hạn. Trao đổi khóa Diffie Hellmancũng sử dụng tính năng cửa sập ( trapdoor ), giống như nhiều cách khác để triển khai mật mã khóa công khai minh bạch ( public-key cryptography : PKC ) .

Ý tưởng đơn giản để hiểu về Thuật toán trao đổi khóa Diffie Hellman là như sau.

  1. Bên thứ nhất chọn hai số nguyên tố, g và p và nói chúng cho bên thứ hai.
  2. Bên thứ hai sau đó chọn một số bí mật (chúng ta hãy gọi nó là a), và sau đó nó tính ga mod p và gửi kết quả trở lại bên thứ nhất; Chúng ta hãy gọi kết quả là A. Hãy nhớ rằng số bí mật không được gửi cho bất kỳ ai, chỉ có kết quả.
  3. Sau đó, bên thứ nhất cũng làm như vậy; nó chọn một số bí mật b và tính toán kết quả tương tự như B.
  4. Sau đó, kết quả này được gửi cho bên thứ hai.
  5. Bên thứ hai lấy số B nhận được và tính Ba mod p
  6. Bên thứ nhất lấy số A nhận được và tính Ab mod p

Lưu ý : mod là Phép toán modulo hay còn gọi là phép tính chia có dư .

Đây là nơi mà nó sẽ thú vị; câu trả lời ở bước 5 giống với câu trả lời ở bước 4. Điều này có nghĩa là cả hai bên sẽ nhận được cùng một câu trả lời bất kể thứ tự lũy thừa.

(ga mod p)b mod p = gab mod p
(gb mod p)a mod p = gba mod p

Số chúng tôi đến trong bước 4 và 5 sẽ được lấy làm khóa bí hiểm được san sẻ. Khóa này hoàn toàn có thể được sử dụng để thực thi bất kể mã hóa dữ liệu nào sẽ được truyền đi, ví dụ điển hình như blowfish, AES, v.v.

Thuật toán trao đổi khóa Diffie Hellman

  1. key = (YA)XB mod q -> điều này giống như tính toán của B
  1. Các yếu tố công cộng toàn cầu
  • q: q là số nguyên tố
  • a: a
  1. Tạo khóa cho người dùng A
  • Chọn một Khóa riêng XA Tại đây, XA
  • Bây giờ, Tính toán khóa công khai YA Tại đây, YA = aXA mod q
  1. Tạo khóa cho người dùng B
  • Chọn một Khóa riêng XB Tại đây, XB
  • Bây giờ, Tính toán khóa công khai YB Tại đây, YB = aXB mod q
  1. Tính toán khóa bí mật theo A
  • Key = (YB)XA mod q
  1. Tính toán khóa bí mật theo B
  • key =(YA)XB mod q

Ví dụ

  1. Alice và Bob đều sử dụng số công khai P = 23, G = 5
  2. Alice đã chọn khóa cá nhân a = 4 và Bob chọn b = 3 làm khóa cá nhân
  3. Cả Alice và Bob bây giờ tính giá trị của x và y như sau:
  • Alice:    x = (54 mod 23) = 4
  • Bob:    y = (53 mod 23) = 10
  1. Bây giờ, cả Alice và Bob đều trao đổi số công khai với nhau.
  2. Alice và Bob bây giờ tính toán các khóa đối xứng
  • Alice: ka = ya mod p = 104 mod 23 = 18
  • Bob: kb = xb mod p = 43 mod 23 = 18
  1. 18 là khóa bí mật dùng chung.

Sử dụng thuật toán Diffie Hellman

Ngoài việc sử dụng thuật toán tạo khóa công khai minh bạch, có một số ít nơi khác hoàn toàn có thể sử dụng Thuật toán Diffie Hellman :

  • Mã hóa (Encryption): Thuật toán trao đổi khóa Diffie Hellman có thể được sử dụng để mã hóa; một trong những kế hoạch đầu tiên cần làm là mã hóa ElGamal. Một ví dụ hiện đại về nó được gọi là Lược đồ mã hóa tích hợp (IES: Integrated Encryption Scheme), cung cấp bảo mật chống lại các cuộc tấn công văn bản thuần túy và khay nhớ tạm được chọn.
  • Thỏa thuận xác thực bằng mật khẩu (Password Authenticated Agreement): Khi hai bên chia sẻ mật khẩu, thỏa thuận khóa xác thực bằng mật khẩu có thể được sử dụng để ngăn chặn cuộc tấn công của Người đàn ông ở giữa (Man in the middle attack). Thỏa thuận quan trọng này có thể ở dạng Diffie-Hellman. Giao thức mật khẩu từ xa an toàn (SRPP: Secure Remote Password Protocol) là một ví dụ điển hình dựa trên kỹ thuật này.
  • Chuyển tiếp bí mật (Forward Secrecy): Các giao thức dựa trên bí mật chuyển tiếp có thể tạo các cặp khóa mới cho mỗi phiên mới và chúng có thể tự động loại bỏ chúng khi phiên kết thúc. Trong các giao thức Secrecychuyển tiếp này, thường xuyên, trao đổi khóa Diffie Hellman được sử dụng.

Ưu điểm của Thuật toán trao đổi khóa Diffie Hellman

  • Người gửi và người nhận không cần biết trước về nhau.
  • Sau khi các khóa được trao đổi, việc truyền dữ liệu có thể được thực hiện thông qua một kênh không an toàn.
  • Việc chia sẻ khóa bí mật là an toàn.

Nhược điểm của Thuật toán trao đổi khóa Diffie Hellman

  • Thuật toán không thể bị kiện vì bất kỳ trao đổi khóa bất đối xứng nào.
  • Tương tự, nó không thể được sử dụng để ký chữ ký điện tử.
  • Vì nó không xác thực bất kỳ bên nào trong quá trình truyền, trao đổi khóa Diffie Hellman dễ bị tấn công giữa các bên.

Sự kết luận

Trao đổi khóa Diffie Hellman đã được chứng minh là một hệ thống trao đổi khóa hữu ích do những ưu điểm của nó. Mặc dù rất khó để ai đó rình mò mạng để giải mã dữ liệu và lấy chìa khóa, nhưng vẫn có thể xảy ra nếu các con số được tạo ra không hoàn toàn ngẫu nhiên.

Ngoài ra, mạng lưới hệ thống trao đổi chìa khóa hoàn toàn có thể bị triển khai một cuộc tiến công ở giữa ; Để tránh điều đó, cả hai bên nên rất là cẩn trọng khi khởi đầu trao đổi .
Theo : educba

Nội dung đề xuất

Source: https://openlivenft.info
Category: TIN NFT

Đánh giá bài post
- Advertisement -spot_img

More articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

- Advertisement -spot_img

Latest article

Ethereum là gì? | OpenliveNFT