Hotline: 024.62511017

024.62511081

  Trang chủ   Sản phẩm   Phần mềm Dành cho nhà trường   Phần mềm Hỗ trợ học tập   Kho phần mềm   Liên hệ   Đăng nhập | Đăng ký

Tìm kiếm

School@net
 
Xem bài viết theo các chủ đề hiện có
  • Hoạt động của công ty (726 bài viết)
  • Hỗ trợ khách hàng (498 bài viết)
  • Thông tin tuyển dụng (57 bài viết)
  • Thông tin khuyến mại (80 bài viết)
  • Sản phẩm mới (216 bài viết)
  • Dành cho Giáo viên (549 bài viết)
  • Lập trình Scratch (3 bài viết)
  • Mô hình & Giải pháp (156 bài viết)
  • IQB và mô hình Ngân hàng đề kiểm tra (127 bài viết)
  • TKB và bài toán xếp Thời khóa biểu (242 bài viết)
  • Học tiếng Việt (183 bài viết)
  • Download - Archive- Update (289 bài viết)
  • Các Website hữu ích (70 bài viết)
  • Cùng học (92 bài viết)
  • Learning Math: Tin học hỗ trợ học Toán trong nhà trường (78 bài viết)
  • School@net 15 năm (154 bài viết)
  • Mỗi ngày một phần mềm (7 bài viết)
  • Dành cho cha mẹ học sinh (124 bài viết)
  • Khám phá phần mềm (122 bài viết)
  • GeoMath: Giải pháp hỗ trợ học dạy môn Toán trong trường phổ thông (36 bài viết)
  • Phần mềm cho em (13 bài viết)
  • ĐỐ VUI - THƯ GIÃN (363 bài viết)
  • Các vấn đề giáo dục (1210 bài viết)
  • Bài học trực tuyến (1037 bài viết)
  • Hoàng Sa - Trường Sa (17 bài viết)
  • Vui học đường (275 bài viết)
  • Tin học và Toán học (220 bài viết)
  • Truyện cổ tích - Truyện thiếu nhi (180 bài viết)
  • Việt Nam - 4000 năm lịch sử (97 bài viết)
  • Xem toàn bộ bài viết (8223 bài viết)
  •  
    Đăng nhập/Đăng ký
    Bí danh
    Mật khẩu
    Mã kiểm traMã kiểm tra
    Lặp lại mã kiểm tra
    Ghi nhớ
     
    Quên mật khẩu | Đăng ký mới
     
    Thành viên có mặt
    Khách: 5
    Thành viên: 0
    Tổng cộng: 5
     
    Số người truy cập
    Hiện đã có 89606998 lượt người đến thăm trang Web của chúng tôi.

    Giới thiệu một thuật toán tính ứng dụng đề cài đặt hệ bảo mật RSA

    Ngày gửi bài: 06/06/2007
    Số lượt đọc: 3525

    I. Khái niệm mã hóa dữ liệu và giải mã
    Mã hóa dữ liệu là tiến trình che dấu dữ liệu thật (plaintext), nghĩa là chuyển dữ liệu thật thành dữ liệu không có ý nghĩa hoặc có ý nghĩa khác xa với dữ liệu thật. Tiến trình đó gọi là mã hóa (encrytion). Kết quả của tiến trình gọi là bản mã (ciphertext). Từ “encrytion” được tạo ra từ “cryptography” (mật mã) xuất phát từ tiếng Hi Lạp cổ xưa “Kryptos” (Che dấu) và từ “graphia” (viết). Tiến trình mã hóa dữ liệu có thế được thực hiện bằng cách hoán vị dữ liệu thật hoặc thay thế chúng bằng dữ liệu khác. Tiến trình ngược với tiến trình mã hóa tức là chuyển từ bản mã thành dữ liệu ban đầu gọi là giải mã. Mã hóa và giải mã là hai thành phần của mật mã học.

    II. Hệ bảo mật khóa công khai và hệ bảo mật RSA
    Một hệ f= trong đó:
    M là một tập các không gian bản rõ.
    C là tập các không gian bản rõ.
    K là tập hợp các không gian khóa.
    Được gọi là một hệ mã mật nếu thỏa mãn 3 tính chất sau:
    - Với mỗi kẻ K cho ta hai ánh xạ Ek: M → C (gọi là ánh xạ m ã hóa với khóa k) và ánh xạ Dk: C → M được gọi là ánh xạ giải mã.
    - Hai cặp ánh xạ trên thỏa mãn tính chất Dk (Ek(M)) = M.
    Người ta chia các hệ mã làm hai loại chính là hệ mã cổ điển và hệ mã hiện đại (hay hệ mã hóa công khai). Các hệ mã cổ điển thực hiện việc bảo mật đều dựa trên cơ sở là có một khóa dùng chung cho cả việc lập mã và việc giải mã.
    Các hệ mã hóa công khai được nghiên cứu và phát triển từ những năm 1970. Ý tưởng cơ bản của các hệ mã này là xây dựng những hệ thống sao cho mỗi người tham gia vào quá trình truyền tin (người nhận tin và người gửi tin) sẽ có hai khóa khác nhau: Một khóa công khai dùng để lập mã và một khóa bảo mật dùng để giải mã. Khóa công khai được công khai hóa cho mội người, còn khóa bảo mật của mỗi người thì được giữ bí mật.
    Thông tin trước khi được gửi đi được mã hóa bằng khóa công khai của người nhận. Chỉ có người nhận mới có khả năng giải mã bản mã bằng khóa bí mật của mình, bởi vì thời gian giải mã sẽ tốn hàng tỉ năm nếu chỉ biết khóa công khai. Độ bảo mật của các hệ mã công khai được bảo đảm bằng độ phức tạp tính toán rất cao của thao tác tìm số nguyên tố lớn nhất và phân tích một số nguyên tố lớn thành tích các thừa số. Ta giả sử trong hệ mã mật khóa công khai, khóa mã hóa là E và khóa giải mã là D, thông điệp cần gửi là M. Để hệ thống mã hóa hoạt động được , các điều kiện sau đây phải được thõa mãn:
    - Dk(Ek(M)) = M đối với mọi thông điệp M
    - Tất cả các cặp (D,E) là phân biệt.
    - Việc phát sinh D từ E là khó ngang với việc đọc M.
    - Cả D và E đều được tính dễ dàng.
    Điều kiện đầu tiên là tính chất mật mã căn bản, hai điều kiện sau cung cấp tính an toàn và điều kiện cuối cùng làm cho hệ thống trở nên dễ dùng.
    Hệ bảo mật khóa công khai RSA được đưa ra bởi ca tác giả R.Rivest, A.Shamir và L. Adleman thỏa mãn được các điều kiện trên và đã được ứng dụng nhiều vào việc mã hóa và mật dữ liệu do tính năng vượt trội của nó về mã hóa bảo mật dữ liệu so với nhiều thuật toán khác.

    III. Thuật toán RSA
    1. Bước khởi đầu của thuật toán
    a. Chọn hai số nguyên tố ngẫu nhiên p và q có hàng trăm chữ số và tính tích n = p*q. Sau đó tính PHI(n) = (p-1)(q-1).
    b. Tìm số d sao cho d và PHI(n) là nguyên tố cùng nhau (d,PHI(n)) = 1.
    c. Tìm số e thõa mãn d*e = =1 (Mod n)
    Trong đó d và e lần lượt là các khóa giải mã và khóa công khai. Hàm mã hóa là Ek = Me mod n.
    Hàm giải mã là: Dk = (Ek)d mod n.
    2. Mô tả thuật toán:
    Bước 1: Chọn p,q là hai số nguyên tố và tính n=p*q.
    Số n được gọi là Modul của hệ mã.
    Bước 2: Tìm ngẫu nhiên số e thỏa mãn các điều kiện sau đây:
    a) 1 < e < n.
    b) Tính f(n) = (p-1)* (q-1). e và f(n) nguyên tố cùng nhau, số e tìm được gọi là số mũ mã hóa.
    Bước 3: Tính d sao cho d*e mod f(n) = 1;
    Với 1 < d < n. d được gọi là số mũ giải mã.
    Khi đó khóa công khai là cặp (e,n) và khóa mật là cặp số (d,e).
    3. Cách mã hóa và giải mã mã.
    Gọi x thuộc [0,…, n-1] là số cần mã hóa; E và D lần lượt là các hàm mã hóa và hàm giải mã.
    Thao tác mã hóa:
    Người gửi sử dụng khóa công khai (e,n) của người nhận để mã hóa thông tin x cần gửi đi. Như vậy, người gửi sẽ gửi cho người nhận một thông điệp dưới dạng mã hóa là: c = E(x) = xe % n
    Thao tác giải mã:
    Người nhận sử dụng khóa mã mật của mình để giải mã bản mã vừa nhận được thành bản rõ của nó. Tức là tính: x = D(c) = cd % n.

    IV. Thuật toán tính xe mod n
    Trong hệ RSA khi mã hóa hoặc giải mã ta phải tính c = xe % n và x = cd % n.
    Trong đó e, n, d là những số có hàng trăm chữ số. Các vấn đề nảy sinh mã hóa và giải mã là phải giảm thiểu được việc tính tính toán và không gian bộ nhớ. Sau đây tôi sẽ trình bày một thuật toán giải quyết cả hai vấn đề trên. Ý tưởng của thuật toán là đưa xe thành x2*k * xj, j = 0 hoặc 1. Nếu j = 0 thì tính x = x* x mod n; Nếu j = 1 thì tính y = x * y mod n; Sau mỗi bước e = e2 hoặc e = e -1 tương ứng với j =0 hay 1; Sau đây là cài đặt một hàm của thuật toán:
    Function PowerMod(x: SoLon; e: SoLon; N:SoLon): SoLon
    Var y: SoLon;
    Begin
    Y:=1;
    While (e mod 2 = 0) do
    Begin
    While (e mod 2) do
    Begin
    x:=x*x mod N;
    e:=e2;
    End;
    y:=x*y mod N;
    e:=e-1;
    end;
    PowerMod:=y;
    End;
    Chú ý rằng mỗi phép toán “gán”, “trừ”… sử dụng trong thuật toán đều phải được xây dựng trước trên cấu trúc “SoLon” biểu diễn các số có hàng trăm chữ số.

    School@net (Theo www.thnt.com.vn)



     Bản để in  Lưu dạng file  Gửi tin qua email


    Những bài viết khác:



    Lên đầu trang

     
    CÔNG TY CÔNG NGHỆ TIN HỌC NHÀ TRƯỜNG
     
    Phòng 804 - Nhà 17T1 - Khu Trung Hoà Nhân Chính - Quận Cầu Giấy - Hà Nội
    Phone: 024.62511017 - 024.62511081
    Email: kinhdoanh@schoolnet.vn


    Bản quyền thông tin trên trang điện tử này thuộc về công ty School@net
    Ghi rõ nguồn www.vnschool.net khi bạn phát hành lại thông tin từ website này
    Site xây dựng trên cơ sở hệ thống NukeViet - phát triển từ PHP-Nuke, lưu hành theo giấy phép của GNU/GPL.