Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.

Announcement

Collapse
No announcement yet.

Diffie-hellman giải thích thuật toán

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Diffie-hellman giải thích thuật toán

    đọc xong phần diffie-hellman processs tui hơi bị nhức đầu, không hiểu sao hai máy tính khác nhau lại có thể lấy một số ngẫu nhiên giống nhau được,
    Tài liệu mình đang xem là CSVPN của cisco press. trang 74.
    Nhờ các anh chị giải thích giùm tui cái bước thứ nhất và thứ 2.
    Cảm ơn rất rất nhiệu

  • #2
    Nói chính xác hơn là thuật toán của hai ông Whitfield Diffie và Martin Hellman là dùng các public key của party kia và private key của mình kết hợp các số ngẫu nhiên để tạo ra một shared secret key cho hai parties đó một cách tự động, và an toàn để dùng cho symetric encryption. Có thể tham khảo thêm ở đây

    Flux -> Flask -> SELinux (RHEL 4)
    Beating the 0-day vulrerability threat

    Comment


    • #3
      RE: Diffie-hellman giải thích thuật toán

      có thể mô tả như sau:

      Comment


      • #4
        RE: Diffie-hellman giải thích thuật toán

        itman và vuõngibul đều có hai bình rượu có cùng dung tích.

        itman thêm vào bình rượu 1,5 lít rượu Gò Công là lọai rượu mà anh ta thích.

        vuong thêm vào bình rượu của vuong 1 lit lọai rượu minh mang mà anh ta thích.

        Một lọai rượu chung là rượu Champange được chọn. Cả itman và vuong đều thêm vào 1,1 lit lọai rượu chung này.

        Hai bên sẽ trao đổi các bình rượu với nhau.

        Vuong sẽ thêm vào 1 lit loại rượu Minhmang vào bình rượu trước đây là của itman. Còn itman sẽ thêm vào 1,5 lit rượu Gocong vào bình của vuong.

        Bây giờ cả hai có thùng rượu giống nhau, gồm 1,5 lit gocong + 1,1 lit champange + 1 lit Minhmang

        Comment


        • #5
          Nếu nói như trên thì mỗi party đều có public key = private key. Và rượu mà pha như vậy thì có lẽ thành rượu mất mạng :-)
          Flux -> Flask -> SELinux (RHEL 4)
          Beating the 0-day vulrerability threat

          Comment


          • #6
            RE: Diffie-hellman giải thích thuật toán

            Giải thuật DH:

            rượu Gòcong của itman sẽ là private-secret key.
            rượu minhmang của vuong là private-secret key

            public key là lọai rượu champagne

            sau cùng, cái bình rượu chứa cả ba lọai rượu sẽ là shared-secret-key

            Comment


            • #7
              To: trung tam kh

              Nếu bác lại cho là public key là rượu champange thì bác lại nhầm nặng nữa rồi, tốt nhất là bác đọc lại cái link http://www.ietf.org/rfc/rfc2631.txt rồi cho ý kiến tiếp OK?
              Flux -> Flask -> SELinux (RHEL 4)
              Beating the 0-day vulrerability threat

              Comment


              • #8
                RE: Diffie-hellman giải thích thuật toán

                :(
                các bác nói chi tui chả hiểu cái chi chi hết, nào là rượu gò công, minh mạng, mà pha chung với nhau thì làm sao uống?
                Cái mà tui không hiểu ở đây là làm sao hai bên không biết gì về nhau cùng sử dụng thuật giải D-H để trao đổi key, mà lại có thể lấy ngẫu nhiên một con số giống nhau, ví dụ về rượu thì làm sao tui và lão itmansaigon lại có cùng một cái loại bình có cùng dung tích được? phải chăng nó có một món gì đó làm cho cả hai cùng chọn đúng lọai bình có cùng dung tích?

                Comment


                • #9
                  Sao bác không chịu khó đọc cái link đó đi mà lại đi thắc mắc về mấy loại rượu đó, tập trung vào mục 2.1.1. Generation of ZZ.

                  ZZ chính là cái shared-secret key được tạo ra nhờ thuật toán D-H:

                  Ban đầu hai bên trao đổi các public key và các số ngẫu nhiên chung sau đó mỗi bên sẽ dùng public key của bên kia + private key của mình + số ngẫu nhiên chung + thuật toán D-H --> mỗi bên đều có ZZ shared secret key giống nhau
                  Flux -> Flask -> SELinux (RHEL 4)
                  Beating the 0-day vulrerability threat

                  Comment


                  • #10
                    RE: Diffie-hellman giải thích thuật toán

                    Hi ITmansaigon
                    Tui không hỏi cái generate ra cái key ZZ mà là tui hỏi về cách tạo ra hai số g và p trong mục 2.1.1 đó. Nhưng mà bây giờ để tui đọc hết cái RFC rồi nói chuyện tiếp nhé. Cảm ơn bạn nhiều

                    Comment


                    • #11
                      Khà khà, p & q là các số nguyên tố cao, còn g thì đã có công thức, bác mà grasp hết toàn bộ cái rfc2631 đó coi chừng bị tẩu hỏa nhập ma đó :-)
                      Flux -> Flask -> SELinux (RHEL 4)
                      Beating the 0-day vulrerability threat

                      Comment


                      • #12
                        RE: Diffie-hellman giải thích thuật toán

                        Hi ITMansaigon
                        Sao trong cái rfc này nói khó hiểu quá, tự dưng ở đâu bốc đại một số L
                        trong cái mục 2.2.1.1 tạo p & q, bây giờ biết được số L đó đâu ra thì được rồi,

                        cái tui cần là không hiểu tại sao từ 2 con số ngẫu nhiên mà nó tạo ra được một share secret : ZZ = g ^ (xb * xa) mod p
                        trong đó mỗi bên đều có key riêng cho mình
                        ZZ = (yb ^ xa) mod p = (ya ^ xb) mod p

                        không hiểu, không hiểu... :cry:
                        tạm vậy đi

                        Comment


                        • #13
                          RE: Diffie-hellman giải thích thuật toán

                          Vuongxibul wrote:

                          "Hi ITMansaigon
                          Sao trong cái rfc này nói khó hiểu quá, tự dưng ở đâu bốc đại một số L
                          trong cái mục 2.2.1.1 tạo p & q, bây giờ biết được số L đó đâu ra thì được rồi,

                          cái tui cần là không hiểu tại sao từ 2 con số ngẫu nhiên mà nó tạo ra được một share secret : ZZ = g ^ (xb * xa) mod p
                          trong đó mỗi bên đều có key riêng cho mình
                          ZZ = (yb ^ xa) mod p = (ya ^ xb) mod p

                          không hiểu, không hiểu...
                          tạm vậy đi"

                          Bạn Minh Kỳ,

                          Có lẽ điều khiến bạn khó hiểu khi tiếp cận khái niệm về D-H algothrm là do bạn drop mất một chữ PRIME rất quan trọng trong danh từ kép " large random PRIME numbers".
                          Nếu kết hợp với MODULUS proprieties và những gì bạn đã đọc qua; hy vọng bạn thấy rõ ràng, trong sáng hơn phải không?:lol:

                          Thân,

                          Comment


                          • #14
                            RE: Diffie-hellman giải thích thuật toán

                            Toàn bộ giải thuật cụ thể của D-H là:
                            - Một số nguyên tố p và 1 phần tử nguyên thuỷ t thuộc Zp , p và t công khại
                            1> Bên A chọn số nguyên tố Ra (0<=Ra<=p-2), giữ kín Ra
                            2> A tính: Ca=(t^Ra)mod p, Gửi Ca cho B.
                            3> B chọn số nguyên tố Rb ( 0<=Rb<=p-2), giữ kín Rb.
                            4> B tính Cb=(t^Rb)mod p, gửi Cb cho A
                            5>Lúc này, A có Ra và Cb; B có Rb và Ca
                            A tính K=( Cb^Ra)modp
                            B tính K=(Ca ^Rb)modp.
                            + Ra, Rb: 2 khoá riêng
                            +Ca,Cb: 2 khoá chung
                            ---> Kẻ tấn công biết Ca, Cb vẫn không tính được K. Muốn tính phải giải xong bài toán logarit rời rạc, mất rất nhiều thời giạn
                            Tuy nhiên, bằng phương pháp tấn công chính giữa, thông tin mã hoá vẫn có thể bị rò rỉ. Chính vì vậy mới sinh ra cái gọi là chứng chỉ khoá dùng chung ( thường gọi là CA).

                            Vài dòng góp vui, mong được chỉ giáo!

                            Comment


                            • #15
                              Xin chào net01,

                              Đang dịch tài liệu hả :-)
                              Flux -> Flask -> SELinux (RHEL 4)
                              Beating the 0-day vulrerability threat

                              Comment

                              Working...
                              X