mcrypt_create_iv() は、IV を生成するために 使用されます。
パラメータ size で IV のサイズを、また パラメータ source (デフォルトはランダムな値) で IV のソースを指定します。
source には、MCRYPT_RAND (システムの乱数生成器)、 MCRYPT_DEV_RANDOM (/dev/random からデータを読む)および MCRYPT_DEV_URANDOM (/dev/urandom からデータを読む) を指定できます。 Windows でサポートされているのは MCRYPT_RAND のみです。なぜなら、Windows には(当然) /dev/random あるいは /dev/urandom が存在しないからです。
注意: MCRYPT_RAND を使用する場合、乱数生成器を初期化するために、 必ず mcrypt_create_iv() の前に srand() をコールしてください。rand() のように、自動的に 初期化されるわけではありません。
IV は、単に暗号化ルーチンに異なる初期値を与えるためだけのものです。 この IV は、たとえ要求されていたとしても秘密にしておく必要はありません。 暗号化したデータとともに IV を送信したとしても、セキュリティを損ねる ことはありません。
このトピックについてのより詳細な情報は http://www.ciphersbyritter.com/GLOSSARY.HTM#IV、http://fn2.freenet.edmonton.ab.ca/~jsavard/crypto/co0409.htm および Applied Cryptography by Schneier (ISBN 0-471-11709-9) の 9.3 節にあります。