Nhân đôi điểm (liên kết Wiki) yêu cầu Z^4
và khi được sử dụng với thuật toán nhân đôi và cộng (cần thiết để tính điểm công khai, chữ ký dựa trên ECDH và EC) bằng cách sử dụng $Z=1$ đơn giản hóa việc tính toán Z^4
nếu không thì người ta có thể cần 3 lần nhân đôi. Phương pháp nhân đôi và thêm trong đó độ phân giải
không cố định để tiết kiệm thời gian. Nhân đôi và thêm Wikipedia phiên bản;
let bits = bit_representation(s) # véc-tơ của các bit (từ MSB đến LSB) đại diện cho s
để res = O # điểm ở vô cực
cho bit tính bằng bit:
độ phân giải = độ phân giải + độ phân giải # gấp đôi
nếu bit == 1:
độ phân giải = độ phân giải + P # thêm
tôi = tôi - 1
trả lại độ phân giải
Đây là sự khởi đầu của một câu chuyện dài. Các "m-gấp đôi" (nhân đôi lặp đi lặp lại) tính toán $[2^m]P$ và chỉ tính toán Z^4
Một lần. Khi bạn cần $[k]P$, bạn có thể cần đại diện $k$ ở dạng nhị phân, sau đó sử dụng nhân đôi m-fold khi cần thiết. Để được hưởng lợi từ điều này, người ta phải tính toán chi phí trước khi quyết định sử dụng m-fold double hay không.
Câu trả lời không dễ dàng và đầy đủ, vì cái này đòi hỏi Z1=Z2
với 5M + 2S
để biết thêm phiên bản Wiki có 12M + 4S
Giá cả. Các 5M + 2S
vẫn còn Z1
phép nhân và nếu Z1=1
mà không có chi phí.
Trong một câu ngắn, nói chung, Z1=1
đơn giản hóa các phương trình.
Từ $(X_1:Y_1:Z_1)$ đại diện $(Z/Z^2,Y/Z^3)$ và $(X_1:Y_1:Z_1)$ là một quan hệ tương đương $$(X_1:Y_1:Z_1) \sim (\lambda X_1:\lambda Y_1:\lambda Z_1)$$ người ta có thể đơn giản chuyển đổi $Z_1 =1$ với $$(X_1/Z_1:Y_1/Z_1:1)$$
Hãy nhớ rằng 1/Z1
không phải là phân chia, đúng hơn là nghịch đảo của Z1
trên trường xác định.
Các Z1
mặt khác, không ở đó với Z1=1
dưới các hoạt động. Để hưởng lợi từ điều này, người ta phải tìm nghịch đảo và thực hiện hai phép nhân. Mặt khác, việc tìm kiếm nghịch đảo là điều chúng ta không muốn vì nó rất tốn kém.
Vì vậy, ít nhất có một lợi ích khi bắt đầu phép nhân vô hướng.