Để biểu diễn lại bản rõ dạng ( ) có thể áp dụng phƣơng pháp mask bằng cách
3.2.2. Các hệ mật trên đƣờng cong Elliptic (ECC)
Hệ mật hóa đƣờng cong elliptic (ECC) có thể đƣợc thực thi tƣơng tự nhƣ các hệ
mật mã khóa trên trƣờng số nguyên, thay vào đó là các điểm trên đƣờng cong mà ta có hệ mã sau:
3.2.2.1. Hệ mã hóa “tựa” Elgamal
Hệ Elgamal làm việc với nhóm cyclic hữu hạn, yêu cầu biểu diễn (nhúng – dùng
embeding) thông điệp m nhƣ một điểm trên đƣờng cong.
Ta có trƣờng số Zp và đƣờng cong elliptic E trên Zp là ( ) cùng điểm cơ sở G . Mỗi ngƣời dùng sẽ chọn một số d là khóa bí mật, dG làm khóa công khai.
Giả sử Alice cần gửi một nhóm thông điệp m cho Bob. Đầu tiên cô ấy nhúng văn
bản m lên E, chẳng hạn m đƣợc thể hiện bằng một điểm . Khi đó cô ta phải mã hóa
. Ký hiệu d là khóa bí mật của Bod, vì vậy khóa công khai của Bod là Q = dG. Alice chọn một số ngẫu nhiên k và gửi cho Bod cặp điểm trên E:
( ) ( )
Để giải mã Bob tính ( ) ( ) ( )
3.2.2.2. Hệ mã hóa Menezes-Vantone
Sự khác biệt của hệ này với hệ tựa Elgamal là Alice áp dụng kỹ thuật mặt nạ
(Masking) thay vì nhúng (Imbeding) khi biểu diễn bản rõ thành điểm trên E.
E là đƣờng cong elliptic trên trƣờng nguyên tố Zp (p >3) sao cho E chứa một nhóm con cyclic H, mà trong đó bài toán ECDLP là khó. Zp, ( ) và điểm G là công khai. Mỗi ngƣời dùng chọn một số ngẫu nhiên làm khóa bí mật và khóa công khai là dG.
Giả sử Alice cần gửi thông điệp ( ) cho Bob.
Giả sử d là khóa bí mật của Bob. Alice chọn số ngẫu nhiên
| | và gửi: ( ) ( ) ( ) ( ) Để giải mã, Bob tính: ( ) ( ) ( ) Chứng minh: vì vậy: ( ) ( ) ( ) ( ) ( )
3.2.3. Trao đổi khóa Diffie – Hellman trên đƣờng cong Elliptic
3.2.3.1. Mô hình trao đổi khóa Diffie – Hellman.
Năm 1976, Whitfield Diffie và Martin Hellman đã đƣa ra giao thức để trao đổi các
giá trị khóa quy ƣớc giữa các đối tác trên đƣờng truyền có độ bảo mật trung bình.
Giao thức này dựa trên nguyên lý của bài toán logarit rời rạc trên trƣờng số nguyên hữu
hạn. Các thao tác thực hiện trao đổi khóa Diffie – Hellman giữa hai đối tác A và B nhƣ
sau:
• A và B thống nhất các giá trị g và số nguyên p < g.
• A chọn số ngẫu nhiên m, tính gm và gửi QA cho A.
• B chọn một số ngẫu nhiên n. B tính giá trị QB = gn và gửi QB cho A.
• A nhận QB và tính theo ( )
• B nhận đƣợc và tính theo ( ) . k chính là giá trị bí mật đƣợc quy ƣớc chung.
3.2.3.2. Mô hình trao đổi khóa Elliptic Curve Diffie – Hellman
Mô hình trao đổi khóa Diffe – Hellman trên đƣờng cong elliptic (ECDH) tƣơng tự mô hình trao đổi khóa Diffie – Hellman. ECDH cũng dựa trên nguyên lý của bài
toán logarit rời rạc nhƣng áp dụng trên EC. Mô hình này dùng để thiết lập một hay
nhiều khóa quy ƣớc chung giữa hai đối tác A và B.
Các thao tác trao đổi khóa bằng ECDH đƣợc thực hiện nhƣ sau:
• A và B thống nhất các tham số sẽ sử dụng nhƣ : đƣờng cong E, điểm cơ sở P(x, y).
• A chọn một giá trị m ngẫu nhiên, tính và gửi cho B
• B chọn một giá trị n ngẫu nhiên, tính và gửi cho A
• A nhận đƣợc và tính G =
• B nhận đƣợc và tính G =
Giá trị điểm G chính là giá trị bí mật quy ƣớc chung.
Giả sử có một ngƣời C tấn công vào đƣờng truyền và lấy đƣợc các giá trị
thì C cần tìm đƣợc m hoặc n để tìm . Điều này chính là giải
bài toán logarit rời rạc trên EC. Bài toán này đòi hỏi chi phí tính toán tƣơng đƣơng với sử dụng thuật toán vét cạn trên EC.
3.2.4. Lựa chọn đƣờng cong Elliptic phù hợp
Để ECDLP trên E(Fq) là khó giải thì cần lựa chọn E và q thích hợp. Độ an toàn của
Vì thế việc lựa chọn một đƣờng cong elliptic có ảnh hƣởng đến tốc độ, tính hiệu
quả, độ dài khóa và tính an toàn của hệ mật mã trên đƣờng cong này. Dù E, K và điểm
cơ sở G cố định và công khai nhƣng việc chọn các tham số này phù hợp là bƣớc quan trọng nhất.
Có một số phƣơng pháp để lựa chọn các đƣờng cong elliptic. Phƣơng pháp tự nhiên
nhất là chọn ngẫu nhiên. Chọn ngẫu nhiên một đƣờng cong elliptic E trên trƣờng K và
một điểm cơ sở P . K đƣợc chọn và cố định trƣớc. Phƣơng pháp chọn ngẫu nhiên
Koblitz cho các đƣờng cong elliptic trên trƣờng Fq (với q lớn) nhƣ sau:
• Phƣơng pháp chọn ngẫu nhiên Koblitz:
1. Chọn ngẫu nhiên 3 phần tử Fq là x, y,a.
2. Tính ( )
3. Kiểm tra để đảm bảo phƣơng trình = 0 không có
nghiệm kép
4. Nếu điều kiện trên không thỏa mãn quay lại 1.
5. Đặt P = (x, y) và đƣờng cong là đƣờng cong cần chọn.
Tuy nhiên phƣơng pháp này có thể tạo ra đƣờng cong không đảm bảo một số yêu
cầu định trƣớc. Một kỹ thuật cải tiến xây dựng các đƣờng cong với các tính chất cho
trƣớc. Cũng có thể chọn những đƣờng cong để tọa các hệ mã hóa không phụ thuộc vào
bài toán ECDLP, chẳng hạn các hệ elliptic dựa trên RSA. Các hệ mật mã elliptic làm
việc với các nhóm con Cyclic của E với phần tử sinh là điểm P, việc lựa chọn P phù hợp rất quan trọng.
• Chuẩn FIPS 182-2
NIST đã kiến nghị 15 đƣờng cong elliptic đáp ứng mức bảo mật cho chính phủ liên bang Hoa Kì sử dụng. Những đƣờng cong này chia làm 3 loại:
+ Đƣờng cong elliptic trên trƣờng nguyên tố Fp; + Đƣờng cong elliptic trên trƣờng nhị phân ;
+ Đƣờng cong elliptic Koblitz trên trƣờng nhị phân .
Chuẩn đƣờng cong elliptic trên trƣờng nguyên tố có các tham số:
+ p: Bậc của trƣờng nguyên tố Fp
+ S: Xâu sinh để tạo hệ số cho đƣờng cong elliptic + r: đầu ra hàm băm SHA-1
+ a, b: hệ số của ECC; thỏa mãn rb2
= a3 (mod p)
+ h: cofactor + x, y: tọa độ của P
• Một số đƣờng cong elliptic đáp ứng mức bảo mật cho chính phủ Hoa Kỳ
P-192: p = 2192 - 264 – 1, a = -3, h = 1
S = 0x 3045AE6F C8422F64 ED579528 D38120EA E12196D5
r = 0x 3099D2BB BFCB2538 542DCD5F B078B6EF 5F3D6FE2 C745DE65 b = 0x 64210519 E59C80E7 0FA7E9AB 72243049 FEB8DEEC C146B9B1 n = 0x FFFFFFFF FFFFFFFF FFFFFFFF 99DEF836 146BC9B1 B4D22831 x = 0x 188DA80E B0309F6 7CBF20EB 43A18800 F4FF0AFD 82FF1012 y = 0x 07192B95 FFC8DA78 631011ED 6B24CDD5 73F977A1 1E794811
P-224: p = 2224 – 296
, a = -3, h = 1
S = 0x BD713447 99D5C7FC DC45B59F A3B9AB8F 6A948BC5
r = 0x 5B056C7E 11DD68F4 0469EE7F 3C7A7D74 F7D12111 6506D031 218291FB b = 0x B4050A85 0C04B3AB F5413256 5044B0B7 D7BFD8BA 270B3943 2355FFB4
n = 0x FFFFFFFF FFFFFFFF FFFFFFFF FFFF16A2 E0B8F03E 13DD2945 2355FFB4
x = 0x B70E0CBD 6BB4BF7F 321390B9 4A03C1D3 56C21122 343280D6 115C1D21
y = 0x BD376388 B5F723FB 4C22DFE6 CD4375A0 5A074764 44D58199 85007E34
P-256: p = 2256 - 2224 + 2192 + 296 - 1, a = -3, h =1
S = 0x C49D3608 86E70493 6A6678E1 139D26B7 819F7E90
r = 0x 7EFBA166 2985BE94 03CB055C 75D4F7E0 CE8D84A9 C5114ABC AF317768 0104FA0D
b = 0x 5AC635D8 AA3A93E7 B3EBBD55 769886BC 651D06B0 CC53B0F6 3BCE3C3E 27D2604B
n = 0x FFFFFFFF 00000000 FFFFFFFF FFFFFFFF BCE6FAAD A7179E84 F3B9CAC2 FC632551
x = 0x 6B17D1F2 E12C4247 F8BCE6E5 63A440F2 77037D81 2DEB33A0 F4A13945 D898C296
y = 0x 4FE342E2 FE1A7F9B 8EE7EB4A 7C0F9E16 2BCE3357 6B315ECE CBB64068 37BF51F5
P-384: p = 2384 – 2128 – 296
+ 232 – 1, a = -3, h = 1;
S = 0x A335926A A319A27A 1D00896A 6773A482 7ACDAC73
r = 0x 79D1E655 F868F02F FF48DCDE E14151DD B80643C1 406D0CA1 0DFE6FC5 2009540A 495E8042 EA5F744F 6E184667 CC722483
b = 0x B3312FA7 E23EE7E4 988E056B E3F82D19 181D9C6E FE814112 0314088F 5013875A C656398D 8A2ED19D 2A85C8ED D3EC2AEF
n = 0x FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF
x = 0X AA87CA22 BE8B0537 8EB1C71E F320AD74 6E1D3B62 8BA79B98 59F741E0 82542A38 5502F25D BF55296C 3A545E38 72760AB7
y = 0x 3617DE4A 96262C6F 5D9E98BF 9292DC29 F8F41DBD 289A147C E9DA3113 B5F0B8C0 0A60B1CE 1D7E819D 7A431D7C 90EA0E5F
P-521: p = 2521 – 1, a = -3, h = 1
S = 0x D09E8800 291CB853 96CC6717 393284AA A0DA64BA
r = 0x 000000B4 8BFA5F42 0A349495 39D2BDFC 264EEEEB 077688E4 4FBF0AD8 F6D0EDB3 7BD6B533 28100051 8E19F1B9 FFBE0FE9 ED8A3C22 00B8F875 E523868C 70C1E5BF 55BAD637
b = 0x 00000051 953EB9618E1C9A1F 929A21A0 B68540EE A2DA725B 99B315F3 B8B48991 8EF109E1 56193951 EC7E937B 1652C0BD 3BB1BF07 3573DF88 3D2C34F1 EF451FD4 6B503F00
n = 0x 000001FF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF
x = 0x 000000C6 858E06B7 0404E9CD 9E3ECB66 2395B442 9C648139 053FB521 F828AF60 6B4D3DBA A14B5E77 EFE75928 FE1DC127 A2FFA8DE 3348B3C1 856A429B F97E7E31 C2E5BD66
y = 0x 00000118 39296A78 9A3BC004 5C8A5FB4 2C7D1BD9 98F54449 579B4468 17AFBD17 273E662C 97EE7299 5EF42640 C550B901 3FAD0761 353C7086 A272C240 88BE9476 9FD16650
3.3. CHỮ KÝ BỘI MÙ TRÊN ĐƢỜNG CONG ELLIPTIC
Từ năm 1997, các hệ mật trên đƣờng cong elliptic (Elliptic Curve Cryptography –
ECC) thu hút sự quan tâm của các chuyên gia mật mã. Tính bảo mật của hệ thống mã
hóa sử dụng đƣờng cong elliptic dựa trên điểm mấu chốt là độ phức tạp của thuật toán
logarit rời rạc trong hệ thống đại số. Bài toán logarit rời rạc trên đƣờng cong elliptic chƣa có thuật toán nào có thời gian thực hiện nhỏ hơn cấp lũy thừa. Chính vì vậy các hệ mật đƣợc xây dựng trên đƣờng cong Elliptic thực sự làm hài lòng nhiều nhà nghiên cứu
do tính nhỏ gọn của khóa, yêu cầu tính toán không nhiều và đặc biệt là có thể triển
khai trên các hệ thống nhỏ với sức tính toán yếu, nhƣ các thiết bị cầm tay. Đó là những tính chất và ƣu thế vƣợt trội của ECC so với các hệ mật khác.
Các lý thuyết toán học nền tảng của đƣờng cong elliptic đƣợc các nhà khoa học áp
dụng khá hiện quả vào lĩnh vực mã hóa, bảo mật (ECC). Các kết quả nghiên cứu đã
đƣợc sử dụng trong quy trình mã hóa dữ liệu, trao đổi khóa và chữ ký số. Trong chƣơng này tôi xin giới thiệu một số sơ đồ chữ ký số dựa trên đƣờng cong Elliptic
3.3.1. Sơ đồ chữ kýECDSA ECDSA
Để thiết lập sơ đồ chữ ký ECDSA, cần xác định các tham số: lựa chọn đƣờng cong E
trên trƣờng hữu hạn ( ), điểm cơ sở ( ). Một số khuyến nghị khi lựa chọn các tham số:
• Kích thƣớc q của trƣờng: hoặc q = p (p>2) hoặc q = 2m .
• Hai phần tử a, b thuộc xác định phƣơng trình đƣờng cong elliptic:
( ) hoặc ( )
• Hai phần tử và thuộc xác định điểm ( ).
• Bậc n của điểm với và √ .
3.3.1.1. Sinh khóa:
• Chọn giá trị d ngẫu nhiên trong đoạn [2, n-1] làm khóa bí mật
• Tính Q = dG làm khó công khai.
3.3.1.2. Ký trên bản rõ m:
• Chọn giá trị k ngẫu nhiên thỏa mãn .
• Tính ( ).
• Tính ( ) . Nếu , quay lại bƣớc chọn giá trị k.
3.3.1.3. Kiểm tra chữ ký:
• Kiểm tra r và s có trong đoạn [2, n-1] không.
• Tính . • Tính và . • Tính ( ). • Nếu X = O thì phủ nhận chữ ký. Ngƣợc lại tính . • Chữ ký chỉ đƣợc chấp nhận nếu . 3.3.1.4. Chứng minh Nếu chữ ký ( ) trên m là đúng thì ( ) . ( ) ( ) Vì vậy, ( ) , và vì vậy .
3.3.2. Sơ đồ chữ ký mù Harn trên ECC
Năm 1994, Harn đã công bố một sơ đồ chữ ký mù tựa nhƣ sơ đồ ECDSA. Chữ
ký mù là chữ ký thực hiện trên một văn bản mà ngƣời ký hoàn toàn không biết nội
dung. Điều này thực hiện đƣợc vì ngƣời trình ký đã sử dụng một phƣơng pháp nào đó để che dấu nội dung của văn bản gốc để ngƣời ký không biết. Để ngƣời ký yên tâm, ngƣời xin cấp chữ ký phải chứng minh tính hợp lệ của nội dung bị che dấu.
3.3.2.1. Sinh khóa
Chọn các tham số cho đƣờng cong elliptic:
• Chọn số nguyên tố p và số nguyên n.
• Với 2 phần tử của ( ), xác định phƣơng trình của E trên ( )
( trong trƣờng hợp p>3) với .
• Với 2 phần tử và trong ( ) xác định một điểm ( ) trên
( ( )), .
• Giả sử G có bậc là q.
Việc sinh khóa bao gồm:
Chọn một khóa bí mật d, là số nguyên ngẫu nhiên trong [2, q-1].
3.3.2.2. Ký mù
Giả sử Bob yêu cầu Alice ký một văn bản mà là đại diện của văn bản này
( ( ) với H là một hàm băm nào đó.) Giao thức ký đƣợc thực hiện nhƣ sau:
• Alice sinh ra cặp khóa ( ̅ ̅) theo cách sau: Chọn ngẫu nhiên ̅ , - và tính ̅ ̅ ( ̅ ̅ ). Đặt ̅ , rồi gửi và ̅ cho Bob
• Bob chọn các tham số làm mù , -, tính R trên E sao cho
̅ ( ) và tính ( ) và ̅ ( ) . Sau đó gửi ̅ cho Alice ( ̅ là m sau khi bị làm mù).
• Alice tính ( ̅ ) ̅ ( ), rồi gửi cho Bob.
• Bob nhận đƣợc , xóa mù để có chữ ký s trên m bằng cách tính
Cặp ( ) là chữ ký trên m.
3.3.2.3. Chứng minh
Việc xác minh tính hợp lệ của chữ ký Harn đƣợc thực hiện nhƣu sau:
- Tìm một điểm V trên E sao cho ( ) ( )
- Kiểm tra . Nếu đúng thì ( ) là chữ ký hợp lệ.
Để chứng minh giao thức trên thực sự tạo ra chữ ký có tính chất “mù”, chúng ta chỉ ra rằng mỗi ngƣời ký có cặp duy nhất ( ) là tham số làm mù ( , -). Với
̅̅̅ và chữ ký hợp lệ ( ) của m ta có:
( )( ̅ ) ( ) ̅ ( )
Ta phải chứng minh: ̅ . Thật vậy:
̅ ̅ ̅ ̅ ( ̅ ̅ ) =
(( ) ) ( )
3.3.3. Sơ đồ chữ ký số bội trên đƣờng cong Elliptic
Ngày nay chữ ký số [5] có thể phân loại thành hai lớp chính: chữ ký đơn và chữ ký
bội. Chữ ký số đơn đƣợc sử dụng trong trƣờng hợp chỉ một ngƣời có thẳm quyền ký xác
nhận vào một văn bản, trong khi đó chữ ký bội là trƣờng hợp một nhóm ngƣời có thẩm quyền cùng hợp tác ký vào một văn bản. Để thực hiện chữ ký bội trên một đối tƣợng thì
có thể sử dụng n chữ ký cá nhân của mối ngƣời (giả sử nhóm gồm n ngƣời) hoặc sử
dụng chữ ký đại diện cho cả nhóm ngƣời đó. Việc sử dụng n chữ ký cá nhân cho đối
tƣợng sẽ làm cho chữ ký dài, vẫn đề xác thực n chữ ký đơn cũng mất thời gian và phức tạp, không phù hợp với các hệ thống nhỏ, yêu cầu tốc độ xử lý cao.
Năm 2004 Chen [6] đã đƣa ra lƣợc đồ chữ ký bội dựa trên đƣờng cong Elliptic, ý tƣởng chính của lƣợc đồ là kết hợp tính chất khó giải của bài toán logarit rời rạc
trên đƣờng cong elliptic với hàm băm một chiều để đƣa ra chữ ký bội đại diện cho một
nhóm ngƣời hay tổ chức. Chỉ có một chữ ký bội duy nhất đƣợc tạo ra tất cả các thành
viên trong nhóm (các thành viên có vai trò nhƣ nhau) với các khó riêng của từng thành viên, không có khả năng tạo ra chữ ký bội nếu không có đủ số lƣợng thành viên. Chữ ký bội có độ dài không đổi, không phụ thuộc vào số lƣợng ngƣời ký. Chữ ký bội đƣợc xác thực nhờ khóa công khai chung của cả nhóm, việc xác thực đơn giản nhƣ đối với chữ ký đơn. Tuy nhiên Dou Liu và Ping Luo [7] đã chỉ ra rằng sơ đồ của Chen không an toàn nếu nhƣ một thành viên luôn luôn là ngƣời ký cuối cùng của nhóm.
Từ lƣợc đồ do Chen đƣa ra, năm 2010 Hemlal Sahu và Birendra Kumar Sharma [8] đã phát triển lƣợc đồ chữ ký bội cho một nhóm thành viên có vai trò khác nhau và đƣợc xác định thứ tự từ trƣớc, lƣợc đồ này đã khác phục lỗ hổng bảo mật so với lƣợc đồ của Chen, nhƣng lại không đảm bảo thứ tự đã đƣợc định trƣớc.
Những thiếu sót của hai lƣợc đồ trên đã đƣợc Dƣơng Thị Mai Thƣơng và PGS.TS. Trịnh Nhật Tiến [4] khắc phục. Tôi xin đƣợc trình bày ngay sau đây.
3.3.3.1. Khởi tạo tham số công khai
Để thiết lập sơ đồ chữ ký, cần xác định các tham số: lựa chọn đƣờng cong E trên trƣờng hữu hạn ( ), điểm cơ sở ( )
Trong đó: p là số nguyên tố (p>2). Một số khuyến nghị khi lựa chọn các tham số:
• Kích thƣớc q của trƣờng: hoặc q = p hoặc q = 2m .
• Chọn đƣờng cong Elliptic: