Professional Documents
Culture Documents
Slide
Slide
1.Alice sinh ngẫu nhiên 1 5.Khóa công khai của Alice là, Alice tính
số nguyên dương khóa bí mật chia sẻ
K = x Khóa công khai của Bob là Bob
tinh khóa bí mật chia sẻ K = X
Alice và Bob có khả năng tính toán độc lập được khóa K chia sẻ bởi:
K = x = x (x G) = X
03 Thuật toán chữ ký điện tử ECDSA
Input: Đường cong Elliptic với tham số T (p, a, b, G, n, h) hoặc T (m, f (x), a, b, G,
nh), khóa bí mậtk và thông điệp M
Sinh ngẫu nhiên d (0 < d < n). Tính giá trị s = ( (e +k x r ) x ) mod
Tính điểm = x G n. Nếu s = 0, quay về bước 2
Output: Chữ ký
điện tử của M
Tính giá trị băm của thông Chữ ký điện tử thông điệp M là
điệp M (s)
C. ƯU ĐIỂM
ELIPTICS
01 Mô hình mã hóa Eliptics
• Thuật toán mã hóa và giải mã của mô hình ECIES được đề xuất bởi 2 nhà khoa học
Bellare và Roga vay, và là một biến thể của hệ mật mã hóa công khai ElGamal,
ECIES đã được chuẩn hóa bởi chuẩn ANSI X9.63 và ISO / IEC 15946 3.
KDF (Key Derivation Function): Là hàm sinh khóa (k1, k2) từ điểm R và hoành độ x,
của điểm Z.
ENC: Là 1 hàm mã hóa khóa đối xứng. Ví dụ như AES.
MAC: Hàm sinh mã xác thực thông báo. Ví dụ HMAC.
03 Ưu điểm mã hóa Eliptics
Bước 1: Bob và Alice đều tự chọn cho mình 1 màu bí mật, không ai ngoài
chính bản thân họ biết về màu đó. Ngoài môi trường mạng Internet công
khai thì có sẵn 1 màu, công khai, và ai cũng biết màu đó là gì
01 Giao thức Diffie-Hellman
Bước 2: Alice và Bob trộn màu công khai đã biết chung (màu vàng) với
màu bí mật riêng của mỗi người.
01 Giao thức Diffie-Hellman
Bước 3: Bob và Alice đã sẵn sàng cho việc thỏa thuận khóa. Họ sẽ gửi màu
vừa trộn được ở Bước 2 cho nhau qua môi trường Internet, người thứ 3 cũng
có thể nhâ ̣n được màu này nhưng không ảnh hưởng tới tính bí mâ ̣t giữa Bob và
Alice.
01 Giao thức Diffie-Hellman
Bước 4: Mỗi người sẽ trộn màu bí mật riêng ban đầu của mình, với màu
vừa nhận được khi họ trao đổi với nhau ở bước 3. Và màu trộn ra cuối
cùng này chính là hỗn hợp màu chung được tạo thành từ 3 màu
02 Trao đổi khóa Diffie-Hellman trong ECC
• Hai bên A và B cần tạo khóa phiên bí mật trao đổi trong một kênh
truyền công khai, hai bên cùng thỏa thuận điểm cơ sở P trên E.
• Bên A tạo khóa bí mật dA và gửi giá trị dAP cho bên B.
• bên B tạo khóa bí mật dB nhân với P sau đó gửi lại cho A. Khi đó,
khóa phiên của bên A sẽ là KA = dAdBP, và của bên B sẽ là KB = dBdAP.
• KA = KB, khóa này chỉ riêng hai bên A và B có thể tính được.
02 Trao đổi khóa Diffie-Hellman trong ECC
• Để tìm được khóa chia sẻ KA hoặc KB, hacker buộc phải tìm được cả 2
khóa bí mật dA,dB trong khi chỉ có thể bắt được thông tin trên đường
truyền là dAP và dBP, khi biết P, hacker buộc phải giải bài toán
Logarithm rời rạc.
• dA = logP (dAP) và dB = logP (dBP) và đây là 2 bài toán khó không giải
được trong thời gian đa thức
02 Trao đổi khóa Diffie-Hellman trong ECC
Minh họa sử dụng python với thư viê ̣n đường cong elliptic(ECPy) :
• Đường cong sử dụng: secp256k1
• Khóa công khai: điểm cơ sở G của đường cong
• Khóa bí mật của Alice: số nguyên A =3
• Khóa bí mật của Bob: số nguyên B =7
02 Trao đổi khóa Diffie-Hellman trong ECC
Code:
02 Trao đổi khóa Diffie-Hellman trong ECC
Kết quả:
• Điểm A_BG nằm trên đường
cong E rồi, sau đó có thể sử
dụng tọa độ của điểm này để
thực hiện các thuật toán mã
hóa dựa trên đường cong
Elliptic.
• Do tính chất của đường cong
Elliptic. Để tìm được khóa bí
mâ ̣t chung giữa Alice và Bob,
người thứ 3 buộc phải tìm
được khóa bí mật của 2 người,
bằng cách giải 2 bài toán
logarithm rời rạc.
E. ỨNG DỤNG CỦA ECC
TRONG BITCOIN
01 Bảo mật chữ kí số trong bitcoin
3. Tìm r: 4. Tìm s:
r = x mod n s = (M + r * SK) / a mod n
r = 62 mod 79 s = (17 + 62 * 2) / 3 mod 79
r = 62 s = (17 + 124) / 3 mod 79
s = 141/3 mod 79
s = 47 mod 79
s = 47
01 Bảo mật chữ kí số trong bitcoin