• ベストアンサー

暗号化・復号化のアルゴリズムにはどんなものがありますか?

Cでプログラミングを勉強しており、20文字ほどの文字列を暗号化・復号化するプログラムを考えていますが、ネットを検索しても暗号化アルゴリズムでなかなかいいものが見つかりません。 私のリクエストとしては ・暗号化対象は半角英数字、半角記号のみ。 ・単に文字コードを1つずつずらしたような簡単な暗号ではなく、複雑なアルゴリズムを使用したい。 ・アルゴリズムは複雑でもプログラムは簡潔にできるものがいい。(長くても数百行程度)。 ・アルゴリズム自体の仕様が公開されている。 ・アルゴリズムは数学式で表せるものがいい。 ・スーパーコンピュータを使わなければ解けないほど時間がかかる暗号化アルゴリズムでなくてもいい。 ・暗号化のライブラリファイルは使わず、自前で全部コードを書きたい。 ・公開鍵や秘密鍵を使わなくてもいい。 上記の条件を満たす暗号化アルゴリズムでいいものがありましたら、教えてください。 以上、よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • MASATO3
  • ベストアンサー率60% (27/45)
回答No.1

Blowfishはどうでしょうか。 ・暗号化対象は半角英数字、半角記号のみ。 > バイナリデータでしたらなんでも暗号化できます。 ・単に文字コードを1つずつずらしたような簡単な暗号ではなく、複雑なアルゴリズムを使用したい。 > 簡単に解く方法はまだ見つかっていないはずです。 ・アルゴリズムは数学式で表せるものがいい。 > どのようなものを数学式として想定されているのかは分かりませんが、 > 数学式で表せない暗号化方式はコードにできないと思いますので > 数学式でも表せるでしょう。 ・暗号化のライブラリファイルは使わず、自前で全部コードを書きたい。 > サンプルコードを見ていただければ分かるのですが、600行ほどのコードで実現できます。自前で全部書けるでしょう。 > 公開鍵や秘密鍵を使わなくてもいい。 共通鍵暗号方式なので公開鍵や秘密鍵は使いません。

参考URL:
http://www.schneier.com/blowfish-download.html

その他の回答 (2)

回答No.3

テスト的に作った物なのですが もろに16bitRSAです。 http://lineage.netgamers.jp/pyuki/rsa-loginset-20050217.zip http://lineage.netgamers.jp/pyuki/rsa-loginset/formtest.cgi 最小限のJavaScriptでいかに高速で処理できるかって所です。 ただ、Cだけでできたフルセットのソースは紛失しまっています。 キー作成のプログラムを参考に再作成すればできるかと思います。

回答No.2

1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 とあって、1つさがるだびに1 2 3 4 5のどれかをえらぶ。 そして、たとえば1 - 3 - 4 - 2とえらんだばあいなにかのあたいをだしておくと、はいれつの hairetu[あたい] のようにすばやくあくせすできる。が、このけいさんほうほうがわからず、いいあんがあればおしえてください~。

関連するQ&A