1. Trang chủ
  2. » Luận Văn - Báo Cáo

đồ án ký thuật điện điện tử mô phỏng chương trình chữ kí số Elgamal trên văn bản điện tử

13 405 1

Đ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

Cấu trúc

  • mở đầu

  • I. Bài toán Logarithm rời rạc trong Zp

    • Chương III : mô phỏng chương trình chữ kí số

Nội dung

mở đầu Trong mật mã vấn đề bảo mật luôn đi đôi với vấn đề xác thực thông tin, đặc biệt trong hệ thống mã khoá công khai vấn đề xác thực là vô cùng quan trọng. Để giải quyết được vấn đề xác thực người ta đưa ra một cách vừa đơn giản vừa hiệu quả là sử dụng chữ kí số. Việc sử dụng chữ kí số ngày càng có nhiều ứng dụng trong thực tế, không chỉ giới hạn trong Ngành Công Nghệ Thông Tin , Ngành Mật Mã mà còn được áp dụng trong một số lĩnh vực khác như trong lĩnh vực Ngân Hàng để xác thực người gửỉ, người nhận, lĩnh vực Viễn thông để sử dụng các thẻ thông minh. Với mật mã khoá công khai việc tạo ra chữ kí số và ứng dụng vào các tài liệu, các văn bản điện tử là vô cùng quan trọng. Chữ kí thường ( Chữ kí viết tay ) thì có thể giả mạo được , vậy thì chữ kí số phải đảm bảo những yêu cầu gì để có thể tạo cơ sở pháp lý trong thời đại Thông tin – Tin học hoá. Chữ kí số phải có những tính năng sau : 1. Người nhận văn bản đã kí phải có thể xác minh được bất kì chữ kí hợp lệ nào của người gửi. 2. Chữ kí không thể giả mạo được 3. Người đã kí thông báo thì không thể từ chối phủ nhận nó về sau được Bùi Lê Trung – Líp CT96B 1 Mục đích của luận văn là giới thiệu về “ Sơ đồ chữ kí số Elgamal “ , đây là một trong những sơ đồ mạnh vào bậc nhất hiện nay, và đã được nhiều nước trên thế giới ứng dụng , đặc biệt là tại Mỹ đã có bản cải tiến của sơ đồ này và đã được Viện tiêu chuẩn và Công nghệ quốc gia Mỹ (NIST) chấp nhận làm chuẩn chữ kí số . Điểm mạnh và an toàn của sơ đồ chữ kí số Elgamal là dựa trên tính khó giải của bài toán tìm Logarithm rời rạc trên trường hữu hạn Z p . CHƯƠNG I : GIỚI THIỆU SƠ ĐỒ CHỮ KÍ SỐ Thông thường chữ kí viết tay trên các văn bản , trên các tài liệu hay trên các hợp đồng kinh tế v.v thì được dùng để xác nhận người kí nó . Sơ đồ chữ kí ( hay còn gọi là chữ kí số ) là phương pháp kí một bức điện lưu dưới dạng điện tử . Chẳng hạn một bức điện có chữ kí được truyền trên mạng máy tính Một sơ đồ chữ kí số thường chứa hai thành phần : Thuật toán kí và thuật toán xác minh . Người A có thể kí bức điện x dùng thuật Bùi Lê Trung – Líp CT96B 2 toán kí an toàn . Chữ kí Sig(x) nhận được có thể kiểm tra bằng thuật toán xác minh công khai Ver . Khi cho trước cặp (x,y) thuật toán xác minh cho giá trị TRUE hay FALSE tuỳ thuộc vào việc chữ kí được xác thực như thế nào . Định nghĩa hình thức của chữ kí số Một sơ đồ chữ kí số là bộ 5 ( P,A,K,S,V) thoả mãn các điều kiện sau : 1. P : là tập hữu hạn các bức điện có thể. 2. A : là tập hữu hạn các chữ kí có thể . 3. K : không gian khoá là tập hữu hạn các khoá có thể 4.Với mỗi K thuộc K tồn tại một thuật toán kí Sig K ∈ S và một thuật toán xác minh Ver K ∈ V . Mỗi Sig K : P -> A và Ver K :P x A -> { TRUE ,FALSE } là những hàm sao cho mỗi bức điện x ∈ P và mỗi bức điện y ∈ A thoả mãn phương trình sau đây TRUE nếu y= Sig(x) Ver (x,y) = FALSE nếu y #Sig(x) Với mỗi K ∈ K , hàm Sig K và Ver K là các hàm thời gian đa thức . Ver K sẽ là hàm công khai còn Sig K là hàm mật . Ta gọi Alice là người gửi còn Bob là người nhận . Không thể dễ dàng tính toán để giả mạo chữ kí của Bob trên bức điện x . Nghĩa là với x cho Bùi Lê Trung – Líp CT96B 3 trước , chỉ có Bob mới có thể tính được chữ kí y để Ver (x,y) = True . CHƯƠNG II : SƠ ĐỒ CHỮ KÍ ELGAMAL Sơ đồ chữ kí Elgamal đã từng được giới thiệu vào năm 1985 ở Mỹ. Bản cải tiến của sơ đồ này đã được Viện Tiêu Chuẩn và Công Nghệ Quốc Gia Mỹ (NIST) chấp nhận làm chuẩn chữ kí số. Sơ đồ chữ kí Elgamal dựa trên tính khó giải của bài toán tìm Logarithm rời rạc trên trường hữu hạn .Trước hết ta hãy làm quen với bài toán Logarithm rời rạc trên trường hữu hạn Z p I. Bài toán Logarithm rời rạc trong Z p Chóng ta sẽ bắt đầu bằng việc mô tả bài toán này khi thiết lập một trường hữu hạn Z p , p là số nguyên tố (Nhóm nhân Z p * là nhóm Cyclic và phần tử sinh của Z p * được gọi là phần tử nguyên thuỷ) . Bài toán Logarithm rời rạc trong Z p là đối tượng trong nhiều công trình nghiên cứu , và được xem là bài toán khó nếu p được chọn cẩn thận. Cụ thể là không có một thuật toán thời gian đa thức nào cho bài toán Logarithm rời rạc . Để gây khó khăn cho các phương pháp tấn công đã biết , p phải có Ýt nhất 150 chữ số thập phân ( ≈ 500 bít ) và (p -1) phải có Ýt nhất một thừa số nguyên tố lớn , tốt nhất p có dạng p = 2q + 1 với q cũng là nguyên tố. Số nguyên tố p dạng này gọi là số nguyên tố mạnh ( String – Prime ) đối với hệ Elgamal nói riêng và cho Bùi Lê Trung – Líp CT96B 4 những hệ mà độ an toàn dựa vào tính khó giải của bài toán Logarithm rời rạc nói chung . Lợi thế của bài toán Logarithm rời rạc trong xây dựng sơ đồ chữ kí là khó tìm được các Logarithm rời rạc, song bài toán ngược lấy luỹ thừa lại có thể tính toán hiệu quả theo thuật toán bình phương và nhân . Nói cách khác , luỹ thừa theo modulo p là hàm một chiều với các số nguyên tố p thích hợp. Bài toán Logarithm rời rạc trên trường hữu hạn Zp Đặc trưng của bài toán : I= ( p, α , β ) trong đó p là số nguyên tố lẻ , α ∈ Z p là phần tử nguyên thuỷ , β∈ Z p * , tìm một số nguyên duy nhất a để : 0 ≤ a ≤ p-2 Sao cho : α a ≡ β (mod p) Ta sẽ xác định số nguyên a bằng Log α β ( mod p) được gọi là Logarit cơ số α của β .  II. Sơ đồ chữ kí số Elgamal . Sơ đồ Elgamal được thiết kế với mục đích dành riêng cho chữ kí số , điểm mạnh của nó là cùng số nguyên tố p trong cùng một sơ đồ thì với k là ngẫu nhiên nên ta có thể có nhiều chữ kí số, không tất định giống như hệ thống mã khoá công khai Elgamal, ở sơ đồ chữ kí RSA ta chỉ thấy trên cùng một sơ đồ với cùng một số nguyên tố p thì ta chỉ có một chữ kí số. Điều này có nghĩa là có nhiều chữ kí hợp Bùi Lê Trung – Líp CT96B 5 lệ trên bức điện cho trước bất kì .Thuật toán xác minh phải có khả năng chấp nhận bất kì chữ kí hợp lệ nào khi xác thực chữ kí đó. Sơ đồ chữ kí Elgamal Cho p là số nguyên tố sao cho bài toán Logarithm rời rạc trên Z p là khó và giả sử α ∈ Z p * là phần tử nguyên thuỷ Cho p = Z p * , A=Z p * × Z p-1 , và kí hiệu : K={(p, α ,a, β ): β ≡α a (mod p) } Giá trị p, α , β là công khai ,còn a là mật Với K=(p, α ,a, β ) và với mét số ngẫu nhiên (mật) k ∈ Z p-1 * Định nghĩa : Sig k (x,k) = ( γ , δ ) . trong đó γ = α k mod p và δ = (x-a γ )k -1 mod (p-1). Với x, γ ∈ Z p * và δ ∈ Z p-1 ta định nghĩa Ver(x,y, δ ) = True ↔ β γ γ δ ≡α x (mod p).  Nếu chữ kí được thiết lập đúng thì xác minh sẽ thành công vì : β γ γ δ ≡ α a γ α k δ (mod p) ≡ α x (mod p ). Ở đây ta dùng hệ thức : a γ + k δ ≡ x (mod p-1). Bob tính chữ kí bằng cách dùng cả giá trị mật a (là một phần của khoá ) lẫn số ngẫu nhiên mật k ( dùng để kí lên bức điện x ). Việc xác minh có thể thực hiện duy nhất bằng thông tin công khai. Ta xét một ví dụ sau : Bùi Lê Trung – Líp CT96B 6 Giả sử : Cho p =467 , α=2 , a=127 khi đó: β = α a mod p = 2 127 mod 467 = 132. Nếu Bob muốn kí lên bức điện x = 100 và chọn số ngẫu nhiên k = 213 ( chó ý là USCLN(213,466) =1 và 213 -1 mod 466 =431 ). Khi đó : γ = 2 213 mod 467 =29 và δ = (100 – 127 × 29 ) 431 mod 466 = 51 Bất kì ai cũng có thể xác minh chữ kí này bằng cách kiểm tra : 132 29 29 51 ≡ 189 (mod 467 ) và 2 100 ≡ 189 (mod 467 ) Vì thế chữ kí là hợp lệ . Ta xét độ mật của sơ đồ chữ kí Elgamal. Giả sử ,Oscar thử giả mạo chữ kí trên bức điện x cho trước mà không biết a . Nếu Oscar chọn γ và sau đó thử tìm giá trị δ tương ứng .Anh ta phải tính Logarithm rời rạc Log γ α x β - γ .Mặt khác , nếu đầu tiên anh ta chọn δ và sau đó thử tìm γ và thử giải phương trình : β γ γ δ ≡ α x ( mod p ) . Bùi Lê Trung – Líp CT96B 7 Để tìm γ . Đây là bài toán chưa có lời giải nào , tuy nhiên ,dường như nó chưa được gắn với đến bài toán đã nghiên cứu kĩ nào nên vẫn còn khả năng có cách nào đó để tính δ và γ đồng thời để (δ , γ ) là một chữ kí . Hiện thời không ai tìm được cách giải song cũng không ai khẳng định được rằng nó không thể giải được Nếu Oscar chọn γ và δ và sau đó thử giải tìm x , anh ta sẽ phải đối mặt với bài toán Logarithm rời rạc , tức bài toán tính Log α β γ γ δ . Vì thế Oscar không thể kí một bức điện ngẫu nhiên bằng biện pháp này . Cuối cùng , ta sẽ nêu cách có thể phá được sơ đồ này nếu không áp dụng nó một cách cẩn thận. Trước hết , giá trị k ngẫu nhiên được dùng để tính chữ kí phải được giữ kín không được để lộ . Vì nếu k bị lộ , khá đơn giản để tính : a = (x- k γ )δ -1 mod ( p –1 ). Dĩ nhiên , một khi a bị lộ thì hệ thống bị phá và Oscar có thể dễ dàng giả mạo chữ kí . Một kiểu dùng sai sơ đồ nữa là dùng cùng giá trị k để kí hai bức điện khác nhau . Điều này cũng tạo thuận lợi cho Oscar tính a và phá hệ thống. Sau đây là cách thực hiện . Giả sử ( γ,δ 1 ) là chữ kí trên x 1 và ( γ,δ2 ) là chữ kí trên x 2 . Khi đó ta có : β γ γ δ 1 ≡ α x1 (mod p ) và β γ γ δ 2 ≡ α x2 ( mod p ) Bùi Lê Trung – Líp CT96B 8 Như vậy : α x1 x2 ≡ γ δ 1 δ 2 ( mod p ). Nếu viết γ = αk ta nhận được phương trình tìm k chưa biết sau: α x1 x2 ≡ α k( δ 1- δ 2 ) ( mod p ). tương đương với phương trình : x 1 - x 2 ≡ k (δ 1 -δ 2 ) (mod p-1). Bây giờ giả sử d = USCLN(δ 1 -δ 2 ,p –1). Vì d | ( p –1) và d | (δ 1 -δ 2 ) nên suy ra d | (x 1 -x 2 ). Ta định nghĩa : x’ = (x 1 -x 2 )/d ; δ’ = ( δ 1 -δ 2 ) / d ; p’ = ( p-1 ) / d Khi đó đồng dư thức trở thành : x’ ≡ k δ’ ( mod p’ ) Vì USCLN (δ’,p’ ) =1 , nên ta có thể tính : ε = ( δ’ ) –1 mod p’ Khi đó giá trị k xác định theo modulo p’ sẽ là : k = x’ ε mod p’ Phương trình này cho d giá trị có thể của k : k = x’ ε + i p’ mod p với i nào đó , 0 ≤ i ≤ d-1 . Trong đó d giá trị có thể này có thể xác định được một giá trị đúng duy nhất qua việc kiểm tra điều kiện : γ ≡ α k ( mod p ) Bùi Lê Trung – Líp CT96B 9 Chương III : mô phỏng chương trình chữ kí số ELGAMAL TRÊN VĂN BẢN ĐIỆN TỬ Như ta đã biết một sơ đồ chữ kí số thường chứa 2 thành phần đó là thuật toán ký và thuật toán xác minh . Trong chương này em xin trình bày về hàm Hash đơn giản là hàm tóm lược văn bản và ký số lên file văn bản , nhằm bảo toàn tính nguyên vẹn của văn bản . I. Hàm HASH và việc tóm lược thông báo. Một vấn đề đặt ra là ta không nên áp sơ đồ ký số vào một thông báo dài . Nhưng thông báo thì phải được kí , mâu thuẫn này có thể giải quyết được bằng cách sử dụng hàm Hash , vì hàm Hash là một công cụ tóm lược đặc trưng của thông báo rất an toàn và hữu hiệu . Với một thông báo có độ dài M bất kỳ . Hàm Hash cho ra giá trị tóm lược thông báo có độ dài không đổi, nói chung giá trị tóm lược thông báo có độ dài nhỏ hơn thông báo M rất nhiều . Chẳng hạn | H(M) | = 128 bít hoặc | H(M) | =160 bít trong khi đó thông báo có độ dài cỡ Mega byte hay lớn hơn. Do vậy đặc tính cơ bản của hàm Hash là đưa ra một giá trị đại diện của thông báo M rất ngắn so với thông báo . Sau khi đã tóm lược thông báo M được một tóm lược H(M) người ta dùng chữ ký số áp vào H(M) . Thông báo M cùng với tóm H(M) đã được ký sẽ được gói trọn trong một thông báo và được mã hoá theo cách thông thường để truyền đi. Người nhận được thông Bùi Lê Trung – Líp CT96B 10 [...]... dùng chương trình ký cùng với phần tóm lược để ký lên văn bản đã nhập Cuối cùng sẽ ghi toàn bộ văn bản và chữ kí số lên file ký -Đầu tiên ta mở file văn bản cần kiểm tra chữ ký sè , sau đó ta lại dùng hàm Hash để tóm lược lại văn bản, sau đó đưa kết quả vào để kiểm tra chữ kí trên văn bản Bùi Lê Trung – Líp CT96B 12 -Quá trình kí và kiểm tra chữ kí thể hiện qua 2 sơ đồ sau: Sơ đồ quá trình kí lên văn. ..báo có thể chứng thực chữ ký tóm lược H(M) sau đó dùng hàm Hash tính lại tóm lược với thông báo vừa nhận được và so sánh kết quả Khi đó cùng một lúc có thể xác thực được người gửi và cả sự nguyên vẹn của thông báo M II Mô tả chương trình chữ kí số Elgamal trên một file văn bản bất kỳ M -Đầu tiên ta mở file văn bản (M) cần kí , sau đó dùng hàm Hash để tóm lược lại văn bản ta được H(M) Hàm Hash... H(M) Hàm Hash sau đây sẽ sử dụng là ta sẽ chia văn bản M ra làm nhiều khối , mỗi khối là 40 byte Sau đó ta sẽ đọc từng 40 byte văn bản của từng khối gán bằng 1 byte mã Nếu khối văn bản cuối cùng không đủ 40 byte thì ta sẽ cho đọc riêng số lượng byte đó thành 1 byte mã Đoạn chương trình sau được viết bằng Pascal mô tả một trong những cách tóm lược văn bản qua hàm Hash procedure tom_luoc(st:ten_file);... trên văn bản Bùi Lê Trung – Líp CT96B 12 -Quá trình kí và kiểm tra chữ kí thể hiện qua 2 sơ đồ sau: Sơ đồ quá trình kí lên văn bản M: M Tãm lîc M Ch¬ng Tr×nh ký sè M C«ng Khai Ch÷ ký 1 Ch÷ ký 2 Sơ đồ quá trình kiểm tra chữ ký trên văn bản M: M Tãm lîc M C«ng Khai Ch÷ Ký 1 Ch÷ Ký 2 Bùi Lê Trung – Líp CT96B Ch¬ng tr×nh KiÓm Tra 13 . CT96B 9 Chương III : mô phỏng chương trình chữ kí số ELGAMAL TRÊN VĂN BẢN ĐIỆN TỬ Như ta đã biết một sơ đồ chữ kí số thường chứa 2 thành phần đó là thuật toán ký và thuật toán xác minh . Trong chương. nhận người kí nó . Sơ đồ chữ kí ( hay còn gọi là chữ kí số ) là phương pháp kí một bức điện lưu dưới dạng điện tử . Chẳng hạn một bức điện có chữ kí được truyền trên mạng máy tính Một sơ đồ chữ kí số. được, ta dùng chương trình ký cùng với phần tóm lược để ký lên văn bản đã nhập . Cuối cùng sẽ ghi toàn bộ văn bản và chữ kí số lên file ký . -Đầu tiên ta mở file văn bản cần kiểm tra chữ ký sè , sau

Ngày đăng: 11/05/2015, 21:10

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w