拟似乱数生成器PANAMA.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
拟似乱数生成器PANAMA

Copyright ? Hitachi, Ltd. 2000. All Right Reserved PAGE 4 仕様書 MULTI-S01暗号 (株)日立製作所 目次 TOC \o 1-3 1. 準備 PAGEREF _Toc487856742 \h 3 1.1. 変数、記号の表記について PAGEREF _Toc487856743 \h 3 1.2. ワード中のバイトデータの順序(エンディアン) PAGEREF _Toc487856744 \h 3 1.3. 有限体上の演算 PAGEREF _Toc487856745 \h 4 2. アルゴリズム PAGEREF _Toc487856746 \h 6 2.1. 全体概要 PAGEREF _Toc487856747 \h 6 2.2. 機能 PAGEREF _Toc487856748 \h 7 2.3. 擬似乱数生成器 PAGEREF _Toc487856749 \h 7 2.4. 擬似乱数生成器PANAMA PAGEREF _Toc487856750 \h 8 2.5. PANAMAによるA,B,Sの生成 PAGEREF _Toc487856751 \h 12 2.6. 暗号化処理のデータ攪拌部 PAGEREF _Toc487856752 \h 13 2.7. 復号化処理のデータ攪拌部 PAGEREF _Toc487856753 \h 14 3. 大きなデータの処理 PAGEREF _Toc487856754 \h 15 準備 変数、記号の表記について 本仕様書では、整数の演算子を以下のように定義する。 ?:ビットごとの排他的論理和、変数の長さは文脈から明らか ?:有限体F264上の乗算(後述) +:整数加算 ×:整数乗算 OR:ビット毎の論理和演算(32ビット) NOT:1変数演算子。ビット毎の論理反転(32ビット) ROTLk(X ):32ビットのバイナリXに対するkビット左巡回シフト 変数の長さを明示する場合、そのビット長を括弧付きスーパースクリプトとして表記する。たとえば、変数Xのビット長が8ビットである場合X (8)と表記する。 また、列については、変数名にサブスクリプトとして引数を書くことで要素を表す。たとえば、変数列Xの引数8に相当する要素をX8と書き表す。列の引数は、特に明記しない限り、最初の要素を1とする。 ワード中のバイトデータの順序(エンディアン) 鍵、平文、暗号文、冗長データ、初期値はバイト単位の列として扱う。これらは64ビットのデータ型との変換の際、Big-Endianにより変換される;たとえば、64ビットのワード列Yに、バイト文字列Xを格納する手順は以下のようになる。 Y i = ?j =1,…,8 X8(i –1) +j 2(64–8j) このアルゴリズムではバイト列を64ビットブロックへの埋め込みを行う。この場合、64ビットのデータ型に埋め込まれるバイト列Xiの順序は以下のようになる。 [MSB]X1 X2 X3 X4 X5 X6 X7 X8[LSB] 有限体上の演算 MULTI-S01では、有限体F264上の演算を用いる。ここでは、この演算の実装に必要な性質と演算方法を簡単に説明する。 本稿では64ビットの変数AとBのF264の乗算(以下、演算子を記号?で示す)を考えるとき、変数、Bはそれぞれの値に応じて、以下のようにして63次以下のxについての多項式(係数は0または1)を対応づける。 1ビット値ai={0,1}をAの上位からi番目のビット値であると定義する。 すなわち、 (a1, a2, a3,...,a64)=A。これらaiを用いてAに対応づけられる多項式A(x )を以下のように定義する。 A(x ) = a1x 63 + a2x 62 + a3x 61 + ... + a63x + a64 = ?i =1...64 aix (64–i ) bi ={0,1}についてもAと同様に、多項式B (x )を対応づける。 (b 1, b 2, b 3,...,b 64)=B B(x ) = b 1x 63 + b 2x 62 + b 3x 61 + ... + b 63 x + b 64 = ?i =1...64 bix (64–i ) ここで多項式の剰余演算のために記号を定義する。二つの多項式A(x )、P(x )についてA(x ) mod P(x )を、A(x )をP(x )で割ったときの剰余、と定義する。 本稿ではP(x )=x64+x4+x3+x +1を使って、多項式の(剰余)乗算結果であるC(x )を次のように定義する。 C (x ) = A (x ) ? B (

文档评论(0)

youbika + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档