Tên đề tài: Ứng dụng thuật toán ECC trong mã hóa dữ liệu truyền nhận trong hệ thống thông tin. Mục tiêu: Hiểu được cách vận hành, sự bảo mật và tiện lợi về mặt tài nguyên của mã hóa ECC so với các hệ mật mã khác. Đối tượng nghiên cứu: Tìm hiểu cơ chế hoạt động của Socket, .NET Remoting, nguyên tắc của thuật toán mã hóa ECC và lập trình C với Winform. Phạm vi nghiên cứu: xây dựng trong mạng LAN (có thể phát triển thêm). Phương pháp thực hiện: sử dụng Visual Studio, các thư viện, lập trình Winform với C. Nội dung thực hiện: ứng dụng thuật toán ECC để mã hóa tin nhắn trực tiếp hoặc file .txt. Kết quả thực hiện: Xây dựng chương trình giúp người dùng gửi các tin nhắn dạng văn bản đến các máy khác trong LAN. Hỗ trợ người dùng gửi tài liệu (file ảnh, .docx,...). Gửi tin nhắn dạng online, offline. Xây dựng chương trình ứng dụng thuật toán mã hóa ECC (tạo các cặp khóa, mã hóa, giải mã,...). Có thể gửi khóa trực tiếp qua tin nhắn, qua file, hoặc qua Mail.
Trang 1
ĐỀ TÀI:
Ứng dụng thuật toán ECC trong mã hóa dữ liệu truyền nhận trong hệ thống thông tin
Trang 3LỜI CẢM ƠN
Trang 4MỤC LỤC
Trang 5DANH MỤC HÌNH ẢNH
Trang 6DANH MỤC BẢNG
Trang 7DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẮT
MAN Metropolitan Area Network
OSI Open Systems Interconnection Reference Model hoặc Open
Systems InterconnectionTCP Transmission Control Protocol
UDP User Datagram Protocol
HTTP HyperText Transfer Protocol
SMTP Simple Mail Transfer Protocol
FTP File Transfer Protocol
POP3 Post Office Protocol (phiên bản 3)
ICMP Internet Control Message Protocol
WHOIS Công cụ tìm kiếm tên miền hoặc chương trình trên Internet
IMAP Internet Message Access Protocol
DES Data Encryption Standard
AES Advanced Encryption Standard
RSA Rivest-Shamir-Adleman (tên các nhà nghiên cứu)
ECC Elliptic Curve Cryptography
Trang 8THÔNG TIN ĐỀ TÀI Tên đề tài: Ứng dụng thuật toán ECC trong mã hóa dữ liệu truyền nhận trong
hệ thống thông tin
Mục tiêu: Hiểu được cách vận hành, sự bảo mật và tiện lợi về mặt tài nguyên
của mã hóa ECC so với các hệ mật mã khác
Đối tượng nghiên cứu: Tìm hiểu cơ chế hoạt động của Socket, .NET
Remoting, nguyên tắc của thuật toán mã hóa ECC và lập trình C# với Winform
Phạm vi nghiên cứu: xây dựng trong mạng LAN (có thể phát triển thêm) Phương pháp thực hiện: sử dụng Visual Studio, các thư viện, lập trình
Trang 9MỞ ĐẦU
Từ xa xưa con người chúng ta đã biết truyền thông, trong một thời đại không
có điện thoại cũng chẳng có thư điện tử, bất kỳ ai muốn đưa thông tin riêng củamình đến một người nào khác ở nơi xa chỉ có một vài cách thô sơ Ví dụ: người
cổ đại thường dùng những hình vẽ, ký hiệu để truyền đạt những thông điệp,người ở thời đại phong kiến thì dùng bồ câu để đưa thư hoặc là viết nó lên mặtgiấy rồi giao phó cho một người mang thư đi Nếu chẳng may người mang thư
đó ngờ là trong thư có những thông tin quý giá, anh ta có thể bán đứng cho kẻthù để kiếm được nhiều tiền hơn là đưa nó đến đúng địa chỉ Chính vì lẽ đónhiều bộ óc có tư duy tiến bộ trong lịch sử đã phát minh ra các phương pháp sửdụng mật mã để giải quyết những thách thức trong việc bảo vệ dữ liệu JujiusCaesar phát minh ra cách viết mật mã được gọi là hộp Caesar, Mary (Nữ hoàngScotland) đã tạo ra mật mã thay thế và gửi đi những thông báo bí mật từ nhà tù,nhà khoa học xuất sắc người Ả Rập Abu Yusuf Ismail al-Kindi đã bảo vệ đượcnhững bí mật của mình bằng một mật mã thay thế tài tình sử dụng nhiều chữ cáikhác nhau…
Ngày nay với sự phát triển mạnh mẽ của công nghệ thông tin, truyền thôngnói chung và Internet nói riêng đã giúp cho việc trao đổi thông tin nhanh chóng,
dễ dàng (E-mail cho phép người ta nhận hay gửi thư ngay trên máy tính củamình, E-business cho phép thực hiện các giao dịch trên mạng, ) Song song với
đó, việc hacker đột nhập và lấy trộm thông tin ngày càng tinh vi và khó pháthiện hơn rất nhiều Chính vì vậy, vấn đề bảo mật ngày càng được chú trọng,thông qua các loại hình mã hóa mà thông tin truyền, nhận được đảm bảo tínhchính xác và an toàn Kỹ thuật mật mã là một trong những giải pháp của an toàntruyền thông Kỹ thuật này có từ ngàn xưa nhưng nó đơn giản, ngày nay khi cómạng máy tính người ta dùng mật mã hiện đại Các nhà khoa học đã phát minh
ra những hệ mật mã nhằm che giấu thông tin cũng như là làm rõ chúng để tránh
sự nhòm ngó của những kẻ cố tình phá hoại như các hệ mật: RSA, Elgamal…
Trang 10mặc dù cũng rất an toàn nhưng có độ dài khoá lớn nên trong một số lĩnh vựckhông thể ứng dụng được.
Chính vì vậy người ta đã phát minh một hệ mật đó là hệ mật trên đường cong Elliptic, hệ mật này được đánh giá là hệ mật có độ bảo mật an toàn cao và
hiệu quả hơn nhiều so với hệ mật công khai khác, nó đã được ứng dụng trênnhiều lĩnh vực và được sử dụng nhiều nơi trên thế giới tuy nhiên còn mới mẻ ở
Việt Nam Trong tương lai gần Hệ mật trên đường cong Elliptic sẽ được sử
dụng một cách phổ biến và thay thế những hệ mật trước nó
Trang 11I TỔNG QUAN VỀ MẬT MÃ HỌC
1 Giới thiệu về an toàn và bảo mật thông tin
Trước đây khi lĩnh vực công nghệ máy tính chưa phát triển, khi nói đến vấn
đề an toàn bảo mật thông tin (Information Security), chúng ta thường hay nghĩđến các biện pháp sơ khai nhằm đảm bảo cho thông tin được trao đổi hay cất giữmột cách an toàn và bí mật
Chẳng hạn như:
- Đóng dấu và ký niêm phong một bức thư
- Dùng mật mã mã hóa thông điệp (phương pháp này thường được sử dụngtrong chính trị và quân sự)
- Lưu giữ tài liệu mật trong các két sắt có khóa
Với sự phát triển mạnh mẽ của công nghệ thông tin, đặt biệt là sự phát triểncủa mạng Internet, ngày càng có nhiều thông tin được lưu giữ trên máy vi tính
và trao đổi với nhau thông qua mạng Internet Chính vì vậy, nhu cầu về an toàn
và bảo mật thông tin trên máy tính thực sự rất cần thiết
Có thể phân loại mô hình an toàn bảo mật thông tin trên máy tính theo haihướng chính như sau:
- Bảo vệ thông tin trong quá trình truyền thông tin trên mạng (NetworkSecurity)
- Bảo vệ hệ thống máy tính, và mạng máy tính, khỏi sự xâm nhập phá hoại
từ bên ngoài (System Security)
Trang 122 Các loại hình tấn công trong quá trình truyền thông tin trên mạng
Bảng 1 1 Các loại hình tấn công truyền thông
Xem trộm thông tin
Trang 13Phát lại thông điệp
(Replay)
3 Yêu cầu của một hệ truyền thông tin an toàn và bảo mật
Bảng 1 2 Yêu cầu cơ bản của hệ thống truyền tin
Tính chứng thực ngăn chặn việc sửa thông điệp, mạo danh,
và phát lại thông điệp.
Tính không từ chối
(Nonrepudiation)
Khi xảy ra hậu quả người nhận thông điệp sẽ có cơ chế để xác định chính xác người gửi, mà người gửi không thể từ chối trách nhiệm.
Ví dụ: chữ ký điện tử.
4 Mật mã học là gì? Tại sau phải cần mật mã học?
Như đã giới thiệu trong Lời mở đầu, nhu cầu sử dụng mật mã đã xuất hiện từ
rất sớm, khi con người biết trao đổi và truyền đưa thông tin cho nhau, đặc biệtkhi các thông tin đó đã được thể hiện dưới hình thức ngôn ngữ, thư từ
Ngày nay, cùng với sự phát triển của máy tính và Internet, các nghiên cứu vàứng dụng của mật mã ngày càng trở nên đa dạng hơn, mở ra nhiều hướng nghiêncứu chuyên sâu vào từng lĩnh vực ứng dụng đặc thù với những đặc trưng riêng.Mật mã học đã trở thành ngành khoa học ứng dụng toán học vào việc biến
đổi thông tin thành một dạng “không thể đọc một cách bình thường” với mục
đích che giấu nội dung, ý nghĩa thông tin cần mã hóa
Trang 14Các ứng dụng mã hóa và bảo mật thông tin đang được sử dụng ngày càngphổ biến hơn trong các lĩnh vực khác nhau trên thế giới, từ các lĩnh vực an ninh,quân sự, quốc phòng…, cho đến các lĩnh vực dân sự như thương mại điện tử,ngân hàng…Đây là một ngành quan trọng và có nhiều ứng dụng trong đời sống
- Tập đích C là tập hữu hạn tất cả các mẩu tin có thể có sau khi mã hóa
- Tập khóa K là tập hữu hạn các khóa có thể được sử dụng
- E và D lần lượt là tập luật mã hóa và giải mã
Khái niệm cần hiểu:
Mã hóa (encryption): Là quá trình chuyển đổi dữ liệu từ dạng có thể đọc
được (plain text) sang dạng không thể đọc được (cipher) đối với những ngườikhông được phép, bằng cách sử dụng một số quy tắc nhất định
Giải mã (decryption): Ngược lại với quá trình mã hóa, giải mã chuyển một
bản tin không thể đọc được về dạng đọc được ban đầu
Khóa (key): là một mẩu thông tin đặc biệt kết hợp với một thuật toán để thi
hành mã hóa và giải mã Có thể sử dụng một khóa duy nhất (mã hóa đối xứng)hoặc một cặp khóa (mã hóa bất đối xứng) để mã hóa và giải mã
Plaintext (bản rõ): Là bản tin hoặc dữ liệu ban đầu có thể đọc được, là đầu
vào (input) của thuật toán mã hóa
Encryption algorithm (thuật toán mã hóa): Thực hiện một số phép thay thế
hoặc chuyển đổi dạng biểu diễn của dữ liệu trên plaintext
Cyphertext (bản mã hóa): Là đầu ra của thuật toán mã hóa, không thể đọc
được, bản mã hóa này phụ thuộc vào thuật toán mã hóa và plaintext
Gọi E , D lần lượt là hàm mã hóa và giải mã với khóa K
P là bản tin ban đầu, C là bản mã hóa
Khi đó E , D thỏa mãn yêu cầu sau:
- C = Ek(P)
- P = Dk(C) = Dk (Ek(P))
1 Hệ thống mã hóa đối xứng
Trang 15Quá trình mã hóa và giải mã một thông điệp trong hệ thống mã hóa đối xứngchỉ sử dụng một mã khóa Tức là, dù mã hóa hay giải mã chỉ sử dụng cùng mộtkhóa Do đó, vấn đề bảo mật thông tin đã mã hóa hoàn toàn phụ thuộc vào việcđôi bên phải giữ bí mật nội dung của khóa đã được sử dụng để mã hóa và giảimã.
Với tốc độ và khả năng xử lý ngày càng được nâng cao của các bộ vi xử lýhiện nay, phương pháp mã hóa chuẩn (Data Encryption Standard – DES) đã trởnên khá lỗi thời Do đó, Viện Tiêu chuẩn và Công nghệ Quốc gia Hoa Kỳ(National Institute of Standards and Technology – NIST) đã quyết định chọnmột chuẩn mã hóa mới với độ an toàn cao nhằm phục vụ nhu cầu bảo mật thôngtin liên lạc của chính phủ Hoa Kỳ cũng như trong các ứng dụng dân sự Thuậttoán Rijndael do Vincent Rijmen và Joan Daeman đã được chính thức chọn trởthành chuẩn mã hóa nâng cao (Advanced Encryption Standard – AES) từ 02tháng 10 năm 2000
2 Hệ thống mã hóa bất đối xứng
Các phương pháp mã hóa khóa công cộng giúp cho việc trao đổi mã khóa trởnên dễ dàng hơn Nội dung của khóa công cộng (public key) không cần phải giữ
bí mật như đối với khóa bí mật trong các phương pháp mã hóa quy ước
Sử dụng khóa công cộng, chúng ta có thể đảm bảo việc lộ thông tin do lộkhóa được giảm thiểu tối đa Trong những năm gần đây, các phương pháp mãhóa khóa công cộng, được sử dụng rất nhiều trong các ứng dụng mã hóa trên thếgiới và có thể xem như đây là phương pháp chuẩn được sử dụng phổ biến nhấttrên Internet, ứng dụng trong việc bảo mật thông tin liên lạc cũng như trong lĩnhvực thương mại điện tử
Các hệ mật khóa công khai có hai chức năng chính: bảo mật và xác thực
Trang 16Hình 1 1 Chức năng bảo mật
Hình 1 2 Chức năng xác thực
Trang 17II MẬT MÃ ĐƯỜNG CONG ELLIPTIC (ECC)
1 Giới thiệu sơ lượt về mã hóa RSA
Phương pháp RSA là một phương pháp mã hóa khóa công khai RSA đượctạo ra bởi ba nhà nghiên cứu Ron Rivest, Adi Shamir và Len Adleman tại họcviện MIT vào năm 1977, và ngày nay đang được sử dụng rộng rãi
Về mặt tổng quát RSA là một phương pháp mã hóa theo khối Trong đó bản
rõ M và bản mã C là các số nguyên từ 0 đến 2i với i số bít của khối Kích thướcthường dùng của i là 1024 bít RSA sử dụng hàm một chiều là vấn đề phân tíchmột số thành thừa số nguyên tố
1 Tạo khóa
Giả sử A và B cần trao đổi thông tin bí mật thông qua một kênh không antoàn Với thuật toán RSA, A đầu tiên cần tạo ra cho mình cặp khóa gồm khóacông khai và khóa bí mật theo các bước sau:
Chọn ngẫu nhiên hai số nguyên tố đủ lớn p q
Tính n = p*q
Tính F(n) = (p-1) (q-1)
Chọn ngẫu nhiên khóa mã hóa e sao cho 1 < e < F(n) và gcd (e, F(n)) =1 (tức
là e và F(n) là hai số nguyên tố cùng nhau)
Tìm khóa giải mã d n thỏa mãn e.d 1 mod F(n)
Công bố khoá công khai {e, n}
Giữ bí mật khóa giải mã riêng {d, n} (các giá trị bí mật p, q bị huỷ bỏ).
Tính M = Cd mod n Như thế là ta đã thu được nguyên bản M
2 Đường cong Elliptic
Chúng ta đã tìm hiểu phương pháp mã hóa RSA và phương pháp trao đổikhóa Diffie-Hellman:
RSA dùng hàm một chiều là phép phân tích một số lớn thành tích hai thừa sốnguyên tố
Diffie-Hellman dùng hàm một chiều là hàm logarit rời rạc
Trong chương này chúng ta tiếp tục tìm hiểu một loại hàm một chiều khácdựa trên số học Elliptic Từ đó chúng ta sẽ xây dựng một phương pháp mã hóa
Trang 18đường cong Elliptic (ECC) và phương pháp trao đổi khóa phiên Hellman.
ECDiffie-1 Giới thiệu
Trong vài thập kỷ gần đây, đường cong Elliptic đóng vai trò cực kỳ quantrọng đối với lý thuyết số và mật mã Mật mã đường cong Elliptic (ECC) đượcgiới thiệu lần đầu vào năm 1991 bởi Neals Koblitz và Victor Miller Nó cungcấp tính an toàn tương đương với các hệ mật khóa công khai truyền thống, trongkhi độ dài khóa nhỏ hơn nhiều lần Điều đó có nghĩa là việc cài đặt ECC sửdụng tài nguyên hệ thống ít hơn, năng lượng tiêu thụ nhỏ hơn Với ưu thế về
độ dài khóa nhỏ, ECC đang được ứng dụng rộng rãi trong nhiều lĩnh vực
2 Một số tiêu chuẩn liên quan đến đường cong Elliptic
Bảng 2 1 Một số tiêu chuẩn đường cong Elliptic
các hệ khóa công khai trong đó có ECDH, ECDSA, ECMQV và ECIES Trong phần phụ lục có cả các thuật toán cơ bản về lý thuyết số liên quan đến hệ mật khóa công khai.
ANSI X9.62 và
X9.63
Các chuẩn này tập trung vào đường cong Elliptic và cụ thể
về ECDSA trong X9.62 và ECDH, ECMQV và ECIES trong X9.63 Các chuẩn này cũng xác định khuôn dạng các
dữ liệu và danh mục các đường cong khuyến cáo sử dụng.
toán DSA algorithm.
SECG Là tiêu chuẩn được biên soạn bởi nhóm các doanh nghiệp
dẫn dắt bởi công ty Certicom, gần như là ánh xạ của các chuẩn ANSI nhưng được tiếp cận trên môi trường Web từ Website http://www.secg.org/
ECIES-KEM).
Cryptographic Message Syntax (CMS)” là khuyến nghị sử dụng thuật toán ECC trong mã hóa thông điệp văn bản.
3 Mã hóa thông tin trong mô hình hệ thống thiết bị
Trang 19Thuật toán ECC (Elliptical Curve Cryptography) là một trong những thuật
toán không đối xứng mạnh nhất cho một độ dài khóa cụ thể, do đó nó đặc biệtphù hợp đối với các ứng dụng bảo mật mà trong đó không gian mạch tích hợp vàcông suất tính toán bị hạn chế, chẳng hạn như PC cards, thẻ thông minh và thiết
bị không dây Bảo mật thuật toán ECC dựa trên độ khó giải thuật toán ECDLP.Với độ dài khóa ECC 160 bit gần như cung cấp cùng một mức độ bảo mậtchống lại các cuộc tấn công tương đương với khóa RSA có độ dài 1024 bit Điều
đó dẫn đến hiệu suất được cải thiện và yêu cầu lưu trữ tốt hơn
Trang 20Bảng 2 2 So sánh kích thước khoá RSA và ECC với cùng mức độ an toàn
Do kích thước khoá nhỏ và khả năng phát sinh khoá rất nhanh nên ECC rấtđược quan tâm để áp dụng cho các ứng dụng trên môi trường giới hạn về thônglượng truyền dữ liệu, giới hạn về khả năng tính toán, khả năng lưu trữ
Trang 21Các hệ thống ECC đã và đang được một số công ty lớn về viễn thông và bảomật trên thế giới quan tâm phát triển Nổi bật trong số đó là Certicom (Canada)kết hợp với Đại học Waterloo đã nghiên cứu và xem ECC như là chiến lược pháttriển bảo mật chính của công ty Certicom cung cấp dịch vụ bảo mật dựa trênECC Ngoài ra, một số công ty khác như Siemens (Đức), Matsushita (Nhật),Thompson (Pháp) cũng nghiên cứu phát triển ECC Mới đây, RSA SecurityLaboratory - phòng thí nghiệm chính của RSA - đã bắt đầu nghiên cứu và đưaECC vào sản phẩm của mình.
Tuy nhiên, ECC vẫn có một số hạn chế nhất định Hạn chế lớn nhất hiện nay
là việc chọn sử dụng các tham số đường cong và điểm quy ước chung như thếnào để thật sự đạt được độ bảo mật cần thiết Hầu hết các đường cong được đưa
ra đều thất bại khi áp dụng vào thực tiễn Do đó hiện nay số lượng đường congthật sự được sử dụng không được phong phú NIST đề xuất một số đường congElliptic Curve đã được kiểm định là an toàn để đưa vào sử dụng thực tế trong tàiliệu FIPS 186-2 Ngoài ra, đối với các tham số mang giá trị nhỏ, mức độ bảo mậtcủa ECC không bằng RSA Đối với một số trường hợp RSA vẫn là lựa chọn tốt
do RSA đã chứng minh được tính ổn định trong một khoảng thời gian khá dài.ECC vẫn còn khá mới mẻ và cần được nghiên cứu nhiều hơn trong tương lai.Tuy nhiên, ECC cung cấp khả năng ứng dụng rất lớn trong lĩnh vực mã hóa khóacông cộng trên các thiết bị di động và smart card Tương lai ECC sẽ được đưavào thực tiễn một cách phổ biến hơn
Trang 223 Cơ sở toán học đường cong ELLIPTIC
1 Cấu trúc đại số
Định nghĩa: Nhóm là một tập hợp G ≠φ cùng với phép toán hai ngôi * trên
G Với a, b ∈ G, a * b = ∈G thoả mãn tính chất sau:
Tính kết hợp: (a * b) * c = a * (b * c) với mọi a, b, c ∈ G
Phần tử đồng nhất: Tồn tại e ∈ G thoả mãn e * a = a *e = a với mọi a ∈ G(e được gọi là phần tử trung hoà)
Phần tử nghịch đảo: với mỗi a ∈ G, tồn tại một phần tử b ∈G thoả mãn b *
a = a * b = e (b là duy nhất và được gọi là phần tử nghịch đảo của a) Và người
ta ký hiệu nghịch đảo của a bởi a-1
2 Đường cong Elliptic trên trường số thực
Đường cong Elliptic là đường cong có dạng:
Trang 23= x3 + ax + b y2 a, b ∈ RTrước khi khảo sát đồ thị của đường cong Elliptic, chúng ta xem lại đườngbậc 3 sau:
y= f(x)= x3 + ax + b Nếu a>0, f(x) đơn điệu tăng
Nếu a<0, f(x) có 4 trường hợp sau:
Đặt:
Từ đó chúng ta có các trường hợp sau đây của đường cong Elliptic (không
sử dụng trường hợp λ=0 vì lúc này đường cong bị gãy):
Trang 24Hình 2 2 Minh họa hai đường cong Elliptic
Trong đường cong Elliptic, chúng ta định nghĩa thêm một điểm O (điểm vôcực)
Gọi E (a, b) là tập các điểm thuộc đường cong y2
= x3 +ax +b cùng với điểm
O Ta định nghĩa phép cộng trên tập các điểm thuộc E (a, b) như sau:
- Điểm O là phần tử đơn vị của phép cộng Như vậy với P E (a, b), P 0 thì P+0 =0 +P= P Trong phần tiếp theo ta giả định P 0 và Q 0
- Phần tử nghịch đảo của điểm P trong phép cộng, ký hiệu – P, là điểm đốixứng với P qua trục hoành
- Với 2 điểm P, Q bất kỳ, kẻ một đường thẳng đi qua P và Q thì sẽ cắtđường cong Elliptic tại một điểm thứ 3 là điểm S Phép cộng P và Q sẽ là
Trang 25
Trong trường hợp P và Q đối xứng qua trục hoành, hay nói cách khác Q = thì đường thẳng nối P, Q sẽ cắt đường cong Elliptic tại vô cực, hay P +( )= 0.Điều này phù hợp với định nghĩa 2.
- Để tính P + P, ta vẽ đường thẳng tiếp tuyến với đường cong Elliptic tại P,đường thẳng này cắt đường cong tại điểm S, lúc đó R= P + P=
Có thể thấy, tập E (a, b) cùng với phép cộng định nghĩa như trên tạo thànhmột nhóm Abelian
Trang 26y22 – y12 = x23 – x13 + ax2 – ax1
(6)Thay (6) vào (5) ta có:
Trang 28Phép nhân một số nguyên k với một điểm P thuộc đường cong elliptic E làđiểm Q được xác định bằng cách cộng k lần điểm P và dĩ nhiên Q ∈ E: k × P =
P + P + P…+ P (k phép cộng điểm P) Vì vậy nếu G là một điểm thuộc đườngcong elliptic E thì với mỗi số nguyên dương k luôn dễ dàng xác định được điểm
Q = k ×G
3 Đường cong Elliptic trên trường Zp (p là số nguyên tố)
Đường cong Elliptic trên trường Zp là đường cong có các hệ số thuộc trường
Zp, đường cong này có dạng:
y2 mod p= (x3+ ax+ b) mod p
Trang 29cũng thuộc đường cong trên vì: (p-y) 2 = p 2 – 2py + y 2 y 2 mod p.
Ví dụ (1, 7) đối xứng với (1, 16) vì 7+16 = 0 mod 23.
Trang 30Hình 2 3 Minh họa tính đối xứng của đường cong Elliptic
Các điểm đối xứng với nhau qua đường y = 11,5 Riêng điểm (4, 0) xem như
là đối xứng với chính nó
Cũng tương tự như nhóm Abel E (a, b) định nghĩa trên đường cong Elliptic
số thực, chúng ta cũng định nghĩa một nhóm Abel Ep (a, b) gồm các điểm củađường cong Elliptic Zp cùng với điểm vô cực O
- Điểm O là phần tử đơn vị của phép cộng
- Phần tử nghịch đảo của điểm P trong phép cộng, ký hiệu – P, là điểm đốixứng với P, như vậy P + (– P) = O
- Với 2 điểm P, Q bất kỳ, phép cộng R= P + Q được xác định bằng côngthức:
Trang 31x32 = ∆2 – x1 – x2 mod p (3)
y3 = ∆(x3 – x1) + y1 mod p ( x3,y3 là tọa độ điểm S ) (4)
Ta cần chứng minh (x3,y3) thuộc đường cong, nghĩa là :
Trang 32
(17, 20) là điểm thuộc đường cong E 23 (1,1).
4 Đường cong Elliptic trên trường GF(2 m )
Đường cong Elliptic trên trường GF(2m) là đường cong có các hệ số thuộctrường GF(2m), đường cong này có dạng hơi khác so với trên Zp:
y 2 + xy= x 3 + ax + b a, b, x, y GF(2 m )
Bây giờ chúng ta sẽ xét tập E2m(a, b) gồm các điểm trên đường cong Ellipticnày cùng với điểm vô cực O
Ví dụ, xét trường GF(2m) với đa thức tối giản là m(x)= x4+ x+ 1 Phần tử sinh
g của trường này có điều kiện g4 =g +1
Bảng 2 5 Bảng các lũy thừa của g với đa thức tối giản là m(x) = x 4 + x+ 1
Trang 33Bảng 2 6 Các điểm thuộc đường cong y 2 + xy = x 3 + gx + 1 (a= g 4 , b= 1)
Tương tự như nhóm Abel Ep (a, b), chúng ta cũng xây dựng một nhóm Abelgồm các điểm của đường cong Elliptic GF(2m) cùng với điểm vô cực O
- Điểm O là phần tử đơn vị của phép cộng P + O = O + P = O
- Phần tử nghịch đảo của điểm P trong phép cộng, ký hiệu – P, là điểm đốixứng với P, ký hiệu P = (xp, yp) thì – P = (xp, xp, + yp)
- Với 2 điểm P, Q bất kỳ (PQ) phép cộng R= P + Q được xác định bằng côngthức:
Trong đó :
5 Đường cong Elliptic trong mã hóa – ECC
Đối với mã hóa đường cong Elliptic, chúng ta xây dựng hàm một chiều nhưsau:
(0,1) (g 5 , g 3 ) (g 9 , g 13 ) (1, g 6 ) (g 5 , g 11 ) (g 10 , g) (1, g 13 ) (g 6 , g 8 ) (g 10 , g 8 ) (g 3 , g 8 ) (g 6 , g 14 ) (g 12 , 0) (g 3 , g 13 ) (g 9 , g 10 ) (g 12 , g 12 )
Trang 34Trong nhóm Abel Ep (a, b) xây dựng từ đường cong Elliptic Zp, xét phươngtrình:
Q = P + P + …+ P=kP (điểm Q là tổng của k điểm P, k < p)
Cho trước k và P, việc tính Q thực hiện dễ dàng Tuy nhiên nếu cho trước P
và Q, việc tìm ra k là công việc khó khăn Đây chính là hàm logarit rời rạc củađường cong Elliptic
Ví dụ: Xét nhóm E23 (9, 17) với phương trình: y2 mod 23= (x3+ 9x+ 7) mod23
Cho điểm P= (16, 5), Q= (4, 5), chúng ta chỉ có cách là vét cạn các giá trịcủa k từ 2 đến p-1 để tìm ra k:
trong lĩnh vực mã hóa là trao đổi khóa EC Diffie-Hellman và mã hóa EC.
1 Trao đổi khóa EC Diffie-Hellman
Trước tiên ta chọn một số nguyên q lớn, với q là số nguyên tố (nếu sử dụngđường cong Elliptic Zp) hoặc q có dạng 2m (nếu chọn đường cong GF(2m)), vàchọn 2 tham số a, b tương ứng để tạo thành nhóm Eq (a, b) Ta gọi G là điểm cơ
sở của nhóm nếu tồn tại một số nguyên n sao cho nG=0 Số nguyên n nhỏ nhấtnhư vậy được gọi là hạng của G
Trong trao đổi khóa EC Diffie-Hellman, ta chọn một điểm G có hạng n lớn,
và giao thức trao đổi khóa giữa Alice và Bob tiến hành như sau:
Alice chọn một số nA < n và giữ bí mật số nA này Sau đó trong Eq (a, b)Alice Tính PA= nAG và gửi cho Bob
Tương tự Bob chọn một số bí mật nB, tính PB và gửi PB cho Alice
Alice tạo khóa phiên bí mật là K= nA PB= nA nBG