Có bất kỳ nhược điểm bảo mật nào khi mã hóa một khóa đã cho với chính nó bằng AES ở chế độ CBC và sử dụng IV (tất nhiên)?Có an toàn để mã hóa chuỗi bằng cách sử dụng cùng một chuỗi là khóa không?
Các nguyên tắc được tôn trọng: khóa là bí mật và IV là công khai (vì điều này không ảnh hưởng đến bảo mật mã hóa).
Tuy nhiên, kẻ tấn công tiềm năng sẽ biết (vì anh ấy có thể truy cập mã nguồn), rằng chuỗi được mã hóa bằng chính nó làm khóa.
Bản án của tôi không thấy bất kỳ vấn đề nào, nhưng tôi đang cố gắng đảm bảo.
Cảm ơn bạn.
EDIT - chi tiết của công việc, tôi hy vọng tôi sẽ có thể vượt qua chúng trên rõ ràng, đó là chưa rất rõ ràng cho bản thân mình:
hệ thống của tôi sử dụng mã hóa để lưu trữ các giá trị nhất định trong bảng MySQL . Mã hóa được thực hiện trên mã PHP (không phải là AES tích hợp MySQL). Rõ ràng, tôi cần một khóa bí mật, mà cần phải được thiết lập bởi người quản trị hệ thống, chỉ cần ONCE, tại thiết lập hệ thống. Điều này là rất quan trọng, bởi vì thay đổi khóa sau khi bất kỳ dữ liệu mã hóa nào đã được lưu như vậy, sẽ làm cho dữ liệu đó không thể giải mã được.
Quản trị viên có thể thiết lập khóa bí mật bằng cách chỉ cần chỉnh sửa tệp tập lệnh PHP qua FTP (hoặc bất kỳ thứ gì). Nhưng đó không phải là điều tôi muốn.
Điều tôi muốn có tập lệnh cài đặt, trong đó quản trị viên chọn khóa bí mật được mã hóa với chính nó và được lưu trữ vào bảng. Cấp, một điểm hợp lệ đã được thực hiện dưới đây, là bạn cần chìa khóa để giải mã khóa ... Tôi đã không nhận được như xa trong lý luận của tôi, tôi đã ở giai đoạn điều tra nếu mã hóa một khóa với chính nó như chìa khóa vẫn là một điều an toàn.
Nếu bạn có bất kỳ ý tưởng nào ở trên, nó sẽ được đánh giá cao.
Cảm ơn.
Lúc đầu, tôi đồng ý với @Piskor, "Điểm là gì?" Nhưng tôi thấy rằng nếu bạn mã hóa một mật khẩu với chính nó, sau đó lưu trữ cipertext kết quả, bạn có thể xác minh mật khẩu chính xác bằng cách cố gắng giải mã cipertext bằng mật khẩu đã cung cấp. Điều này có tương tự như trường hợp sử dụng của bạn không? – Greg
Chỉ là tôi hoặc là tiêu đề của bạn và câu hỏi khác? : S –
@Greg Nếu anh ta chỉ là thử nghiệm để xem nếu mật khẩu là chính xác, ông sẽ tốt hơn off lưu trữ một băm mật mã của mật khẩu. Bạn băm đầu vào của người dùng, và nếu băm phù hợp, bạn biết mật khẩu đầu vào là chính xác. – JMarsch