Tạo một đường cong Elliptic xác định ngẫu nhiên (Xác thực ngẫu nhiên việc tạo một đường cong Elliptic)

Một phần của tài liệu nghiên cứu về Chữ ký số trên đường cong Elliptic(ECDSA) (Trang 56)

3. Miền tham số ECDSA

3.2Tạo một đường cong Elliptic xác định ngẫu nhiên (Xác thực ngẫu nhiên việc tạo một đường cong Elliptic)

một đường cong Elliptic)

Tiểu mục này mô tả các phương pháp được sử dụng để tạo ra một đường cong ellip xác định một cách ngẫu nhiên. Các tham số của đường cong elliptic được định nghĩa là đầu ra của hàm một chiều chia nhỏ SHA-1 (theo quy định tại FIPS 180-1 [71]). Nguồn gốc đầu vào cho SHA-1 sau đó phục vụ như là bằng chứng (theo giả định rằng SHA-1 không có thể được đảo ngược) mà các đường cong elliptic đã thực sự tạo ra một cách ngẫu nhiên. Điều này cung cấp một số bảo đảm cho người sử dụng của đường cong elliptic rằng thực thể tạo ra các đường cong elliptic không cố ý xây dựng một đường cong “weak – yếu” mà sau đó nó có thể khai thác để phục hồi các chìa khóa riêng của người dùng. Sử dụng phương pháp này kết hợp cũng có thể giúp giảm thiểu các mối quan tâm liên quan đến việc khám phá ra trong tương lai có thể có của các loại mới và hiếm của đường cong elliptic weak (yếu), như đường cong hiếm về cơ bản sẽ không bao giờ được tạo ra

Trường hợp q = p

Các ký hiệu sau đây được sử dụng: t = [log2p], s = [(t-1) / 160] và v = t - 160.s.

Thuật toán 1: tạo ra một đường cong ellip ngẫu nhiên về Fp.

INPUT: Kích thước trường p, trong đó p là một nguyên tố lẻ. OUTPUT: Một chuỗi bit seedE (thiết lập E) chiều dài ít nhất là 160 bit và các nhân tố a, b thuộc xác định một đường cong ellip E trên .

1. Chọn một chuỗi seedE bit tùy ý có chiều dài g ≥ 160 bit

2. Tính H = SHA-1 (seedE), và cho c0 biểu thị các chuỗi bit có chiều dài v bit thu được bằng cách lấy v bit ngoài cùng bên phải của H.

3. Cho w0 biểu thị các chuỗi bit có chiều dài v bit thu được bằng cách thiết lập bit tận cùng bên trái c0 đến 0. (Điều này đảm bảo r < p)

4. Cho Z là số nguyên nhị phân mở rộng được đưa ra bởi độ dài g bit seedE . 5. Cho i từ 1 đến s ta có:

5.1. Cho si thiết lập bởi độ dài chỗi g-bit là phần mở rộng của nhị phân của các số nguyên (z+i)mod 2g.

5.2. Tính Wi = SHA-1(si).

6. Cho W là chuỗi bit thu được bằng cách nối W0, W1,….Ws như sau:

7. Cho r là 1 số nguyên mà nhị phân mở rộng được cho bởi W 8. Nếu r = 0 hoặc 4r + 27 = 0 (mod p) thì quay lại bước 1

9. Chọn tuỳ ý các số nguyên a,b Є ≠ 0 sao cho.(ví dụ, chúng ta có thể lấy a=r và b=r) 10. Đường cong eliptic trên được cho bởi phương trình E:

11. Đầu ra (seedE, a, b).

Lớp đẳng cấu của đường cong eliptic trên .2 đường cong elliptic E1 :y2=x3+a1x+b1 và E2:y2=x3+a2x+b2 được xác định trên là đẳng cấu trên khi và chỉ khi có tồn tại uЄ,u ≠0 sao

cho a1 =u4a2 và b1=u6a2 (Các đường cong đắng cấu thường là giống nhau. Cụ thể, nếu E1

đẳng cấu với E2 thì các nhóm E1()và E2() là đẳng cấu theo nhóm giao hoán. Theo đó nếu E1 và E2 là đẳng cấu và b1≠0 (vì b2≠0) khi đó . Những đơn đường cong như E:y2=x3+ax+b mà 4a3+27b2≡0(mod p) chính xác là những đường cong có a=0 và b=0 hoặc . Nếu thì sẽ có chính xác là 2 lớp đẳng cấu của đường cong E: y2=x3+ax+bvới . Do đó ,có 2 sự lựa chọn cơ bản cho (a,b) ở bước 9 của Algorithm 1. Những điều kiện được đặt ở bước 8 đảm bảo cho việc loại trừ những đường cong elliptic riêng lẻ. Cuối cùng, tác giả muốn nói rằng phương pháp tạo ra những đừơng cong sẽ không bao giờ tạo ra các đường cong elliptic với a=0, b#0 cũng như a#0,b=0. Đây là điều không đáng ngại vì những đường cong đó sẽ tạo thành những phần không đáng kể của tất cả các đường cong elliptic và do đó có lẽ sẽ không bao giờ được tạo thành bởi bất cứ phương pháp nào mà chọn 1 đường cong elliptic một cách ngẫu nhiên.

Sự phát triển của một đường cong elliptic trên .. Đường cong không đẳng cấu E1: y2=x3+ax+b và E2: x3+ac2x2+bc3, với c Є là một dư bậc 2 không modulo p được cho là xoắn với nhau. Lưu ý rằng cả 2 đường cong này đều có cùng 1 giá trị r. Trật tự của chúng liên quan đến phương trình # E1()+# E2(.)=2p+2. Do đó, một khi có thể tính toán được # E1() chúng ta có thể dễ dàng suy ra được +# E2().

Thuật toán 2: Xác minh rằng một đường cong elliptic được tạo ra ngẫu nhiên trên

Input:Một kích thước trường p (một số nguyên tố), một chuỗi bit seedE của độ dài bit, và các trường phần tử với định nghĩa đường cong elliptic E: trên .

Output: Chấp nhận hoặc từ chối rằng E được tạo một cách ngẫu nhiên bằng cách sử dụng thuật toán 1.

1. Tính H = SHA-1 (seedE), và cho c0 biểu thị các chuỗi bit có chiều dài v bit thu được bằng cách lấy v bit ngoài cùng bên phải của H.

2. Cho w0 biểu thị các chuỗi bit có chiều dài v bit thu được bằng cách thiết lập bit tận cùng bên trái c0 đến 0.

3. Cho z là số nguyên nhị phân mở rộng được đưa ra bởi độ dài g bit seedE . 4. Cho i từ 1 đến s ta có:

4.1. Để si là chuỗi g-bit là sự mở rộng nhị phân của (Z + i) mod 2g.

4.2. Tính Wi = SHA-1 (si).

5. Cho W là chuỗi bit bao gồm 1 chuỗi liên tiếp nhau W 0, W1, ...,Ws như sau:

6. Cho r' là số nguyên nhị phân mở rộng được tạo ra bởi W' 7. Nếu r'. b2 ≡ a3 (mod p) thì chấp nhận, nếu không thì từ chối

Trường hợp q = 2m (adsbygoogle = window.adsbygoogle || []).push({});

Theo ký hiệu được sử dụng:

Thuật toán 3: Tạo ra một đường cong elliptic ngẫu nhiên trên .

INPUT: kích thước trường q = 2m.

OUTPUT: Một chuỗi bit seedE có độ dài ít nhất 160 bit và các phần tử trường xác định một đường cong elliptic E trên .

1. Chọn một chuỗi bit tùy ý seeE có chiều dài g ≥ 160 bit.

2. Tính H = SHA-1 (seedE), và để cho bo biểu thị chuỗi bit dài v bit thu được bằng cách dùng v bit ngoài cùng bên phải của H.

3. Z là số nguyên nhị phân mở rộng được đưa ra bởi seedE chuỗi g-bit. 4. Cho i chạy từ 1 đến s ta có:

4.1 Cho si là chuỗi g-bit mà nó có phần mở rộng nhị phân của số nguyên (z + i) mod 2g

4.2 Tính bi = SHA-1(si).

5. Cho b là phần tử trường thu được bằng cách nối bo, b1, ..., bs như sau: b = b0 | | b1 | | ... | | bs.

7. Cho a là một phần tử tùy ý của .

8. Đường cong elliptic được lựa chọn trên là E: y 2 + xy = x 3 + ax2 + b. 9. Output (seedE, a, b).

Các nhóm đẳng cấu của đường cong elip đối với . Hai đường cong elliptic E1:

y2 + xy = x3 + a1x2+ b1 và E2: y2 + xy = x3 + a2x2 + b2 quy định trên là đẳng cấu trên nếu và chỉ nếu b1= b2Tr(a1) = Tr(a2), ở đó Tr là hàm kiểm tra Tr: được xác định bởi . (Các đẳng cấu đường cong elliptic cơ bản là giống nhau. Trong vấn đề riêng biệt, nếu E1 là đẳng cấu với E2, sau đó các nhóm E1() và E2() là đẳng cấu như các nhóm giao hoán sau đó một tập hợp các đại diện của các lớp đẳng cấu của các đường cong elliptic trên là {y2 + xy = x3 + ax2+ b | , b ≠ 0, | {0, γ }}, γ là một phần tử cố định với Tr (γ) = 1 (nếu m là số lẻ, chúng ta có thể lấy γ = 1). Do đó, phải lựa chọn b, về cơ bản chỉ có 2 sự lựa chọn cho a ở bước 7 của thuật toán 3.

Sự phát triển của một đường cong elliptic trên . Các đường cong elliptic không đẳng

cấu E1: y2 + xy = x3 + a2x + b2, khi Tr(a1) # Tr(a2) được cho là độ xoắn của mỗi đường cong khác nhau. Các bậc có liên quan với các phương trình # E1() + #E2() = 2m +1 + 2. Vì vậy, nếu có thể để tính toán # E1(), thì người ta có thể dễ dàng suy ra # E2(). Bậc của đường còn elliptic trên là luôn luôn bằng nhau. Hơn nữa, # E1() ≡ 0 (mod 4) nếu Tr(a1) = 0, và # E1() ≡ 2 (mod4 ) nếu Tr(a1) = 1.

Thuật toán 4: Xác minh rằng một đường cong elliptic được tạo ngẫu nhiên trên . .

Input: kích thước trường q = 2m, một chuỗi bit seedE chiều dài g ≥ 160 bit, và các trường hệ số . xác định một đường cong elliptic E: y2 + xy = x2 + ax2 + b trên .

Output: chấp nhận hoặc từ chối rằng E là ngẫu nhiên tạo ra bằng cách sử dụng thuật toán 3.

1.Tính H = SHA-1 (seedE), và để cho bo biểu thị chuỗi bit của bit v, chiều dài thu được bằng cách v bit ngoài cùng bên phải của H

2. Cho z là số nguyên nhị phân mở rộng được đưa ra bởi seedE chuỗi g-bit. 60

3. Cho i từ 1 đến s:

3.1.Để si là chuỗi g-bit có mở rộng nhị phân của số nguyên (z + i) mod 2g 3.2. Tính bi = SHA - 1 (si)

4. Để b' là phần tử trường hiện thực thu được bằng cách nối b0,b1, ..., bs vào nhau như sau: b = b0 | | b1 | | ... | | bs.

5. Nếu b = b ' thì chấp nhận, nếu không từ chối

Một phần của tài liệu nghiên cứu về Chữ ký số trên đường cong Elliptic(ECDSA) (Trang 56)