Tim hieu thuat toan elgamma

28 925 2
Tim hieu thuat toan elgamma

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Tìm hiểu cài đặt thuật toán mã hóa Elgamal MỤC LỤC Nhóm 01 – CNTT 2014_02 Tìm hiểu cài đặt thuật toán mã hóa Elgamal LỜI NÓI ĐẦU Từ trước công nguyên người phải quan tâm tới việc làm để đảm bảo an toàn bí mật cho tài liệu, văn quan trọng, đặc biệt lĩnh vực quân sự, ngoại giao Ngày với xuất máy tính, tài liệu văn giấy tờ thông tin quan trọng số hóa xử lý máy tính, truyền môi trường mà mặc định không an toàn Do yêu cầu việc có chế, giải pháp để bảo vệ an toàn bí mật thông tin nhạy cảm, quan trọng ngày trở nên cấp thiết Mật mã học ngành khoa học đảm bảo cho mục đích Khó thấy ứng dụng Tin học có ích lại không sử dụng thuật toán mã hóa thông tin Chính nhu cầu cần thiết mã hóa thông tin, nhóm chúng em với giúp đỡ thầy T.S Nguyễn Hữu Tuân tiến hành tìm hiểu hệ mã hóa Elgamal từ tiến hành cài đặt thuật toán mã hóa Elgamal Hệ mã hóa Elgamal biết đến hệ mã hóa sử dụng toán Logarit rời rạc – toán khó chưa có phương pháp giải hiệu Chính độ an toàn khả ứng dụng hệ Elgamal mã hóa thông tin cao phổ biến Chân thành cảm ơn giúp đỡ thầy giúp nhóm em hoàn thành báo cáo Nhóm 1_CNTT 2014_02 Nguyễn Xuân Bách Đào Thị Thân Nhóm 01 – CNTT 2014_02 CHƯƠNG I: TỔNG QUAN VỀ BẢO MẬT THÔNG TIN An toàn bảo mật thông tin mật mã học Trải qua nhiều kỷ hàng loạt giao thức (protocol) chế (mechanism) tạo để đáp ứng nhu cầu an toàn bảo mật thông tin mà truyền tải phương tiện vật lý (giấy, sách, báo …) Thường mục tiêu an toàn bảo mật thông tin đạt đơn dựa vào thuật toán toán học giao thức, mà để đạt điều đòi hỏi cần có kỹ thuật mang tính thủ tục tôn trọng điều luật Chẳng hạn bí mật thư tay phân phát thư có đóng dấu dịch vụ thư tín chấp nhận Tính an toàn mặt vật lý thư hạn chế (nó bị xem trộm) nên để đảm bảo bí mật thư pháp luật đưa qui định: việc xem thư mà không đồng ý chủ nhân người có thẩm quyền phạm pháp bị trừng phạt Đôi mục đích an toàn bảo mật thông tin lại đạt nhờ phương tiện vật lý mang chúng, chẳng hạn tiền giấy đòi hỏi phải in loại mực giấy tốt để không bị làm giả Về mặt ý tưởng việc lưu giữ thông tin nhiều thay đổi đáng kể qua thời gian Ngày xưa thông tin thường lưu vận chuyển giấy tờ, chúng lưu dạng số hóa vận chuyển hệ thống viễn thông hệ thống không dây Tuy nhiên thay đổi đáng kể đến khả chép thay đổi thông tin Người ta tạo hàng ngàn mẩu tin giống phân biệt với gốc Với tài liệu lưu trữ vận chuyển giấy điều khó khăn nhiều Và điều cần thiết xã hội mà thông tin hầu hết lưu trữ vận chuyển phương tiện điện tử phương tiện đảm bảo an toàn bảo mật thông tin độc lập với phương tiện lưu trữ vận chuyển vật lý Phương tiện mật mã học, ngành khoa học có lịch sử lâu đời dựa tảng thuật toán toán học, số học, xác suất môn khoa học khác Khái niệm hệ thống tài sản hệ thống Khái niệm hệ thống: Hệ thống tập hợp máy tính gồm thành phần phấn cứng, phần mềm liệu làm việc tích luỹ qua thời gian Tài sản hệ thống bao gồm: • Phần cứng • Phần mềm • Dữ liệu • Các truyền thông máy tính hệ thống • Môi trường làm việc • Con người Các mối đe doạ hệ thống biện pháp ngăn chặn Có hình thức chủ yếu đe dọa hệ thống: • Phá hoại: kẻ thù phá hỏng thiết bị phần cứng phần mềm hoạt động hệ thống Nhóm 01 – CNTT 2014_02 Page • Sửa đổi: Tài sản hệ thống bị sửa đổi trái phép Điều thường làm cho hệ thống không làm chức Chẳng hạn thay đổi mật khẩu, quyền người dùng hệ thống làm họ truy cập vào hệ thống để làm việc • Can thiệp: Tài sản bị truy cập người thẩm quyền Các truyền thông thực hệ thống bị ngăn chặn, sửa đổi Các đe dọa hệ thống thông tin đến từ nhiều nguồn thực đối tượng khác Chúng ta chia thành loại đối tượng sau: đối tượng từ bên hệ thống (insider), người có quyền truy cập hợp pháp hệ thống, đối tượng bên hệ thống (hacker, cracker), thường đối tượng công qua đường kết nối với hệ thống Internet chẳng hạn, thứ ba phần mềm (chẳng hạn spyware, adware …) chạy hệ thống Các biện pháp ngăn chặn: Thường có biện pháp ngăn chặn: • Điều khiển thông qua phần mềm: dựa vào chế an toàn bảo mật hệ thống (hệ điều hành), thuật toán mật mã học • Điều khiển thông qua phần cứng: chế bảo mật, thuật toán mật mã học cứng hóa để sử dụng • Điều khiển thông qua sách tổ chức: ban hành qui định tổ chức nhằm đảm bảo tính an toàn bảo mật hệ thống Mục tiêu nguyên tắc chung an toàn bảo mật thông tin Ba mục tiêu an toàn bảo mật thông tin: − Tính bí mật: Tài sản hệ thống truy cập người có thẩm quyền Các loại truy cập gồm có: đọc (reading), xem (viewing), in ấn (printing), sử dụng chương trình, hiểu biết tồn đối tượng tổ chức.Tính bí mật bảo vệ nhờ việc kiểm soát truy cập (theo nhiều kiểu khác nhau) nhờ thuật toán mã hóa liệu Kiếm soát truy cập thực với hệ thống phần cứng vật lý Còn liệu công cộng thường phương pháp hiệu phương pháp mật mã học − Tính toàn vẹn liệu: tài sản hệ thống thay đổi người có thẩm quyền − Tính sẵn dùng: tài sản sẵn sàng sử dụng người có thẩm quyền Hai nguyên tắc an toàn bảo mật thông tin: − Việc thẩm định bảo mật phải khó cần tính tới tất tình huống, khả công thực − Tài sản bảo vệ hết gía trị sử dụng nghĩa bí mật Nhóm 01 – CNTT 2014_02 Page CHƯƠNG II TỔNG QUAN VỀ MẬT MÃ HỌC Khái niệm Mật mã học bao gồm hai lĩnh vực: mã hóa (cryptography) thám mã (cryptanalysis-codebreaking) Mã hóa phương pháp để biến thông tin (phim ảnh, văn bản, hình ảnh ) từ định dạng bình thường sang dạng thông tin hiểu phương tiện giải mã - Bản rõ (plaintext or cleartext) Chứa xâu ký tự gốc, thông tin rõ thông tin cần mã hoá để giữ bí mật - Bản mã (ciphertext) Chứa ký tự sau mã hoá, mà nội dung giữ bí mật - Mật mã học (Crytography) Là nghệ thuật khoa học để giữ thông tin an toàn - Sự mã hoá (Encryption) Quá trình che dấu thông tin phương pháp để làm ẩn nội dung bên gọi mã hoá - Sự giải mã (Decryption) Quá trình biến đổi trả lại mã thành rõ gọi giải mã - Quá trình giải mã mã hóa Thành phần hệ thống mật mã - Hệ mật mã : hệ bao gồm thành phần (P, C, K, E, D) thỏa mãn tính chất sau: P (Plaintext) tập hợp hữu hạn rõ C (Ciphertext) tập hợp hữu hạn mã Nhóm 01 – CNTT 2014_02 Page K (Key) tập hợp khoá E (Encrytion) tập hợp qui tắc mã hoá D (Decrytion) tập hợp qui tắc giải mã Quá trình mã hóa tiến hành cách áp dụng hàm toán học E lên thông tin P, vốn biểu diễn dạng số, để trở thành thông tin mã hóa C Quá trình giải mã tiến hành ngược lại: áp dụng hàm D lên thông tin C để thông tin giải mã P Khóa 3.1 Độ dài khóa Độ an toàn thuật toán mã hoá cổ điển phụ thuộc vào hai điều độ dài thuật toán độ dài khoá Nhưng độ dài khoá dễ bị lộ Giả sử độ dài thuật toán lý tưởng, khó khăn lớn lao đạt thực hành Hoàn toàn có nghĩa cách bẻ gãy hệ thống mã hoá trừ cố gắng thử với khoá Nếu khoá dài bits có = 256 khoá Nếu khoá 56 dài 56 bits, có khoá Giả sử siêu máy tính thực triệu phép tính giây, cần tới 2000 năm để tìm khoá thích hợp Nếu khoá dài 64 bits, với máy tính tương tự cần tới xấp xỉ 600,000 năm để tìm khoá số 64 khoá Nếu khoá dài 128 bits, cần tới 10 10 25 năm , 25 vũ trụ tồn cỡ 10 năm Như với 10 năm đủ dài Trước bạn gửi phát minh hệ mã hoá với Kbyte độ dài khoá, bạn nên nhớ nửa khác không phần quan trọng thuật toán phải an toàn nghĩa cách bẻ gãy trừ tìm khóa thích hợp Điều không dễ dàng nhìn thấy được, hệ thống mã hoá nghệ thuật huyền ảo Một điểm quan trọng khác độ an toàn hệ thống mã hoá nên phụ thuộc vào khoá, không nên phụ thuộc vào chi tiết thuật toán Nếu độ dài hệ thống mã hoá tin thực tế kẻ công biết nội dung bên c ủ a thuật toán Nếu bạn tin giữ bí mật nội dung thuật toán, tận dụng độ an toàn hệ thống phân tích lý thuyết sở hữu chung bạn nhầm Và thật ngây thơ nghĩ gỡ tung mã nguồn bạn đảo ngược lại thuật toán Giả sử vài kẻ thám mã biết hết tất chi tiết thuật toán bạn Giả sử họ có nhiều mã, họ mong muốn Giả sử họ có khối lượng rõ công với nhiều liệu cần thiết Thậm chí giả sử họ lựa chọn rõ công Nếu hệ thống mã hoá dư thừa độ an toàn tất mặt, bạn có đủ độ an toàn bạn cần Nhóm 01 – CNTT 2014_02 Page 3.2 Quản lý khóa công khai Trong thực tế, quản lý khoá vấn đề khó an toàn hệ mã hoá Để thiết kế an toàn thuật toán mã hoá việc dễ dàng để tạo lưu trữ khoá bí mật điều khó Kẻ thám mã thường công hai hệ mã hoá đối xứng công khai thông qua hệ quản lý khoá chúng Đối với hệ mã hoá công khai việc quản lý khoá dễ hệ mã hoá đối xứng, có vấn đề riêng Mỗi người có khoá công khai, số người mạng 3.3 Chứng nhận khoá công khai Chứng nhận khoá công khai xác định khoá thuộc đó, quản lý người đáng tin cậy Chứng nhận để sử dụng vào việc cản trở cố gắng thay khoá khoá khác Nó lưu trữ thông tin Bob tên, địa chỉ, viết mà Eva tin tưởng, người thường gọi CA(certifying authority) Bằng cách xác nhận khoá thông tin Bob CA xác nhận thông tin Bob khoá công khai thuộc quyền sở hữu Bob Eva kiểm tra lại dấu hiệu sau cô sử dụng khoá công khai, an toàn cho Bob không khác biết 3.4 Quản lý khóa phân phối Trong vài trường hợp, trung tâm quản lý khoá không làm việc Có lẽ CA (certifying authority) mà Eva Bob tin tưởng Có lẽ họ tin tưởng bạn bè thân thiết họ không tin tưởng Quản lý khoá phân phối, sử dụng chương trình miền công khai, giải vấn đề với người giới thiệu (introducers) Người giới thiệu người dùng khác hệ thống người nhận khoá công khai bạn Các hệ mật mã 4.1 Hệ mật mã đối xứng Thuật toán đối xứng hay gọi thuật toán mã hoá cổ điển Thuật toán có nhiều tên gọi khác thuật toán khoá bí mật, thuật toán khoá đơn giản, thuật toán khoá Là thuật toán mà khoá mã hoá tính toán từ khoá giải mã Trong nhiều trường hợp, khoá mã hoá khoá giải mã giống Thuật toán yêu cầu người gửi người nhận phải thoả thuận khoá trước thông báo gửi đi, khoá phải cất giữ bí mật Độ an toàn thuật toán phụ thuộc vào khoá, để lộ khoá nghĩa người mã hoá giải mã hệ thống mật mã Nhóm 01 – CNTT 2014_02 Page Sự mã hoá giải mã thuật toán đối xứng biểu thị : E K( P ) = C DK( C ) = P K1có thể trùng K2, K1 tính toán từ K2 K2 tính toán từ K1 Ưu điểm: - Xử lý nhanh Nhược điểm: Các phương pháp mã hoá cổ điển đòi hỏi người mã hoá người giải mã phải chung m ộ t khoá Khi khoá phải giữ bí mật tuyệt đối, ta dễ dàng xác định khoá biết khoá Hệ mã hoá đối xứng không bảo vệ an toàn có xác suất cao khoá người gửi bị lộ Trong hệ khoá phải gửi kênh an toàn kẻ địch công kênh phát khoá Vấn đề quản lý phân phối khoá khó khăn phức tạp sử dụng hệ mã hoá cổ điển Người gửi người nhận luôn thông với vấn đề khoá Việc thay đổi khoá khó dễ bị lộ Khuynh hướng cung cấp khoá dài mà phải thay đổi thường xuyên cho người trì tín h an toàn lẫn hiệu chi phí cản trở nhiều tới việc phát triển hệ mật mã cổ điển Thuật toán đối xứng chia làm hai thể loại, mật mã luồng (stream ciphers) mật mã khối (block ciphers) Mật mã luồng mã hóa bit thông điệp mật mã khối gộp số bit lại mật mã hóa chúng đơn vị Cỡ Nhóm 01 – CNTT 2014_02 Page khối dùng thường khối 64 bit Thuật toán tiêu chuẩn mã hóa tân tiến (Advanced Encryption Standard), NIST công nhận tháng 12 năm 2001, sử dụng khối gồm 128 bit 4.2 Hệ mật mã phi đối xứng Vào năm 1970 Diffie Hellman phát minh hệ mã hoá gọi hệ mã hoá phi đối xứng hay hệ mã hoá công khai Thuật toán mã hóa phi đối xứng khác hoàn toàn so với thuật toán mã hóa đối xứng Khóa hệ mã phi đối xứng gửi kênh thông tin không an toàn Chúng thiết kế cho khoá sử dụng vào việc mã ho khác so với khoá giải mã Hơn khoá giải mã tính toán từ khoá mã hoá Chúng gọi với tên hệ thống mã hoá công khai khoá để mã hoá công khai, người sử dụng khoá công khai để mã hoá thông báo, vài người có khoá giải mã giải mã Trong nhiều hệ thống, khoá mã hoá gọi khoá công khai (public key), khoá giải mã thường gọi khoá riêng (private key) K1 không trùng K2 K2 tính toán từ K1 Diffie Hellman xác định rõ điều kiện hệ mã hoá công khai sau : Việc tính toán cặp khoá công khai KB bí mật kB dựa sở điều kiện ban đầu phải thực mộ t cách dễ dàng nghĩa thực thời gian đa thức Người gửi A có khoá công khai người nhận B có tin P cần gửi dễ dàng tạo mã C C = EKB (P) = EB (P) Công việc thời gian đa thức Nhóm 01 – CNTT 2014_02 Page Người nhận B nhận tin mã hóa C với khoá bí mật k B giải mã tin thời gian đa thức P = DkB (C) = DB[EB(M)] Nếu kẻ địch biết khoá công khai KB cố gắng tính toán khoá bí mật chúng phải đương đầu với trường hợp nan giải, trường hợp đòi hỏi nhiều yêu cầu không khả thi thời gian Nếu kẻ địch biết cặp (KB,C) cố gắng tính toán rõ P giải toán khó với số phép thử vô lớn, không khả thi Ưu điểm: - Tính an toàn cao - Có thể gửi khóa kênh không an toàn mà không sợ bị lộ khóa giải mã Nhược điểm: - Tốc độ chậm - Dung lượng dùng cho việc lưu trữ khóa lớn Một số thuật toán mã hóa phi đối xứng • Diffie-Hellman • DSS (Tiêu chuẩn chữ ký số) • ElGamal • Các kỹ thuật Mã hóa đường cong elliptic • Các kỹ thuật Thỏa thuật khóa chứng thực mật • Hệ thống mật mã Paillier • Thuật toán mã hóa RSA (PKCS) Mỗi hệ thống mã hóa có ưu nhược điểm riêng Mã hóa đối xứng xử lí nhanh độ an toàn không cao Mã hóa bất đối xứng xử lí chậm hơn, độ an toàn tính thuân tiện quản lí khóa cao Trong ứng dụng mã hóa tại, người ta thường kết hợp ưu điểm hai loại mã hóa Thám mã Mục tiêu thám mã (phá mã) tìm điểm yếu không an toàn phương thức mật mã hóa Thám mã thực kẻ công ác ý, nhằm làm hỏng hệ thống; người thiết kế hệ thống (hoặc người khác) với ý định đánh giá độ an toàn hệ thống Nhóm 01 – CNTT 2014_02 Page 10 CHƯƠNG III HỆ ELGAMAL Giới thiệu Hệ Elgamal hệ mật mã công khai Taher Elgamal (nhà mật mã học người Ai Cập) đưa vào năm 1985 Hệ Elgamal dựa toán logarit rời rạc Tính an toàn tùy thuộc vào độ phức tạp toán logarit - Hệ Elgamal biến thể sơ đồ phân phối khóa Diffie – Hellman - So với RSA, hệ Elgamal nhiều rắc rối vấn đề quyền sử dụng Mã hóa giải mã hệ Elgamal Ban đầu người ta chọn một số nguyên tố lớn p hai số nguyên tuỳ ý nhỏ * p a (a phần tử nguyên thủy củ a Z P) x (x người nhận x a = y nên bước thành công Bước 6: x = (mj + i) mod (p-1) Kế t quả nà y có thể kiể m chứng từ công thức a i mj- i mod p = ya mod p => a mod p = y mod p => x = (mj - i) mod (p-1) Ví dụ: Với toán người thám mã có khóa công khai Nhóm 01 – CNTT 2014_02 Page 16 mj KP = (p, a, y) = (97, 5, 44) m = [(p-1)1/2]= [(97-1)1/2]= 10 Bước 1: Tính a mj mod p vớ i ≤ j ≤ m-1 Bước 2: Sắp xếp cặp (j, a mj mod p) theo a j(0 ≤ j ≤ m-1) mj mod p và lưu và o danh sá ch L1 10.j mod 97(a 53 93 79 16 72 33 62 85 mj mod p) i Bước 3: Tính ya mod p vớ i ≤ i ≤ m-1 -i mj Bước 4: Sắp xếp cặp (i, ya mod p) theo a mod p và lưu và o danh sá ch L2 i(0 ≤ i ≤ m-1) i i 44.5 mod 97(ya mod p) 44 26 33 68 49 51 61 14 70 59 Bước 5: Tìm hai danh sách L1 L2 xem có tồn cặp (j, a mj mod p) (i, -i mj i ya mod p) nào mà a mod p = ya mod p (tọa độ thứ hai của hai cặp nhau) Nhóm 01 – CNTT 2014_02 Page 17 Dựa vào bảng danh sách L1 có j =6 i=2 a 33 mj i mod p= ya mod p= Bước 6: x = (mj + i) mod (p-1) Kế t quả nà y có thể kiể m chứng từ công thức a i mj- i mod p = ya mod p => a mod p = y mod p => x = (mj - i) mod (p-1) mj Vậy ta có x=(10 x - 2) mod (97-1)= 58.(So sánh với kết toán giải mã x 58) Đánh giá độ an toàn 5.1 Bài toán Logarit rời rạc Logarit rời rạc tiếp nối phép tính lôgarit trường số thực vào nhóm hữu hạn Ta nhắc lại với hai số thực x, y số a>0, a≠1,nếu ax=y x gọi lôgarit số a y, ký hiệu x= logay Logarit rời rạc toán khó (chưa biết thuật toán hiệu nào), toán ngược luỹ thừa rời rạc lại không khó (có thể sử dụng thuật toán bình phương nhân) Ví dụ: Cho p số nguyên tố Xét nhóm nhân số nguyên modulo p: với phép nhân modulo p Nếu ta tính luỹ thừa bậc k số nhóm rút gọn theo modulo p ta số nhóm Quá trình gọi luỹ thừa rời rạc modulo p Chẳng hạn với p=17, lấy a=3, k=4 ta có Lôgarit rời rạc phép tính ngược lại: Biết : tìm k 5.2 Độ an toàn Hệ Elgamal dựa toán logarit rời rạc Tính an toàn tùy thuộc vào độ phức tạp toán logarit Trong toán hệ Elgamal: + p số nguyên tố, a phần tử nguyên thủy Z*p p a cố định + Bài toán logarit rời rạc phát biểu sau: Tìm số mũ x nhất, x 0[...]... tam=1 1 0 tam=a=3 2 0 32 mod 15=9 3 1 92 mod 15=6 4 1 62 mod 15=6 Vậy: am mod N=312 mod 15=6 kq=1 1 1 (1*6) mod 15=6 (6*6) mod 15=6 c) Code chương trình unsigned sodu(unsigned a,unsigned m,unsigned n)/ /Thuat toan luy thua nhanh { unsigned t,tam,kq,dem; dem=0; kq=1; do { t=m%2; if(dem==0) tam=a; else tam=(tam*tam)%n; if (t==1) kq=(kq*tam)%n; m=m/2; dem++; } while(m>0); return kq; } 2.3 Kiểm tra số nguyên

Ngày đăng: 06/06/2016, 15:02

Mục lục

  • CHƯƠNG I: TỔNG QUAN VỀ BẢO MẬT THÔNG TIN

    • 1. An toàn bảo mật thông tin và mật mã học

    • 2. Khái niệm hệ thống và tài sản của hệ thống

    • 3. Các mối đe doạ đối với một hệ thống và các biện pháp ngăn chặn

    • 4. Mục tiêu và nguyên tắc chung của an toàn bảo mật thông tin

    • 2. Thành phần của 1 hệ thống mật mã

    • 3.2. Quản lý khóa công khai

    • 3.3. Chứng nhận khoá công khai

    • 3.4. Quản lý khóa phân phối

    • 4. Các hệ mật mã

      • 4.1. Hệ mật mã đối xứng

      • 4.2. Hệ mật mã phi đối xứng

      • 2. Mã hóa và giải mã hệ Elgamal

      • 4. Thám mã hệ Elgamal

      • 5. Đánh giá độ an toàn

        • 5.1. Bài toán Logarit rời rạc

        • 2. Lập trình

          • 2.1. Thuật toán Ơclit mở rộng (tìm phần tử nghịch đảo)

          • 2.2. Thuật toán lũy thừa nhanh

          • 2.3. Kiểm tra số nguyên tố

          • 2.4. Tạo khóa công khai

          • 2.7. Chương trình mã hóa và giải mã Elgamal

          • TÀI LIỆU THAM KHẢO

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan