私はAESにいくつかの仕事をしていると私は正確には、暗号化は10ラウンドで行われている場合など、復号9.主にこの1で行われ、擬似コードの多くを見てきた:なぜAES復号化ではAES暗号化よりもラウンドが少なくなるのですか?
http://people.eku.edu/styere/Encrypt/JS-AES.html
これは正常ですか?私は行方不明のものがありますか?それは実際に復号化の10ラウンドですが、私は間違ったコードを読んでいるのですか?
私はAESにいくつかの仕事をしていると私は正確には、暗号化は10ラウンドで行われている場合など、復号9.主にこの1で行われ、擬似コードの多くを見てきた:なぜAES復号化ではAES暗号化よりもラウンドが少なくなるのですか?
http://people.eku.edu/styere/Encrypt/JS-AES.html
これは正常ですか?私は行方不明のものがありますか?それは実際に復号化の10ラウンドですが、私は間違ったコードを読んでいるのですか?
実際の質問は、これらのサイトが暗号のいくつかの厄介なJavaScriptバージョンを公開している理由です。
これはFIPS 197から公式NISTの擬似コードです:
Cipher(byte in[4*Nb], byte out[4*Nb], word w[Nb*(Nr+1)])
begin
byte state[4,Nb]
state = in
AddRoundKey(state, w[0, Nb-1])
for round = 1 step 1 to Nr–1
SubBytes(state)
ShiftRows(state)
MixColumns(state)
AddRoundKey(state, w[round*Nb, (round+1)*Nb-1]) end for
SubBytes(state)
ShiftRows(state)
AddRoundKey(state, w[Nr*Nb, (Nr+1)*Nb-1])
out = state
end
InvCipher(byte in[4*Nb], byte out[4*Nb], word w[Nb*(Nr+1)])
begin
byte state[4,Nb]
state = in
AddRoundKey(state, w[Nr*Nb, (Nr+1)*Nb-1])
for round = Nr-1 step -1 downto 1
InvShiftRows(state)
InvSubBytes(state)
AddRoundKey(state, w[round*Nb, (round+1)*Nb-1])
InvMixColumns(state) end for
InvShiftRows(state)
InvSubBytes(state)
AddRoundKey(state, w[0, Nb-1])
out = state
end
、バン、なくなっては差があります。あなたが指摘したサイトは、暗号化ルーチンで間違いを犯しました。taking it up to 11
コードを検索する場合は、のテストベクトルは、オリジナルまたはオリジナルのドキュメントと仕様を使用してください。
ありがとう!また、チップのおかげで! 擬似コードを正しいものにしたAESにいくつかの隠された細部があるかどうか心配していました。 もう一度おねがいします! –
おそらく[暗号化](http://crypto.stackexchange.com)で最もよく尋ねられるかもしれませんが、この部分はコーディングについてです。 – zaph
Stack Overflowはプログラミングと開発に関する質問のサイトです。この質問は、プログラミングや開発に関するものではないので、話題にはならないようです。ヘルプセンターの[ここではどのトピックを参照できますか](http://stackoverflow.com/help/on-topic)を参照してください。おそらく、[暗号化スタックエクスチェンジ](http://crypto.stackexchange.com/)や[情報セキュリティスタックエクスチェンジ](http://security.stackexchange.com/)の方が良いかもしれません。 – jww