Điểm:2

Làm cách nào để tính Nghịch đảo của AES S-BOX ngẫu nhiên (giả sử chúng ta không biết cách S-BOX được chế tạo)?

lá cờ in

Gần đây, tôi đang nghiên cứu về mật mã và tôi có nhiệm vụ thu thập các hộp s cho AES, sau đó triển khai các hộp s đó để mã hóa và giải mã, nhưng hầu hết các hộp S mà tôi tìm thấy không bao gồm nghịch đảo của nó.

Tôi biết rằng hầu hết nó đưa ra phép tính về cách dựng hình hộp s và nghịch đảo, nhưng tôi không nghĩ mình có thể làm kịp nếu làm như vậy.

Vì vậy, tôi tự hỏi liệu có phương pháp tính toán nghịch đảo của các AES S-BOX ngẫu nhiên không?

Daniel S avatar
lá cờ ru
Trong python: nếu `S` là danh sách có thứ tự các mục trong hộp S `SInverse=[S.index(i) for i in range(256)]`
Điểm:2
lá cờ in

SageMath có một hộp S gói được các nhà thiết kế S-Box sử dụng nhiều. Nếu bạn định học/chơi với S-Box, bạn có thể hưởng lợi từ gói này.

Với Gói Sbox (thử trực tuyến)

từ sage.crypto.sbox nhập SBox

#phải là sức mạnh của hai nếu không thì lỗi
p = Hoán vị(phạm vi(16)).random_element()

S = SBox(p);
print("Các hoán vị ", S)
print("Hoán vị nghịch đảo", S.inverse())

SageMath hiện đang sử dụng Python3, vì vậy người ta có thể viết phiên bản của họ rất dễ dàng bằng Python hoặc SageMath (thử trực tuyến);

P = Hoán vị(phạm vi(16)).random_element()

print("Các hoán vị ", P)

InverseP=[P.index(i) for i in range(16)]
print("Hoán vị nghịch đảo", InverseP)

Như chúng ta có thể thấy gói S-Box tốt hơn nhiều, ví dụ, việc xây dựng kiểm tra xem kích thước có bằng lũy ​​thừa 2 hay không.


Ghi chú: Tôi đã sử dụng các hoán vị ngẫu nhiên để đảm bảo rằng nghịch đảo tồn tại.


Như chúng ta có thể thấy từ Nguồn gói Sbox

m = self.input_size()
L = [self(i) for i in range(1<<m)]
return SBox([L.index(i) for i in range(1<<m)], big_endian=self._big_endian)

SageMath chuyển đổi S-Box thành Danh sách, thực hiện nghịch đảo trên danh sách, sau đó xây dựng S-Box trên danh sách. Như chúng ta có thể thấy nghịch đảo - nếu tồn tại - không phải là phép thuậ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.