

Lưu ý của biên tập viên: Bài viết này là của Lanhubiji (ID: lanhubiji), tác giả: Lane Wager, từ phương tiện, được dịch bởi "Wang Zelong" của cộng đồng tài khoản công khai "Blue Fox Notes" và được Odaily sao chép với sự cho phép.
Lời nói đầu: Bài viết này là phần giới thiệu rất cơ bản về mật mã đường cong elliptic. Mặc dù nội dung là cơ bản, nhưng nó rất dễ hiểu đối với những người không chuyên về mã hóa đường cong elip và phù hợp cho người mới bắt đầu.
Mô tả hình ảnh
tiêu đề phụ
Nó làm gì?
Mã hóa đường cong elip là phương pháp mã hóa dữ liệu để chỉ một số người nhất định mới có thể giải mã được. Nó có nhiều tình huống ứng dụng trong cuộc sống thực, nhưng ứng dụng chính của nó là mã hóa dữ liệu và lưu lượng trên Internet. Ví dụ, các đường cong mật mã elip có thể được sử dụng để đảm bảo rằng khi một email được gửi đi, không ai có thể đọc được nó ngoại trừ người nhận.
Mật mã đường cong elip là mật mã khóa công khai
Có nhiều kiểu mã hóa khóa công khai và mã hóa đường cong elip chỉ là một trong số đó. Các thuật toán mã hóa khác bao gồm RSA, DiffieHelman, v.v. Tôi sẽ giải thích ngắn gọn về nền tảng chung của mã hóa khóa công khai ngay từ đầu, sau đó mở rộng các giải thích tiếp theo của chúng tôi để hiểu sâu hơn về mã hóa đường cong elliptic. Khi có thời gian, bạn có thể dành thời gian tìm hiểu về mật mã khóa công khai.
Mô tả hình ảnh

http://itlaw.wikia.com/wiki/Key_pair
Sơ đồ trên cho thấy hai khóa, khóa chung và khóa riêng. Các khóa này được sử dụng để mã hóa và giải mã dữ liệu, giúp mọi người trên thế giới có thể xem dữ liệu được mã hóa trong khi truyền nhưng không đọc được thông tin.
Giả sử Facebook sẽ nhận được các bài đăng riêng tư từ Trump. Facebook cần có khả năng đảm bảo rằng khi Trump đăng trực tuyến, không ai, kể cả NSA hoặc các nhà cung cấp dịch vụ Internet, có thể đọc được tin nhắn ở đó. Sau khi sử dụng mã hóa khóa công khai, toàn bộ quá trình truyền dữ liệu có trạng thái sau:
l Trump nói với Facebook rằng ông ấy đang gửi cho nó một bài đăng riêng tư
l Facebook gửi khóa công khai cho Trump
l Trump sử dụng khóa công khai để mã hóa các bài đăng của mình:
"Tôi yêu Fox và những người bạn" + public key = "s80s1s9sadjds9s"
l Trump chỉ gửi tin nhắn được mã hóa cho Facebook
l Facebook giải mã tin nhắn bằng khóa riêng của họ:
"s80s1s9sadjds9s" + public key = "Tôi yêu Fox và những người bạn"
Như bạn có thể thấy, đây là một kỹ thuật rất hữu ích. Đây là một số điểm đáng chú ý:
l Khóa công khai có thể được gửi cho bất kỳ ai, nó được công khai
l Khóa bí mật phải được giữ an toàn, vì nếu ai đó lấy được khóa bí mật, họ có thể giải mã thông tin
l Máy tính có thể nhanh chóng mã hóa tin nhắn bằng khóa chung và giải mã tin nhắn bằng khóa riêng
l Nếu không có khóa riêng, máy tính có thể mất rất nhiều thời gian (hàng triệu năm) để giải mã tin nhắn được mã hóa
Cách thức hoạt động: Chức năng cửa sập
Chìa khóa của tất cả các thuật toán mã hóa khóa công khai là mỗi thuật toán đều có chức năng cửa bẫy độc nhất của riêng nó. Các chức năng của bẫy chỉ có thể được tính toán theo một cách hoặc ít nhất là dễ dàng theo một cách (với các máy tính hiện đại trong vòng chưa đầy vài triệu năm)
Không phải là chức năng cửa sập: A+B=C
Cho A và B, tôi có thể tìm ra C. Vấn đề là nếu tôi có B và C, tôi cũng có thể tìm ra A. không phải là một chức năng cửa sập.
Chức năng cửa sập:
"Tôi yêu Fox và những người bạn" + public key = "s80s1s9sadjds9s"
Nếu tôi được cung cấp "I love Fox (Fox) and friends" + public key, tôi có thể nhận được "s80s1s9sadjds9s", nhưng nếu tôi được cung cấp "s80s1s9sadjds9s" và public key, thì tôi không thể nhận được thông báo: "I Love Fox & Friends “.
Trong RSA (có lẽ là hệ thống khóa công khai phổ biến nhất), hàm bẫy phụ thuộc chủ yếu vào độ khó của việc phân tích các số lớn thành số nguyên tố của nó.
Khóa công khai: 944.871.836.856.449.473
Khóa riêng: 961.748.941 và 982.451.653
Trong ví dụ trên, khóa chung là một số rất lớn và khóa riêng là hai thừa số nguyên tố của khóa chung. Đây là một ví dụ điển hình về chức năng cửa bẫy, bởi vì trong khóa riêng, bạn có thể dễ dàng nhân các số với nhau để lấy khóa chung, nhưng nếu tất cả những gì bạn có là khóa chung, thì máy tính sẽ mất nhiều thời gian để tạo lại khóa riêng.
tiêu đề phụ
Điều gì làm cho mật mã đường cong Elliptic trở nên khác biệt
Mọi người sử dụng mật mã đường cong elip vì những lý do chính xác giống như RSA. Nó tạo ra các cặp khóa công khai và riêng tư và cho phép hai bên giao tiếp an toàn. Tuy nhiên, mật mã đường cong elip có một lợi thế hơn RSA. Khóa 256 bit trong mã hóa đường cong elip cung cấp khả năng bảo mật giống như khóa 3072 bit trong thuật toán RSA. Điều này có nghĩa là trong các hệ thống có tài nguyên hạn chế, chẳng hạn như điện thoại thông minh, máy tính nhúng và mạng được mã hóa, mã hóa đường cong elip sử dụng ít hơn 10% dung lượng đĩa cứng và băng thông của thuật toán RSA so với thuật toán mã hóa RSA. (Blue Fox Lưu ý: Điều đó có nghĩa là, mã hóa đường cong elip tiết kiệm tài nguyên hơn và khả thi hơn thuật toán RSA trong trường hợp tài nguyên hạn chế.)
Chức năng bẫy để mã hóa đường cong elip
Mô tả hình ảnh
https://arstechnica.com/information-technology/2013/10/a-relatively-easy-to-understand-primer-on-elliptic-curve-cryptography/2/
l Bắt đầu từ điểm A;
l Một điểm B=-C (vẽ một đường thẳng từ điểm A đến điểm B và cuối cùng rơi vào điểm -C)
l Phản xạ qua trục X từ -C đến C;
l Điểm A C=-D (vẽ một đường thẳng từ điểm A đến điểm C và cuối cùng rơi vào -D)
l Phản xạ qua trục X từ -D đến D;
l Một điểm D=-E (vẽ một đường thẳng từ A đến D và cuối cùng rơi vào -E)
l Phản xạ qua trục X từ -E đến E
Đây là một chức năng cửa bẫy tuyệt vời vì việc tìm điểm kết thúc rất dễ dàng nếu bạn biết điểm bắt đầu (A) ở đâu và cần bao nhiêu bước nhảy để đến điểm kết thúc E. Mặt khác, nếu tất cả những gì bạn biết là điểm bắt đầu và điểm kết thúc ở đâu, thì gần như không thể biết được cần bao nhiêu bước nhảy để đến đó.
Khóa công khai: điểm đầu A, điểm cuối E;
Khóa riêng: số bước nhảy từ A đến E
Có vấn đề gì không?
Sau đây là những câu hỏi liên quan nảy sinh khi tôi lần đầu tiên tìm hiểu về mật mã đường cong elliptic. Hy vọng tôi có thể giải quyết chúng đúng cách.
Làm thế nào để phát hiện ra điểm thứ hai? Nếu chức năng dấu chấm chỉ vẽ một đường thẳng giữa hai điểm, thì không cần dấu chấm thứ hai để giúp bắt đầu sao?
Trả lời: Không cần. Điểm thứ hai (hãy gọi nó là điểm -R trong sơ đồ bên dưới) thực sự là một hàm P của điểm P (hãy giả sử điểm đầu tiên được gọi là P)
Hàm điểm P P=-R
Mô tả hình ảnh
https://devcentral.f5.com/articles/real-cryptography-has-curves-making-the-case-for-ecc-20832
Điều gì xảy ra nếu hàm điểm tạo ra một đường đi đến một điểm cực trị nào đó?
Mô tả hình ảnh
https://arstechnica.com/information-technology/2013/10/a-relatively-easy-to-understand-primer-on-elliptic-curve-cryptography/2/
Tôi hiểu chức năng của cửa sập, nhưng khóa công khai và khóa riêng được tạo ra như thế nào trong thực tế? Làm thế nào chúng được sử dụng với dữ liệu được mã hóa?
Đây là một câu hỏi hay, nhưng nó đòi hỏi một câu trả lời sâu sắc hơn. Trong bài viết này, tôi đưa ra một lời giải thích tổng quát hơn về RSA và mã hóa đường cong elliptic. Tuy nhiên, có nhiều tài nguyên kỹ thuật hơn và tôi khuyên bạn nên nghiên cứu chúng.
