• ベストアンサー

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

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

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

  • ベストアンサー
  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.2

>実際にやると復号のほうは数行のメールでも解読まで何分も >だんまりになったりするでしょうか。 数行程度なら今時のPC使っている限りはそれほど重くない…と思われますけど…… "こんにちは."をISO-2022-JPでエンコードすると17バイト。 ソレをBASE64でエンコードすると、24バイトに。 SHA512SUMのハッシュで128バイト(バイナリのままなら64バイトですが…)になるので、 BASE64の1文字をSHA512SUMでハッシュを求めていくとなると…3072バイトになります。 SMTPの仕様で、1行80バイトで改行を入れるような決まりがあった…と記憶していますので… 38個の改行(CR+LF)が入って3148バイトの本文になりますね。(たった「こんにちは.」だけで…です。) # 128バイトのハッシュ化したコードが改行なしで連続していた場合…です。 # 1文字毎に改行コードによる区切りを入れると……どうなるんでしょう?(1行80文字(80バイト)のSMTPの仕様も…まぁ、無視してもたいていはよろしく転送してくれるようですが) 計算のみで実際にハッシュ通したりしていないので処理時間に関しては不明です。 「(2文字目からは暗号化後の1文字目もつける→3文字目は2文字目・・・以下末尾文字まで)」の解釈が曖昧になりますので…… # とりあえず、予めテーブル化することはできないことだけは確定していますが…。

base64sha2crypt
質問者

お礼

時間ができたので同日ですが書き込みます。 以前sha256でASCII印刷可能文字全95種類をフルフルで使って 表したら39文字つまり39バイトでした。 SHA512SUMについては詳しくないですが単純に256の2倍だとすると 78バイトになるのでしょうか。 で80バイト毎に改行とのお話(初めて知りました。ありがとうございます) とすると結局1行1文字に(base64後に)しといたほうが良さげですね。 というかお話の趣旨は大変時間かかって非実用的ということですが 実際どんなもんでしょうか。って自分でやってみればいいのですが ぶっちゃけプログラム組むの面倒で・・・ あサイズの話が先でしたね、shaというか256bitで良ければ 24バイトを1行1文字にして、1文字当たり改行2バイトずつ付くので 39*24+24*2で984バイトですか。 http://www2u.biglobe.ne.jp/~yuichi/rest/strcount.html ここまでで←ココマデ 741バイトですから、やはり相当な 分量になりますね・・・ 送るほうも制限きつい?そうでもない?けど 問題は受信して解読というか復号するときの処理の重さですね・・・ また考えてみます良かったらお付き合いください・・・

base64sha2crypt
質問者

補足

すいません用事が入ってしまいました後日お礼のほうで書かせていただきます。 とりいそぎ、解釈あいまいの部分はbase64は当然64種類しかないので 同じ文字が常に同じハッシュでは頻度でばれそうなので どの文字も(先頭の1文字をのぞいて)パスワード (これはメール全体で1個だけ) をつけるだけでなく、ちょうどハッシュ通したばかりの (直前の1文字をハッシュ通した結果の文字列丸ごと)を もつけてやれば、全文字のハッシュ後が全部 違うハッシュになるのでいいかなという考えです。

その他の回答 (3)

  • geshon
  • ベストアンサー率61% (44/72)
回答No.4

どこから言ったらよいのか。 技術的なことから。 まず、パスワードはどうやって知らせるのでしょう? メールは信用できないので、別の手段ですよね。 ならば、その手段で普段の連絡もとればいいですね。 要は、インターネットの通信において暗号を共通化鍵で 共有するのは課題があるということです。 公開鍵暗号でも同じ問題はありますが、意味合いが違います。 次に復号化の方法が、総当りをして当たったものを繋げてください というのは、本当に暗号の複合なのですか? 複合と暗号解読の差分はパスワード分でしかないですね。 「計算コストを幾分度外視して」とおっしゃっていますが、 要は、複合のための総当りは実用レベルになるけど、 パスワードの暗号解読分の総当りは実用レベルには達しないと いう意味に見えます。だとすると、ずいぶん都合がいい 条件ですね。 もうすでにこのへんで、この複合(むしろ解読?)の計算量は ほとんど意味が無いと思われます。 ZIPのパスワードのほうが、情報量も小さくなるので よっぽど気が効いていますね。 > 普通の暗号化といっても強度の裏がとれません。 インターネットにあふれる暗号に関する文献を読めば、30分ぐらいで 暗号の強度比較がだいたい分かると思います。 単に勉強不足なのではないでしょうか? 勉強する気がないのでしょうか? > だいたいどの暗号化でもハッシュ関数を利用しているし > というか一番キモなんじゃないでしょうか。 違います。 ハッシュというものは、ある空間から別の小さい空間への写像でしかありません。 使用される用途によって関数個別の特徴が違うだけです。 逆関数は特に必要とされていません。というか作れない。それだけです。 だからあなたの提案する似非暗号には複合方法がなく、単純攻撃と同じ 総当りしか解読の方法がないのです。 暗号化の工程においてハッシュ関数は、チェックサム程度にしか使われていません。 本体そのものは見せたくないが、本体が使われている証拠として使われます。 暗号化の本質とは関係ありません。 逆にハッシュ値がぶつかるような条件をだす計算量が小さいと、本物か偽物かの 区別ができないことを、悪意を持った人が比較的に容易にできることになります。 これは暗号解読の難しさとは関係ありません。 > 暗号化アルゴリズムは複雑なわりに > 破られただの、どういう条件だとまずいだの > なんだかんだ話が面倒で、かつ複雑になる一方なので > そういう面倒な話はハッシュ関数に集約してしまったほうが > 一般への説明、周知がしやすいので > 結果として普及しやすいのではと思いました。 あなたが周知しなければ良いのでは? 暗号化に関してもハッシュ関数に関しても、理解が出来ていないようです。 理解していないことは恥ずかしいことでもなければ、理解する必要もありません。 ハッシュにしても、暗号化にしても、ファイルシステムにしても。 でも自分が理解していないことが分かっていない、あまつさえ理解が 足りていないところに、理解の浅い新しい提案をされては、 付き合わされる方は、知識の向上の機会がすくなくなるなるばかりか、 知識のないことを理解している人に、誤った方向を向かせることになりかねません。 自重すべきでしょう。 分からないことを分からないと、真摯に聞く態度が大切だと思います。 辛辣なことを書いていますが、人に物を勧める、提案する態度を取るのであれば、 それだけしっかりしなくてはいけないということです。 時には責任も付いてきます。 間違えば指摘も受けるでしょうし、いい加減なことを書けば批判も受ける ということです。

base64sha2crypt
質問者

お礼

ちょっと気力が続かなかったのでなんか逃げるような返しに なってしまいましてすいません。 また気が向いたら新たな切り口で質問しようと思います。

base64sha2crypt
質問者

補足

なんか周知とか大きなこと言ったのがいけなかったみたいですね。 単に暗号化の方法として個人的に使う上で なるべく長持ちするかどうか知りたかっただけです。 個人的といってもメールなら相手のあることだから なんとなく周囲に広まるかもしれませんが。 周りの人からうまくいっているように見えれば 教えることもあるかもしれないし。 パソコン自体そんなものだと思っているので。 時期を逸すると言葉の意味が都合の良い所だけとられて 世の中に定着してしまうので 後から反論するのに大変な労力がかかるのですね。 昔は別にインターネットは逃げないし必要が出来たら 真面目に調べて考えるか (自分の頭では無理そうというかもう限界と感じたら しょうがないから諦めるか、でもたいてい なにかやりようはあるだろ最後は力技で) くらいに思っていたので 後れを取るというのはこんな面倒なことなんだなあと 実感している次第です。 というか世の中変なんじゃとも思いますが。 憤りというか。 そのあたりが最後の13行を言われてしまうことに つながってくるのかなと思いました。 あまり勉強する気も起きないのはそんなとこにも あるかもですね。 なんか話がかみ合わないですね。 どうせ自分がマイナーな奴だからでしょう。 なんかすぐこういう風に何やっても厭になります。 話がずれてきたのでこの辺で。

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.3

思ったのですが、 1つ目が解読されると、パスワードがわかるわけで 2つ目以降は パスワード(既知)+前段の暗号(既知)+1文字(未知,64候補) と高々64回の試行で次の文字がわかってしまうわけで。 暗号化の計算量とデータ量が大きいわりには、強度は普通に暗号化するのと大して変わらないのではないか、と思います。

base64sha2crypt
質問者

お礼

追記ですが たしかに現時点では自分ひとりで個人的に使うのですが いつかは周囲の人間に普及させたいと思っています。 (どうせメールなど相手のあることなので) なので全てを含めて、 なるべく長持ちする方法を考えている次第です。

base64sha2crypt
質問者

補足

普通の暗号化といっても強度の裏がとれません。 それ言ったらハッシュ関数もそうですが、 だいたいどの暗号化でもハッシュ関数を利用しているし というか一番キモなんじゃないでしょうか。 基本、計算量やデータ量は大きくなっても 技術の進歩で将来的には解決できるのではという 淡い期待が持てますが 暗号化アルゴリズムは複雑なわりに 破られただの、どういう条件だとまずいだの なんだかんだ話が面倒で、かつ複雑になる一方なので そういう面倒な話はハッシュ関数に集約してしまったほうが 一般への説明、周知がしやすいので 結果として普及しやすいのではと思いました。 パスワードもハッシュ関数の出力をそのまま使えば 解読困難でしょうし。 駄目になったときは一気に全部駄目ですが それは現在も同じでしょうし。 というか予防できる質のものではないので 対応を如何に速くうまくやるか、その仕組みをどう 整えておくかといった話になると思います。

  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.1

>base64を通してから1文字ずつパスワード付きでハッシュ関数に通せば パスワードが共通だとしましょう。 ハッシュ関数を通した結果から、入力元は取り出せませんから、1文字あたりパスワード付きハッシュを通す必要があります。 1文字確定するたびに64パターン程度のハッシュ関数呼び出しと比較が必要になります。 # まぁ、実際には64種類程度ですから、「パスワード+BASE64での1文字」のハッシュ結果を64通りテーブルにしてしまえばいいだけですが… >(2文字目からは暗号化後の1文字目もつける→3文字目は2文字目・・・以下末尾文字まで) という条件ではテーブルも使えませんから、長文メールになればなるほど(デカい添付ファイルが付けばさらに)負荷が重くなりますね。 現実的ではない。 と思われます。

base64sha2crypt
質問者

お礼

上の補足ですが >実際にやると復号のほうは数行のメールでも解読まで何分も 「解読まで」は余計でした。 失礼しました。

base64sha2crypt
質問者

補足

base64後で何文字くらいであれば現実的でしょうか? 暗号化は、ほぼ文字数だけハッシュ計算をすればいいので その負荷ですが、復号は1文字あたり64倍ということで 文字数の64倍の負荷(+比較して一致したものを探す負荷が 1文字ずつかかる)だと思っていますが。 実際にやると復号のほうは数行のメールでも解読まで何分も だんまりになったりするでしょうか。

関連するQ&A

  • ファイル暗号化について-EFSが解読される可能性

    次のような条件でEFSで暗号化されたファイルが解読される可能性について教えてください。 OS…WindowsXP pro ドライブ構成 C:…システム,ブート,ページファイル,プライマリパーティション;NTFS D:…プライマリパーティション;NTFS 各ファイルはEFSで暗号化 *各ボリュームはそれぞれ別の物理ドライブ上に存在する。 OSのログオンパスワードは英数大小文字混在の10ケタ程度のものを使用。 OSのセキュリティポリシーは ロックアウトの閾値:5回 ロックアウトの期間99,999分 とする。 このようなPCが悪意のある第3者によって持ち出される。ただしログオンパスワードは知られていない。 バックアップのEFS 証明書およびEFS DRA 証明書が持ち出されることもない。 以上の条件です。よろしくお願いいたします。 私の見解で誤っているところがあればご指摘いただきたいです。 ・ユーザープロファイルにはログオンパスワードで保護された暗号鍵が存在する。  何らかの方法でログオンパスワードが解析されればこれを使用して暗号化されたファイルは解読可能。 ・上記の“何らかの方法”において、ソーシャル・エンジニアリング、  総当たり解析、辞書解析以外の解析方法が既に存在するのではないか。 ・Dドライブの格納された物理ドライブのみが持ち出されたケースではEFSによって暗号化された  ファイルのみが保存されているので内容を(数学的には解析可能ではあるが)解読することはできない。

  • パスワード暗号化

    パスワードを暗号化するにはphp関数などでハッシュ化させてからINSERTするしかないのでしょうか? MYSQL自体に現在INSERTされている文字列をハッシュ化させる方法はないでしょうか?

    • ベストアンサー
    • MySQL
  • 文字化けメールの解読

    PCから gmail アドレスへ送付の返信メールが文字化けで戻ってきました こちら側で解読する手順はありますか また出来ない場合 先方へどのように伝えれば 正常に返信できますか よろしくお願いします 

  • 暗号化zipファイルは安全ですか?

    暗号化zipファイルは安全ですか? zipファイルって世界で通用してますね 暗号化した場合 パスワードを解読される可能性は? 安心出来る程度でしょうか 可能性の問題なので、”絶対安全”はないと思いますが、 社会生活上安全性は高いのでしょうか? それとも ツールなどで簡単に解除されてしまうのですか しらみつぶし に パスワードを入れていくツールがあるのは知ってますが ある意味 そんなのは解読と言わないことにして・・・・ 例えば、バイナリーエディター 等で開けても当然パスワードは直接は見えません でも、隠された法則があり、その法則は解明されているのでしょうか?

  • 旦那の浮気用メールのパスワードを解読したいのですが、どうしたらいいでし

    旦那の浮気用メールのパスワードを解読したいのですが、どうしたらいいでしょうか? 動揺している為、文章が乱れるかもしれませんがご了承ください。 旦那が浮気用のメールアドレスをつくり、そこから浮気相手とやり取りしているようです。パスワードを解読しようといろいろと試しましたが、見つけられません。パスワードを解読してそのメールアドレスにログインする方法があるでしょうか? もし旦那に私が旦那のパスワードを解読しようと試みているを絶対ばれたくありません。 インターネットで探したら無料パスワード解読ソフトがダウンロードできるそうなのですが、、インストールしたらウィルスチェックのソフトに引っかかってしまいます。そのほか、有効な方法がありましたら、ぜひ教えてください。 ちなみに、ブラウザはファイヤーフォックス、メールはGmailをつかっています。 勝手ですが、他人のメールを覗くことに関してのご批判はご遠慮ください。 どうか私を助けてください。よろしくお願いします。

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

    暗号化の方法として次のようなものを考えました。 1.暗号化したいテキストファイルを用意する。 2.base64を通したのち、1行1文字にする(1文字ごとに改行する)。 3.1行目の先頭にパスワードを付けたのち、行まるごと(改行は除いて)   SHA256に通してその出力で行まるごと(改行は除く)置き換える。 4.2行目の先頭に3.と同じパスワードを付け、さらにその後ろに   1行目をつけてから行まるごと(改行は除いて)   SHA256に通してその出力で行まるごと(改行は除く)置き換える。 5.4.を最終行まで繰り返す。   (パスワードの後ろに続けるのは常に直前行(と元々あった1文字)とする) この場合、復号のためにはパスワードが分かっていれば 全行(というか全文字)最大64回ずつ総当りすることになりますが、 ここで、パスワードもSHA256の出力だとすると、 パスワードの総当りと、全行の各1行ずつにつき最大64回ずつの 総当りで、 後者は、実用レベルに達するが、前者は、実用レベルに達しない という、計算機環境というか、世界というか世の中というかは、 想定として、都合が良すぎですか? もちろん暗号化したいテキストファイルのサイズによると思いますが、 現状あるいは近い将来(遠くても10年後くらい?)では、 この暗号化は実用的ではない(ならない)でしょうか? それとも永遠に実用的でないでしょうか?

  • 文字列を数字に変換する暗号化方式

    与えられた文字列を、可変長 ( 6 ~ 10 桁程度 ) のアラビア数字に変換するような暗号化方式やハッシュ関数を探しています。 あるいは、出力結果が数字で、名前が付いている方式ならば、それに近いものでも構いません。 どなたかご存知の方はいらっしゃらないでしょうか。 ご回答よろしくお願い致します。

  • パスワードの暗号化について

    こんにちわ! どうぞ、ご存知の方はなんでもOKですので、宜しくお願い致します。(^c^;) 現在、Javaを使ってWeb取引を作っています。はい。 そこでお客さまから、パスワードを暗号化して欲しいとの要望がありました。 基本的には、DBを直接見ても、わけのわからん暗号化された文字列が入っていれば、宜しいかと思っておりますが、 一般的に、皆様、どのような方法を使って、暗号化&解読を行っているのでしょうか???? ど素人的な質問で、大変に恐縮ですが、時間的にも余裕がないため、質問をさせて頂くことと致しました。 ちなみに、DBの桁数は既に決定しているため、暗号化時に桁数の増減がない方法がうれしいです。 本当に、困っております。本当に。。。。 <(>。<;)> そんなこと今更いわないでぇぇぇぇ~って心境でございます。。。。 どうぞ、宜しく宜しくお願い致します。

  • 暗号化されていないサイトを暗号化することは可能?

    はじめて利用させてもらいます。 SSLにて保護されていないサイトのログイン画面にメールアドレスを入力する際 暗号化するなどの手段というのはないものでしょうか。 ちなみにそのサイト、パスワードは入力する際暗号化されているようです。 入力した際パスワードの文字が黒丸で表示されるので・・・。 自分なりに調べましたが、手段が見つからず、技術的に無理なのかなと思いましたが 念のため質問させていただきます。

  • メール暗号化不対応プロバイダーについて

    御世話になります。 プロバイダー側で送信メールが暗号化されない,またWindos Mail で暗号化したメールを送信できないプロバイダーを利用しています。  こうした環境では,Gmail等暗号化されるクラウドメールは,プロバイダ側で暗号化が解除されるのでしょうか?それとも暗号化されたまま,相手先に届くのでしょうか(文字化けしたとしても)。 回答くださいますようお願いいたします。

    • ベストアンサー
    • Gmail