Điểm:0

Lựa chọn khóa xác định bằng cách sử dụng so sánh giá trị lặp lại - điều này thật ngu ngốc làm sao?

lá cờ in

Để bắt đầu, đây chủ yếu là một câu hỏi tò mò đã làm tôi khó chịu trong một thời gian. Tôi đã tìm kiếm khá nhiều trên Google để xem liệu có ai đó đã vạch trần ý tưởng ngớ ngẩn này một cách chính đáng hay chưa, nhưng không tìm thấy gì cả.

Tôi và một người bạn đang làm việc cùng nhau trong một dự án nhỏ để tìm hiểu những kiến ​​thức cơ bản về cách triển khai mã hóa trên thực tế. Các chi tiết không đặc biệt quan trọng, tất cả những gì chúng tôi muốn nó làm là chia sẻ các chuỗi được mã hóa qua mạng IP.

Chúng tôi đã gặp phải một vấn đề thú vị khi tìm ra cách trao đổi bí mật được chia sẻ sau khi bắt tay RSA được thực hiện. Vì chương trình nhỏ bé này không hoạt động trên khái niệm máy khách/máy chủ, nên chúng tôi cần một cách để đảm bảo cả hai đầu sẽ chọn cùng một khóa. Ban đầu, tôi đã điều tra việc triển khai ECC+Diffie-Hellman (từ .NET) được đóng gói sẵn, nhưng có một lỗ hổng nghiêm trọng - lớp này chỉ hoạt động trên Windows, nhưng bạn tôi thì sử dụng máy Mac.

Theo những gì tôi biết thì không có bất kỳ triển khai trao đổi khóa nào khác được đóng gói trong .NET, vì vậy cuối cùng tôi đã đưa ra một giải pháp đơn giản:

  1. Cả hai đồng nghiệp gửi một khóa mới được tạo (cụ thể là một mảng byte khóa AES) cho nhau.
  2. Cả hai đồng nghiệp đều cung cấp khóa của họ và khóa của đối tác của họ vào một thuật toán, thuật toán này lặp lại tuần tự trên các giá trị byte (tôi nghĩ là các số nguyên 8 bit được chuyển đổi hoàn toàn?) Trong cả hai mảng khóa.
  3. Nếu một khóa có giá trị lớn hơn khóa kia tại một chỉ mục nhất định, khóa đó sẽ được trả về dưới dạng khóa đã chọn.
  4. Nếu điều kiện này không bao giờ được đáp ứng trong quá trình lặp, thì các khóa giống hệt nhau và việc trả lại khóa nào không quan trọng. (IV đã có mặt nhưng bị bỏ qua.)

Thuật toán mười dòng hackjob này hoạt động tốt hơn nhiều so với bất kỳ quyền nào của nó. Với sự hiểu biết hạn chế của tôi về toán học liên quan, điều này có ý nghĩa về mặt tính toán - có $256^{32}$ các phím có thể và một $\frac{255}{256}$ cơ hội nhận được kết quả cho mỗi so sánh (cực kỳ rẻ), vì vậy về cơ bản bạn được đảm bảo một kết quả có thể sử dụng ngay lập tức.

Tuy nhiên, tôi vẫn tò mò - thuật toán này trông như thế nào từ quan điểm bảo mật? Nếu tôi đã học được bất cứ điều gì từ việc duyệt SE này, thì đó là ngay cả những thứ đơn giản nhất/vô hại nhất đối với một người bình thường như tôi cũng có thể đại diện cho các lỗ hổng bảo mật rõ ràng.

(Còn nữa, tôi thề là cái này sẽ không bao giờ được dùng cho việc gì quan trọng. Bây giờ tôi đã biết về Lâu đài Bouncy, tạ ơn Chúa.)

Điểm:5
lá cờ ng

Trái ngược với Diffie-Hellman, điều này không chống lại việc nghe lén thụ động. Đối thủ chiếm được lưu lượng truy cập mạng sẽ nhận được "khóa mới tạo" mà "cả hai bên ngang hàng gửi" ở bước 1 và có thể áp dụng thuật toán của các bước 2/3/4 để tìm khóa dùng chung giúp mã hóa lưu lượng theo sau.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.