3.8.1Tham số miền của đường cong Elliptic
Thuật toán sinh tham số miền của đường cong Elliptic[4]:
Hình 3.3 Thuật toán sinh tham số miền đường cong elliptic
Mô tả thuật toán:
- Input: Số năm y trong khoảng 2011 -2020 và biến atm (bằng 1 xác định mức an toàn là ATM1, bằng 2 xác định ATM2).
- Output: Bộ tham số miền ( Fp, A,B,G,N,h, SEED)
1.Dựa vào y và biến xác định mức an toàn atm để tính các giá trị cụ thể của độ dài khóa N và modulo p theo tiêu chuẩn EC2 và EC3
2.Sử dụng một thuật toán tất định để sinh số nguyên tố p có thể chứng minh được theo độ dài đã xác định trong bước (1). Lưu lại p
3.Sử dụng Thuật toán 5 để sinh đường cong ngẫu nhiên có thể kiểm tra được trong Fp. Lưu lại SEED, A, B.
4.Sử dụng Thuật toán 7 để tính số điểm của đường cong được sinh ngẫu nhiên: N=#E(p).
5.Nếu N là hợp số thì quay lại bước (3).
6. B1: Kiểm tra tiêu chuẩn EC6 về ước nguyên tố của N± 1, nếu không thỏa mãn thì quay về bước (3).
B2: Kiểm tra tiêu chuẩn EC4 về đường cong bất quy tắc: Nếu N = p thì quay về bước (3).
B3: Kiểm tra tiêu chuẩn EC5 về điều kiện MOV, nếu không thỏa mãn thì quay về bước (3).
7.h = 1
8.Sinh ngẫu nhiên một điểm cơ sở G( xG , yG ) ≠ ∞ .
9.Kiểm tra điểm cơ sở theo tiêu chuẩn EC7(xG ≠ 0,3 𝑥𝐺2 ≠ 0(mod p),5𝑥𝐺4+ 2 A 𝑥𝐺2 - 4 BxG + A2 ≠ 0(mod p) .Nếu không thỏa mãn thì quay về bước (8). 10. Trả về (p, A, B, G, N, h, SEED)[4].
3.8.2Sinh và kiểm tra cặp khóa đường cong Elliptic
Thuật toán : Sinh cặp khóa cho hệ mật Elliptic
+ Input: Bộ tham số miền( Fp, A,B,G,N,h, SEED)
+ Output: Output: (Q – điểm công khai, d – khóa bí mật)
1. Sinh d ∈ R [0, N -1]. Số nguyên d phải được giữ bí mật và phải không dự đoán được 2. Tính điểm Q =( xQ,yQ )= dG
3. Trả về cặp khóa là (Q,d) trong đó Q là khóa công khai, d là khóa bí mật,
Với một bộ tham số miền ( Fp , A, B , G , N , h, SEED) và một khóa công khai
Q có thể được kiểm tra tính hợp lệ theo thuật toán dưới đây:
Thuật toán: Kiểm tra tính hợp lệ của khóa công khai
+ Input: Tham số miền (Fp , A, B , G , N , h, SEED), khóa công khai Q
+ Output: “Khóa công khai hợp lệ” hoặc “Khóa công khai không hợp lệ” 1. Kiểm tra Q không phải là điểm trên E
2. Kiểm tra xq,yq ∈ Fp
3. Kiểm tra rằng yq2 =xq3 + Axq + B trong Fp
4. Kiểm tra Nq=∞
5. Nếu bất kỳ một trong các phép kiểm tra trên thất bại trả về “khóa công khai không hợp lệ” còn không thì trả về “khóa công khai hợp lệ”[4].
3.8.3Thuật toán kiểm tra điều kiện MOV Thuật toán: Thuật toán:
+ Input: Giá trị B là cận của MOV theo tiêu chuẩn EC5
+ Output: 0: Không thỏa mãn điều kiện MOV; 1: Thỏa mãn MOV. 1. t = 1, ok= 1;
2. for i = 1 to B do T = t.p (modN)
If (t==1){ok=0; return ok;} 3. Return ok;
3.8.4Thuật toán sinh đường cong ngẫu nhiên Thuật toán : Sinh đường cong ngẫu nhiên Thuật toán : Sinh đường cong ngẫu nhiên + Input: Số nguyên tố p
+ Output: Chuỗi SEED và A,B∈ Fp Xác định E trên Fp
Tính trước t = [log2𝑝 ], s= [(t-1)/256], h= t -256s
1) Chọn một chuỗi bit SEED có độ dài ít nhất 256 bit. Gọi G là độ dài theo bit của SEED
2)Tính H=SHA256(SEED), gọi co là h bit bên phải của H
3)Wo là h bit nhận được bởi việc thiết lập bit ngoài cùng bên trái của co thành 0 ( nhằm đảm bảo r<p)
4)Với i=1 đến s tính Wi=SHA256((SEED+i)mod 2g) 5)W = Wo||W1||….||Ws
6)Với w1w2...wt là các bit của W từ trái qua phải. Tính số nguyên r=∑𝑡 𝑤𝑖2𝑖−1
𝑖=1
7)Chọn A,B ∈ Fp sao cho rB2 ≡ A3 (mod p) ( A,B không nhất thiết phải chọn ngẫu nhiên)
8)Nếu 4A3 + 27B2 ≡ 0 ( mod p), chuyển sang bước 1 9)Đường cong được chọn trên Fp là E : y2 =x3 + Ax+ B 10)Trả về (SEED,A,B)[4].
ỨNG DỤNG CHỮ KÝ SỐ TRÊN ĐƯỜNG CONG ELLIPTIC NHẰM ĐẢM BẢO ATTT TRONG ĐĂNG KÝ THẺ TRỰC TUYẾN