Sự khác biệt giữa "Hàm đường cong Elliptic" và "Hàm băm" như SHA256 là gì?
Không có bối cảnh thực sự được đưa ra, tuy nhiên chúng ta có thể hiểu nó là
Hàm SHA-256:
Vâng, đó là một chức năng, theo một cách khá chính xác: a hàm băm mật mã (băm chống va chạm);
$$\operatorname{SHA256}:\{0,1\}^* \to \{0,1\}^{256}$$
- Một chiều: thực tế không thể đảo ngược thông báo băm đã cho (hoặc, các đối thủ bị ràng buộc đa thức không thể đảo ngược nó).
- xác định: cùng một đầu vào phải cung cấp cùng một đầu ra.
- Ngẫu nhiên: chúng ta không nên biết hàm băm của đầu vào trước khi băm nó. Chúng ta có thể đọc điều này vì các hàm băm là ứng cử viên cho Random Oracles (RO) và SHA256 thì không vì nó có một cuộc tấn công mở rộng độ dài, SHA3 và Blake2 gần với RO hơn.
- có Điện trở hình ảnh trước: gần một chiều; đưa ra một giá trị băm $h$ nó phải không khả thi đối với các đối thủ thời gian đa thức để tìm đầu vào $m$ như vậy mà $\operatorname{SHA256}(m) = h$.
- Điện trở tiền ảnh thứ hai: đưa ra một tin nhắn $m$ và đó là giá trị băm $h$, tìm thư khác $m'$ như vậy mà $\operatorname{SHA256}(m) = h = \operatorname{SHA256}(m')$.
- và chống va chạm; tìm các thông báo đầu vào riêng biệt $m_1 \neq m_2$ như vậy mà $\operatorname{SHA256}(m_1) = \operatorname{SHA256}(m_2)$.
Bitcoin sử dụng gấp đôi SHA256 (SHA256d) và SHA256d an toàn trước các cuộc tấn công mở rộng độ dài.
Chức năng đường cong elip:
Đây là cách đặt tên lạ, nó có phải là hàm L của các đường cong Elliptic hay không? Vì câu hỏi đang nói về Bitcoin, nên nó nên là tập hợp các chức năng mà đường cong Elliptic cung cấp nhiều hơn các chức năng bên dưới:
Phép cộng như phép toán nhóm (cộng, phủ định, nghịch đảo, giao hoán và kết hợp).
Nhân bản vô tính: đã cho một điểm cơ sở $G$ và thêm nó $t$ lần:
$$[t]G : = \underbrace{G + G + \cdots + G}_{t-times}
$$
Tạo khóa công khai: Chọn ngẫu nhiên $k$ và tính toán $[k]G$.
ECDSA thế hệ chữ ký.
ECDSA xác thực chữ ký.
Bây giờ câu trả lời cho câu hỏi khác của bạn là rõ ràng.
Chúng có cùng tính chất không?
Không, họ không! Thậm chí một cái là một chức năng còn lại là một tập hợp các chức năng.
Cả hai có thể được sử dụng để tạo các cặp khóa riêng và khóa chung không?
Không.
Tuy nhiên, người ta có thể sử dụng SHA256 để tiêu hóa nguồn entropy để chọn ngẫu nhiên $k$ cho khóa riêng của họ và tìm khóa chung của họ $K = [k]G$ bằng cách sử dụng phép nhân vô hướng của các đường cong Elliptic.
Và Địa chỉ Bitcoin được tính là;
$$\text{Địa chỉ Bitcoin} = \operatorname{RIPEMD160(SHA256(}K))$$ dưới dạng địa chỉ 20 byte (RIPEMD).
Đặc biệt lưu ý: Một số sách/trang web về blockchain sử dụng phép nhân EC cho phép nhân vô hướng EC, như cuốn sách Mastering Bitcoin của Antonolopus, trang 68. Điều này khiến nhiều người bối rối vì họ bắt đầu nghĩ rằng $P\cdot Q$ tồn tại. Không! EC tạo thành các nhóm Abelian cộng tính và với phép nhân vô hướng (cách thông thường để xác định cho các nhóm cộng tính), chúng tạo thành một Mô-đun Z, chỉ có bấy nhiêu thôi.