• 締切済み

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

Wernerの回答

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

> 認証に256bitのパスワードを使っているオンラインストレージ > (中略) > 種の256bitさえ覚えておけばOK > > という考えでよいでしょうか。 そう言う考えで良いと思います。 > 暗号化アルゴリズムを素人が勝手に考えて人に勧めて > 使わせるなというご意見については 要するに、「自作の暗号アルゴリズムの安全性なんてだれも担保できない」、 という事を言っただけなので、 安全性が保証されなくても問題ないのであれば 特に言うことはないです。 (普通は実運用では安全性を気にするのでANo.7の様にコメントしましたが。) あと、すでに指摘されていたと思いますが、 SHA256を利用しているからといって、 安全性がSHA256に準じた物になるわけではありません。 運用を間違えれば安全性は落ちます。 (実際にあった例としてはRC4の運用の一つであるWEPの脆弱性とか) 「種256bit+暗号化したいデータ名」をSHA256に通して 暗号鍵生成に利用するという運用も考えているようですが、 これくらいであればたぶん問題はないと思います。 少なくとも、「種256bit」をそのまま暗号鍵として利用する場合に比べて 安全性が落ちると言うことはないでしょうから。 また、パスワードをハッシュ関数に通して暗号鍵に利用するという運用自体は珍しくないです。 共通鍵暗号方式はAES等の安全とされるアルゴリズムを使えばよいと思います。 余談ですが、「適当な値+パスワード」のダイジェストをとり それを暗号鍵に使う(もしくはパスワード認証用のデータとして使う)という手法はよく使われます。 この適当な値をsaltと呼びます。 saltは暗号化結果と共に保存する(そうしないとパスワードが分かっていても鍵が分からない)ので、 暗号化の強度自体は上がりませんが、 同じパスワードに対する暗号化結果が毎回異なる為 ある種の攻撃に対して強くなります。

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