• 締切済み

この暗号化方式の条件は都合が良すぎですか?

Wernerの回答

  • Werner
  • ベストアンサー率53% (395/735)
回答No.7

安全とされる共通鍵暗号の鍵長は 向こう10年くらいなら128ビットでも十分(技術進歩の程度によって変わるかもしれませんが)、 万全を期すなら256ビットにすれば良いと言ったところです。 なお、安全とは総当たり以外に解読法が存在しない、という意味だと思ってください。 何故か1024ビットでは足りないとか言う話が出てきていますが、 これは公開鍵暗号のRSAに限った話です。 同じ公開鍵暗号でも、例えば楕円曲線暗号では同じ鍵長でも強度は違います。 (あと、もし公開鍵暗号の話をしているなら鍵を人間が覚えるような運用なんて普通しません。) > ちょっと前まではSSLしとけばいいじゃんと思っていたのですが > 途中の経路は全然暗号化してないらしいので SSLはEnd to Endの全経路が暗号化されます。 (Man in middle攻撃を受けた場合は話が変わってきますが、 それはちゃんとした証明書を使ってどうにかする話。) > そんなに既存の暗号化アルゴリズムは強度が高いのでしょうか。 アルゴリズムが公開されており、多くの研究者によって検証(攻撃)されている 暗号アルゴリズムなら安全です。 少なくとも一般人はそう判断するしか有りません。 > よく分からないで使うくらいなら > この方法のほうがいいかなと思ったのですが。 素人が適当に作ったアルゴリズムを使うくらいなら 既存の安全とされている暗号アルゴリズムを使った方が安全です。 というか、素人が暗号アルゴリズムを作るなんて一般的には愚行です。 (作るだけならいいのですが少なくとも実運用するのは) 暗号アルゴリズムを作って運用するなら、 少なくとも暗号アルゴリズムの安全性を保証する必要がありますが、 あなたにはできないでしょう? 少なくとも私にはできません。 > 衝突が発見されず入力1bit差で出力がほぼランダムに > 半数のbitが反転するなら > 最初から全てそれでやればいいのではないでしょうか 一般的な暗号アルゴリズムを通すと、出力は乱数(ランダム)にしか見えません。 「最初から全てそれでやればいいのではないでしょうか」と疑問を呈していますが、 そんなのは暗号アルゴリズムとしては当たり前の性質です。 結論としては、データを暗号化したいなら素直にPGPでも使いましょう。 私も重要なデータを暗号化してない経路に流す必要があるときはPGPを使いました。

base64sha2crypt
質問者

お礼

ご回答ありがとうございした。

base64sha2crypt
質問者

補足

要するに種となる256bitだけ覚えておけば 後は計算を重ねていけばデータ暗号化のパスワードも 算出できるというか秘匿しておいたものを 復号できるようにしたいのですが、 PGPだと秘密鍵を作成する必要がありますが これは作成用プログラムを実行しないと作成できないので 種の256bitと直接には関連づけられないですね。 例えば種256bit+暗号化したいデータ名(+必要なら変更回数) をSHA256に通した出力をそのまま秘密鍵にすることは できませんよね。 なのでPGP秘密鍵は仕方ないので作成プログラムで 作成するとして、それをどこに保存しておくかですが、 認証に256bitのパスワードを使っているオンラインストレージ に保存しておけば、 手元のパソコンが壊れても、 極端に言えば災害とかで何もかもなくしても 種の256bitさえ覚えておけばOK という考えでよいでしょうか。 SSLについては別途整理して質問します。 暗号化アルゴリズムを素人が勝手に考えて人に勧めて 使わせるなというご意見については 別に相手が拒否すればそれ以上強要しようとは 思いませんが自分だけのデータとかなら 例えば自分のメールアドレスに送っておくときに 今回質問した方法で暗号化というか変換して 送るとかならいいですよね。 誰かが真似したいといってきたら SHA256がなんかやばいみたいな話が出ていなければ やり方さえきちんと理解している人なら SHA256が駄目になったときに自分だけで対応できることを (まぁここのサイトみたいなとこで確認的な意味で 質問するくらいはOKとして)条件にいいよと返事する といったかんじでどうでしょうか。 書いてて思いましたがこれだったら秘密鍵も この方法で自分宛にメールしとけばいいですね。 最初からすべてそれでやればいいとは 種パスワードにSHA256のような性質を持ったものを使って作れば あとは全部つながるからそれでやればいいということが 言いたかったのですが 重要なデータについてはPGPということであれば それは秘密鍵は好きな名前にできないので できないですね。 他の質問とごっちゃになって補足しちゃってるので わかりづらくてすみません。

関連するQ&A

  • 暗号学的ハッシュ関数でbit長が適切って作れますか

    SHA256が(224かもですが)最小bit長で、 入力に1bitでも、また2bit以上入力値全体まで、異なれば、 出力のうちほぼ半数のbitが反転する、かつその 反転するbit位置は複数の入力値に対して法則性はなく、 ほぼランダムである。 という暗号学的ハッシュ関数であるのは、正しいですか? また、データの暗号化に使われるパスワードは4096bitを推奨との 事ですが、 SHA4096などその時に合った暗号学的ハッシュ関数を 作るのは難しいのですか? 素人考えでは、今256bitで衝突が見つかってないなら 4096bitならbit長大きいのだから作れそうな気もしますが やはりそういう問題ではないのでしょうか? もし作れるとしたら、データの暗号化に使うパスワードを SHAなんとか・・・の出力そのまま使っては、危険でしょうか? というかデータに限らず認証のパスワードでも SHAなんとかの出力そのままを使うのは何かまずいのでしょうか? もしできたらパスワードを覚えなくてよいのでいいかと思ったのですが。 パスワードは「IDのパスワード」をSHAなんとかに通した値ということで。 IDは「種パスワード+なんとかのサイト」をSHAなんとかに通した値ということで。 種パスワードはしょうがないからネットをパスワードの決め方とかで検索して 出てきた方法を見て理解して自分なりにアレンジして、最後にちゃんと頭に記憶して。 とりあえずここまで、どうでしょうか。

  • 8文字以上の文字を暗号化する方法

    Apache1.3.37+PHP5.2.4+MySQL51.22のレンタルサーバでWEBコンテンツを作っています。 フォームから入力されたパスワードを、DBに格納する際、暗号化したいと思います。 MD5やsha1やcryptなどいろいろあるのですが、8文字を超える文字の暗号化ができないようです。 8文字を超える暗号化はどうすればいいのでしょうか? よろしくお願いします。

    • 締切済み
    • PHP
  • テキストの暗号化

    ソフトウェアの情報(インストールした日付・パスワード等)をテキストに書き込む時に暗号化してカキコむように しようと思います。しかし、字を3文字ずらす・アスキー コードに変換するなどでは、簡単に破られるのではないかと 思います。フリーのソフトでも、文字化けのような 状態のテキストファイルなどをみますが、あのような 複雑な暗号はどのように作られるのでしょうか? 「暗号」などで検索してみたのですが、そのやり方については、詳しくは記載されてはいませんでした。(暗号化を詳しくかいたら暗号にならないですよね)しかし、例でこういうやり方があるんだ、というのを是非教えて下さい。 また、このよう情報を書き込むのは通常テキストファイル などでよいのでしょうか?レジストリでしょうか? レジストリなどに書き込んでいるソフトなども見られますが、一般的にはどこに書き込むものなのでしょうか?

  • ブロック暗号を使用した暗号化は行レベルロックと互換

    ファイルを排他モードで開き、パスワードを設定してokを押すと、 「ブロック暗号を使用した暗号化は行レベルロックと互換性がありません。行レベルロックは無視されます。」 と表示されますが、これはどういう意味ですか? パスワードは問題なくかかります。

  • 行の先頭に自動的に記号が付かないようにするには

    Word2010で、1行目を先頭に「1.」の文字の付いた行にして、その行の末尾で改行すると、改行した後の行(つまり、2行目)の先頭に「2.」が自動的に付きます。 「2.」が自動的に付かないようにするにはどうしたらいいでしょうか。

  • PowerShellの暗号化&複合化

    お世話になります。 タイトルにありますように、PowerShellでパスワード文字列の暗号化と、 暗号化された文字列を元の文字列に戻し、変数に持つ、という事をしたいのです。 此方のサイトを見つけまして、 http://technet.microsoft.com/ja-jp/windows/ps_tips13.aspx 真似る事で、テキストファイル内に暗号化されたパスワードを作成することが出来ました。 しかし、テキスト内に記録された文字列を、どうやって元に戻し、使うのでしょうか。 この方法は証明書を使うものでも、公開鍵を使うものでもない、 実に単純なものに思えるのですが元に戻す方法が判りません。 どうかご教授頂けますでしょうか。よろしくおねがいします。

  • WORDで文字間隔が勝手に広がってしまう

    テキストをコピー&ペーストで、WORDに貼り付けたとき、ある何行かだけが、文字間隔が極端に広がってしまいます。 その行の上の行の文字間隔は通常通りなので、その通常の行から文字を手で打ち直して、打ち直した先頭から改行してみました。ところが、改行すると、再び文字間隔が極端に広がってしまいます。 良い解決方法があったら教えてください。

  • base64後、1文字ずつ暗号化すると解読困難?

    計算コストを幾分度外視して考えると、通常の業務連絡的な内容のメールであれば、 base64を通してから1文字ずつパスワード付きでハッシュ関数に通せば パスワードがばれない限りかなり解読困難ですか? (2文字目からは暗号化後の1文字目もつける→3文字目は2文字目・・・以下末尾文字まで) またどの程度実用的でしょうか。(用途はどの程度限定されるでしょうか。) メールにGmailなどの無料Webメールしか使っていないので なるべく長持ちする暗号化として考えてみました。 回答お願いします。

  • データ暗号化のパスワードをネットに置いていいのか

    データ暗号化に4096bitの鍵を用いたとして その鍵をネット上に置いておいたら 全体として(通信経路など含めて)4096bitの強度は 実質かなり落ちるので無意味ですか? 256ibtならASCII印刷可能文字で39文字なので 無意味な文字列でも何とか覚えていられますが (SHA256を使った種パスワード方式にして、IDやEメールアドレスなど も含めて全部統一してしまえば、39文字自体は覚えづらくても それ1個だけ覚えればいいので何とかやれそうなのですが) 4096bitとなると624文字なのでちょっと無理なので・・・ なるべく全部ネットに置いておきたいのですが・・・ これはやはりどうにもならないでしょうか。

  • ワードで自動的に改行したい

    ワード2003を使用しています。一行に書ける最大文字数を超えると次の行に自動的に移りますが、この時に自動的に改行を入れることはできないでしょうか?改行がないと次の行の先頭にスペースを入れたい時に前の行の終わりにどんどんスペースが入り枠を超えてしまいます。よろしくお願いします。