Điểm:-1

Cách đọc ký hiệu mã hóa/băm

lá cờ cn

Điều này rất cơ bản, nhưng điều tôi thắc mắc là: Tôi có một vài ký hiệu về mã hóa băm/RSA mà tôi không chắc khi đọc.

PKE(PW, K) Với PW đại diện cho mật khẩu, K đại diện cho chuỗi 128 bit và PKE đại diện cho RSA, điều này sẽ được diễn giải như thế nào? Tôi có kết hợp chuỗi và mật khẩu rồi mã hóa chuỗi đó hay cái gì khác không?

Tương tự với điều này, ssk = H(K,NB,NA), trong đó ssk là khóa chia sẻ bí mật, H là thuật toán SHA-1, K giống như trên và NB và NA là các chuỗi 128 bit ngẫu nhiên.

Tôi đang cố viết mã những thứ này bằng Python và tôi khá bế tắc với lý thuyết đằng sau nó.

Bean Guy avatar
lá cờ in
Sẽ thật tuyệt vời khi biết bạn trích xuất thông tin này từ đâu. Nhưng biểu thức $PKE(PW, K)$ thường có nghĩa là mã hóa văn bản gốc $K$ bằng khóa riêng $PW$, mà trong ngữ cảnh của RSA là $PW = (p, q, \varphi(n))$ .
fgrieu avatar
lá cờ ng
@Bean Guy: "mã hóa bản rõ bằng khóa riêng" không chính xác. Trong mã hóa bất đối xứng, chúng tôi muốn mã hóa bằng khóa _public_, giải mã bằng khóa riêng. Trong mật mã bất đối xứng, chúng ta cũng có thể ký bằng khóa riêng, nhưng đó không phải là mã hóa.
Điểm:1
lá cờ si

RSA hoàn toàn không lấy mật khẩu. Các ký hiệu chỉ đơn giản là không chính xác.

RSASSA-PSS lấy khóa riêng và tin nhắn rồi tạo chữ ký. Chữ ký đó có thể được xác minh bởi bất kỳ ai có chữ ký, thông báo và khóa chung.

RSAES-OAEP nhận một khóa chung và một tin nhắn ngắn (hầu như luôn là khóa đối xứng) và mã hóa tin nhắn đó (khóa đối xứng) để chỉ người có khóa riêng tư tương ứng mới có thể giải mã được. Điều này thực sự không được thực hiện nhiều, vì trao đổi khóa ECDH ít tốn tài nguyên hơn và dễ thực hiện an toàn hơn một chút.

Đối với phần thứ hai của câu hỏi của bạn, nó cũng không chính xác. SHA-1 không phải là Hàm dẫn xuất khóa an toàn và không thể được sử dụng để tạo khóa bí mật dùng chung một cách an toàn. Hàm dẫn xuất khóa thực như HKDF hoặc Blake3 cần 2-4 đầu vào: độ dài để xuất (tùy chọn, một số chỉ xuất giá trị 256 bit), một số Tài liệu khóa ban đầu (thường là bí mật được chia sẻ do trao đổi ECDH), một loại muối (tùy chọn, có thể được tạo nội bộ) và giá trị phân tách miền (được sử dụng để đảm bảo rằng các hoạt động khác nhau có thể có các khóa khác nhau ngay cả khi chỉ có một bí mật chung).

Nếu bạn muốn mã hóa tin nhắn thành khóa công khai của người nhận bằng Python, hãy sử dụng pysodium và các phương thức crypto_box. Nếu bạn muốn mã hóa thư bằng mật khẩu, hãy sử dụng phương thức crypto_pwhash để lấy khóa và phương thức crypto_secretbox để mã hóa bằng khóa dẫn xuất.

Đă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.