RFC1751 日本語訳
1751 A Convention for Human-Readable 128-bit Keys. D. McDonald. December 1994. (Format: TXT=31428 bytes) (Status: INFORMATIONAL)
プログラムでの自動翻訳です。
RFC一覧
英語原文
Network Working Group D. McDonald Request for Comments: 1751 NRL Category: Informational December 1994
コメントを求めるワーキンググループD.マクドナルドの要求をネットワークでつないでください: 1751年のNRLカテゴリ: 情報の1994年12月
A Convention for Human-Readable 128-bit Keys
人間読み込み可能な128ビットのキーのためのコンベンション
Status of this Memo
このMemoの状態
This memo provides information for the Internet community. This memo does not specify an Internet standard of any kind. Distribution of the memo is unlimited.
このメモはインターネットコミュニティのための情報を提供します。 このメモはどんな種類のインターネット標準も指定しません。 メモの分配は無制限です。
Introduction
序論
The Internet community has begun to address matters of security. Recent standards, including version 2 of SNMP [GM93], have explicit requirements for an authentication mechanism. These require use of a keyed message-digest algorithm, MD5 [Riv92], with a key size of 128- bits. A 128-bit key, while sufficiently strong, is hard for most people to read, remember, and type in. This memo proposes a convention for use with Internet applications & protocols using 128- bit cryptographic keys.
インターネットコミュニティはセキュリティの問題を記述し始めました。 SNMP[GM93]のバージョン2を含む最近の規格が認証機構のための明白な要件を持っています。 これらは128ビットの主要なサイズで合わせられたメッセージダイジェストアルゴリズム、MD5[Riv92]の使用を必要とします。 ほとんどの人々にとって、十分強いのですが、128ビットのキーは読んで、覚えていて、タイプするのは困難です。 このメモは、使用のためにインターネットアプリケーションとプロトコルで128の噛み付いている暗号化キーを使用することでコンベンションを提案します。
A Solution Already Exists
ソリューションは既に存在しています。
The S/Key(tm) one-time password system [Hal94] uses MD4 (and now MD5, as well) to compute one-time passwords. It takes the 128-bit result of MD4 and collapses it to a 64-bit result. Despite the size reduction, 64-bit one-time passwords are still difficult for ordinary people to remember and enter. The authors of S/Key devised a system to make the 64-bit one-time password easy for people to enter.
S/主要な(tm)ワンタイムパスワードシステム[Hal94]は、ワンタイムパスワードを計算するのに、MD4(そして、現在の井戸としてのMD5)を使用します。 それは、MD4の128ビットの結果を取って、64ビットの結果までそれを潰します。 サイズリダクションにもかかわらず、世間一般の人には、64ビットのワンタイムパスワードは覚えていて、入るのはまだ難しいです。 S/キーの作者は、人々が64ビットのワンタイムパスワードに入るのを簡単にするようにシステムについて工夫しました。
Their idea was to transform the password into a string of small English words. English words are significantly easier for people to both remember and type. The authors of S/Key started with a dictionary of 2048 English words, ranging in length from one to four characters. The space covered by a 64-bit key (2^64) could be covered by six words from this dictionary (2^66) with room remaining for parity. For example, an S/Key one-time password of hex value:
彼らの考えはパスワードを一連の小さい英単語に変えることでした。 人々にとって、英単語はともに覚えていて、タイプするのはかなり簡単です。 S/キーの作者は2048の英単語の辞書から始まって、長さにおける及ぶのは1〜4つのキャラクタです。 この辞書(2^66)からの6つの単語で同等ために残っている余地で64ビットのキー(2^64)でカバーされたスペースは覆うことができました。 例えば、十六進法価値のS/主要なワンタイムパスワード:
EB33 F77E E73D 4053
EB33 F77E E73D4053
would become the following six English words:
以下の6つの英単語になるでしょう:
TIDE ITCH SLOW REIN RULE MOT
潮のかゆみの遅いたづな規則MOT
McDonald [Page 1] RFC 1751 Human-Readable 128-bit Keys December 1994
128ビットのキー1994年12月に人間読み込み可能なマクドナルド[1ページ]RFC1751
Because of the need for interoperability, it is undesirable to have different dictionaries for different languages. Also, the current dictionary only uses characters from the invariant portion of ISO- 646. Finally, there is an installed base of users and applications with this dictionary.
相互運用性の必要性のために、異なった言語のための異なった辞書を持っているのは望ましくありません。 また、現在の辞書はISO646の不変な部分からキャラクタを使用するだけです。 最終的に、この辞書があるユーザとアプリケーションのインストールされたベースがあります。
The Proposal
提案
The code (see Appendix A) which S/Key uses to convert 64-bit numbers to six English words contains two primitives which perform conversions either way. The primitive btoe(char *engout,char *c) takes a 64-bit quantity referenced by c and places English words in the string referenced by engout. The primitive etob(char *out,char *e) performs the opposite with an input string of English words referenced by e, and by placing the 64-bit result into the buffer referenced by out.
S/キーが64ビットの数を6つの英単語に変換するのに使用するコード(Appendix Aを見る)はいずれにせよ変換を実行する2つの基関数を含んでいます。 原始のbtoe(*engoutを炭にしてください、炭*c)はcによって参照をつけられる64ビットの量とストリングの英単語がengoutで参照をつけた場所を取ります。 原始のetob(外で*を炭にしてください、炭*e)は、eと、外によって参照をつけられるバッファの中に64ビットの結果を置くことによって、英単語の入力ストリングが参照をつけられている正反対を実行します。
The aforementioned primitives can be applied to both halves of a 128-bit key, or both halves of a string of twelve English words. Two new primitives (see Appendix B), key2eng(char *engout,char *key) and eng2key(char *keyout,char *eng) serve as wrappers which call the S/Key primitives twice, once for each half of the 128-bit key or string of twelve words.
128ビットのキーの両方の半分、または一連の12の英単語の半分の両方に前述の基関数を適用できます。 2つの新しい基関数(Appendix Bを見る)、key2eng(*engoutを炭にしてください、炭*キー)、およびeng2key(*keyoutを炭にしてください、炭*eng)は二度S/主要な基関数を呼ぶ包装紙として機能します、12の単語の128ビットのキーか半分の各ストリングのための一度。
For example, the 128-bit key of:
例えば、以下の128ビットのキー
CCAC 2AED 5910 56BE 4F90 FD44 1C53 4766
CCAC 2AED 5910 56BE 4F90 FD44 1C53 4766
would become
なるでしょう。
RASH BUSH MILK LOOK BAD BRIM AVID GAFF BAIT ROT POD LOVE
軽率な悪い低木の熱心なかぎざお餌の腐敗さやのミルク外観縁の愛
Likewise, a user should be able to type in
同様に、ユーザは中でタイプできるべきです。
TROD MUTE TAIL WARM CHAR KONG HAAG CITY BORE O TEAL AWL
踏み均された無言の暖かいテールのハーグ都市の穴のOコガモ炭のコン千枚通し
as a key, and the machine should make the translation to:
キー、およびマシンがするべきであるように、以下のことのために翻訳をしてください。
EFF8 1F9B FBC6 5350 920C DD74 16DE 8009
EFF8 1F9B FBC6 5350 920C DD74 16DE8009
If this proposal is to work, it is critical that the dictionary of English words does not change with different implementations. A freely redistributable reference implementation is given in Appendices A and B.
この提案が働くことであるなら、英単語の辞書が異なった実現を交換しないのは、批判的です。 Appendices AとBで自由に再配付可能な参照実現を与えます。
McDonald [Page 2] RFC 1751 Human-Readable 128-bit Keys December 1994
128ビットのキー1994年12月に人間読み込み可能なマクドナルド[2ページ]RFC1751
Security Considerations
セキュリティ問題
This document recommends a method of representing 128-bit keys using strings of English words. Since the strings of English words are easy to remember, people may potentially construct easy-to-guess strings of English words. With easy-to-guess strings comes the possibility of a sentential equivalent of a dictionary attack. In order to maximize the strength of any authentication mechanism that uses 128-bit keys, the keys must be sufficiently obscure. In particular, people should avoid the temptation to devise sentences.
このドキュメントは英単語のストリングを使用することで128ビットのキーを表す方法を推薦します。 英単語のストリングは覚えていやすいので、人々は潜在的に推測しやすい英単語のストリングを構成するかもしれません。 推測しやすいストリングと共に辞書攻撃の文の同等物の可能性は来ています。 128ビットのキーを使用するどんな認証機構の強さも最大にするために、キーは十分不鮮明でなければなりません。 特に、人々は文について工夫する誘惑を避けるべきです。
Acknowledgements
承認
S/Key is a registered trademark of Bell Communications Research.
S/キーはベルコミュニケーションズ・リサーチの登録商標です。
Thanks to Randall Atkinson for the bulk of the security considerations section, and for general advice. Thanks to Phil Karn and Neil Haller for producing the S/Key one-time password system, which inspired this document.
セキュリティ問題部の嵩、および一般的助言をランドル・アトキンソンをありがとうございます。 S/主要なワンタイムパスワードシステムをフィルKarnとニール・ハラーに作成してくださってありがとうございます。(それは、このドキュメントを奮い立たせました)。
References
参照
[GM93] Galvin, J. and K. McCloghrie, "Security Protocols for version 2 of the Simple Network Management Protocol (SNMPv2)", RFC 1446, Trusted Information Systems, Hughes LAN Systems, April 1993.
[GM93] ガルビンとJ.とK.McCloghrie、「Simple Network Managementプロトコル(SNMPv2)のバージョン2のためのセキュリティプロトコル」、RFC1446、Trusted情報システム、ヒューズLAN Systems(1993年4月)。
[Hal94] Haller, N., "The S/Key(tm) One-Time Password System", Proceedings of the Symposium on Network & Distributed Systems Security, Internet Society, San Diego, February 1994.
[Hal94] ハラーとN.と「S/主要な(tm)ワンタイムパスワードシステム」とネットワークにおけるシンポジウムの議事と分散システムセキュリティ、インターネット協会、サンディエゴ(1994年2月)。
[Riv92] Rivest, R., "The MD5 Message-Digest Algorithm", RFC 1321, MIT Laboratory for Computer Science and RSA Data Security, Inc., April 1992.
[Riv92] RivestとR.と「MD5メッセージダイジェストアルゴリズム」とRFC1321とMITコンピュータサイエンス研究所とRSA Data Security Inc.(1992年4月)。
Author's Address
作者のアドレス
Daniel L. McDonald United States Naval Research Laboratory Code 5544 4555 Overlook Ave. SW Washington, DC 20375
ダニエルL.マクドナルド合衆国海軍研究試験所コード5544 4555はAveを見落とします。 SWワシントン、DC 20375
Phone: (202) 404-7122 EMail: danmcd@itd.nrl.navy.mil
以下に電話をしてください。 (202) 404-7122 メールしてください: danmcd@itd.nrl.navy.mil
McDonald [Page 3] RFC 1751 Human-Readable 128-bit Keys December 1994
128ビットのキー1994年12月に人間読み込み可能なマクドナルド[3ページ]RFC1751
Appendix A - Source for S/Key 8-bytes to/from Words Routines (put.c)
付録A--S/主要なワーズからの/への8バイトのRoutinesのためのソース(put.c)
/* This code originally appeared in the source for S/Key(TM), * available in the directory * ftp://thumper.bellcore.com/pub/nmh * * It has been modified only to remove explicit S/Key(TM) references. */
変更されて、明白なS/主要な(TM)参照を取り除くこのコードが元々ソースでS/キー(TM)、それがディレクトリ* ftp://thumper.bellcore.com/pub/nmh **であったところで利用可能な*に見えた/*。 */
#include <stdio.h> #include <string.h> #include <assert.h> #include <ctype.h>
#<stdio.h>#インクルード<string.h>#インクルード<assert.h>#インクルード<ctype.h>を含めてください。
#ifdef __STDC__ #define __ARGS(x) x #else #define __ARGS(x) () #endif
#ifdef__STDC__ #が定義する、__ARGS(x)の#ほかのx#、は#endifに__ARGS(x)()を定義します。
static unsigned long extract __ARGS((char *s,int start,int length)); static void standard __ARGS((char *word)); static void insert __ARGS((char *s, int x, int start, int length)); static int wsrch __ARGS((char *w,int low,int high));
静的な無記名の長い抽出__ARGS((炭の*s、int始め、intの長さ))。 静的な空の規格__ARGS((炭*単語))。 静的な空の差し込み__ARGS((炭*s、int x、int始め、intの長さ))。 静的なint wsrch__ARGS(*w、int安値、intを高く炭にします)。
/* Dictionary for integer-word translations */ char Wp[2048][4] = { "A", "ABE", "ACE", "ACT", "AD", "ADA", "ADD", "AGO", "AID", "AIM", "AIR", "ALL", "ALP", "AM", "AMY", "AN", "ANA", "AND", "ANN", "ANT", "ANY", "APE", "APS", "APT", "ARC", "ARE", "ARK", "ARM", "ART", "AS", "ASH", "ASK", "AT", "ATE", "AUG", "AUK", "AVE", "AWE", "AWK", "AWL", "AWN", "AX", "AYE", "BAD", "BAG", "BAH", "BAM", "BAN", "BAR", "BAT", "BAY", "BE", "BED", "BEE", "BEG", "BEN", "BET", "BEY", "BIB", "BID", "BIG", "BIN", "BIT", "BOB", "BOG", "BON", "BOO", "BOP", "BOW", "BOY", "BUB", "BUD", "BUG", "BUM", "BUN", "BUS", "BUT", "BUY", "BY", "BYE", "CAB", "CAL", "CAM", "CAN", "CAP", "CAR", "CAT", "CAW", "COD", "COG", "COL", "CON", "COO", "COP", "COT", "COW", "COY", "CRY", "CUB", "CUE", "CUP", "CUR", "CUT", "DAB", "DAD", "DAM", "DAN", "DAR", "DAY", "DEE", "DEL", "DEN", "DES", "DEW", "DID", "DIE", "DIG", "DIN", "DIP", "DO", "DOE", "DOG", "DON", "DOT", "DOW", "DRY", "DUB", "DUD", "DUE", "DUG", "DUN", "EAR", "EAT", "ED", "EEL", "EGG", "EGO", "ELI", "ELK", "ELM", "ELY", "EM", "END", "EST", "ETC", "EVA", "EVE", "EWE", "EYE", "FAD", "FAN", "FAR", "FAT", "FAY", "FED", "FEE", "FEW", "FIB", "FIG", "FIN", "FIR", "FIT", "FLO", "FLY", "FOE", "FOG", "FOR", "FRY", "FUM", "FUN", "FUR", "GAB", "GAD", "GAG", "GAL", "GAM", "GAP", "GAS", "GAY", "GEE", "GEL", "GEM", "GET", "GIG", "GIL", "GIN", "GO", "GOT", "GUM", "GUN", "GUS", "GUT", "GUY", "GYM", "GYP", "HA", "HAD", "HAL", "HAM", "HAN", "HAP", "HAS", "HAT", "HAW", "HAY", "HE", "HEM", "HEN", "HER", "HEW", "HEY", "HI", "HID", "HIM", "HIP", "HIS", "HIT",
/* Dictionary for integer-word translations */ char Wp[2048][4] = { "A", "ABE", "ACE", "ACT", "AD", "ADA", "ADD", "AGO", "AID", "AIM", "AIR", "ALL", "ALP", "AM", "AMY", "AN", "ANA", "AND", "ANN", "ANT", "ANY", "APE", "APS", "APT", "ARC", "ARE", "ARK", "ARM", "ART", "AS", "ASH", "ASK", "AT", "ATE", "AUG", "AUK", "AVE", "AWE", "AWK", "AWL", "AWN", "AX", "AYE", "BAD", "BAG", "BAH", "BAM", "BAN", "BAR", "BAT", "BAY", "BE", "BED", "BEE", "BEG", "BEN", "BET", "BEY", "BIB", "BID", "BIG", "BIN", "BIT", "BOB", "BOG", "BON", "BOO", "BOP", "BOW", "BOY", "BUB", "BUD", "BUG", "BUM", "BUN", "BUS", "BUT", "BUY", "BY", "BYE", "CAB", "CAL", "CAM", "CAN", "CAP", "CAR", "CAT", "CAW", "COD", "COG", "COL", "CON", "COO", "COP", "COT", "COW", "COY", "CRY", "CUB", "CUE", "CUP", "CUR", "CUT", "DAB", "DAD", "DAM", "DAN", "DAR", "DAY", "DEE", "DEL", "DEN", "DES", "DEW", "DID", "DIE", "DIG", "DIN", "DIP", "DO", "DOE", "DOG", "DON", "DOT", "DOW", "DRY", "DUB", "DUD", "DUE", "DUG", "DUN", "EAR", "EAT", "ED", "EEL", "EGG", "EGO", "ELI", "ELK", "ELM", "ELY", "EM", "END", "EST", "ETC", "EVA", "EVE", "EWE", "EYE", "FAD", "FAN", "FAR", "FAT", "FAY", "FED", "FEE", "FEW", "FIB", "FIG", "FIN", "FIR", "FIT", "FLO", "FLY", "FOE", "FOG", "FOR", "FRY", "FUM", "FUN", "FUR", "GAB", "GAD", "GAG", "GAL", "GAM", "GAP", "GAS", "GAY", "GEE", "GEL", "GEM", "GET", "GIG", "GIL", "GIN", "GO", "GOT", "GUM", "GUN", "GUS", "GUT", "GUY", "GYM", "GYP", "HA", "HAD", "HAL", "HAM", "HAN", "HAP", "HAS", "HAT", "HAW", "HAY", "HE", "HEM", "HEN", "HER", "HEW", "HEY", "HI", "HID", "HIM", "HIP", "HIS", "HIT",
McDonald [Page 4] RFC 1751 Human-Readable 128-bit Keys December 1994
128ビットのキー1994年12月に人間読み込み可能なマクドナルド[4ページ]RFC1751
"HO", "HOB", "HOC", "HOE", "HOG", "HOP", "HOT", "HOW", "HUB", "HUE", "HUG", "HUH", "HUM", "HUT", "I", "ICY", "IDA", "IF", "IKE", "ILL", "INK", "INN", "IO", "ION", "IQ", "IRA", "IRE", "IRK", "IS", "IT", "ITS", "IVY", "JAB", "JAG", "JAM", "JAN", "JAR", "JAW", "JAY", "JET", "JIG", "JIM", "JO", "JOB", "JOE", "JOG", "JOT", "JOY", "JUG", "JUT", "KAY", "KEG", "KEN", "KEY", "KID", "KIM", "KIN", "KIT", "LA", "LAB", "LAC", "LAD", "LAG", "LAM", "LAP", "LAW", "LAY", "LEA", "LED", "LEE", "LEG", "LEN", "LEO", "LET", "LEW", "LID", "LIE", "LIN", "LIP", "LIT", "LO", "LOB", "LOG", "LOP", "LOS", "LOT", "LOU", "LOW", "LOY", "LUG", "LYE", "MA", "MAC", "MAD", "MAE", "MAN", "MAO", "MAP", "MAT", "MAW", "MAY", "ME", "MEG", "MEL", "MEN", "MET", "MEW", "MID", "MIN", "MIT", "MOB", "MOD", "MOE", "MOO", "MOP", "MOS", "MOT", "MOW", "MUD", "MUG", "MUM", "MY", "NAB", "NAG", "NAN", "NAP", "NAT", "NAY", "NE", "NED", "NEE", "NET", "NEW", "NIB", "NIL", "NIP", "NIT", "NO", "NOB", "NOD", "NON", "NOR", "NOT", "NOV", "NOW", "NU", "NUN", "NUT", "O", "OAF", "OAK", "OAR", "OAT", "ODD", "ODE", "OF", "OFF", "OFT", "OH", "OIL", "OK", "OLD", "ON", "ONE", "OR", "ORB", "ORE", "ORR", "OS", "OTT", "OUR", "OUT", "OVA", "OW", "OWE", "OWL", "OWN", "OX", "PA", "PAD", "PAL", "PAM", "PAN", "PAP", "PAR", "PAT", "PAW", "PAY", "PEA", "PEG", "PEN", "PEP", "PER", "PET", "PEW", "PHI", "PI", "PIE", "PIN", "PIT", "PLY", "PO", "POD", "POE", "POP", "POT", "POW", "PRO", "PRY", "PUB", "PUG", "PUN", "PUP", "PUT", "QUO", "RAG", "RAM", "RAN", "RAP", "RAT", "RAW", "RAY", "REB", "RED", "REP", "RET", "RIB", "RID", "RIG", "RIM", "RIO", "RIP", "ROB", "ROD", "ROE", "RON", "ROT", "ROW", "ROY", "RUB", "RUE", "RUG", "RUM", "RUN", "RYE", "SAC", "SAD", "SAG", "SAL", "SAM", "SAN", "SAP", "SAT", "SAW", "SAY", "SEA", "SEC", "SEE", "SEN", "SET", "SEW", "SHE", "SHY", "SIN", "SIP", "SIR", "SIS", "SIT", "SKI", "SKY", "SLY", "SO", "SOB", "SOD", "SON", "SOP", "SOW", "SOY", "SPA", "SPY", "SUB", "SUD", "SUE", "SUM", "SUN", "SUP", "TAB", "TAD", "TAG", "TAN", "TAP", "TAR", "TEA", "TED", "TEE", "TEN", "THE", "THY", "TIC", "TIE", "TIM", "TIN", "TIP", "TO", "TOE", "TOG", "TOM", "TON", "TOO", "TOP", "TOW", "TOY", "TRY", "TUB", "TUG", "TUM", "TUN", "TWO", "UN", "UP", "US", "USE", "VAN", "VAT", "VET", "VIE", "WAD", "WAG", "WAR", "WAS", "WAY", "WE", "WEB", "WED", "WEE", "WET", "WHO", "WHY", "WIN", "WIT", "WOK", "WON", "WOO", "WOW", "WRY", "WU", "YAM", "YAP", "YAW", "YE", "YEA", "YES", "YET", "YOU", "ABED", "ABEL", "ABET", "ABLE", "ABUT", "ACHE", "ACID", "ACME", "ACRE", "ACTA", "ACTS", "ADAM", "ADDS", "ADEN", "AFAR", "AFRO", "AGEE", "AHEM", "AHOY", "AIDA", "AIDE", "AIDS", "AIRY", "AJAR", "AKIN", "ALAN", "ALEC", "ALGA", "ALIA", "ALLY", "ALMA", "ALOE", "ALSO", "ALTO", "ALUM", "ALVA", "AMEN", "AMES", "AMID", "AMMO", "AMOK", "AMOS", "AMRA", "ANDY", "ANEW", "ANNA", "ANNE", "ANTE", "ANTI", "AQUA", "ARAB", "ARCH", "AREA", "ARGO", "ARID", "ARMY", "ARTS", "ARTY", "ASIA", "ASKS", "ATOM", "AUNT", "AURA", "AUTO", "AVER", "AVID", "AVIS", "AVON", "AVOW", "AWAY", "AWRY", "BABE", "BABY", "BACH", "BACK", "BADE", "BAIL", "BAIT", "BAKE", "BALD", "BALE", "BALI", "BALK", "BALL", "BALM", "BAND", "BANE", "BANG", "BANK", "BARB", "BARD", "BARE", "BARK", "BARN", "BARR", "BASE", "BASH", "BASK", "BASS", "BATE", "BATH", "BAWD", "BAWL", "BEAD", "BEAK", "BEAM", "BEAN", "BEAR", "BEAT", "BEAU", "BECK", "BEEF", "BEEN", "BEER",
"HO", "HOB", "HOC", "HOE", "HOG", "HOP", "HOT", "HOW", "HUB", "HUE", "HUG", "HUH", "HUM", "HUT", "I", "ICY", "IDA", "IF", "IKE", "ILL", "INK", "INN", "IO", "ION", "IQ", "IRA", "IRE", "IRK", "IS", "IT", "ITS", "IVY", "JAB", "JAG", "JAM", "JAN", "JAR", "JAW", "JAY", "JET", "JIG", "JIM", "JO", "JOB", "JOE", "JOG", "JOT", "JOY", "JUG", "JUT", "KAY", "KEG", "KEN", "KEY", "KID", "KIM", "KIN", "KIT", "LA", "LAB", "LAC", "LAD", "LAG", "LAM", "LAP", "LAW", "LAY", "LEA", "LED", "LEE", "LEG", "LEN", "LEO", "LET", "LEW", "LID", "LIE", "LIN", "LIP", "LIT", "LO", "LOB", "LOG", "LOP", "LOS", "LOT", "LOU", "LOW", "LOY", "LUG", "LYE", "MA", "MAC", "MAD", "MAE", "MAN", "MAO", "MAP", "MAT", "MAW", "MAY", "ME", "MEG", "MEL", "MEN", "MET", "MEW", "MID", "MIN", "MIT", "MOB", "MOD", "MOE", "MOO", "MOP", "MOS", "MOT", "MOW", "MUD", "MUG", "MUM", "MY", "NAB", "NAG", "NAN", "NAP", "NAT", "NAY", "NE", "NED", "NEE", "NET", "NEW", "NIB", "NIL", "NIP", "NIT", "NO", "NOB", "NOD", "NON", "NOR", "NOT", "NOV", "NOW", "NU", "NUN", "NUT", 赤..レップ..浸水..あばら骨..取り除く..リグ..縁..リオ..リップ..ロブ..ロッド..魚卵..ロン..腐敗..こぐ..ロイ..摩擦..悔悟..敷物..ラム..走る..ライ麦..嚢..悲しい..弛む..サラソウジュ..サム..サン..SAP..見る..言う..海..SEC..見る..銭..セット; 縫う..飛びのく..罪..一口..旦那..SIS..座る..スキー..空..陰険..すすり泣き..芝生..息子..染み込む..雌豚..醤油..鉱泉..スパイ..潜水艦..ぽっくり病..訴える..合計..太陽..一口..タブ..ちびっ子..タグ..日に焼く..叩く..タールを塗る..紅茶..テッド..ティー遠くに..アフロヘア..エージー..アイーダ..補佐官..援助..陽気..半開き..同系..アラン..アレク..藻..アリア..アリー..アルマ..アロエ..また..アルト..明礬..アルバ..エームズ..弾薬..逆上して..アモス..アンディ..新た..アンナ; アン..賭ける..水..アラブ..アーチ..領域..アルゴー船..無味乾燥..軍隊..芸術..芸術家気取る..アジア..尋ねる..原子..おば..香気..自動車..言明..熱心..エイビス..エイヴォン..率直に認める..遠くへ..歪む..ベイブ..赤ん坊..バッハ..後部..付ける..保釈..餌..Baはげ..俵..バリ..障害..ボール..香油..バンド..破滅させるもの..衝撃音..銀行..バーブ..吟遊詩人..剥き出す..ほえる..納屋..バール..基づく..強打..当たる..バス..和らげる..風呂..女郎屋の女将..泣く..ビーズ..くちばし..ビーム..豆..堪える..打つ..しゃれ者..べック..不平を言う..ビール
McDonald [Page 5] RFC 1751 Human-Readable 128-bit Keys December 1994
128ビットのキー1994年12月に人間読み込み可能なマクドナルド[5ページ]RFC1751
"BEET", "BELA", "BELL", "BELT", "BEND", "BENT", "BERG", "BERN", "BERT", "BESS", "BEST", "BETA", "BETH", "BHOY", "BIAS", "BIDE", "BIEN", "BILE", "BILK", "BILL", "BIND", "BING", "BIRD", "BITE", "BITS", "BLAB", "BLAT", "BLED", "BLEW", "BLOB", "BLOC", "BLOT", "BLOW", "BLUE", "BLUM", "BLUR", "BOAR", "BOAT", "BOCA", "BOCK", "BODE", "BODY", "BOGY", "BOHR", "BOIL", "BOLD", "BOLO", "BOLT", "BOMB", "BONA", "BOND", "BONE", "BONG", "BONN", "BONY", "BOOK", "BOOM", "BOON", "BOOT", "BORE", "BORG", "BORN", "BOSE", "BOSS", "BOTH", "BOUT", "BOWL", "BOYD", "BRAD", "BRAE", "BRAG", "BRAN", "BRAY", "BRED", "BREW", "BRIG", "BRIM", "BROW", "BUCK", "BUDD", "BUFF", "BULB", "BULK", "BULL", "BUNK", "BUNT", "BUOY", "BURG", "BURL", "BURN", "BURR", "BURT", "BURY", "BUSH", "BUSS", "BUST", "BUSY", "BYTE", "CADY", "CAFE", "CAGE", "CAIN", "CAKE", "CALF", "CALL", "CALM", "CAME", "CANE", "CANT", "CARD", "CARE", "CARL", "CARR", "CART", "CASE", "CASH", "CASK", "CAST", "CAVE", "CEIL", "CELL", "CENT", "CERN", "CHAD", "CHAR", "CHAT", "CHAW", "CHEF", "CHEN", "CHEW", "CHIC", "CHIN", "CHOU", "CHOW", "CHUB", "CHUG", "CHUM", "CITE", "CITY", "CLAD", "CLAM", "CLAN", "CLAW", "CLAY", "CLOD", "CLOG", "CLOT", "CLUB", "CLUE", "COAL", "COAT", "COCA", "COCK", "COCO", "CODA", "CODE", "CODY", "COED", "COIL", "COIN", "COKE", "COLA", "COLD", "COLT", "COMA", "COMB", "COME", "COOK", "COOL", "COON", "COOT", "CORD", "CORE", "CORK", "CORN", "COST", "COVE", "COWL", "CRAB", "CRAG", "CRAM", "CRAY", "CREW", "CRIB", "CROW", "CRUD", "CUBA", "CUBE", "CUFF", "CULL", "CULT", "CUNY", "CURB", "CURD", "CURE", "CURL", "CURT", "CUTS", "DADE", "DALE", "DAME", "DANA", "DANE", "DANG", "DANK", "DARE", "DARK", "DARN", "DART", "DASH", "DATA", "DATE", "DAVE", "DAVY", "DAWN", "DAYS", "DEAD", "DEAF", "DEAL", "DEAN", "DEAR", "DEBT", "DECK", "DEED", "DEEM", "DEER", "DEFT", "DEFY", "DELL", "DENT", "DENY", "DESK", "DIAL", "DICE", "DIED", "DIET", "DIME", "DINE", "DING", "DINT", "DIRE", "DIRT", "DISC", "DISH", "DISK", "DIVE", "DOCK", "DOES", "DOLE", "DOLL", "DOLT", "DOME", "DONE", "DOOM", "DOOR", "DORA", "DOSE", "DOTE", "DOUG", "DOUR", "DOVE", "DOWN", "DRAB", "DRAG", "DRAM", "DRAW", "DREW", "DRUB", "DRUG", "DRUM", "DUAL", "DUCK", "DUCT", "DUEL", "DUET", "DUKE", "DULL", "DUMB", "DUNE", "DUNK", "DUSK", "DUST", "DUTY", "EACH", "EARL", "EARN", "EASE", "EAST", "EASY", "EBEN", "ECHO", "EDDY", "EDEN", "EDGE", "EDGY", "EDIT", "EDNA", "EGAN", "ELAN", "ELBA", "ELLA", "ELSE", "EMIL", "EMIT", "EMMA", "ENDS", "ERIC", "EROS", "EVEN", "EVER", "EVIL", "EYED", "FACE", "FACT", "FADE", "FAIL", "FAIN", "FAIR", "FAKE", "FALL", "FAME", "FANG", "FARM", "FAST", "FATE", "FAWN", "FEAR", "FEAT", "FEED", "FEEL", "FEET", "FELL", "FELT", "FEND", "FERN", "FEST", "FEUD", "FIEF", "FIGS", "FILE", "FILL", "FILM", "FIND", "FINE", "FINK", "FIRE", "FIRM", "FISH", "FISK", "FIST", "FITS", "FIVE", "FLAG", "FLAK", "FLAM", "FLAT", "FLAW", "FLEA", "FLED", "FLEW", "FLIT", "FLOC", "FLOG", "FLOW", "FLUB", "FLUE", "FOAL", "FOAM", "FOGY", "FOIL", "FOLD", "FOLK", "FOND", "FONT", "FOOD", "FOOL", "FOOT", "FORD", "FORE", "FORK", "FORM", "FORT", "FOSS", "FOUL", "FOUR", "FOWL", "FRAU", "FRAY", "FRED", "FREE", "FRET", "FREY", "FROG", "FROM", "FUEL", "FULL", "FUME", "FUND", "FUNK", "FURY", "FUSE", "FUSS", "GAFF", "GAGE", "GAIL", "GAIN", "GAIT", "GALA", "GALE", "GALL", "GALT", "GAME", "GANG", "GARB", "GARY", "GASH", "GATE", "GAUL", "GAUR", "GAVE", "GAWK", "GEAR", "GELD", "GENE", "GENT", "GERM", "GETS", "GIBE", "GIFT", "GILD", "GILL", "GILT",
"BEET", "BELA", "BELL", "BELT", "BEND", "BENT", "BERG", "BERN", "BERT", "BESS", "BEST", "BETA", "BETH", "BHOY", "BIAS", "BIDE", "BIEN", "BILE", "BILK", "BILL", "BIND", "BING", "BIRD", "BITE", "BITS", "BLAB", "BLAT", "BLED", "BLEW", "BLOB", "BLOC", "BLOT", "BLOW", "BLUE", "BLUM", "BLUR", "BOAR", "BOAT", "BOCA", "BOCK", "BODE", "BODY", "BOGY", "BOHR", "BOIL", "BOLD", "BOLO", "BOLT", "BOMB", "BONA", "BOND", "BONE", "BONG", "BONN", "BONY", "BOOK", "BOOM", "BOON", "BOOT", "BORE", "BORG", "BORN", "BOSE", "BOSS", "BOTH", "BOUT", "BOWL", "BOYD", "BRAD", "BRAE", "BRAG", "BRAN", "BRAY", "BRED", "BREW", "BRIG", "BRIM", "BROW", "BUCK", "BUDD", "BUFF", "BULB", "BULK", "BULL", "BUNK", "BUNT", "BUOY", "BURG", "BURL", "BURN", "BURR", "BURT", "BURY", "BUSH", "BUSS", "BUST", "BUSY", "BYTE", "CADY", "CAFE", "CAGE", "CAIN", "CAKE", "CALF", "CALL", "CALM", "CAME", "CANE", "CANT", "CARD", "CARE", "CARL", "CARR", "CART", "CASE", "CASH", "CASK", "CAST", "CAVE", "CEIL", "CELL", "CENT", "CERN", "CHAD", "CHAR", "CHAT", "CHAW", "Cキュニー..縁石..カード..療法..カール..そっけない..カット..デイド..デール..主婦..ダナ..デンマーク人..湿っぽい..暗闇..繕う..ダーツ..投げつける..データ..日付..デーヴ..デービー..夜明け..死ぬ..聴覚障害..取引..学部長..親愛..負債..飾る; 行為..考える..鹿..器用..無視..デル..へこむ..否定..机..ダイヤル..サイコロ..死ぬ..食事..10セント硬貨..食事..鳴らす..くぼみ..恐ろしい..土..ディスク..鉢に盛る..ディスク..潜水..ドック..ドール..めかす..ばか..ドーム..破滅..ドア秋..名声..牙..農作..速い..運命..子鹿..恐れる..功績..給送..感じる..足..低下..感じる..抵抗..シダ..祭り..反目..領地..イチジク..ファイル..中詰め..フィルム..見つける..密告者..炎..会社..魚..フィスク..こぶし..発作; 旗..対空砲火..だます..アパート..欠点..ノミ..逃れる..飛ぶ..軽快な動き..綿状沈殿物..ムチ打つ..流れる..しくじり..煙道..子..泡..時代遅れの人..ホイル..折り目..人々..好き..字体..食物..馬鹿..歩く..フォード..前面..フォーク..形成..とりで..フォスOUL", "FOUR", "FOWL", "FRAU", "FRAY", "FRED", "FREE", "FRET", "FREY", "FROG", "FROM", "FUEL", "FULL", "FUME", "FUND", "FUNK", "FURY", "FUSE", "FUSS", "GAFF", "GAGE", "GAIL", "GAIN", "GAIT", "GALA", "GALE", "GALL", "GALT", "GAME", "GANG", "GARB", "GARY", "GASH", "GATE", "GAUL", "GAUR", "GAVE", "GAWK", "GEAR", "GELD", "GENE", "GENT", "GERM", "GETS", "GIBE", "GIFT", "GILD", "GILL", "GILT",
McDonald [Page 6] RFC 1751 Human-Readable 128-bit Keys December 1994
128ビットのキー1994年12月に人間読み込み可能なマクドナルド[6ページ]RFC1751
"GINA", "GIRD", "GIRL", "GIST", "GIVE", "GLAD", "GLEE", "GLEN", "GLIB", "GLOB", "GLOM", "GLOW", "GLUE", "GLUM", "GLUT", "GOAD", "GOAL", "GOAT", "GOER", "GOES", "GOLD", "GOLF", "GONE", "GONG", "GOOD", "GOOF", "GORE", "GORY", "GOSH", "GOUT", "GOWN", "GRAB", "GRAD", "GRAY", "GREG", "GREW", "GREY", "GRID", "GRIM", "GRIN", "GRIT", "GROW", "GRUB", "GULF", "GULL", "GUNK", "GURU", "GUSH", "GUST", "GWEN", "GWYN", "HAAG", "HAAS", "HACK", "HAIL", "HAIR", "HALE", "HALF", "HALL", "HALO", "HALT", "HAND", "HANG", "HANK", "HANS", "HARD", "HARK", "HARM", "HART", "HASH", "HAST", "HATE", "HATH", "HAUL", "HAVE", "HAWK", "HAYS", "HEAD", "HEAL", "HEAR", "HEAT", "HEBE", "HECK", "HEED", "HEEL", "HEFT", "HELD", "HELL", "HELM", "HERB", "HERD", "HERE", "HERO", "HERS", "HESS", "HEWN", "HICK", "HIDE", "HIGH", "HIKE", "HILL", "HILT", "HIND", "HINT", "HIRE", "HISS", "HIVE", "HOBO", "HOCK", "HOFF", "HOLD", "HOLE", "HOLM", "HOLT", "HOME", "HONE", "HONK", "HOOD", "HOOF", "HOOK", "HOOT", "HORN", "HOSE", "HOST", "HOUR", "HOVE", "HOWE", "HOWL", "HOYT", "HUCK", "HUED", "HUFF", "HUGE", "HUGH", "HUGO", "HULK", "HULL", "HUNK", "HUNT", "HURD", "HURL", "HURT", "HUSH", "HYDE", "HYMN", "IBIS", "ICON", "IDEA", "IDLE", "IFFY", "INCA", "INCH", "INTO", "IONS", "IOTA", "IOWA", "IRIS", "IRMA", "IRON", "ISLE", "ITCH", "ITEM", "IVAN", "JACK", "JADE", "JAIL", "JAKE", "JANE", "JAVA", "JEAN", "JEFF", "JERK", "JESS", "JEST", "JIBE", "JILL", "JILT", "JIVE", "JOAN", "JOBS", "JOCK", "JOEL", "JOEY", "JOHN", "JOIN", "JOKE", "JOLT", "JOVE", "JUDD", "JUDE", "JUDO", "JUDY", "JUJU", "JUKE", "JULY", "JUNE", "JUNK", "JUNO", "JURY", "JUST", "JUTE", "KAHN", "KALE", "KANE", "KANT", "KARL", "KATE", "KEEL", "KEEN", "KENO", "KENT", "KERN", "KERR", "KEYS", "KICK", "KILL", "KIND", "KING", "KIRK", "KISS", "KITE", "KLAN", "KNEE", "KNEW", "KNIT", "KNOB", "KNOT", "KNOW", "KOCH", "KONG", "KUDO", "KURD", "KURT", "KYLE", "LACE", "LACK", "LACY", "LADY", "LAID", "LAIN", "LAIR", "LAKE", "LAMB", "LAME", "LAND", "LANE", "LANG", "LARD", "LARK", "LASS", "LAST", "LATE", "LAUD", "LAVA", "LAWN", "LAWS", "LAYS", "LEAD", "LEAF", "LEAK", "LEAN", "LEAR", "LEEK", "LEER", "LEFT", "LEND", "LENS", "LENT", "LEON", "LESK", "LESS", "LEST", "LETS", "LIAR", "LICE", "LICK", "LIED", "LIEN", "LIES", "LIEU", "LIFE", "LIFT", "LIKE", "LILA", "LILT", "LILY", "LIMA", "LIMB", "LIME", "LIND", "LINE", "LINK", "LINT", "LION", "LISA", "LIST", "LIVE", "LOAD", "LOAF", "LOAM", "LOAN", "LOCK", "LOFT", "LOGE", "LOIS", "LOLA", "LONE", "LONG", "LOOK", "LOON", "LOOT", "LORD", "LORE", "LOSE", "LOSS", "LOST", "LOUD", "LOVE", "LOWE", "LUCK", "LUCY", "LUGE", "LUKE", "LULU", "LUND", "LUNG", "LURA", "LURE", "LURK", "LUSH", "LUST", "LYLE", "LYNN", "LYON", "LYRA", "MACE", "MADE", "MAGI", "MAID", "MAIL", "MAIN", "MAKE", "MALE", "MALI", "MALL", "MALT", "MANA", "MANN", "MANY", "MARC", "MARE", "MARK", "MARS", "MART", "MARY", "MASH", "MASK", "MASS", "MAST", "MATE", "MATH", "MAUL", "MAYO", "MEAD", "MEAL", "MEAN", "MEAT", "MEEK", "MEET", "MELD", "MELT", "MEMO", "MEND", "MENU", "MERT", "MESH", "MESS", "MICE", "MIKE", "MILD", "MILE", "MILK", "MILL", "MILT", "MIMI", "MIND", "MINE", "MINI", "MINK", "MINT", "MIRE", "MISS", "MIST", "MITE", "MITT", "MOAN", "MOAT", "MOCK", "MODE", "MOLD", "MOLE", "MOLL", "MOLT", "MONA", "MONK", "MONT", "MOOD", "MOON", "MOOR", "MOOT", "MORE", "MORN", "MORT", "MOSS", "MOST", "MOTH", "MOVE", "MUCH", "MUCK", "MUDD", "MUFF", "MULE", "MULL", "MURK", "MUSH", "MUST", "MUTE", "MUTT", "MYRA", "MYTH", "NAGY", "NAIL",
"GINA", "GIRD", "GIRL", "GIST", "GIVE", "GLAD", "GLEE", "GLEN", "GLIB", "GLOB", "GLOM", "GLOW", "GLUE", "GLUM", "GLUT", "GOAD", "GOAL", "GOAT", "GOER", "GOES", "GOLD", "GOLF", "GONE", "GONG", "GOOD", "GOOF", "GORE", "GORY", "GOSH", "GOUT", "GOWN", "GRAB", "GRAD", "GRAY", "GREG", "GREW", "GREY", "GRID", "GRIM", "GRIN", "GRIT", "GROW", "GRUB", "GULF", "GULL", "GUNK", "GURU", "GUSH", "GUST", "GWEN", "GWYN", "HAAG", "HAAS", "HACK", "HAIL", "HAIR", "HALE", "HALF", "HALL", "HALO", "HALT", "HAND", "HANG", "HANK", "HANS", "HARD", "HARK", "HARM", "HART", "HASH", "HAST", "HATE", "HATH", "HAUL", "HAVE", "HAWK", "HAYS", "HEAD", "HEAL", "HEAR", "HEAT", "HEBE", "HECK", "HEED", "HEEL", "HEFT", "HELD", "HELL", "HELM", "HERB", "HERD", "HERE", "HERO", "HERS", "HESS", "HEWN", "HICK", "HIDE", "HIGH", "HIKE", "HILL", "HILT", "HIND", "HINT", "HIRE", "HISS", "HIVE", "HOBO", "HOCK", "HOFF", "HOLD", "HOLE", "HOLM", "HOLT", "HOME", "HONE", "HONK", "HOOD", "HOOF", "HOOK", "HOOT", "HORN", "HOSE", "HOST", "HOUR", "HOVE", "HOWE", "Hジュディ..呪物..ジュークボックス..くず..ユノ..陪審..まさしく..ジュート..カーン..ケール..ケーン..カント..カール..ケイト..竜骨..キーン..キーノ..ケント..凝結核..カー..キー..キック..殺す..親切..キング..カーク..キス..凧..膝で打つ; 知る..編み物..ノブ..結び..知る..コッホ..コン..クルド人..カート..カイル..レース..不足..レース状..女性..横たえる..横たわる..ねぐら..湖..ラム..不完全にする..着陸..車線..ラング..ラード..ヒバリ..少女..持続..遅くに..賛美..溶岩..芝生運..ルーシー..リュージュ..ルーク..ルル..ランド..肺..誘い出す..潜む..飲んだくれ..欲..ライル..リン..リヨン..琴座..こん棒..作る..博士..メード..メール..メイン..作る..男性..マリ..ショッピングセンター..モルト..マナ..マン..多く..マーク..雌馬; マーク..火星..市場..メアリ..どろどろの状態..マスク..固まり..マスト..仲間..数学..大木槌..マヨ..ミード..食事..意味..肉..素直..会う..さらし札..溶かす..メモ..直す..メニュー..メッシュ..台無しにする..マウス..マイク..温和..ミルク..工場ILT", "MIMI", "MIND", "MINE", "MINI", "MINK", "MINT", "MIRE", "MISS", "MIST", "MITE", "MITT", "MOAN", "MOAT", "MOCK", "MODE", "MOLD", "MOLE", "MOLL", "MOLT", "MONA", "MONK", "MONT", "MOOD", "MOON", "MOOR", "MOOT", "MORE", "MORN", "MORT", "MOSS", "MOST", "MOTH", "MOVE", "MUCH", "MUCK", "MUDD", "MUFF", "MULE", "MULL", "MURK", "MUSH", "MUST", "MUTE", "MUTT", "MYRA", "MYTH", "NAGY", "NAIL",
McDonald [Page 7] RFC 1751 Human-Readable 128-bit Keys December 1994
128ビットのキー1994年12月に人間読み込み可能なマクドナルド[7ページ]RFC1751
"NAIR", "NAME", "NARY", "NASH", "NAVE", "NAVY", "NEAL", "NEAR", "NEAT", "NECK", "NEED", "NEIL", "NELL", "NEON", "NERO", "NESS", "NEST", "NEWS", "NEWT", "NIBS", "NICE", "NICK", "NILE", "NINA", "NINE", "NOAH", "NODE", "NOEL", "NOLL", "NONE", "NOOK", "NOON", "NORM", "NOSE", "NOTE", "NOUN", "NOVA", "NUDE", "NULL", "NUMB", "OATH", "OBEY", "OBOE", "ODIN", "OHIO", "OILY", "OINT", "OKAY", "OLAF", "OLDY", "OLGA", "OLIN", "OMAN", "OMEN", "OMIT", "ONCE", "ONES", "ONLY", "ONTO", "ONUS", "ORAL", "ORGY", "OSLO", "OTIS", "OTTO", "OUCH", "OUST", "OUTS", "OVAL", "OVEN", "OVER", "OWLY", "OWNS", "QUAD", "QUIT", "QUOD", "RACE", "RACK", "RACY", "RAFT", "RAGE", "RAID", "RAIL", "RAIN", "RAKE", "RANK", "RANT", "RARE", "RASH", "RATE", "RAVE", "RAYS", "READ", "REAL", "REAM", "REAR", "RECK", "REED", "REEF", "REEK", "REEL", "REID", "REIN", "RENA", "REND", "RENT", "REST", "RICE", "RICH", "RICK", "RIDE", "RIFT", "RILL", "RIME", "RING", "RINK", "RISE", "RISK", "RITE", "ROAD", "ROAM", "ROAR", "ROBE", "ROCK", "RODE", "ROIL", "ROLL", "ROME", "ROOD", "ROOF", "ROOK", "ROOM", "ROOT", "ROSA", "ROSE", "ROSS", "ROSY", "ROTH", "ROUT", "ROVE", "ROWE", "ROWS", "RUBE", "RUBY", "RUDE", "RUDY", "RUIN", "RULE", "RUNG", "RUNS", "RUNT", "RUSE", "RUSH", "RUSK", "RUSS", "RUST", "RUTH", "SACK", "SAFE", "SAGE", "SAID", "SAIL", "SALE", "SALK", "SALT", "SAME", "SAND", "SANE", "SANG", "SANK", "SARA", "SAUL", "SAVE", "SAYS", "SCAN", "SCAR", "SCAT", "SCOT", "SEAL", "SEAM", "SEAR", "SEAT", "SEED", "SEEK", "SEEM", "SEEN", "SEES", "SELF", "SELL", "SEND", "SENT", "SETS", "SEWN", "SHAG", "SHAM", "SHAW", "SHAY", "SHED", "SHIM", "SHIN", "SHOD", "SHOE", "SHOT", "SHOW", "SHUN", "SHUT", "SICK", "SIDE", "SIFT", "SIGH", "SIGN", "SILK", "SILL", "SILO", "SILT", "SINE", "SING", "SINK", "SIRE", "SITE", "SITS", "SITU", "SKAT", "SKEW", "SKID", "SKIM", "SKIN", "SKIT", "SLAB", "SLAM", "SLAT", "SLAY", "SLED", "SLEW", "SLID", "SLIM", "SLIT", "SLOB", "SLOG", "SLOT", "SLOW", "SLUG", "SLUM", "SLUR", "SMOG", "SMUG", "SNAG", "SNOB", "SNOW", "SNUB", "SNUG", "SOAK", "SOAR", "SOCK", "SODA", "SOFA", "SOFT", "SOIL", "SOLD", "SOME", "SONG", "SOON", "SOOT", "SORE", "SORT", "SOUL", "SOUR", "SOWN", "STAB", "STAG", "STAN", "STAR", "STAY", "STEM", "STEW", "STIR", "STOW", "STUB", "STUN", "SUCH", "SUDS", "SUIT", "SULK", "SUMS", "SUNG", "SUNK", "SURE", "SURF", "SWAB", "SWAG", "SWAM", "SWAN", "SWAT", "SWAY", "SWIM", "SWUM", "TACK", "TACT", "TAIL", "TAKE", "TALE", "TALK", "TALL", "TANK", "TASK", "TATE", "TAUT", "TEAL", "TEAM", "TEAR", "TECH", "TEEM", "TEEN", "TEET", "TELL", "TEND", "TENT", "TERM", "TERN", "TESS", "TEST", "THAN", "THAT", "THEE", "THEM", "THEN", "THEY", "THIN", "THIS", "THUD", "THUG", "TICK", "TIDE", "TIDY", "TIED", "TIER", "TILE", "TILL", "TILT", "TIME", "TINA", "TINE", "TINT", "TINY", "TIRE", "TOAD", "TOGO", "TOIL", "TOLD", "TOLL", "TONE", "TONG", "TONY", "TOOK", "TOOL", "TOOT", "TORE", "TORN", "TOTE", "TOUR", "TOUT", "TOWN", "TRAG", "TRAM", "TRAY", "TREE", "TREK", "TRIG", "TRIM", "TRIO", "TROD", "TROT", "TROY", "TRUE", "TUBA", "TUBE", "TUCK", "TUFT", "TUNA", "TUNE", "TUNG", "TURF", "TURN", "TUSK", "TWIG", "TWIN", "TWIT", "ULAN", "UNIT", "URGE", "USED", "USER", "USES", "UTAH", "VAIL", "VAIN", "VALE", "VARY", "VASE", "VAST", "VEAL", "VEDA", "VEIL", "VEIN", "VEND", "VENT", "VERB", "VERY", "VETO", "VICE", "VIEW", "VINE", "VISE", "VOID", "VOLT", "VOTE", "WACK", "WADE", "WAGE", "WAIL", "WAIT", "WAKE", "WALE", "WALK", "WALL", "WALT", "WAND", "WANE", "WANG", "WANT", "WARD", "WARM",
"NAIR", "NAME", "NARY", "NASH", "NAVE", "NAVY", "NEAL", "NEAR", "NEAT", "NECK", "NEED", "NEIL", "NELL", "NEON", "NERO", "NESS", "NEST", "NEWS", "NEWT", "NIBS", "NICE", "NICK", "NILE", "NINA", "NINE", "NOAH", "NODE", "NOEL", "NOLL", "NONE", "NOOK", "NOON", "NORM", "NOSE", "NOTE", "NOUN", "NOVA", "NUDE", "NULL", "NUMB", "OATH", "OBEY", "OBOE", "ODIN", "OHIO", "OILY", "OINT", "OKAY", "OLAF", "OLDY", "OLGA", "OLIN", "OMAN", "OMEN", "OMIT", "ONCE", "ONES", "ONLY", "ONTO", "ONUS", "ORAL", "ORGY", "OSLO", "OTIS", "OTTO", "OUCH", "OUST", "OUTS", "OVAL", "OVEN", "OVER", "OWLY", "OWNS", "QUAD", "QUIT", "QUOD", "RACE", "RACK", "RACY", "RAFT", "RAGE", "RAID", "RAIL", "RAIN", "RAKE", "RANK", "RANT", "RARE", "RASH", "RATE", "RAVE", "RAYS", "READ", "REAL", "REAM", "REAR", "RECK", "REED", "REEF", "REEK", "REEL", "REID", "REIN", "RENA", "REND", "RENT", "REST", "RICE", "RICH", "RICK", "RIDE", "RIFT", "RILL", "RIME", "RING", "RINK", "RISE", "RISK", "RITE", "ROAD", "ROAM", "ROAR", "ROBE", "ROCK", "RODE", "ROIL", "ROLL", "ROME", "ROOD", "ROOF", "ROOK", "ROOM", "ROOT", "ROSA", "ROSE", "ROSS", "ROSY", "ROTH", "ROUT", "ROVE", "ROWE", "ROWS", "RUBE", "RUBY", "RUDE", "RUDY", "RUIN", "RULE", "RUNG", "RUNS", "RUNT", "RUSE", "RUSH", "RUSK", "RUSS", "RUST", "RUTH", "SACK", "SAFE", "SAGE", "SAID", "SAIL", "SALE", "SALK", "SALT", "SAME", "SAND", "SANE", "SANG", "SANK", "SARA", "SAUL", "SAVE", "SAYS", "SCAN", "SCAR", "SCAT", "SCOT", "SEAL", "SEAM", "SEAR", "SEAT", "SEED", "SEEK", "SEEM", "SEEN", "SEES", "SELF", "SELL", "SEND", "SENT", "SETS", "SEWN", "SHAG", "SHAM", "SHAW", "SHAY", "SHED", "SHIM", "SHIN", "SHOD", "SHOE", "SHOT", "SHOW", "SHUN", "SHUT", "SICK", "SIDE", "SIFT", "SIGH", "SIGN", "SILK", "SILL", "SILO", "SILT", "SINE", "SING", "SINK", "SIRE", "SITE", "SITS", "SITU", "SKAT", "SKEW", "SKID", "SKIM", "SKIN", "SKIT", "SLAB", "SLAM", "SLAT", "SLAY", "SLED", "SLEW", "SLID", "SLIM", "SLIT", "SLOB", "SLOG", "SLOT", "SLOW", "SLUG", "SLUM", "SLUR", "SMOG", "SMUG", "SNAG", "SNOB", "SNOW", "SNUB", "SNUG", "SOAK", "SOAR", "SOCK", "SODA", "SOFA", "SOFT", "SOIL", "SOLD", "SOME", "SONG", "SOON", "SOOT", "SORE", "SORT", "SOUL", "SOUR", "SOWN", "STAB", "STAG", "STAN", "STAR", "STAY", "STEM", "STEW", "STIR", "STOW", "STUB", "STUN", "SUCH", "SUDS", "SUIT", "SULK", "SUMS", "SUNG", "SUNK", "SURE", "SURF", "SWAB", "SWAG", "SWAM", "SWAN", "SWAT", "SWAY", "SWIM", "SWUM", "TACK", "TACT", "TAIL", "TAKE", "TALE", "TALK", "TALL", "TANK", "TASK", "TATE", "TAUT", "TEAL", "TEAM", "TEAR", "TECH", "TEEM", "TEEN", "TEET", "TELL", "TEND", "TENT", "TERM", "TERN", "TESS", "TEST", "THAN", "THAT", "THEE", "THEM", "THEN", "THEY", "THIN", "THIS", "THUD", "THUG", "TICK", "TIDE", "TIDY", "TIED", "TIER", "TILE", "TILL", "TILT", "TIME", "TINA", "TINE", "TINT", "TINY", "TIRE", "TOAD", "TOGO", "TOIL", "TOLD", "TOLL", "TONE", "TONG", "TONY", "TOOK", "TOOL", "TOOT", "TORE", "TORN", "TOTE", "TOUR", "TOUT", "TOWN", "TRAG", "TRAM", "TRAY", "TREE", "TREK", "TRIG", "TRIM", "TRIO", "TROD", "TROT", "TROY", "TRUE", "TUBA", "TUBE", "TUCK", "TUFT", "TUNA", "TUNE", "TUNG", "TURF", "TURN", "TUSK", "TWIG", "TWIN", "TWIT", "ULAN", "UNIT", "URGE", "USED", "USER", "USES", "UTAH", "VAIL", "VAIN", "VALE", "VARY", "VASE", "VAST", "VEAL", "VEDA", "VEIL", "VEIN", "VEND", "VENT", "VERB", "VERY", "VETO", "VICE", "VIEW", "VINE", "VISE", "VOID", "VOLT", "VOTE", "WACK", "WADE", "WAGE", "WAIL", "WAIT", "WAKE", "WALE", "WALK", "WALL", "WALT", "WAND", "WANE", "WANG", "WANT", "WARD", "WARM",
McDonald [Page 8] RFC 1751 Human-Readable 128-bit Keys December 1994
McDonald [Page 8] RFC 1751 Human-Readable 128-bit Keys December 1994
"WARN", "WART", "WASH", "WAST", "WATS", "WATT", "WAVE", "WAVY", "WAYS", "WEAK", "WEAL", "WEAN", "WEAR", "WEED", "WEEK", "WEIR", "WELD", "WELL", "WELT", "WENT", "WERE", "WERT", "WEST", "WHAM", "WHAT", "WHEE", "WHEN", "WHET", "WHOA", "WHOM", "WICK", "WIFE", "WILD", "WILL", "WIND", "WINE", "WING", "WINK", "WINO", "WIRE", "WISE", "WISH", "WITH", "WOLF", "WONT", "WOOD", "WOOL", "WORD", "WORE", "WORK", "WORM", "WORN", "WOVE", "WRIT", "WYNN", "YALE", "YANG", "YANK", "YARD", "YARN", "YAWL", "YAWN", "YEAH", "YEAR", "YELL", "YOGA", "YOKE" };
"WARN", "WART", "WASH", "WAST", "WATS", "WATT", "WAVE", "WAVY", "WAYS", "WEAK", "WEAL", "WEAN", "WEAR", "WEED", "WEEK", "WEIR", "WELD", "WELL", "WELT", "WENT", "WERE", "WERT", "WEST", "WHAM", "WHAT", "WHEE", "WHEN", "WHET", "WHOA", "WHOM", "WICK", "WIFE", "WILD", "WILL", "WIND", "WINE", "WING", "WINK", "WINO", "WIRE", "WISE", "WISH", "WITH", "WOLF", "WONT", "WOOD", "WOOL", "WORD", "WORE", "WORK", "WORM", "WORN", "WOVE", "WRIT", "WYNN", "YALE", "YANG", "YANK", "YARD", "YARN", "YAWL", "YAWN", "YEAH", "YEAR", "YELL", "YOGA", "YOKE" };
/* Encode 8 bytes in 'c' as a string of English words. * Returns a pointer to a static buffer */ char * btoe(engout,c) char *c, *engout; { char cp[9]; /* add in room for the parity 2 bits*/ int p,i ;
/* Encode 8 bytes in 'c' as a string of English words. * Returns a pointer to a static buffer */ char * btoe(engout,c) char *c, *engout; { char cp[9]; /* add in room for the parity 2 bits*/ int p,i ;
engout[0] = '%%BODY%%'; memcpy(cp, c,8); /* compute parity */ for(p = 0,i = 0; i < 64;i += 2) p += extract(cp,i,2);
engout[0] = '%%BODY%%'; memcpy(cp, c,8); /* compute parity */ for(p = 0,i = 0; i < 64;i += 2) p += extract(cp,i,2);
cp[8] = (char)p << 6; strncat(engout,&Wp[extract(cp, 0,11)][0],4); strcat(engout," "); strncat(engout,&Wp[extract(cp,11,11)][0],4); strcat(engout," "); strncat(engout,&Wp[extract(cp,22,11)][0],4); strcat(engout," "); strncat(engout,&Wp[extract(cp,33,11)][0],4); strcat(engout," "); strncat(engout,&Wp[extract(cp,44,11)][0],4); strcat(engout," "); strncat(engout,&Wp[extract(cp,55,11)][0],4); #ifdef notdef printf("engout is %s\n\r",engout); #endif return(engout); }
cp[8] = (char)p << 6; strncat(engout,&Wp[extract(cp, 0,11)][0],4); strcat(engout," "); strncat(engout,&Wp[extract(cp,11,11)][0],4); strcat(engout," "); strncat(engout,&Wp[extract(cp,22,11)][0],4); strcat(engout," "); strncat(engout,&Wp[extract(cp,33,11)][0],4); strcat(engout," "); strncat(engout,&Wp[extract(cp,44,11)][0],4); strcat(engout," "); strncat(engout,&Wp[extract(cp,55,11)][0],4); #ifdef notdef printf("engout is %s\n\r",engout); #endif return(engout); }
/* convert English to binary * returns 1 OK - all good words and parity is OK * 0 word not in data base * -1 badly formed in put ie > 4 char word
/* convert English to binary * returns 1 OK - all good words and parity is OK * 0 word not in data base * -1 badly formed in put ie > 4 char word
McDonald [Page 9] RFC 1751 Human-Readable 128-bit Keys December 1994
McDonald [Page 9] RFC 1751 Human-Readable 128-bit Keys December 1994
* -2 words OK but parity is wrong */ int etob(out, e) char *out; char *e; { char *word; int i, p, v,l, low,high; char b[9]; char input[36];
* -2 words OK but parity is wrong */ int etob(out, e) char *out; char *e; { char *word; int i, p, v,l, low,high; char b[9]; char input[36];
if(e == NULL) return -1;
if(e == NULL) return -1;
strncpy(input,e,sizeof(input)); memset(b, 0, sizeof(b)); memset(out, 0, 8); for(i=0,p=0;i<6;i++,p+=11){ if((word = strtok(i == 0 ? input : NULL," ")) == NULL) return -1; l = strlen(word); if(l > 4 || l < 1){ return -1; } else if(l < 4){ low = 0; high = 570; } else { low = 571; high = 2047; } standard(word); if( (v = wsrch(word,low,high)) < 0 ) return 0; insert(b,v,p,11); }
strncpy(input,e,sizeof(input)); memset(b, 0, sizeof(b)); memset(out, 0, 8); for(i=0,p=0;i<6;i++,p+=11){ if((word = strtok(i == 0 ? input : NULL," ")) == NULL) return -1; l = strlen(word); if(l > 4 || l < 1){ return -1; } else if(l < 4){ low = 0; high = 570; } else { low = 571; high = 2047; } standard(word); if( (v = wsrch(word,low,high)) < 0 ) return 0; insert(b,v,p,11); }
/* now check the parity of what we got */ for(p = 0, i = 0; i < 64; i +=2) p += extract(b, i, 2);
/* now check the parity of what we got */ for(p = 0, i = 0; i < 64; i +=2) p += extract(b, i, 2);
if( (p & 3) != extract(b, 64,2) ) return -2;
if( (p & 3) != extract(b, 64,2) ) return -2;
memcpy(out,b,8);
memcpy(out,b,8);
return 1; }
return 1; }
McDonald [Page 10] RFC 1751 Human-Readable 128-bit Keys December 1994
McDonald [Page 10] RFC 1751 Human-Readable 128-bit Keys December 1994
/* Display 8 bytes as a series of 16-bit hex digits */ char * put8(out,s) char *out; char *s; { sprintf(out,"%02X%02X %02X%02X %02X%02X %02X%02X", s[0] & 0xff,s[1] & 0xff,s[2] & 0xff, s[3] & 0xff,s[4] & 0xff,s[5] & 0xff, s[6] & 0xff,s[7] & 0xff); return out; } #ifdef notdef /* Encode 8 bytes in 'cp' as stream of ascii letters. * Provided as a possible alternative to btoe() */ char * btoc(cp) char *cp; { int i; static char out[31];
/* Display 8 bytes as a series of 16-bit hex digits */ char * put8(out,s) char *out; char *s; { sprintf(out,"%02X%02X %02X%02X %02X%02X %02X%02X", s[0] & 0xff,s[1] & 0xff,s[2] & 0xff, s[3] & 0xff,s[4] & 0xff,s[5] & 0xff, s[6] & 0xff,s[7] & 0xff); return out; } #ifdef notdef /* Encode 8 bytes in 'cp' as stream of ascii letters. * Provided as a possible alternative to btoe() */ char * btoc(cp) char *cp; { int i; static char out[31];
/* code out put by characters 6 bits each added to 0x21 (!)*/ for(i=0;i <= 10;i++){ /* last one is only 4 bits not 6*/ out[i] = '!'+ extract(cp,6*i,i >= 10 ? 4:6); } out[i] = '%%BODY%%'; return(out); } #endif
/* code out put by characters 6 bits each added to 0x21 (!)*/ for(i=0;i <= 10;i++){ /* last one is only 4 bits not 6*/ out[i] = '!'+ extract(cp,6*i,i >= 10 ? 4:6); } out[i] = '%%BODY%%'; return(out); } #endif
/* Internal subroutines for word encoding/decoding */
/* Internal subroutines for word encoding/decoding */
/* Dictionary binary search */ static int wsrch(w,low,high) char *w; int low, high; { int i,j;
/* Dictionary binary search */ static int wsrch(w,low,high) char *w; int low, high; { int i,j;
for(;;){ i = (low + high)/2; if((j = strncmp(w,Wp[i],4)) == 0) return i; /* Found it */ if(high == low+1){
for(;;){ i = (low + high)/2; if((j = strncmp(w,Wp[i],4)) == 0) return i; /* Found it */ if(high == low+1){
McDonald [Page 11] RFC 1751 Human-Readable 128-bit Keys December 1994
McDonald [Page 11] RFC 1751 Human-Readable 128-bit Keys December 1994
/* Avoid effects of integer truncation in /2 */ if(strncmp(w,Wp[high],4) == 0) return high; else return -1; } if(low >= high) return -1; /* I don't *think* this can happen...*/ if(j < 0) high = i; /* Search lower half */ else low = i; /* Search upper half */ } } static void insert(s, x, start, length) char *s; int x; int start, length; { unsigned char cl; unsigned char cc; unsigned char cr; unsigned long y; int shift;
/* Avoid effects of integer truncation in /2 */ if(strncmp(w,Wp[high],4) == 0) return high; else return -1; } if(low >= high) return -1; /* I don't *think* this can happen...*/ if(j < 0) high = i; /* Search lower half */ else low = i; /* Search upper half */ } } static void insert(s, x, start, length) char *s; int x; int start, length; { unsigned char cl; unsigned char cc; unsigned char cr; unsigned long y; int shift;
assert(length <= 11); assert(start >= 0); assert(length >= 0); assert(start +length <= 66);
assert(length <= 11); assert(start >= 0); assert(length >= 0); assert(start +length <= 66);
shift = ((8 -(( start + length) % 8))%8); y = (long) x << shift; cl = (y >> 16) & 0xff; cc = (y >> 8) & 0xff; cr = y & 0xff; if(shift + length > 16){ s[start /8] |= cl; s[start/8 +1] |= cc; s[start/8 +2] |= cr; } else if(shift +length > 8){ s[start/8] |= cc; s[start/8 + 1] |= cr; } else { s[start/8] |= cr; } }
shift = ((8 -(( start + length) % 8))%8); y = (long) x << shift; cl = (y >> 16) & 0xff; cc = (y >> 8) & 0xff; cr = y & 0xff; if(shift + length > 16){ s[start /8] |= cl; s[start/8 +1] |= cc; s[start/8 +2] |= cr; } else if(shift +length > 8){ s[start/8] |= cc; s[start/8 + 1] |= cr; } else { s[start/8] |= cr; } }
McDonald [Page 12] RFC 1751 Human-Readable 128-bit Keys December 1994
McDonald [Page 12] RFC 1751 Human-Readable 128-bit Keys December 1994
static void standard(word) register char *word; { while(*word){ if(!isascii(*word)) break; if(islower(*word)) *word = toupper(*word); if(*word == '1') *word = 'L'; if(*word == '0') *word = 'O'; if(*word == '5') *word = 'S'; word++; } }
静的な空の標準の(単語)レジスタ炭*言葉。 単語..単語..壊す..単語..単語..等しい..単語..単語..単語..単語..言い表す..単語..言い表す..単語
/* Extract 'length' bits from the char array 's' starting with bit 'start' */ static unsigned long extract(s, start, length) char *s; int start, length; { unsigned char cl; unsigned char cc; unsigned char cr; unsigned long x;
ビットから始まる炭のアレイ's'からの/*抽出'長さ'ビットは*/静的な無記名の長い抽出(s、始め、長さ)炭*sを'始めます'。 int始め、長さ。 無記名の炭のCl; 無記名の炭のcc; 無記名の炭のcr(無記名の長いx)
assert(length <= 11); assert(start >= 0); assert(length >= 0); assert(start +length <= 66);
(長さの<=11)について断言してください。 (スタート>=0)について断言してください。 (長さの>=0)について断言してください。 (始め+長さの<=66)について断言してください。
cl = s[start/8]; cc = s[start/8 +1]; cr = s[start/8 +2]; x = ((long)(cl<<8 | cc) <<8 | cr) ; x = x >> (24 - (length + (start %8))); x =( x & (0xffff >> (16-length) ) ); return(x); }
Clはs[始め/8]と等しいです。 ccはs[始め/8+1]と等しいです。 crはs[始め/8+2]と等しいです。 xは((長い)(Cl<<8| cc)の<<8| cr)と等しいです。 xはx>>(24--(長さ+(%8を始める)))と等しいです。 xは(xと(0xffff>>(16長さ)))と等しいです。 リターン(x)。 }
McDonald [Page 13] RFC 1751 Human-Readable 128-bit Keys December 1994
128ビットのキー1994年12月に人間読み込み可能なマクドナルド[13ページ]RFC1751
Appendix B - Source for 128-bit key to/from English words (convert.c)
付録B--英単語からの/の128ビットのキーのためのソース(convert.c)
/* convert.c -- Wrapper to S/Key binary-to-English routines. Daniel L. McDonald -- U. S. Naval Research Laboratory. */
/*convert.c--主要なバイナリーからS/英語へのルーチンへの包装紙。 ダニエル・L.マクドナルド--U.S.海軍研究試験所。 */
#include <string.h>
#<string.h>を含めてください。
/* eng2key() assumes words must be separated by spaces only.
/*eng2key()は、空間だけで単語を切り離さなければならないと仮定します。
eng2key() returns
eng2key()は戻ります。
1 if succeeded 0 if word not in dictionary -1 if badly formed string -2 if words are okay but parity is wrong. (see etob() in S/Key) */
1 引き継がれるなら、ひどいなら辞書-1でないところの単語が形成されたなら、単語がオーケーですが、同等が間違っているなら、0は-2を結びます。 (S/キーのetob()を見ます) */
int eng2key(keyout,eng) char *keyout,*eng; { int rc=0,state=1; char *eng2;
int eng2key(keyout、eng)炭の*keyout、*eng。 int rc=0、州の=1; *eng2を炭にしてください。
/* Find pointer to word 7. */
Word7への/*掘り出し物のポインタ。 */
for (eng2 = eng; rc<7 && (*(++eng2) != '%%BODY%%'); ) if (*eng2 != ' ') { rc += state; state = 0; } else state=1;
'、(eng2=eng; rc<7、(*(+ + eng2)!='0円')、(*eng2=!、'、'、)、rc+=州; 州の=0;のほかの州の=1'。
if ( (rc = etob(keyout,eng)) != 1) return rc;
(rc=etob(keyout、eng)!=1)がrcを返すなら。
rc = etob(keyout+8,eng2);
rcはetob(keyout+8、eng2)と等しいです。
return rc; }
rcを返してください。 }
/* key2eng() assumes string referenced by engout has at least 60 characters (4*12 + 11 spaces + '%%BODY%%') of space.
'/*key2eng()は、engoutによって参照をつけられたストリングにはスペースの少なくとも60のキャラクタ(*12+11が+ '0円'区切る4)があると仮定します。
key2eng() returns pointer to engout.
key2eng()はポインタをengoutに返します。
McDonald [Page 14] RFC 1751 Human-Readable 128-bit Keys December 1994
128ビットのキー1994年12月に人間読み込み可能なマクドナルド[14ページ]RFC1751
*/
*/
char *key2eng(engout,key) char *engout,*key; { btoe(engout,key); strcat(engout," "); btoe(engout+strlen(engout),key+8); return engout; }
*key2eng(engout、キー)炭*engout、*キーを炭にしてください。 「btoe(engoutであって、主要な)、strcat、(engout、」、」、)、; btoe(engout+strlen(engout)、キー+8); engoutを返してください。
McDonald [Page 15]
マクドナルド[15ページ]
一覧
スポンサーリンク