数字にノイズを混ぜる
昨日と一昨日やった事。
- "0123456789"→"7609825431"とかに並び替える
- 上記並び替えパターン(10*9*8*7*6*5*4*3*2*1=3628800通り)を数値指定する
そんな感じの処理の実装。
流石に全並び替えパターンを網羅する変換テーブル用意するのは非現実的なので、単純に昇順に並べて連番化しました。
"0123456789"……0番目
"0123456798"……1番目
"0123456879"……2番目
"0123456897"……3番目
"0123456978"……4番目
"0123456987"……5番目
"0123457689"……6番目
"0123457698"……7番目
"0123457869"……8番目
"0123457896"……9番目
〜略〜
"9876543201"……3628800-2番目
"9876543210"……3628800-1番目
他の"ABCDEFG"といった文字列相手でも、各"何文字目"を各"桁"とみなし、各桁において"元の文字列の何文字目"を数値と見なして並び替えます。
実際にコード化してみたら、出来上がりが短すぎて拍子抜けしました。
典型的な再帰処理なので、何処かに同じ処理してるコードがあるかもしれませんね。(←つまり車輪の再発明してる可能性有り)
で、使い道は
int n = 589; int v; v = n; System.out.println(v); int d1[] = { 0, 2, 3, 4, 5, 6, 1, 7, 8, 9 }; int d2[] = { 4, 5, 6, 0, 1, 2, 3, 9, 8, 7 }; int d3[] = { 3, 7, 9, 1, 4, 2, 5, 8, 0, 6 }; int d4[] = { 4, 3, 5, 8, 0, 2, 6, 7, 9, 1 }; v = d4[n % 10000 / 1000] * 1000 + d3[n % 1000 / 100] * 100 + d2[n % 100 / 10] * 10 + d1[n % 10 / 1] * 1; System.out.println(v);
↑みたいな数値変換とかです。
配列の中をアクセスする添え字に上記変換をかけてやって読み込み順をゴチャゴチャさせる用途に使います。
難読化機能について
成果物ゼロの時点で書くのもアレですが、現時点の開発用アイデアを少しアウトプット。
開発予定のもので出てくる「難読化」は、「暗号化未満の機能」という意味で使ってるキーワードです。
使用目的は暗号化に近いのですが、とても単純で解読が容易な代物です。新規の暗号化技術などを使ってません。
「ガラケーの暗証番号ロックと同程度の役割を果たす」のを目的に、私の出来る範囲の簡単な実装にしたのが自称「難読化」です。
特徴は
復号は容易だが、どの復号結果が正解か分かりにくい
の1点だけです。
要はTrueCryptの隠しボリューム(Hidden volume)を、ひたすら沢山にしただけですね。
元々この「難読化」の機能はケータイ上で使うつもりの代物でして、ガラケー・WindowsMobile・PCでも容易に使えるものとして考えました。
ガラケーを想定するならば、英字や記号含むパスワードは受け入れられ難いでしょう。入力も面倒ですから。しかしそうなると数字のみの暗証番号にしかならなくて、総当りの解析が容易です。
電話帳の様なプライバシーに関わる代物をそんな危険な状態で保管すべきではないでしょう。
その為「0000〜9999の1万通りを入力すれば、1万通りの正解の様なものが見れる」仕組みにしてしまおうと思った訳です。
そうすれば一応は「ガラケーの暗証番号ロック」と同程度の強度だと言い張れなくもありません。
まあ一応オプションとして文字記号を含むパスワード形式の入力や、暗証番号無しの入力も可能なつくりを考えていますが。
中身スカスカのタネ明かしはこれ位にして、実際に体験出来る成果物をなるべく早くアウトプットしたいと思います。
開発予定のもの
適当に列挙。実現可能性とか未確認のもあるし、気力が湧かなければ作らない可能性も。ほぼ自分用TODO。
思いつきで書き足したり消したりいじります。
ブラウザ拡張系
- 見ない権利
Webアプリ系
- 貸借管理システム
- 電話番号でHit&blowwするボケ防止アプリ
- 某サイトRのクローン
- 某サイトRのシステムを各サイトに自由に導入出来る化
- WebメールにO(ry)的なのを付けたやつ
- supervo(ry
- casr(ry
- lastp(ry
- GoogleMapか何かで地図表示する上にXXを表示してみる
- 外部xxを巡回チェックして通知したりするだけのサービス
- メニュー検索
- 激怒したニャ
- アップローダー
- xx時間.com
- 巻ごと人物情報
- 見ない権利for広告API
Androidアプリ
- 電話番号でHit&blowするボケ防止アプリ
- 電話帳とvCardとCSVの相互変換(難読化した独自形式にも)
- 発信着信履歴を独自形式で保管&難読化するアプリ
- MHP3rd用学習(?)アプリ
- MHX用学習(?)アプリ
- MHP3rd用武器コンプ管理アプリ
- 書籍等の収納管理アプリ
Notificationを(ry)するアプリ- PFIF*1とQRコードを扱ったアプリ
- DecoyZip(仮題)
- 先行アプリが無ければ自動通話切断forYTMF-1
- GPS+電波ロガー
- 某SNS用時間差GPS
- にゃんこ探し
- インストール済みアプリの署名情報等を確認&テキスト出力 APK signature checker 公開中!
- 激怒したニャ
- Exif Noise(仮)
- 忘れてしまった何か(1)
- サブ垢ったー
- ボスが俺のスマホ触りに来た!
- 優柔不断ダイス
- Androidユーザーの関門
- 声で速度
- デジタルディバイド解消用XXフレーム化アプリ
PCアプリ
- 電話番号でHit&blowするボケ防止アプリ
- 住所録履歴
- GPSログと○×△を同期させて再生とか編集とかそんな感じの
- DecoyZip(仮題)
- ファイル属性のバックアップ&リストア&コピーソフト
サブアカウント利用開始
はてなのサブ垢を取得し、開発関係のブログ他をこっちで開始する事にした。
はてなブログとはてなダイアリーどっちにしようか迷ったけど、はてなブログがドメインばらばらなのでこっちを選択。
設定はとりあえずデフォルトのままにする事にした。
現在手持ちの技術書は次の3冊。

Android Security 安全なアプリケーションを作成するために
- 作者: タオソフトウェア株式会社
- 出版社/メーカー: インプレス
- 発売日: 2011/12/29
- メディア: 大型本
- 購入: 6人 クリック: 141回
- この商品を含むブログ (27件) を見る

体系的に学ぶ 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践
- 作者: 徳丸浩
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2011/03/01
- メディア: 単行本
- 購入: 119人 クリック: 4,283回
- この商品を含むブログ (146件) を見る

- 作者: やねう解析チーム
- 出版社/メーカー: 秀和システム
- 発売日: 2004/07/30
- メディア: 単行本
- 購入: 6人 クリック: 139回
- この商品を含むブログ (176件) を見る