Điểm:3

Có phải việc sử dụng đồng sáng lập để tìm điểm cơ sở chỉ vì lý do hiệu suất không?

lá cờ fr

Đối với mật mã đường cong elip, quy trình tìm điểm cơ sở tạo ra nhóm con có thứ tự $n$ Là:

  1. Tính thứ tự $N$ của đường cong elip (sử dụng Schoof's)
  2. Chọn $n$. $n$ phải là số nguyên tố và là ước của $N$
  3. Đồng sáng lập điện toán $h = \frac{N}{n}$
  4. Chọn một điểm ngẫu nhiên $P$ trên đường cong
  5. tính toán $G = hP$
  6. Nếu $G$ là 0, sau đó quay lại bước 4. Nếu không, bạn đã tìm thấy trình tạo có thứ tự $n$ và đồng sáng lập $h$

Nguồn

Có phải mục đích của đồng sáng lập ở đây chỉ để tăng hiệu quả trong việc tìm kiếm một nhóm phụ lớn?

Tôi cho rằng nếu bạn không sử dụng đồng yếu tố và thay vào đó cố gắng tính toán một cách thô bạo xem điểm ngẫu nhiên, $P$, là một trình tạo cho một nhóm con có kích thước $n$ bạn sẽ phải làm $n$ lặp đi lặp lại, điều không thể thực hiện được trên các máy tính hiện đại. Nhưng, tôi muốn khẳng định.

Chỉnh sửa: Đoạn cuối cùng của tôi là sai b/c chúng ta có thể sử dụng bình phương lặp đi lặp lại để tính toán $G = nP$

kelalaka avatar
lá cờ in
Bản sao của [Làm cách nào để tìm thứ tự của trình tạo trên đường cong elip?](https://crypto.stackexchange.com/q/44089/18298)
Andreas ZUERCHER avatar
lá cờ tr
@kelalaka, câu hỏi và trả lời được liên kết của bạn không thực sự trùng lặp, vì nó hoàn toàn không thảo luận về lý do hiệu suất. Lực đẩy chính của câu hỏi này ở đây không phải là “làm thế nào” mà là tại sao: hiệu suất một mình hay hiệu suất + các lý do khác.
Điểm:3
lá cờ my

Có phải mục đích của đồng sáng lập ở đây chỉ để tăng hiệu quả trong việc tìm kiếm một nhóm phụ lớn?

Chà, thuật toán thay thế này sẽ hoạt động (giả sử $n$ là số nguyên tố; trên thực tế, cả hai thuật toán đều giả sử $n$ là số nguyên tố):

  1. Chọn một điểm P ngẫu nhiên trên đường cong (không phải điểm ở vô cực)

  2. tính toán $G = nP$

  3. Nếu $G \ne 0$, quay lại bước 4. Nếu không, bạn đã tìm thấy trình tạo có thứ tự $n$ và đồng sáng lập $h$

Thuật toán đó sẽ hoạt động; tuy nhiên nó rõ ràng là kém hiệu quả hơn nhiều; một phần vì máy tính $nP$ sẽ đắt hơn đáng kể so với máy tính $hP$ (như chúng ta thường có $n \ggg h$), và cả trong phiên bản sửa đổi, bạn sẽ có một kỳ vọng $h$ lặp đi lặp lại trước khi tìm thấy một điểm, trong khi trong thuật toán ban đầu, đó là một dự kiến $1 + 1/n$ lặp đi lặp lại (có nghĩa là, bài kiểm tra cuối cùng hầu như không bao giờ thất bại).

Foobar avatar
lá cờ fr
Cảm ơn vì sự trả lời. Bạn có thể giải thích câu cuối cùng của bạn chi tiết hơn? (Được sửa đổi đề cập đến phiên bản sử dụng đồng sáng lập hoặc thuật toán chậm hơn)?
Foobar avatar
lá cờ fr
Ngoài ra, liên quan đến các lần lặp lại. Tôi cho rằng ý của bạn là có một lần lặp lại mới mỗi khi chúng tôi đoán một điểm ngẫu nhiên mới, $P$.Cho rằng trong cả hai thuật toán, điểm $P$ được chọn ngẫu nhiên, tại sao sẽ có ít dự đoán hơn trong thuật toán ban đầu?
knaccc avatar
lá cờ es
@Roymunson Sau khi chọn một điểm ngẫu nhiên thỏa mãn phương trình đường cong, một lần lặp lại thuật toán của bạn sẽ thành công $N-h$ trong số $N$ lần (tức là gần như chắc chắn) và thuật toán thay thế của poncho (nếu bạn coi việc lặp lại bắt đầu vào thời điểm đó của việc chọn một điểm ngẫu nhiên nhưng trước khi kiểm tra vô cực) với mỗi lần lặp sẽ chỉ thành công $n-1$ trong số $N$ lần (tức là khoảng $1$ trong số $h$ lần). Ưu điểm của thuật toán poncho là nó sẽ không loại trừ bất kỳ khả năng hợp lệ nào
poncho avatar
lá cờ my
@knaccc: thực ra, thuật toán ban đầu cũng sẽ không loại trừ bất kỳ khả năng hợp lệ nào; trên thực tế, nó sẽ tạo ra tất cả các trình tạo có thể có với xác suất bằng nhau
knaccc avatar
lá cờ es
@poncho cảm ơn vì đã chỉ ra điều đó. Bây giờ tôi nghĩ về nó, điều đó có ý nghĩa hoàn hảo.
Điểm:1
lá cờ in

Đây là một kết quả thực nghiệm để bổ sung cho câu trả lời của Poncho;

Lấy Curve25519 có đồng sáng lập $8$ như đơn đặt hàng $n$ của các yếu tố nhóm như

$\small{n = 2^3 * 7237005577332262213973186563042994240857116359379907606001950938285454250989}$

  • $h = 8 $
  • $q = n/8$

Chúng tôi sử dụng SageMath và SageMath random_element chức năng trong đó nó có thể trả lại phần tử nhận dạng $\mathcal{O}$ của đường cong (cơ hội nhận được nó là không đáng kể), trên Curve25519 $\mathcal{O} = (0:1:0)$ trên mẫu Weierstrass.

thời gian nhập khẩu

def RandomBasePointByCofactor(E,identity,cofactor):
    
    s = thời gian.thời gian()
    ci = 0
    n = E.order()
    cho tôi trong phạm vi (1,10000):
        P = E.random_element()
        nếu đồng sáng lập*P != danh tính:
            ci = ci +1
    e = thời gian.thời gian()
    print("thời gian trôi qua trên RandomBasePointByCofactor", e-s)
    trả lại (ci)
        
def RandomBasePointByOrder(E,identity,cofactor):
    
    s = thời gian.thời gian()
    ci = 0
    n = Số nguyên(E.order() / cofactor)
    cho tôi trong phạm vi (1,10000):
        P = E.random_element()
        nếu n*P == danh tính:
            ci = ci +1

    e = thời gian.thời gian()
    print("thời gian trôi qua trên RandomBasePointByOrder", e-s)
    trả lại (ci)    

p = 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
K = GF(p)
A = K(0x76d06)
B = K(0x01)
E = EllipticCurve(K, ((3 - A^2)/(3 * B^2), (2 * A^3 - 9 * A)/(27 * B^3)))

IP = E((0,1,0))
Giới hạn = 10000

print(" số lượng trình tạo được tìm thấy = ", randomBasePointByCofactor(E,IP,8), "/", Giới hạn)

print("số lượng trình tạo được tìm thấy =",randomBasePointByOrder(E,IP,8),"/", Giới hạn)

Một kết quả mẫu là

thời gian đã trôi qua trên RandomBasePointByCofactor 1.9164307117462158
 số lượng máy phát điện được tìm thấy = 9999/10000
thời gian đã trôi qua trên RandomBasePointByOrder 64.77565383911133
 số lượng máy phát điện được tìm thấy = 1267/10000

Vì vậy

  • phương pháp đồng sáng lập nhanh hơn ~32 lần trong các thử nghiệm.

    Chúng ta có thể giải thích điều này một cách đơn giản như; $8$ yêu cầu 4 lần nhân đôi và 1 lần bổ sung, trong khi $n$ yêu cầu nhân đôi 251 và bổ sung 125 với ngây thơ thuật toán nhân đôi. Điều này cho phép tính toán nhiều hơn ~75 lần nếu chúng ta giả sử nhân đôi và bổ sung có cùng tốc độ mà chúng không có.

  • phương thức cofactor tạo ra nhiều trình tạo hơn so với phương thức đặt hàng vì $1/8$ của các yếu tố ngẫu nhiên từ $8\cdot q$ rơi vào số nguyên tố lớn $q$ của Curve25519.

Do đó, phương pháp đồng sáng lập là thích hợp hơn.

Foobar avatar
lá cờ fr
Cảm ơn bạn, kịch bản này cực kỳ hữu ích để xem lý thuyết trong thực tế.
kelalaka avatar
lá cờ in
Đó là lý do mà người ta cần phải thực hiện để xem. Ngay cả Paul Erdös cũng gặp vấn đề về [bài toán Monty Hall](https://en.wikipedia.org/wiki/Monty_Hall_problem) cho đến khi họ xem mô phỏng máy tính..

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.