Rate this post

Tổng quan về ECC

Mật mã đường cong eliptic (ECC) thực sự phát triển từ Diffie-Hellman Mật mã. Nó được phát hiện như một cơ chế thay thế cho triển khai mật mã khóa công khai. Nó thực sự đề cập đến một bộ các giao thức mật mã và dựa trên bài toán logarit rời rạc, như trong DSA. 

Tuy nhiên, người ta tin rằng bài toán logarit rời rạc thậm chí còn khó hơn khi áp dụng cho các điểm trên đường cong elliptic. Vì vậy, ECC cung cấp bảo mật cao hơn cho một kích thước khóa nhất định. Khóa ECC 160 bit được coi là được bảo mật như khóa RSA 1024 bit. 

Các bài viết liên quan:

Vì kích thước khóa nhỏ hơn trong ECC có thể cung cấp bảo mật và hiệu suất cao hơn so với các các thuật toán chính, nó được sử dụng rộng rãi trong các thiết bị nhúng nhỏ, cảm biến,và các thiết bị IoT khác, v.v. Có phần cứng cực kỳ hiệu quả triển khai có sẵn cho ECC. ECC dựa trên một bộ số liên quan đến toán học trên một đường cong elliptic trên các trường hữu hạn. Ngoài ra, nó không liên quan gì đến dấu chấm lửng! 

Đường cong ECC( Elliptic Curve Cryptography)

Về mặt toán học, một đường cong elliptic thỏa mãn điều kiện toán học sau

phương trình: y 2 = x 3 + ax + b, trong đó 4 a 3 + 27 b 2 ≠ 0

Với các giá trị khác nhau của “ a ” và “ b ”, đường cong có các hình dạng khác nhau như được hiển thị trong sơ đồ sau: 

Có một số đặc điểm quan trọng của đường cong elip là được sử dụng trong mật mã, chẳng hạn như:

• Chúng đối xứng theo chiều ngang. tức là, những gì dưới đây trục X là hình ảnh phản chiếu của những gì nằm trên trục X. Vì vậy, bất kỳ điểm nào trên đường cong khi được phản ánh qua Trục X vẫn nằm trên đường cong.

• Bất kỳ đường thẳng nào có thể cắt đường cong tối đa ba nơi.

• Nếu bạn coi hai điểm P và Q trên đường cong elliptic và vẽ một đường thẳng qua chúng, đường thẳng đó có thể chính xác băng qua đường cong ở một nơi nữa. Hãy để chúng tôi gọi nó là (- R ). Nếu bạn vẽ một đường thẳng đứng qua (- R ), nó sẽ đi qua đường cong tại, chẳng hạn, R , là sự phản chiếu của điểm (- R ).Bây giờ, tài sản thứ ba có nghĩa là P + Q = R . Đây là được gọi là “cộng điểm”, có nghĩa là cộng hai điểm trên một đường cong elip sẽ dẫn bạn đến một điểm khác trên đường cong. Tham khảo sơ đồ sau để biết hình ảnh biểu diễn của ba thuộc tính này.

Vì vậy, bạn có thể áp dụng cộng điểm cho hai điểm bất kỳ trên đường cong. Bây giờ, trong tiêu điểm trước, chúng tôi đã cộng điểm P và Q ( P + Q ) và tìm thấy – R và sau đó cuối cùng đến R . Khi chúng tôi đến R , chúng tôi sau đó có thể vẽ một đường thẳng từ P đến R và thấy rằng đường thẳng lại cắt biểu đồ tại điểm thứ ba. Sau đó chúng ta có thể lấy điểm đó và di chuyển dọc theo một đường thẳng đứng cho đến khi nó lại cắt đồ thị. Đây trở thành điểm

Ngoài các điểm P và R . Quá trình này với một P và điểm kết quả có thể tiếp tục miễn là chúng ta muốn, và chúng tôi sẽ tiếp tục nhận được những điểm mới trên đường cong.

• Bây giờ, thay vì hai điểm P và Q , điều gì sẽ xảy ra nếu chúng ta áp dụng phép toán đến cùng một điểm P , tức là P và P (được gọi là”Nhân đôi điểm”). Rõ ràng, vô số dòng có thể thông qua P, vì vậy chúng tôi sẽ chỉ xem xét đường tiếp tuyến. Đường tiếp tuyến sẽ cắt đường cong trong một điểm nữa và một đường thẳng đứng từ đó sẽ cắt ngang đường cong một lần nữa để đến giá trị cuối cùng. Nó có thể được hiển thị như sau:

Rõ ràng là chúng ta có thể áp dụng nhân đôi điểm “ n ” số lần đến điểm ban đầu và mọi lúc nó sẽ dẫn chúng ta đến một điểm khác trên đường cong. Các lần đầu tiên chúng tôi áp dụng nhân đôi điểm cho điểm P , nó đã đưa chúng tôi đến điểm kết quả 2P như bạn có thể thấy trongbiểu đồ. Bây giờ, nếu lặp lại tương tự, số ” n ” của

lần, chúng ta sẽ đạt đến một điểm trên đường cong như được hiển thị trong sơ đồ sau

Trong tình huống đã đề cập ở trên, khi đầu và điểm cuối cùng được đưa ra, không có cách nào ai có thể nói rằng nhân đôi điểm đã được áp dụng ” n ” số lần để đạt được điểm kết quả cuối cùng ngoại trừ việc cố gắng cho tất cả có thể ” n ” từng cái một. 

Đây là lôgarit rời rạc vấn đề đối với ECC, trong đó nó tuyên bố rằng đã cho một điểm G và Q , trong đó Q là bội số của G , hãy tìm “ d ” sao cho Q = d G . Điều này tạo thành hàm một chiều không có các phím tắt. Ở đây, Q là khóa công khai và d là khóa riêng tư Chìa khóa. 

Bạn có thể trích xuất khóa cá nhân d từ khóa công khai Q không? Đây là bài toán logarit rời rạc đường cong elliptic, khó giải quyết về mặt tính toán. Hơn nữa, đường cong phải được xác định trên một lĩnh vực và không đưa chúng ta đến vô cùng! Điều này có nghĩa là “tối đa” giá trị trên trục X phải được giới hạn ở một số giá trị, vì vậy chỉ cuộn lại các giá trị khi chúng tôi đạt đến mức tối đa. 

Cái này giá trị được biểu diễn dưới dạng P (không phải P được sử dụng trong biểu đồ tại đây) trong hệ thống mật mã ECC và được gọi là “modulo” giá trị và nó cũng xác định kích thước khóa, do đó đồng ruộng. Trong nhiều triển khai của ECC, một số nguyên tố cho ” P ” được chọn.

• Kích thước chữ “ P ” tăng lên dẫn đến nhiều giá trị hữu dụng hơn trên đường cong, do đó an toàn hơn.

• Chúng tôi quan sát thấy rằng việc cộng điểm và nhân đôi điểmtạo cơ sở cho việc tìm kiếm các giá trị được sử dụng cho mã hóa và giải mã.

Vì vậy, để xác định ECC, các tham số miền sau đây cần được định nghĩa:

• Phương trình đường cong: y 2 = x 3 + ax + b, trong đó 4 a 3 + 27 b 2 ≠ 0

• P : Số nguyên tố, xác định trường hữu hạn rằng đường cong sẽ được xác định trên (giá trị mô-đun)

• a và b : Hệ số xác định đường cong elliptic

• G : Điểm gốc hoặc điểm tạo trên đường cong. Cái này là điểm mà tất cả các hoạt động điểm bắt đầu và nó xác định nhóm con tuần hoàn.

• n : Số hoạt động điểm trên đường cong cho đến khi đường kết quả là thẳng đứng. Vì vậy, nó là thứ tự của G , tức là, số dương nhỏ nhất sao cho nG =  . Nó là thường là số nguyên tố.

• h : Nó được gọi là “cofactor”, tương đương với thứ tự của đường cong chia cho n . Nó là một giá trị số nguyên và thường là gần bằng 1.

Thuật toán chữ ký số đường cong Elliptic

ECDSA là một loại DSA sử dụng ECC để tạo khóa. Như một cái tên cho thấy, mục đích của nó là chữ ký số chứ không phải mã hóa. ECDSA có thể là một giải pháp thay thế tốt hơn cho RSA về kích thước khóa nhỏ hơn, bảo mật tốt hơn, và hiệu suất cao hơn. Nó là một trong những mật mã quan trọng nhất các thành phần được sử dụng trong Bitcoin!

Chúng tôi đã xem xét cách chữ ký điện tử được sử dụng để thiết lập lòng tin giữa người gửi và người nhận. Vì tính xác thực của người gửi và tính toàn vẹn của thông điệp có thể được xác minh thông qua chữ ký điện tử, haicác bên không xác định có thể giao dịch với nhau. Lưu ý rằng người gửi và người nhận phải đồng ý về các thông số miền trước khi tham gia vào các thông tin liên lạc. 

Có ba bước rộng rãi để thực hiện ECDSA: thế hệ chìa khóa, tạo chữ ký và xác minh chữ ký

Thế hệ chìa khóa

Vì các tham số miền ( P , a , b , G , n , h ) được thiết lập trước nên đường cong và điểm cơ sở được biết bởi cả hai bên. Ngoài ra, P nguyên tố tạo nên nó là một trường hữu hạn cũng được biết đến ( P thường là 160 bit và có thể lớn hơn ổn). Vì vậy, người gửi, giả sử, Alice thực hiện những việc sau để tạo các khóa:

• Chọn một số nguyên ngẫu nhiên d trong khoảng [ 1 , n – 1 ]

• Tính Q = d G

• Khai báo Q là khóa công khai và giữ d là khóa riêng tư Chìa khóa.

Tạo chữ kí

Khi các khóa được tạo, Alice, người gửi, sẽ sử dụng khóa riêng tư “ D ” để ký vào tin nhắn ( m ). Vì vậy, cô ấy sẽ thực hiện các bước sau trong thứ tự được chỉ định để tạo chữ ký:

• Chọn một số ngẫu nhiên k trong khoảng [ 1 , n – 1 ]

• Tính kG và tìm tọa độ mới (x 1 , y 1 ) và tìm r = x 1 mod n 

Nếu r = 0 thì bắt đầu lại từ đầu

• Tính e = SHA-1 ( m )

• Tính s = k −1 ( e + d. R ) mod n Nếu s = 0, thì hãy bắt đầu lại từ bước đầu tiên

• Chữ ký của Alice cho thông điệp ( m ) bây giờ sẽ là ( r , s )

Xác minh chữ ký

Giả sử Bob là người nhận ở đây và có quyền truy cập vào miền tham số và khóa công khai Q của người gửi Alice. Như một bảo mật đo lường, trước tiên Bob nên xác minh rằng dữ liệu mà anh ta có, đó là miền các tham số, chữ ký và khóa công khai Q của Alice đều hợp lệ. Để xác minh Chữ ký của Alice trên tin nhắn ( m ), Bob sẽ thực hiện những điều sau hoạt động theo thứ tự được chỉ định:

• Xác minh rằng r và s là các số nguyên trong khoảng [ 1 , n – 1 ]

• Tính e = SHA-1 ( m )

• Tính w = s −1 mod n

• Tính u 1 = ew mod n và u 2 = rw mod n

• Tính X = u 1 G + u 2 G, trong đó X đại diện cho tọa độ, giả sử (x 2 , y 2 )

• Tính v = x 1 mod n

• Chấp nhận chữ ký nếu r = v , nếu không thì từ chối nó

Trong phần này, chúng ta đã xem xét toán học đằng sau ECDSA. Nhớ lại điều đó chúng tôi đã sử dụng một số ngẫu nhiên trong khi tạo khóa và chữ ký. Nó là cực kỳ quan trọng để đảm bảo rằng các số ngẫu nhiên được tạo ra là thực sự là ngẫu nhiên về mặt mật mã. 

Tổng kết

Trong nhiều trường hợp sử dụng, ECDSA 160-bit là được sử dụng vì nó phải khớp với hàm băm SHA-1. Trong số rất nhiều trường hợp sử dụng, ECDSA được sử dụng trong chứng chỉ số. Trong nó dạng đơn giản nhất, chứng chỉ kỹ thuật số là khóa công khai, đi kèm với thiết bị ID và ngày hết hạn chứng chỉ. Bằng cách này, các chứng chỉ cho phép chúng tôi kiểm tra và xác nhận khóa công khai thuộc về ai và thiết bị là thành viên hợp pháp của mạng đang được xem xét. Các chứng chỉ này rất quan trọng để ngăn chặn “cuộc tấn công mạo danh” ở cơ sở quan trọng các giao thức. Nhiều chứng chỉ TLS dựa trên cặp khóa ECDSA và điều này việc sử dụng tiếp tục phát triển

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now