タグ

2014年5月19日のブックマーク (5件)

  • AES暗号のまとめ - Y's note

    AESとは 共通鍵暗号方式の一つ。http://ja.wikipedia.org/wiki/AES暗号 共通鍵暗号方式にはブロック暗号とストリーム暗号が存在し、AESはブロック暗号方式。 ブロック暗号方式は固定長のブロックデータを単位として処理をする。 一般的にブロック暗号方式は公開鍵暗号方式に比べて高速と言われている。 ブロック暗号方式のモードはいくつか存在し、以下のページに詳しく載っている。http://www.triplefalcon.com/Lexicon/Encryption-Block-Mode-1.htm http://ja.wikipedia.org/wiki/暗号利用モード ブロックモードはCBC(暗号文ブロック連鎖モード)等が一般的で、CBCは前のブロックの暗号化された値を次のブロックの暗号化に利用する。最初のブロックの暗号を行う場合、最後のブロックかIV(Initia

    AES暗号のまとめ - Y's note
  • Java「AES暗号」メモ(Hishidama's AES Sample)

    AESによる暗号化・復号化 Javaには、Cipherという暗号化・復号化を行うクラスが用意されている。 DESとか色々な種類の暗号をこのクラスによって使うことが出来る。 AESは JDK1.4.1ではサポートされていないが、JDK1.4.2ではサポートされている。 JDK1.5でもサポートされているが、128bit以外は使えないっぽい。 JDK1.6ではjce_policyを更新すれば使える。[2008-08-15] 単純な例 秘密鍵(暗号化・復号化で同じものを使う)をバイト列で用意して使う例。 import java.security.AlgorithmParameters; import java.security.Key; import java.security.SecureRandom; import javax.crypto.Cipher; import javax.cryp

  • Javaで共通鍵暗号方式「AES」を使用した暗号化と復号化

    「AES」とは、アメリカ合衆国の旧国家暗号規格であった「DES」が安全性の低下により、後続として公募され、採用された新暗号化規格らしい。 その「AES」は、「ブロック暗号」という共通鍵暗号方式の一種みたい。 「ブロック暗号」とは、平文をブロックという固定長の単位に分割し、暗号化していくという方式らしい。 さて、難しいことはそっと横に置いといて、「AES」をJavaで実装してみた。 メインメソッド まずはメインメソッド。 コマンドライン引数を暗号化メソッド、復号化メソッドに渡してやる。 また、暗号化キーと初期化ベクトルを固定値で用意した。 今回使用する「暗号利用モード(ブロック処理の種類)」は「CBC」というものを指定するのだが、これはブロックの暗号化を行う際に、前のブロックの暗号化した結果を利用し、暗号化するというもの。 一番初めのブロックに対しては、前のブロックがないので、「初期化ベクト

    Javaで共通鍵暗号方式「AES」を使用した暗号化と復号化
  • PHPで AES方式 (Rijndael-128)で暗号化するメモ

    (2012/12/01追記) 手っ取り早くPHPで暗号化したいなら、CodeBook.phpを使うのがお勧め。 (追記終わり) AESとは? 暗号化方式の1つ。ブロック長は128bitsのみ、鍵長は128・192・256bitsの3つから選択できる。 AESの元となる暗号化方式はRijndaelだが、Rijndaelではブロック長についても128・192・256bitsから選択できるという違いがある。 PHPでの使用例(CBCの場合) $key = '秘密の合言葉'; $text = '暗号化するメッセージ'; srand(); $size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC); $iv = mcrypt_create_iv($size, MCRYPT_RAND); $encrypted = mcrypt_en

  • 異なる言語間での暗号化と復号 - ぱせらんメモ

    仕事でデータを暗号化して保存する必要が出てきたので色々調べてみた。 メインのシステムはPHPで作っているんだけど、Javaなども絡んでくるので、お互いが処理できる暗号方式でなければいけない。 仕様さえ明確にしてあればオレオレアルゴリズムでもいいんだけど、今回はかなり重要なデータを扱うので世間でそれなりに使われている暗号方式を使うことにした。 暗号の種類 自分も暗号にそんな詳しいわけではないけど、「データをパスワードで暗号化するんでしょ?」ぐらいにしか思ってない人はきっと大変な思いをする。 今の話で登場するのは 暗号化したいデータ 暗号の種類(アルゴリズム) パスワード(暗号処理に使うキー) の3つだけど、これからやろうとしてるブロック暗号では 暗号化したいデータ 暗号の種類(アルゴリズム) 暗号処理に使うキー(パスワードというかバイト列) 暗号利用モード(ブロック処理の種類) 初期化ベクト

    異なる言語間での暗号化と復号 - ぱせらんメモ