SHA-3のソースを表示
←
SHA-3
ナビゲーションに移動
検索に移動
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
{{Infobox Encryption method | name = SHA-3<ref name="fips202">{{cite web |title=SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions |work=FEDERAL INFORMATION PROCESSING STANDARDS PUBLICATION |publisher=[[アメリカ国立標準技術研究所|NIST]] |url=http://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf |date=2015-08 |accessdate=2015-08-06}}</ref> (Keccak) | image = | caption = <!-- General --> | designers = [[Guido Bertoni]], [[Joan Daemen]], [[Michaël Peeters]], [[Gilles Van Assche]]. | publish date = 2015-08-05<ref name="fips202_announced">{{cite web |title=SHA-3 Standardization |work= Computer Security Division - Computer Security Resource Center |publisher=[[アメリカ国立標準技術研究所|NIST]] |url=http://csrc.nist.gov/groups/ST/hash/sha-3/sha-3_standardization.html |accessdate=2015-08-06}}</ref> | series = | derived from = | derived to = | related to = | certification = [[連邦情報処理標準|FIPS]] PUB 202<ref name="fips202" /> <!-- Detail --> | digest size = 224, 256, 384, 512 bits <br />または可変 (SHAKE128, SHAKE256) | structure = | rounds = | speed = [[Intel Core 2|Core 2]] 上にて 12.5 [[:en:Cycles_per_byte]] [r=1024,c=576]<ref name="keccak_speed_claim" /> | cryptanalysis = }} '''SHA-3'''は、元は'''Keccak''' ({{IPAc-en|ˈ|k|æ|t|ʃ|æ|k|}}あるいは{{IPAc-en|k|ɛ|t|ʃ|ɑː|k|}})<ref name="nist" /><ref>{{cite web|title=The Keccak sponge function family: Specifications summary |url=http://keccak.noekeon.org/specs_summary.html |accessdate=2014-01-02|authors=Guido Bertoni, Joan Daemen, Michaël Peeters and Gilles Van Assche}}</ref>として知られた[[暗号学的ハッシュ関数]]である。[[Secure Hash Algorithm|SHAシリーズ]]の代替という目的<ref>「当初の目的」としたほうが正確かもしれない。</ref>からSHA-3という名があるが、その内部構造はSHA-2までの方式([[:en:Merkle–Damgård construction]])とは全く異なっている。[[RadioGatún]]を基にし、Guido Bertoni、Joan Daemen、Michaël Peeters、Gilles Van Asscheによって設計された。 SHA-3は、2004年のCRYPTOにはじまる、[[MD5]]への攻撃成功の確認<ref>{{cite web |date=2004-08-17 |title=Collisions for Hash Functions MD4, MD5, HAVAL-128 and RIPEMD |url=https://eprint.iacr.org/2004/199.pdf |author=Xiaoyun Wang |coauthors=Dengguo Feng, Xuejia Lai, Hongbo Yu |accessdate=2015-08-06}}</ref>と[[SHA-1]]への攻撃の理論的確立<ref>{{cite web |url=http://eprint.iacr.org/2005/010 |title=Update on SHA-1 |author=Vincent Rijmen |authorlink=フィンセント・ライメン |coauthors=Elisabeth Oswald |date=2005-01-14 |accessdate=2015-08-06}}</ref> <ref>{{cite web |date=2005-08-14 |title=Finding Collisions in the Full SHA-1 |url=https://www.iacr.org/archive/crypto2005/36210017/36210017.pdf |author=Xiaoyun Wang |coauthors=Yiqun Lisa Yin, Hongbo Yu |publisher=CRYPTO 2005|accessdate=2025-02-03}}</ref>という、急速に進んだ在来の関数の危殆化を動機とした[[アメリカ国立標準技術研究所]](NIST)による、これらに類似した構造を持たないハッシュ関数を求めたコンペティションによるものである。 その後、[[SHA-2]]への攻撃法の研究は進んだものの、2017年初頭時点では効率的な(有効な)攻撃法の報告が無いことなどにより、結果としてSHA-2の代替の用意が重要ではなくなると思われていた<ref>{{cite web |accessdate=2015-08-06 |url=https://threatpost.com/forthcoming-sha-3-hash-function-may-be-unnecessary-092412/77042 |title=Forthcoming SHA-3 Hash Function May Be Unnecessary |author=Dennis Fisher |publisher=Threatpost |date=2012-09-24}}</ref>。その一方で、SHA-1については2017年2月には[[クラウドコンピューティング]]の演算力を利用したGoogleによる衝突攻撃(強衝突耐性の突破)の成功が現実に示され<ref>{{cite web |accessdate=2025-02-03 |url=https://security.googleblog.com/2017/02/announcing-first-sha1-collision.html |title=Announcing the first SHA1 collision |author=Marc Stevens, Elie Bursztein, Pierre Karpman, Ange Albertini, Yarik Markov, Alex Petit Bianco, Clement Baisse | publisher=Google|date=2017-02-23}}</ref>、2017年現在、SHA-2への移行は喫緊の要求となっている。 2012年10月2日、Keccakがコンペティションの勝者として選ばれ<ref name="nist">{{cite web |url=http://www.nist.gov/itl/csd/sha-100212.cfm|title=NIST Selects Winner of Secure Hash Algorithm (SHA-3) Competition|first=2012-10-02|publisher=[[NIST]]|accessdate=2014-01-02}}</ref>、[[2015年]][[8月5日]]に正式版が '''FIPS PUB 202''' として公表された<ref name="fips202_announced" />。 Keccakは{{ill|スポンジ構造|en|Sponge function}}<ref>{{cite web |url=http://sponge.noekeon.org/ |title=Sponge Functions |publisher=Ecrypt Hash Workshop 2007 |authors=Guido Bertoni, Joan Daemen, Michaël Peeters and Gilles Van Assche|accessdate=2014-01-02}}</ref><ref>{{cite web |url=http://sponge.noekeon.org/ |title=On the Indifferentiability of the Sponge Construction |publisher=EuroCrypt 2008 |authors=Guido Bertoni, Joan Daemen, Michaël Peeters and Gilles Van Assche|accessdate=2014-01-02}}</ref>を採用しており、メッセージのブロックは状態の初期ビットとの[[XOR]]を取ったのちに後述のブロック置換が行われる。SHA-3で用いられているバージョンでは、状態は64ビットのワード長の5×5アレイから構成され、総計で1600ビットである。設計者によれば、Keccakは[[Intel Core 2]]で12.5 cycles per byteの速度が出ると主張している<ref name="keccak_speed_claim">Keccak implementation overview Version 3.2 http://keccak.noekeon.org/Keccak-implementation-3.2.pdf</ref>。また、ハードウェア実装では他のどの最終候補よりも高速であった<ref>{{Citation |title=Fair and Comprehensive Performance Evaluation of 14 Second Round SHA-3 ASIC Implementations |url=http://csrc.nist.gov/groups/ST/hash/sha-3/Round2/Aug2010/documents/papers/SCHAUMONT_SHA3.pdf |first1=Xu |last1=Guo |first2=Sinan |last2=Huang |first3=Leyla |last3=Nazhandali |first4=Patrick |last4=Schaumont |journal=NIST 2nd SHA-3 Candidate Conference |month=Aug. |year=2010 |accessdate=2014-01-02 |page=12}} Keccak is second only to Luffa, which did not advance to the final round.</ref>。 Keccakの設計者は、[[認証付き暗号]]や特定のアーキテクチャにおいてより高速のハッシュ計算を実現する「木」構造のハッシュなど、標準化されていない関数の利用法を提唱している<ref>NIST, [http://nvlpubs.nist.gov/nistpubs/ir/2012/NIST.IR.7896.pdf Third-Round Report of the SHA-3 Cryptographic Hash Algorithm Competition], sections 5.1.2.1(「木」構造), 6.2(認証付き暗号), 7(将来標準化されるかもしれない「追加」)</ref>。Keccakでは、[[2の冪]]で表現できる任意のワード長を使うことができる(最小のワード長は ''w=2<sup>0</sup> = 1'' であり、そのときの状態は25ビット)。小さい状態長は暗号研究でのテストに有用であり、中間的な状態長(''w''=4のとき100ビット、''w''=32のとき800ビット)は、実用的な軽量の代替実装として利用できる。 == ハッシュ関数の構造 == [[Image:SpongeConstruction.svg|lang=ja|thumb|upright=1.35|right|alt=スポンジ構造の模式図 |ハッシュ関数のスポンジ構造<br/>p<sub>i</sub>:入力<br/>z<sub>i</sub>:ハッシュ出力<br/>使われない「キャパシティ」 cは、[[衝突攻撃]]や[[原像攻撃]]に対して望む耐性の2倍必要である。]] Keccakはスポンジ構造を採用しており、入力が一定の比率で内部状態に「吸収」され、ハッシュ出力では同じ比率で「絞り出」される。 データの ''r'' ビットを吸収するときには、データと状態の先頭ビットの排他的論理和を取り、ブロック置換を行う。絞り出すときには、状態の先頭 ''r'' ビットを出力として生成し、さらなる出力が必要な時にはブロック置換を行う。 この機構の中心はハッシュ関数の「キャパシティ」であり、入力でも出力でも触れられることのない ''c''=25''w''−''r'' ビットの状態である。これは求められるセキュリティ強度に応じて調整可能であり、SHA-3では出力ハッシュ長を ''n'' ビットとしたとき ''c''=2''n'' と保守的な設定がなされている。そのため、1回のブロック置換ごとに吸収されるメッセージの長さ ''r'' は出力ハッシュ長に依存することとなり、224、256、384、512ビットの出力ハッシュ長に対して、''r'' はそれぞれ1152、1088、832、576となる。[[SHA-2]]シリーズと異なり、SHA-3の関数(固定長を出力する224、256、384、512バージョンおよび可変長出力のSHAKE128およびSHAKE256)は全て同じブロック置換関数を持つ。これらのハッシュ関数を区別するものはパディングとスポンジ関数のパラメータの差のみである。 ハッシュの計算においては、状態を 0 に初期化し、入力をパディングし、それを ''r'' ビットごとに分割する。入力を状態に吸収するには、''r'' ビットごとに分割した入力と状態の排他的論理和を取ってからブロック置換を行う。 最終ブロック置換の後の、状態の先頭の ''n'' ビットが求めるハッシュ値である。''r'' は常に ''n'' より大きいため、絞り出す過程において更なるブロック置換は不要である。 === パディング === メッセージを ''r'' ビットごとのブロックに分割するためにはパディングが必要である。SHA-3 では、ビットパターン 100....001 が採用されている。つまり、メッセージの後ろに、1つのビット1、その後に幾つかのビット0(0個から ''r - 1'' 個まで)、そして最後に1つのビット1を追加する。 パディングの最初と最後のビット1は必須であり、メッセージの長さがすでに ''r'' で割り切れる場合であっても追加される。<ref name=fips202/>{{rp|5.1}}この場合、''100...001''である長さ ''r'' のブロックが追加される。 最後のメッセージブロックが ''r-1'' ビットの場合は、そのブロックに1を追加して ''r'' ビットとし、さらに''00...001''である長さ ''r'' のブロックが追加される。 このような処理は、ブロック数が増加するため無駄に見えるかもしれないが、安全性のために必要である。 もし最初のパディングビット1がない場合は、パディングが必要なメッセージのハッシュ値と、「パディングされたかのようなメッセージ」のハッシュ値が同じになってしまう(衝突)。 また、最後のビット1は、異なるレート(異なるハッシュ長)のバリアントに対して安全性を保障するために必要である(マルチレートパディング)。もし最後の1がなければ、一つの短いメッセージに対する2つのハッシュ値(例えば ''r=1152'' の場合と ''r=1088'' の場合)が同じになってしまう。 === ブロック置換 === この置換は、ワード長を ''w'' としたとき、''5×5×w'' ビットの状態を別の状態に変換する。 [[2の冪]]である任意の ''w=2<sup>ℓ</sup>'' に対して定義されているが、SHA-3においてはワード長は ''w=64'' (''ℓ= 6'') が使われる。 状態は5×5×''w''ビットのアレイで表現される。''A''[''x''][''y''][''z''] はリトルエンディアンに従うと (5''y'' + ''x'')×''w'' + ''z'' 番目の入力ビットとなる。インデックス演算は、最初の2つの次元に対しては modulo 5、3つめの次元に対しては modulo ''w'' となる。 基本的なブロック置換関数は5つの副ラウンドからなる 12+2ℓ の繰り返しで構成される。それぞれの副ラウンドは単純なものである(代入形式で記述される場合、入力状態を ''A''、出力状態を ''A’'' とする)。 ; ''θ'' : 5×''w''(''w'' = 64のとき320)ごとの5ビットのカラムの[[偶奇性|パリティ]] (この場合、5ビットの排他的論理和) を計算し、さらに隣接する2つのカラムとの排他的論理和を取る。 : ''A’''[''x''][''y''][''z''] = ''A''[''x''][''y''][''z''] ⊕ parity(''A''[''x''-1][0...4][''z'']) ⊕ parity(''A''[''x''+1][0...4][''z''−1]) ; ''ρ'' : 25ワードごとに異なる[[三角数]] 0, 1, 3, 6, 10, 15, .... で[[ビット演算#(キャリーなし)ローテート|ローテート]]する。 : ''A''[0][0]はローテートせず、出力''A’''にコピーする。それ以外すべての 0≤''t''≤23 に対して、''A’''[''x''][''y''][''z''] = ''A''[''x''][''y''][''z''−(''t''+1)(''t''+2)/2] とする。このとき <math>\begin{pmatrix} x \\ y \end{pmatrix} = \begin{pmatrix} 0 & 1 \\ 2 & 3 \end{pmatrix}^t \begin{pmatrix} 1 \\ 0 \end{pmatrix}</math> とする。 ; ''π'' : 25ワードを決まったパターンで置換する。 : ''A’''[''x''][''y''] = ''A''[''y''][''2x+3y''] ; ''χ'' : ''a'' = ''a'' ⊕ (¬''b'' & ''c'') を用いてビット列を結合する。 : ''A’''[''x''][''y''] = ''A''[''x''][''y''] ⊕ (¬''A''[''x''+1][''y''] & ''A''[''x''+2][''y'']) : SHA-3においてこの過程のみが非線形操作である。 ; ''ι'' : ラウンド定数と状態ワードの排他的論理和を取る。 : ラウンド ''i''<sub>''r''</sub> において、0≤''j''≤ℓ のとき ''A''[0][0][2<sup>''j''</sup>−1] と degree-8 [[線形帰還シフトレジスタ|LFSR]] sequenceの ''j''+7''i''<sub>''r''</sub> 番目の出力との排他的論理和を取る。これにより他の副ラウンドで保たれていた対称性が破られる。 ==修正== NISTによる公募の期間中、発見された問題への対処として応募者がアルゴリズムを修正することが許されていた。Keccakに加えられた修正は以下の通りである<ref>{{cite web|title=Keccak parameter changes for round 2 |url=http://keccak.noekeon.org/version_2.0.html |accessdate=2014-01-02}}</ref><ref>{{cite web|title=Simplifying Keccak's padding rule for round 3 |url=http://keccak.noekeon.org/version_3.0.html |accessdate=2014-01-02}}</ref>。 * セキュリティ向上のためラウンド数が 12+ℓ から 12+2ℓ に増やされた * メッセージパディングが、複雑なものから上述のより単純なものに変更された * 比率 ''r'' が、可能な限り大きくされた == 変更に関する論争 == KeccakがSHA-3として選出された後、2013年2月のRSA Conferenceおよび2013年8月のCHESにおいて、NISTはSHA-3標準のセキュリティパラメータとして、キャパシティの大きさを応募時のものから変更するであろうと発表した<ref name="rsa2013">{{cite web |url=https://ae.rsaconference.com/US13/connect/fileDownload/session/397EA47B1FB103F0B3E87D6163C7129E/CRYP-W23.pdf |title=SHA3, Where We've Been, Where We're Going |publisher=RSA Conference 2013 |author=John Kelsey |accessdate=2014-01-03}}</ref><ref name="ches2013">{{cite web |url=https://docs.google.com/file/d/0BzRYQSHuuMYOQXdHWkRiZXlURVE |title=SHA3, Past, Present, and Future |publisher=CHES 2013 |author=John Kelsey |accessdate=2014-01-02}}</ref>。この変更が一時騒動をもたらした。 [[ブルース・シュナイアー]]は、アルゴリズムを受け入れるにあたって有害なものであるとしてこの決定を批判した。 {{quote|非常に多くの不信が広まっている。NISTは、誰にも信頼されず、(強制された場合を除いて)誰も使わないアルゴリズムを発表する危険を冒している。<ref>{{cite web|title=Schneier on Security: Will Keccak = SHA-3? |url=https://www.schneier.com/blog/archives/2013/10/will_keccak_sha-3.html|accessdate=2014-01-02}}</ref>}} 一方、Paul Crowleyはこの決定に賛意を表明した。その内容を要約すると以下の通りである。 {{quote| * Keccakはこのように可変性を持つよう設計されている。SHA-3の仕様において、今回の決定はさほど重要なものではない。キャパシティの大きさと出力長は、要求されるセキュリティに応じてそれぞれ独立に変更できるのだから。 * ハッシュ関数に、衝突攻撃よりも第二原像攻撃に対して途方もなく高い耐性を求めるべき理由はない。 * 「よりセキュアでない」Keccakを心配するのであれば、スポンジ構造のキャパシティを大きくするのではなくラウンド数を増やすべきだ。 * あるセキュリティレベルを要求して公募を行ったにもかかわらずそれと異なるレベルを最終標準とすることはちょっと恥ずかしいことだ。しかし、それを改めようとしたら公募をやり直す以外にできることはないし、そうしたところで事態は改善しない。<ref>{{cite web|title=LShift: Why I support the US Government making a cryptography standard weaker |url=http://www.lshift.net/blog/2013/10/01/why-i-support-the-us-government-making-a-cryptography-standard-weaker |accessdate=2014-01-03}}</ref> }} [[ダニエル・バーンスタイン]]は、オリジナルのKeccakで提唱されていたようにキャパシティを576ビットに強化することを提唱した。 Keccakの設計チームは、新しいパラメータに賛意を表明しており、NISTによるパラメータ変更は、NISTのハッシュチームと自分たちによる議論の結果によるものであると表明した<ref>{{cite web|title=Yes, this is Keccak! |url=http://keccak.noekeon.org/yes_this_is_keccak.html|accessdate=2014-01-02}}</ref>。しかし、暗号コミュニティに対しては、すべての場合において512ビットのキャパシティを用いることを提唱している<ref>{{cite web|title=A concrete proposal |url=http://keccak.noekeon.org/a_concrete_proposal.html|accessdate=2014-01-02}}</ref>。 2013年11月、NISTのJohn KelseyはCHESでの発表に対する反応から、近いうち正式に発表する草稿においては、キャパシティの値を応募時のものから変更しない方針であることを明らかにした<ref>{{cite web|title=Moving Forward with SHA-3|url=http://csrc.nist.gov/groups/ST/hash/sha-3/documents/kelsey-email-moving-forward-110113.pdf|accessdate=2015-07-05}}</ref>。この方針は、[[2014年]]4月および5月に続けて公開されたFIPS 202の草稿<ref name="draft">{{cite web |title=DRAFT FIPS 202, SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions |url=http://csrc.nist.gov/publications/drafts/fips-202/fips_202_draft.pdf |accessdate=2015-08-06 }}</ref>に反映された。また最終的に、キャパシティを含めたハッシュ関数全体は草稿より変更されなかった<ref name="draft" /><ref name="fips202" />。 == ハッシュ値の例 == * SHA3-n および Keccak-n において、n = 224, 256, 384, 512 は出力ハッシュ長である。 * 固定長出力の SHA-3 においては、メッセージの後、パディングの前に 2 ビット列 01 がメッセージに追加される。 * キャパシティは出力ハッシュ長の2倍 ''c''=2''n'' である。 * 比率は ''r''=1600−''c'' である。 (以下では、ハッシュ値は十六進法で示している) 空の入力に対するハッシュ値の例: <span style="color: green;">Keccak-224("") 0x f71837502ba8e10837bdd8d365adb85591895602fc552b48b7390abd</span> <span style="color: green;">Keccak-256("") 0x c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470</span> <span style="color: green;">Keccak-384("") 0x 2c23146a63a29acf99e73b88f8c24eaa7dc60aa771780ccc006afbfa8fe2479b2dd2b21362337441ac12b515911957ff</span> <span style="color: green;">Keccak-512("") 0x 0eab42de4c3ceb9235fc91acffe746b29c29a8c366b7c60e4e67c466f36a4304c00fa9caf9d87976ba469bcbe06713b435f091ef2769fb160cdab33d3670680e</span> <span style="color: green;">SHA3-224("") 0x 6b4e03423667dbb73b6e15454f0eb1abd4597f9a1b078e3f5b5a6bc7</span> <span style="color: green;">SHA3-256("") 0x a7ffc6f8bf1ed76651c14756a061d662f580ff4de43b49fa82d80a4b80f8434a</span> <span style="color: green;">SHA3-384("") 0x 0c63a75b845e4f7d01107d852e4c2485c51a50aaaa94fc61995e71bbee983a2ac3713831264adb47fb6bd1e058d5f004</span> <span style="color: green;">SHA3-512("") 0x a69f73cca23a9ac5c8b567dc185a756e97c982164fe25859e0d1dcc1475c80a615b2123af1f5f94c11e3e9402c3ac558f500199d95b6d3e301758586281dcd26</span> 入力メッセージのわずかな違いも、出力されるハッシュ値に大きな変化を及ぼす。例えば、メッセージの最後にピリオドを加えた場合: <span style="color: green;">SHA3-224("The quick brown fox jumps over the lazy dog") 0x d15dadceaa4d5d7bb3b48f446421d542e08ad8887305e28d58335795</span> <span style="color: green;">SHA3-224("The quick brown fox jumps over the lazy dog.") 0x 2d0708903833afabdd232a20201176e8b58c5be8a6fe74265ac54db0</span> SHA-3 においては、'''SHAKE128''' および '''SHAKE256''' と呼ばれる 2 つの可変長出力の関数も追加され、望みのセキュリティ強度に応じて利用可能となる。これらの関数ではキャパシティおよびパディングが SHA-3 のうち固定長を出力するものとは異なる。キャパシティは SHAKE128 では 256 ビット、SHAKE256 では 512 ビットである。メッセージの後、パディングの前に 4 ビット列 1111 がメッセージに追加され、出力は任意長に切りつめられる。追加ビット列のうち最初の 2 ビットは SHAKE と固定長出力の SHA-3 を区別するためのものである、続く 2 ビットは Sakura コーディングスキーム<ref>{{cite web |url=http://keccak.noekeon.org/Sakura.pdf |title=SAKURA: a flexible coding for tree hashing |author=Guido Bertoni |coauthors=Joan Daemen, Michaël Peeters, Gilles Van Assche |accessdate=2016-06-20}}</ref>のためのものであり、将来的な SHA-3 の拡張の際にそれと区別するためのものとなる。 == SHAシリーズの比較 == {{SHAシリーズの比較}} == 実装ライブラリ == SHA-3をサポートしているライブラリは以下の通り。 * [[Botan]] * {{ill|Bouncy Castle|en|Bouncy Castle (cryptography)}} * {{ill|cryptlib|en|cryptlib}} * {{ill|Crypto++|en|Crypto++}} * {{ill|Libgcrypt|en|Libgcrypt}} * {{ill|Nettle|en|Nettle (cryptographic library)}} * [[OpenSSL]] * [[wolfSSL]] == 脚注 == {{脚注ヘルプ}} === 出典 === {{Reflist|2}} == 外部リンク == * [https://keccak.team/index.html The Keccak web site] * [https://github.com/kocakosm/pitaya/blob/master/src/org/kocakosm/pitaya/security/Keccak.java A Java implementation of Keccak] * [http://plaintext.crypto.lo.gy/article/495/untwisted-a-cryptol-implementation-of-keccak-part-1 A Cryptol implementation of Keccak] * [https://cryptography.gmu.edu/athena/index.php?id=source_codes VHDL source code developed by the Cryptographic Engineering Research Group (CERG) at George Mason University] * [https://github.com/b/sha3 Erlang NIF implementation based on the NIST reference code] * [https://www.purebasic.fr/english/viewtopic.php?p=423810#p423810 Keccak implemented in PureBasic] {{Cryptography navbox | hash}} [[Category:パブリックドメインソフトウェア]]
このページで使用されているテンプレート:
テンプレート:Citation
(
ソースを閲覧
)
テンプレート:Cite web
(
ソースを閲覧
)
テンプレート:Cryptography navbox
(
ソースを閲覧
)
テンプレート:IPAc-en
(
ソースを閲覧
)
テンプレート:Ill
(
ソースを閲覧
)
テンプレート:Infobox Encryption method
(
ソースを閲覧
)
テンプレート:Quote
(
ソースを閲覧
)
テンプレート:Reflist
(
ソースを閲覧
)
テンプレート:Rp
(
ソースを閲覧
)
テンプレート:SHAシリーズの比較
(
ソースを閲覧
)
テンプレート:脚注ヘルプ
(
ソースを閲覧
)
SHA-3
に戻る。
ナビゲーション メニュー
個人用ツール
ログイン
名前空間
ページ
議論
日本語
表示
閲覧
ソースを閲覧
履歴表示
その他
検索
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
特別ページ
ツール
リンク元
関連ページの更新状況
ページ情報