スポンサーサイト

  • 2018.03.09 Friday

一定期間更新がないため広告を表示しています

  • 0
    • -
    • -
    • -

    いろふ式暗号を作ってみよう♪

    • 2013.12.17 Tuesday
    • 00:24

    この記事は、いろふ Advent Calendar 2013の16日目の記事です。
    もう17日になっていますが、気にしたら負けです。

    昨日は、@Posauneさんの「いろふさんの一意性を証明する #irof_history」でした。
    いろふさんはやっぱり、謎なんだなと思いました。


    さて唐突ですが、本日は、いろふさんを使って、
    オレオレ暗号ならぬ、
    いろふ・いろふ暗号を作ってみたいと思います。

    なぜそんな事をするのか?
    何となく、いろふさんは謎なので、鍵にするのなら、
    丁度いいと思ったからです。




    さて、暗号式の作戦ですが、
    鍵にはある程度の複雑さと、ゆらぎが必要ですので、
    ここはirofさんのtweetを利用したいと思います。

    作戦はこうです。
    (1)いろふさんのtweetの中から、ランダムに2件取得
    (2)2件のtweetをハッシュ化、XORで1つの秘密KEYを作成
    (3)暗号化したい平文メッセージを秘密KEYで暗号化
    (4)暗号化したメッセージを今度は復号化してみる

    醍醐味は、取得した2件のTweetからは、暗号キーはサクッと作れますが、
    暗号キーからは、どのtweetを使用したのか判らないような暗号を作ってみたいと思います。
    では、さっそく作ってみましょう♪
     

    ■まずはTweetからランダムに2件取得


    Tweetを取得するにはTwitterのAPIを利用するしかないのですが、
    C#には「linq2twitter」という便利なライブラリがあります。


    ライブラリを使うと、たったこれだけで、
    指定したユーザの最新200件のTweetを取得することができます。
    (200件はTwitter1.1の一度に取得できるMAX件数)

    あとはこのTweetリストの中から、2件のTweetを選びます。
    ランダム取得もLinqを使って1件取得するとなると、

    こうなります。

    ビバLinq!便利。
    早速、プログラムで2件ランダムにTweetを取得します。



    つぎは、取得したTweetを使って暗号キーを作成してみます。


     

    ■2件のTweetから暗号キーを作ってみよう



    どのTweetから、作成されたのか判らないようにしたいので、
    まずはTweetのメッセージ文章をハッシュ化させてみたいと思います。

    ハッシュ化は、MD5を使うと簡単に行えます。

    あとは2件のTweetをそれぞれ、ハッシュ化を行ったら、
    XORで1つにまとめてみます。
    これを秘密キーとします。

    早速、プログラムで実装してみます。

     

    ■秘密キーで暗号化してみよう



    作成した秘密キーを使って、平文を暗号化してみたいと思います。
    暗号アルゴリズムには現在最強のAESで行ってみたいと思います。
    C#では標準でAESアルゴリズムが用意されていますので、
    簡単に暗号化する事が出来ます。

    それでは、プログラムに実装してみましょう。


     

    ■暗号化した文章を復号してみよう



    復号は先ほどの暗号化とほぼ同じプログラムとなります。


    プログラムに実装してみましょう。


    無事、復号する事ができました。

     

    ■いろふ式暗号の特徴



    作ってみて判ったのですが、

    ■特徴その1
    圧倒的に、強度が低い(汗
    なぜなら、Tweet件数を200件としてしまっているので、
    その中から、ランダムに2件選んでいるということは、
    200*199回、総当たりされたら、突破されることになります。
    瞬殺ですね♪


    ■特徴その2
    時限式暗号で、賞味期限がある!
    200件のTweetは古くなると見れ無くなります。
    つまり、いろふさんが沢山つぶやくと、そのぶん暗号の賞味期限は短くなります。


    あとは、Tweetのコメントを秘密キーにしているので、
    似たような内容のコメントが続くと、暗号強度が下がるのですが、
    そもそも200*199回の総当たりで突破されるので、どうでもいいです。


    一応今回のプログラム(C#4.5)はコチラになります。
    https://github.com/kawakawa/IrofCryptographic.git
    誰得?ですが置いておきます(汗


    明日は、@kazuhito_m さんの「「いろふさん絵描き歌」じゃないヤツ、歌ってみた #irof_history」です。
     

    スポンサーサイト

    • 2018.03.09 Friday
    • 00:24
    • 0
      • -
      • -
      • -
      コメント
      コメントする








          
      この記事のトラックバックURL
      トラックバック

      PR

      calendar

      S M T W T F S
      1234567
      891011121314
      15161718192021
      22232425262728
      293031    
      << July 2018 >>

      selected entries

      categories

      archives

      recent comment

      • C#にて、別スレッドから新規Formを表示させる際のお作法について メモメモ
        Yeezy 500 (06/02)
      • C#にて、別スレッドから新規Formを表示させる際のお作法について メモメモ
        curry shoes (04/11)
      • 『第16回 #TFSUG: 大阪vol.2 』に参加してきました
        kd shoes (04/01)
      • 【大阪】継続的デリバリー読書会(12回目)に参加してきました!
        fitflop sale (03/26)
      • SharePointで再利用可能なワークフローの参照可能フィールドを追加する
        kd shoes (03/24)
      • [SharePoint2010] アイテム表示画面でユーザまたはグループ列がHTMLソース表示となってしまう場合の対処法
        nike air max 90 (03/24)
      • ExcelマクロでTDDをやってみよう!
        ultra boost (02/25)

      recommend

      カンバン仕事術
      カンバン仕事術 (JUGEMレビュー »)
      Marcus Hammarberg,Joakim Sundén

      recommend

      recommend

      profile

      search this site.

      others

      mobile

      qrcode

      powered

      無料ブログ作成サービス JUGEM