匿名質問者
匿名質問者匿名質問者とは「匿名質問」を利用して質問した質問者。
「匿名質問」では、ユーザー名を公開せずに匿名の質問ができます。
詳しくはこちら

AESの暗号化の手順について質問です。

現在AESについて勉強しており、
sub bytes、shift rows、mix colmns
まではなんとか理解出来ているのですが、
最後のadd round keyの部分で理解が出来なくて困っています。
この処理の部分で登場するキースケジュール、ラウンドキーとはどういうものなのか、どういう手順で作成するのかを解説していただけないでしょうか?

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2017/05/19 23:20:19
  • 終了:2017/05/26 23:25:03

回答(1件)

匿名回答1号 No.1

匿名回答1号「匿名質問」を利用した質問に回答すると「匿名回答○号」と匿名で表示されます。
「匿名質問」では、ユーザー名を公開せずに匿名の質問ができます。
詳しくはこちら
2017/05/20 00:40:11

http://www.triplefalcon.com/Lexicon/Encryption-Block-1.htm

鍵拡大処理では、入力された暗号鍵の値を多くのビット長に拡大し、各ラウンド処理で利用できる様にラウンドごとに異なるラウンド鍵(round key) を生成します。

ラウンドキーは鍵拡大処理によって生成されるものだそうです。

鍵の拡大処理を、鍵スケジュール(key scheduling) ともいいます。

キースケジュールは鍵の拡大処理の事だそうです。

と、ここまではブロック暗号の用語のようですね。
調べると、AESにおけるadd round keyの処理の実態はXORのようです。
http://www.atmarkit.co.jp/ait/articles/1506/18/news019.html


もしかするとご存知かもしれませんが一応補足として。
XORを使うと任意のビットのみを反転させる事ができます。
要するに、A XOR B = C である時に C XOR B = A が成り立つため、
暗号キーを用いて簡単に復号化できるというメリットがあるのでしょう。
(上記の例の場合、暗号キーはBになります)


どういう手順で、については以下が参考になるかも。
https://srad.jp/~Yoh2/journal/431452/

えーと、それでも平文を入れ替えたりシフトしたり、いろいろかきまわした後で鍵ストリームとXORしますよね。
DESやAESはそれを複数回繰りかえすことで強固な暗号化を実現しているわけで。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません