C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[8]: 文字列の暗号化と複合


(過去ログ 121 を表示中)

[トピック内 10 記事 (1 - 10 表示)]  << 0 >>

■72330 / inTopicNo.1)  文字列の暗号化と複合
  
□投稿者/ 新人 (1回)-(2014/06/04(Wed) 17:45:09)

分類:[VB.NET/VB2005 以降] 

開発環境はVB2012です。
任意の文字列を暗号化し、暗号化した文字列を複合することができるプログラムを作成しています。
.netで標準に用意がされている暗号化(AESやDES)を使い文字列の暗号化、複合がはできるのですが、
今回のプログラムの条件を満たすことができません。以下に条件を記します。

@暗号化した文字列を20文字以内に収める(出来れば16文字以内)
A暗号化した文字列は半角英数字のみにする。
B強度な暗号化でなくてもいいが、目で見て推測できる暗号化文字列はだめ

以下に主な流れ
Form上にtextboxが4つ(例 text1, text2, text3, resultText)あり、text1〜3に入力された半角英数字を元に
暗号化し残りのtextbox(resultText)に暗号化した文字列を表示する。

text1には4文字、text2には6文字、text3には4文字の任意の半角英数字を入力
3つのtextboxの文字を連結、連結した文字列を元に暗号化を行う。


なにかいい案はありますか?
引用返信 編集キー/
■72333 / inTopicNo.2)  Re[1]: 文字列の暗号化と複合
□投稿者/ 774RR (157回)-(2014/06/04(Wed) 19:05:48)
複合でなくて復号

その手法「アルゴリズム」を考えること自体が求められているだろ?
問われているのは、新人氏の数学的センスとかそういう奴。
俺たちが考えちゃったら意味ないと思う。

アルゴリズムを実装しようとしたときわからないことがあります・・・ならば
協力してくれる人はいっぱいいると思う。
まるっとアルゴリズムそっくり考えてくれ、ならばお断り。
引用返信 編集キー/
■72340 / inTopicNo.3)  Re[2]: 文字列の暗号化と複合
□投稿者/ 新人 (2回)-(2014/06/04(Wed) 23:39:53)
誤解を生む書き方をしてしまったようですね。
申し訳ございません。
そのままアルゴリズムを考えてくれなど甘いことは考えていません。
少しでもヒントになるようなキーワードやアドバイス頂ければと思い投稿しました。
引用返信 編集キー/
■72343 / inTopicNo.4)  Re[3]: 文字列の暗号化と複合
□投稿者/ 774RR (158回)-(2014/06/05(Thu) 06:32:43)
調査済みであろうが「シーザー暗号」「エニグマ暗号」あたりから検索していくといいだろう。
http://ja.wikipedia.org/wiki/%E6%9A%97%E5%8F%B7%E5%8F%B2

AES とか DES とか、現代的暗号手法はバイナリからバイナリに変換する手法であるため
最初の発言のとおり今回求められている要求に合致しないだろう。
.NET Framework で標準的に提供するには「シーザー」「エニグマ」あたりでは強度が無さ杉で
だから提供されていないんだ。

エニグマそのままを実装してもいいだろうし、ちょっとひねりを加えてもいいかもしれない。
# 暗号素人が考えたアルゴリズム修正ってのは暗号強度を落とすだけなんだけど。

offtopic
課題「文字列3つを与えて」という文言から俺が思うのは
・ログインアカウント、パスワード、ソルトの組があるとき、安全にパスワードを保存する方法を考えよ
なんだが、この場合に要求されるのは「復号できてはならない」なのでちょっと違うなぁ
引用返信 編集キー/
■72344 / inTopicNo.5)  Re[4]: 文字列の暗号化と複合
□投稿者/ 新人 (3回)-(2014/06/05(Thu) 09:17:23)
774Rさんアドバイスありがとうございます。
エニグマを深く調べてみます。

やはりAES、DESで暗号化した文字数を制限する方法はないですよね?

引用返信 編集キー/
■72345 / inTopicNo.6)  Re[5]: 文字列の暗号化と複合
□投稿者/ ?V?l (1回)-(2014/06/05(Thu) 09:17:52)
No72344 (新人 さん) に返信
> 774RRさんアドバイスありがとうございます。
> エニグマを深く調べてみます。
>
> やはりAES、DESで暗号化した文字数を制限する方法はないですよね?
>
引用返信 編集キー/
■72349 / inTopicNo.7)  Re[5]: 文字列の暗号化と複合
□投稿者/ shu (579回)-(2014/06/05(Thu) 10:40:04)
No72344 (新人 さん) に返信
> 774Rさんアドバイスありがとうございます。
> エニグマを深く調べてみます。
>
> やはりAES、DESで暗号化した文字数を制限する方法はないですよね?
>
強度の高い暗号化というのは文字数が増えてしまうのはやむを得ない。
文字数を確実に制限するには元の文字数と変わらない暗号化を行わないと
無理だと思います。文字単位のシフトと文字位置の入れ替えを上手く行えば
それなりに一瞬では分からない程度には出来るかと思います。暗号化文字列を
16文字以内に収めるとして元の文字列長を8文字までとかにすればもう少し
強度の高い暗号化も可能になってくると思います。
引用返信 編集キー/
■72350 / inTopicNo.8)  Re[6]: 文字列の暗号化と複合
□投稿者/ ?V?l (2回)-(2014/06/05(Thu) 10:45:07)
No72349 (shu さん) に返信
> 強度の高い暗号化というのは文字数が増えてしまうのはやむを得ない。
> 文字数を確実に制限するには元の文字数と変わらない暗号化を行わないと
> 無理だと思います。文字単位のシフトと文字位置の入れ替えを上手く行えば
> それなりに一瞬では分からない程度には出来るかと思います。暗号化文字列を
> 16文字以内に収めるとして元の文字列長を8文字までとかにすればもう少し
> 強度の高い暗号化も可能になってくると思います。

やっぱり元の文字列長を8文字までするしかないですよね。
残念ながら元の文字列長を変えることはできないのでAES,DES以外の暗号化で頑張りたいと思います。
引用返信 編集キー/
■72352 / inTopicNo.9)  Re[7]: 文字列の暗号化と複合
□投稿者/ 渋木宏明 (16回)-(2014/06/05(Thu) 11:53:28)
渋木宏明 さんの Web サイト
> 残念ながら元の文字列長を変えることはできないのでAES,DES以外の暗号化で頑張りたいと思います。

ぶっちゃけ強度が求められていないんだから、単純な文字置換でおkでしょう。

>@暗号化した文字列を20文字以内に収める(出来れば16文字以内)

>text1には4文字、text2には6文字、text3には4文字の任意の半角英数字を入力
>3つのtextboxの文字を連結、連結した文字列を元に暗号化を行う。

なんて辺りから、出題者はそういう回答を期待してることが想像されます。
引用返信 編集キー/
■72356 / inTopicNo.10)  Re[8]: 文字列の暗号化と複合
□投稿者/ 774RR (160回)-(2014/06/05(Thu) 13:41:34)
2014/06/05(Thu) 17:37:52 編集(投稿者)

AES や DES はブロック暗号だ。文字数という概念とは馴染まない。

本件、出題者が単純置換方式でいいと思っているであろうに一票。
過去にこんな暗号もあったな。えっと
http://bbs.wankuma.com/index.cgi?mode=al2&namber=59962&KLOG=100

# ガラケーで手打ちしたらリンク間違ってたので修正
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -