An toàn thông tin - Thuật toán RSA - Tính đúng đắn, Tính an toàn và Ví dụ tính toán cụ thể

แชร์
ฝัง
  • เผยแพร่เมื่อ 25 มิ.ย. 2021
  • Xem nội dung đầy đủ của khóa học tại: phamthanh.edu.vn/
    👉 Liên hệ với tác giả: / phamthanh.ussd
    Tóm tắt nội dung video:
    Giải thích chi tiết về thuật toán mã hóa với chìa khóa công khai RSA. Chứng minh tính đúng đắn, tính an toàn cũng như đưa ra ví dụ tính toán cụ thể để giúp các bạn hiểu rõ hơn về phương thức tính toán.
    Liên hệ:
    👉 Email: phamthanhscience@gmail.com
    👉 Facebook Fanpage: / phamthanhscience
    👉 Facebook Group: / phamthanhscience
    👉 Facebook Cá nhân: / phamthanh.ussd
    © Bản quyền thuộc về Phạm Thanh Science & Tech.
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 55

  • @phamthanhscience
    @phamthanhscience  3 ปีที่แล้ว +1

    Các khóa học về Trí tuệ Nhân tạo đang có ở: phamthanh.edu.vn
    Hiện tại Mọi khóa học đều là Miễn phí. Các khóa học của chúng tôi được thiết kế một cách khoa học, với cách trình bày xúc tích, dễ hiểu; các bài kiểm tra ngắn giúp người đọc ôn tập kiến thức và đặc biệt là các bạn có thể thực hành trực tiếp trên nền tảng của chúng tôi mà không cần phải cài đặt môi trường lập trình trên máy tính của mình.
    Nền tảng của chúng tôi có nhiều khóa học về AI (Machine Learning, Deep Learning) cũng như sẽ có thêm các khóa học về An toàn Thông tin, An ninh Mạng, Kỹ năng mềm, Kỹ năng Quản lý Dự án...
    Các bài giảng và bài thực hành được thiết kế, hướng dẫn chi tiết đến mức bạn có thể tự học hoàn toàn ở bất cứ đâu mà không cần sự hỗ trợ của bất kỳ ai.
    Mời các bạn đăng ký Tài khoản Miễn phí và trải nghiệm nền tảng học online này nhé. Nếu bạn gặp bất cứ vấn đề gì trong quá trình đăng ký và học tập, hãy nhắn tin cho chúng tôi tại: facebook.com/phamthanhscience
    Ngoài ra chúng tôi có tạo ra Nhóm để các bạn có thể thảo luận với nhau trong quá trình học tập, đừng ngại đặt câu hỏi vào đây nhé: facebook.com/groups/phamthanhscience

  • @12a4tv
    @12a4tv 2 ปีที่แล้ว +1

    thanks.

  • @piedu
    @piedu 3 ปีที่แล้ว +1

    rất hữu ích. cảm ơn bạn

    • @phamthanhscience
      @phamthanhscience  3 ปีที่แล้ว

      Cảm ơn bạn! Mong tiếp tục nhận được sự ủng hộ của bạn nhé.

  • @duytrichdan
    @duytrichdan ปีที่แล้ว +1

    Xem vid của thầy mới biết cách đồng dư, cảm ơn thầy

    • @phamthanhscience
      @phamthanhscience  ปีที่แล้ว

      Cảm ơn bạn, chúc bạn thành công!

  • @hoangvanhuan3018
    @hoangvanhuan3018 3 หลายเดือนก่อน +1

    cảm ơn thầy bài giảng rất hay và chi tiết

    • @phamthanhscience
      @phamthanhscience  3 หลายเดือนก่อน

      cảm ơn bạn nhiều, chúc bạn thành công nhé!

  • @chinhphamvan9271
    @chinhphamvan9271 2 ปีที่แล้ว

    rất hay nha thày iuuu :* mãi iu thầy

    • @phamthanhscience
      @phamthanhscience  2 ปีที่แล้ว +1

      Cảm ơn bạn rất nhiều và mong tiếp tục nhận được sự ủng hộ của bạn nhé! :)

  • @ucanh8173
    @ucanh8173 2 ปีที่แล้ว

    rất dễ hiểu , xin cảm ơn

    • @phamthanhscience
      @phamthanhscience  2 ปีที่แล้ว

      cảm ơn bạn, mong tiếp tục nhận được sự theo dõi của bạn nhé.

  • @toanho2850
    @toanho2850 2 ปีที่แล้ว +1

    Hay quá thầy ơi

    • @phamthanhscience
      @phamthanhscience  2 ปีที่แล้ว +1

      Cảm ơn bạn và mong tiếp tục nhận được sự ủng hộ của bạn. :)

  • @nguyenvanthanh845
    @nguyenvanthanh845 2 ปีที่แล้ว +1

    Thưa thầy.
    Thầy cho e hỏi vs ạ.
    Tại sao RSA và Eglamal có thể áp dụng chữ ký số, còn hệ mã hoá Balo MHK thì không ạ.
    Mong thầy giải đáp ạ.

  • @shanshan2077
    @shanshan2077 ปีที่แล้ว +1

    Hồi làm đồ án phải code mô phỏng trên mathlab h ko nhớ tại sao mình code ra luôn 🤣

  • @weeboo9988
    @weeboo9988 3 ปีที่แล้ว +1

    mong bạn làm thêm về aes và des, rc4

    • @phamthanhscience
      @phamthanhscience  3 ปีที่แล้ว

      Cảm ơn bạn! Mình sẽ sắp xếp thời gian làm thêm nhiều video về các chủ đề này. Rất mong tiếp tục nhận được sự ủng hộ của bạn.

  • @trenlop931
    @trenlop931 ปีที่แล้ว +1

    10:10

  • @okebanei
    @okebanei 3 ปีที่แล้ว +1

    vote c#

  • @thaiannguyen4820
    @thaiannguyen4820 2 ปีที่แล้ว +2

    Thầy ơi . Tại sao ở VD cuối video ta có điều kiện 1 < d < (p-1)*(q-1) mà thầy vẫn có thể chọn được d = 17 ạ? Nếu em chọn d =5 thì có đúng đắn về mặt thuật toán cũng như kết quả không ạ?

    • @phamthanhscience
      @phamthanhscience  2 ปีที่แล้ว +3

      nếu bạn chọn 5 thì thuật toán vẫn đúng, nhưng như vậy thì d = e, và vi phạm tính an toàn của thuật toán, khi d là chìa khóa bí mật, và có giá trị bằng chìa khóa công khai e.

  • @vuthienchien1321
    @vuthienchien1321 8 หลายเดือนก่อน +1

    thầy cho em hỏi đoạn chứng minh 11:50. m' đồng dư với m.mod(n) sao chắc chắn m' = m được ạ

    • @phamthanhscience
      @phamthanhscience  8 หลายเดือนก่อน

      Chào bạn! Ở đây khi triển khai thuật toán RSA, thì giá trị của m chúng ta quy ước chỉ nằm trong khoảng từ 0 đến n-1, do đó nếu m' và m đồng dư với nhau, thì m' sẽ bằng chính m.

  • @nguoidungmang
    @nguoidungmang ปีที่แล้ว +1

    cho em hỏi làm sao để tạo được một mã public key và private key ạ

    • @phamthanhscience
      @phamthanhscience  ปีที่แล้ว

      Chào bạn, trong video có nói đến phần khởi tạo các key rồi nhé, bạn xem kỹ từ phần lựa chọn các số nguyên tố ngẫu nhiên.

  • @HoanNguyen-lj6dy
    @HoanNguyen-lj6dy ปีที่แล้ว

    Công thức này có tính đc tài xỉu online ko ae

  • @lkjkhgfg
    @lkjkhgfg ปีที่แล้ว +1

    số e em chọn số khác ngoài số 5 được không ạ?

    • @phamthanhscience
      @phamthanhscience  ปีที่แล้ว

      Được bạn, miễn là nó nguyên tố cùng nhau với phi để đảm bảo tồn tại nghịch đảo của e theo module phi.

  • @khanhang7543
    @khanhang7543 ปีที่แล้ว +1

    nếu áp dụng vào code thì thuật toán này mã hóa theo bảng mã ascii đúng không vậy ạ

    • @phamthanhscience
      @phamthanhscience  ปีที่แล้ว

      Cảm ơn bạn đã quan tâm, bạn có thể dùng ascii, unicode hay bất cứ cách encoding nào để chuyển đổi thông điệp thành dạng số nhé!

  • @surfingweb1315
    @surfingweb1315 6 หลายเดือนก่อน +1

    làm sao để tính ra được số d nhanh chóng vậy ạ ? chẳng lẽ cứ phải ngồi nhân lần lượt ạ ?

    • @phamthanhscience
      @phamthanhscience  6 หลายเดือนก่อน +1

      Chào bạn, khi triển khai trên thực tế thì chúng ta sẽ sử dụng thuật toán Euclid mở rộng để tính toán nghịch đảo modulo của e (chính là d) nhé. Đây là một thuật toán rất hiệu quả trong việc tính nghịch đảo modulo.

  • @atNguyen-sy3il
    @atNguyen-sy3il 2 ปีที่แล้ว +1

    Cho em hỏi chuyển cái thông điệp dạng text (m) sang dạng số thì convert theo kiểu gì ạ

    • @phamthanhscience
      @phamthanhscience  2 ปีที่แล้ว

      Bạn có thể quy ước bất cứ cách convert nào nhé, miễn là sau đó có thể convert ngược lại thành text được. Ví dụ, bạn có thể dùng mã unicode để làm cơ sở, mỗi chữ cái sẽ chuyển thành một số tương ứng trong bảng mã unicode. Hiện tại thì hầu hết các ngôn ngữ lập trình đều hỗ trợ việc convert này, ví dụ như trong Java có việc convert String to Bytes giúp bạn thực hiện. Chúc bạn thành công.

    • @atNguyen-sy3il
      @atNguyen-sy3il 2 ปีที่แล้ว

      @@phamthanhscience Dạ, cảm ơn câu trả lời của anh, nếu chuyển từng kí tự sang số như v, em lấy vd text là "aba" thì 2 kí tự "a" có cùng con số mã hóa, nếu ng ngoài để ý thì nó không đc hay, không biết em hiểu như v có đúng ko.

    • @phamthanhscience
      @phamthanhscience  2 ปีที่แล้ว +1

      @@atNguyen-sy3il không sao đâu bạn, sau khi mình chuyển sang con số rồi thì mình sẽ mã hóa nữa mà, khi đó cái chuỗi số của bạn sẽ biến thành một chuỗi số khác hẳn. Bạn cần chú ý là mình sẽ mã hóa cả một chuỗi số dài chứ không phải là mã hóa lẻ từng con số nhé.

    • @atNguyen-sy3il
      @atNguyen-sy3il 2 ปีที่แล้ว

      @@phamthanhscience Dạ, theo em hiểu thì nếu mã hóa thành 1 chuỗi số thì số m sẽ lớn, mình phải viết thêm hàm xử tính toán cho các số lớn hơn 64 bit phải không ạ.

    • @phamthanhscience
      @phamthanhscience  2 ปีที่แล้ว +1

      @@atNguyen-sy3il cái đó các ngôn ngữ lập trình thường cũng hỗ trợ đó bạn, ví dụ Java có class BigInteger hỗ trợ việc này.

  • @HuDuPa
    @HuDuPa 3 ปีที่แล้ว +1

    sao thầy biết được e=5 v thầy

    • @weeboo9988
      @weeboo9988 2 ปีที่แล้ว +2

      chọn e > 1 và phải nhỏ hơn phi N. và e là nguyên tố cùng nhau với phi N tức là e và phi N có cùng ước chung là 1 thì đc gọi là nguyên tố cùng nhau.

  • @xuanlapnong7514
    @xuanlapnong7514 2 ปีที่แล้ว +1

    Xin hỏi 1 câu. m mũ k phi(m)+1 làm sao = m.m mũ k phi(m) được?

    • @phamthanhscience
      @phamthanhscience  2 ปีที่แล้ว +1

      Đây là quy tắc toán học cơ bản mà bạn: a ^ (x + 1) = a . a ^ x

    • @xuanlapnong7514
      @xuanlapnong7514 2 ปีที่แล้ว

      @@phamthanhscience
      Nếu cho số thực thì cái mũ đó có ra đâu.

    • @xuanlapnong7514
      @xuanlapnong7514 2 ปีที่แล้ว

      @@phamthanhscience uh.

    • @xuanlapnong7514
      @xuanlapnong7514 2 ปีที่แล้ว

      @@phamthanhscience bít đâu😭😭😭

    • @phamthanhscience
      @phamthanhscience  2 ปีที่แล้ว

      @@xuanlapnong7514 các phép toán của RSA hoàn toàn đều thực hiện trên tập số nguyên bạn nhé.

  • @teacherhoangthingocvipengl2153
    @teacherhoangthingocvipengl2153 2 ปีที่แล้ว +1

    Vì sao chứng minh m đồng dư m' (mod n) lại suy ra m = m' ạ ?

    • @phamthanhscience
      @phamthanhscience  2 ปีที่แล้ว

      Chào bạn, ở đây giá trị m hay m' sau khi tính được ta đều chia cho n để lấy số dư. Nghĩa là m hay m' sẽ nằm trong khoảng từ 0 đến n-1. Do vậy nếu m đồng dư với m', thì cũng có nghĩa là m = m'.

    • @PTN775
      @PTN775 ปีที่แล้ว +1

      @@phamthanhscience dạ thầy ơi, em muốn hỏi , trong thực tế nếu mã hoá 1 đoạn text khá lớn là m, thì ta đều phải nén m sao cho 0 < m < n - 1 ạ(dùng hash có đk k thầy?). Như vậy ta mới có thể đảm bảo m’ = m.

    • @phamthanhscience
      @phamthanhscience  ปีที่แล้ว

      @@PTN775 Chào bạn, với những đoạn text lớn thì chúng ta sẽ cắt thành những đoạn đủ nhỏ nhé. Rồi sau khi truyền đến nơi, người nhận sẽ ghép lại. Dĩ nhiên là quy tắc cắt, ghép hai bên phải thống nhất với nhau trước. Chúng ta không thể dùng thuật toán nén vì có những đoạn text dài, không thể nén đủ nhỏ để mã hóa. Chúng ta cũng không thể dùng hash, vì hash là hàm một chiều, từ đoạn hash không thể suy ra được dữ liệu ban đầu.

    • @PTN775
      @PTN775 ปีที่แล้ว +1

      @@phamthanhscience m' ≡ m(modn) m' modn = m modn (ex: 2 mod5 = 7 mod5). Với 0 < m < (n - 1) => m%n = m. Nhưng em chưa rõ m' = liệu có 0 < m' < (n - 1) hay không ạ? Em chưa nắm rõ phần chứng minh đk điều này, nên chưa suy ra đk m' = m. Mong thầy giải đáp e phần này, em cảm ơn ạ. ^^

    • @phamthanhscience
      @phamthanhscience  ปีที่แล้ว

      @@PTN775 Chắc chắn là m' phải nhỏ hơn n rồi bạn, vì m' được tính từ phép chia lấy dư (mod) cho n. Nếu m' = 7, n = 5, thì chúng ta sẽ phải thực hiện phép chia lấy dư cho 5, khi đó m' sẽ là 2.

  • @kimphamminh9369
    @kimphamminh9369 3 ปีที่แล้ว +1

    làm sao để tính được e=5 vậy thầy

    • @weeboo9988
      @weeboo9988 2 ปีที่แล้ว

      chọn e > 1 và phải nhỏ hơn phi N. và e là nguyên tố cùng nhau với phi N tức là e và phi N có cùng ước chung là 1 thì đc gọi là nguyên tố cùng nhau.