Crypto 01 :Tổng quan về Cryptography

Thảo luận trong 'ACM/Programming' bắt đầu bởi holoha, 28/07/14, 10:07 AM.

  1. holoha

    holoha Moderator

    Tham gia: 23/12/13, 11:12 AM
    Bài viết: 16
    Đã được thích: 4
    [​IMG]

    Cryptography là gì?

    Thuật ngữ Cryptography đề cập tới một ngành khoa học nghiên cứu về mã hóa và giải mã thông tin; nghiên cứu các phương pháp, cách thức để chuyển đổi thông tin từ dạng “đọc-hiểu”(plaintext) sang dạng “đọc-nhưng-không-hiểu”(ciphertext) và ngược lại.
    Là một ngành khoa học nghiên cứu, Cryptography thực sự khá phức tạp và khô khan tuy nhiên cũng không kém phần thú vị khi đưa vào áp dụng trong thực tế. Với loạt bài viết về chủ đề Cryptography, mình hy vọng phần nào sẽ đáp ứng được nhu cầu tìm hiểu của mọi người.

    Tại sao phải sử dụng Cryptography?
    Trong thực tế, Cryptography được sử dụng rất rộng rãi – nhất là trong lĩnh vực công nghệ thông tin. Mục đích của việc sử dụng mã hóa – giải mã là để đảm bảo thông tin được truyền đi không bị đọc-hiểu một cách dễ dàng.
    Khi chúng ta sử dụng mạng internet hàng ngày; các thông tin cá nhân, thông tin trao đổi với người khác, nội dung chat, tài khoản email, facebook v.v. là các dữ liệu được truyền đi trên mạng và không có gì đảm bảo những thông tin này là an toàn không bị đọc trộm. Do đó mã hóa được áp dụng như một biện pháp bắt buộc nhằm giúp chúng ta tự bảo vệ chính mình an toàn trên internet.

    Thuật toán mã hóa là gì?
    Để mã hóa thông tin, Cryptography sử dụng các thuật toán để biến đổi thông tin dạng plain-text sang cipher-text và ngược lại.Áp dụng toán học và logic học, các thuật toán mã hóa được sử dụng có thể từ đơn giản đến cực kỳ phức tạp.
    Ví dụ : Alice muốn mã hóa một thông tin với thuật toán ( * ) đơn giản là:
    Thay thế tất cả các chữ cái xuất hiện trong thông tin theo cách:
    “a” thành “h”;
    “h” thành “t”;
    “t” thành “a”;
    Như vậy với thông điệp gốc là “whitehat” qua quá trình biến đổi sử dụng thuật toán ( * ) thông điệp sẽ trở thành “wtiaetha”. Để giải mã, đảo ngược lại thứ tự của thuật toán ( * ).
    Alice nói với một người bạn tên Bob về thuật toán ( * ) và viết một bức thư áp dụng ( * ) để mã hóa. Như vậy bức thư mà Alice viết có thể nhờ Eve – một người bạn tò mò – giúp gửi cho Bob mà không lo ngại việc Eve có thể hiểu nội dung bức thư.
    Khi nào mà tính bí mật của thuật toán ( * ) chỉ có Alice và Bob biết thì tính an toàn của nội dung bức thư còn được đảm bảo. Tuy nhiên cách thức này chỉ áp dụng trước đây do hiện nay, bằng sức mạnh tính toán và xử lý tốt của máy tính, tính bí mật của thuật toán hoàn toàn có thể bị khám phá ra dẫn đến việc có thể giải mã được thông tin gốc. Ở ví dụ trên, thuật toán ( * ) có thể bị Eve đoán ra bằng cách thử thay thế nhiều lần. Nếu như Eve phát hiện ra tính bí mật của thuật toán thì mức độ an toàn của nội dung thư mà Alice gửi đi đã bị phá vỡ hoàn toàn.

    Một số thuật ngữ sử dụng trong Cryptography
    Mình sẽ tổng hợp dần dần theo từng bài viết về một số thuật ngữ cơ bản được sử dụng trong Cryptography giúp cho bạn đọc dễ tiếp cận và hình dung :
    · Sender/Receiver : Người gửi và nhận dữ liệu – từ đây và các bài viết sau, mình sử dụng Alice và Bob là người gửi và nhận dữ liệu.
    · Attacker / Hacker : Người tấn công hoặc vận chuyển thông tin trên đường truyền – Eve.
    · Plaintext: Thông tin trước khi được mã hóa - dữ liệu ban đầu ở dạng có thể đọc-hiểu được.
    · Ciphertext: Thông tin đã được mã hóa - dữ liệu ở dạng đọc-nhưng-không-hiểu được.
    · Encryption: Quá trình mã hóa thông tin (Plaintext -> Ciphertext).
    · Decryption: Quá trình giải mã lấy lại thông tin ban đầu (Ciphertext -> Plaintext).

    Tiếp theo
    Trong các bài viết tiếp theo trong loạt bài về Cryptography, mình sẽ trình bày về lịch sử phát triển của Cryptography, các dạng mật mã cổ điển và áp dụng trong thực tế hiện nay.

    Ending is beginning
    Rất mong nhận được sự góp ý của các bạn để hoàn thiện hơn nội dung cũng như chất lượng của bài viết.
    Tản mạn :
    · Định nghĩa về Cryptography trong Oxford Dict : “The art of writing or solving codes” J
    · Câu hỏi vui : Bạn cần phải kiểm tra xem anh bạn Bob đã có số điện thoại chính xác của bạn chưa, nhưng không thể hỏi trực tiếp anh ấy ( điện thoại của bạn hiện cũng hỏng không liên lạc được). Bạn phải viết câu hỏi ra một tờ giấy và đưa cho cô Eve để cô ấy chuyển cho Bob, và Eve sẽ chuyển câu trả lời từ Bob sang cho bạn. Bạn sẽ phải viết gì để đảm bảo rằng Bob có thể mã hóa thông tin mà Eve không thể biết được số điện thoại của bạn?
     
    Last edited by a moderator: 27/08/16, 02:08 PM
  2. truongkechun

    truongkechun W-------

    Tham gia: 24/04/15, 09:04 PM
    Bài viết: 2
    Đã được thích: 0
    Re: Crypto 01 :Tổng quan về Cryptography

    Câu hỏi cuối bài của thớt hqy nhỉ. Mà anh bob vẫn biết cách mã hóa của anh ấy với alice không nhỉ :))
     
  3. sunny

    sunny Điều hành viên Thành viên BQT

    Tham gia: 30/06/14, 10:06 PM
    Bài viết: 1,520
    Đã được thích: 637
    Re: Crypto 01 :Tổng quan về Cryptography

    Câu hỏi ở đây là "Bạn cần phải kiểm tra xem anh bạn Bob đã có số điện thoại chính xác của bạn chưa" nghĩa là đã có hay chưa?

    Có thể viết vào tờ giấy là "Call me, baby" rồi đưa Eve chuyển cho Bob. Bob gọi xong sẽ chuyển lại đáp án, có thể là "Don't have number" hay "Your number you are calling not ..." ==> mình biết là Bob có hay chưa!
     
  4. buichuongvnua

    buichuongvnua W-------

    Tham gia: 05/01/15, 03:01 PM
    Bài viết: 3
    Đã được thích: 2
    cảm ơn tác giả hy vọng bạn sớm ra các bài viết sau
     
  5. johnsmeeth

    johnsmeeth W-------

    Tham gia: 16/09/14, 10:09 PM
    Bài viết: 1
    Đã được thích: 0
    Bài viết hay quá. thanks
     
  6. NgMSon

    NgMSon Well-Known Member

    Tham gia: 22/03/17, 10:03 AM
    Bài viết: 381
    Đã được thích: 503
    Mọi người cho em xin một số bài tập được không ạ ??
     
  7. sunny

    sunny Điều hành viên Thành viên BQT

    Tham gia: 30/06/14, 10:06 PM
    Bài viết: 1,520
    Đã được thích: 637
    NgMSon thích bài này.

Chia sẻ trang này