Tôi cố gắng để thực hiện AES-256 trong chế độ CTR sử dụng nVidia CUDA. Tôi đã mã hóa thành công mã CPU để mở rộng khóa và bây giờ tôi cần phải thực hiện thuật toán AES-256 thực tế. Theo Wikipedia, một số mã tôi đã nhìn thấy và đặc biệt là this PDF (trang 9), vòng AES có thể được thực hiện như một loạt các tra cứu bảng. Câu hỏi của tôi là làm cách nào để tạo các bảng này? Tôi biết rằng tôi cần 4 KB để lưu trữ các bảng này, và đó không phải là một vấn đề. Tôi đã dành cả ngày cố gắng để tìm thấy những bảng này không thành công. PDF tôi đăng một liên kết để đề cập đến các bảng tra cứu T0, T1, T2 và T3, nhưng tôi không biết đây là những gì. Nó cũng đề cập đến các phím tròn 4, 5, 6 và 7, nhưng tôi cũng không hiểu những gì các chỉ số này đang đề cập đến.Tạo AES (AES-256) Bàn Lookup
Gần nhất tôi đã đến để tìm hiểu làm thế nào để tạo ra các bảng tra cứu là từ this project. Bên trong mã, có một bình luận nói rằng: (? Là nó một phép nhân ma trận hay cái gì khác)
Te0[x] = S [x].[02, 01, 01, 03];
Te1[x] = S [x].[03, 02, 01, 01];
Te2[x] = S [x].[01, 03, 02, 01];
Te3[x] = S [x].[01, 01, 03, 02];
Tuy nhiên, tôi không hoàn toàn chắc chắn tôi biết điều đó có nghĩa ký hiệu. Điều duy nhất tôi nhận ra là ma trận liên tục một phần cột hỗn hợp, cũng như ma trận S-box.
[Chỉnh sửa] Bây giờ có ai đó chĩa ra - làm thế nào một thực hiện tra cứu có thể thực sự chậm? Nó sẽ là khôn ngoan để thực hiện AES mà không có bảng tra cứu ở đây?
Tôi nghĩ nếu bạn nhìn khó khăn, nó thực sự chỉ là các hộp S có thể được thực hiện với một tra cứu bảng. – trumpetlicks
Bạn có chắc chắn không? Tôi đã mở phần thực hiện nói trên và nó hoàn toàn dựa trên các bảng tra cứu. Thậm chí có một dự án chỉ sử dụng ** một bảng tra cứu ** cho tất cả các hoạt động. Tôi không thực sự cần điều đó, tôi cần một bảng tra cứu cho mỗi hoạt động. Nó chắc chắn có thể, tôi chỉ cần tìm hiểu làm thế nào. – user2007674
Bạn nhận ra rằng những gì bạn đang nói về sẽ là một bảng đó là 2^(256 + 128 + 128) * 128 bit lớn. 256 cho khóa, 128 cho dữ liệu và 128 cho CTR. Đây là đầu vào đầy đủ để tra cứu đầu ra (và nó là những gì làm cho AES rất khó đảo ngược). Trong khi không ở một nơi tôi có thể đọc tài liệu tham khảo của bạn tại thời điểm này, nó có thể dựa 100% vào tra cứu và vẫn chỉ có tra cứu cho SBOXes. Một SBox là viết tắt của Thay thế, theo định nghĩa sẽ là một bảng tra cứu. – trumpetlicks