Hackerがピンを記憶する方法

いくつかの銀行カード、ドアエントリーキーコード、またはその他の小さな数値パスワードを覚えておくと、最終的には煩わしさになります。私のために最悪の事態は、私が青い月に一度使用するビジネスアカウントのための銀行カードです。私はおそらく5年で8回使っていました、そして、彼らは私に新しいPINを持つ新しいカードをくれました。はぁ。

早く、私のPINは何ですか?
普通の人はピンの急増にどのように対処しますか?彼らは一枚の紙の上の数字を書き留めて、それを彼らの財布に保ちます。私たちは皆、それがどのように終わるかを知っていますか?失われた財布と複数の空の銀行口座。ハッカーはそれをどのように処理しますか?カード自体に各数を書き留めますが、自然に暗号化され、自然に唯一の壊れやすい暗号化方式があります。ワンタイムパッド(OTP)。

OTPは暗号化方法の間で奇数アヒルです。彼らはあなたの頭の中で復号化されることを意図していますが、秘密の鍵が安全のままである限り、彼らは堅実です。通常の暗号化方式でオンになるSボックスをコーディングしようとしたことがある場合は、OTPSは豊かにシンプルです。トレードオフは「長い」キーですが、OTPはあなたのピンを暗号化するのに絶対に完璧です。

この記事の最初の部分は、他の場所に入るが絶望しないで、それはOTPへのバックドアの紹介であるというフレンドリーな「ライフハック」パブラルであるようです。 2番目の半分は、いくつかの深い暗号化直感、いくつかのフレンドリーな数学、そしてうまくいけば、暗号化されたピンを書き留める説得力のある議論があることが正しいことです。途中で、OTPを実装するときにあなたが間違っていることができる3つのことをリストします。 (そしてそれらのどれもあなたに衝撃的なものではありません!)しかし、最後に、私のPIN暗号化ソリューションは3つのうちの1つを壊し、それにかかわらずは依然として残っています。まだ好奇心がありますか?読む。

PINソリューション

だから最初に銀行カードの問題を解決する:あなたのピンを暗号化したあなたのPINをあなただけが知っている秘密を書いてください。新しいカードごとに4桁の数字を覚えておく必要があるのではなく、永久に1つの4桁の数字が必要です。このキーは、銀行預け払いのウィンドウでPINを入力するように求められたときに不思議に見えないようにしてください。これはOTPの古典的な使用です – あなたがあなたの頭の中で元に戻すことができる暗号化です。

まず、秘密の4桁の数字をランダムに選択してください。その後、PINからその番号を差し引き、結果をカードに書き込みます。銀行窓口の前に立っているときは、カードを見下ろして秘密番号を追加してください。窓口はあなたがカードにあなたのピンを書いたと思います。壊れやすい暗号化方式を使用したので、Smugを気分かないように感じます。

通常の加算と減算の代わりに、桁数を横切って持ち運びが行われ、MODULO-10 MATHを使用したいと思います。私たちはなぜ以下のように話しますが、今のところ、ここでは機能しています。

PINが1234であるとします。 – そして私のランダムな秘密数は当然1337です。暗号化しましょう。 1から1を差し引くとゼロがゼロになりますので、その下に書きます。 2から3を減算すると-1が与えられます。これはModulo-10演算が入ってくる場所です。この場合、-1は10を加えることによって9に変わります。 3 – 3 = 0、4 – 7 = 7、MOD-10。私のカードは今では0907を書いています。

今復号しましょう。カードを見下ろして、私は0を見て1を追加します。先頭の1Sをドロップしてください。)0 + 3 = 3,7 + 7 = 14 – > 4 <。 1234年に入力し、お金は私のものです! 他の番号に秘密番号を追加するのがハングアップしたら、桁ごとのMOD-10に驚くように機能するかが驚くようになります。試してみて、10分以内にお手伝いします。 ワンタイムパッド ワンタイムパッドは両方とも最も単純な対称暗号化方式であり、また完全に壊れない可能性があります。それは3つの重要な特徴を持っています、そのうち2つは上で実証され、彼らの間違ったものを手に入れることは壊滅的なものになることができます。 OTPの最も重要な機能は、パスワードがランダムで、暗号化されたテキストと同じ長さである必要があるため、ピンの4桁の秘密が必要です。 OTPでは、すべてが秘密の周りを旋回します。 4桁の数字では、4桁の秘密を維持することは問題ありません。しかし、あなたが友人にあなたの休暇の暗号化された写真のギガバイトを送りたいと想像してください。それは手元と秘密を保つための重要な素材です。 [Matt_Crypto]、Public Domainsecond、メッセージを秘密と組み合わせる方法は、暗号化された文字と平文文字のセットのセットがモジュロ算術演算と似ている必要があります。一対一MOD-10はこれを容易に保証します。両方が0から9の範囲です。多分あなたはバイナリデータのXOR演算子を使うことに精通しています。ONまたは減算、MOD-2。 (0 + 0 = 0,1 + 1 = 1,1 + 0 = 1,1 + 1 = 2 - > 0は、文字を使って「z」の周囲にあるCAESAR暗号のようにアルファベットを包みます。またはrot13。アルファベットを数字にマッピングして数学MOD-26を実行するだけです。

3つ目、そして、これは最初の推論です、あなたはワンタイムパッドで秘密を再利用してはいけません。これは暗号化方法の名前でさえあるので、これは明らかだと思っていますが、実際にはするのは難しいです。そして実際、私のPIN-暗号化方式は、複数のキーにまたがって同じシークレットを使用してこのルールを分割します。私たちはすぐにそれに入ります。

完璧な暗号化をめちゃくちゃにします

OTPが壊れないのはなぜですか?ほとんどの暗号化スキームを破ることは、確率と統計に似ています。たとえば、上記のCAESAR暗号を使用してテキストを暗号化した場合、平文の各文字は、暗号文で発生するたびに別の単一文字にマッピングされます。元のテキストが英語であることを知っている場合、最も一般的に使用されている文字が “e”である場合は、「q」が暗号文の最も一般的な文字である場合、それは “e”を表します。つまり、平文と暗号文の間の統計的類似性を見つけ、2つの間の橋渡しをするために使用します。

平文限定の秘密鍵を使用して、ランダムに選択された場合は、暗号文と統計的な関係を解消します。マイカードに書き込まれた特定の暗号文が与えられた場合、0000から9999までのピンは可能であり、キーがランダムに選択された場合は等しくおそれがあります。暗号文の平文についての情報はありません – それは本質的にShannonの証明(絶対的な古典的なPDF)が一言である。そしてそれがOTPが壊れない理由です。

Dianaワンタイムパッド[米国NSA]、Public Domainthisは、実際には暗号化の分野を理解するための鍵です。平文の統計的に関連するトレースは残ります。短い鍵に対するこの願望は便利されているだけではありません。この記事をダウンロードして読んでください。ゲストのために書き留める必要があるWiFiパスワードの長さを想像してみてください。これはOTPが些細で興味がないという意味です – それは壊れないかもしれませんが、秘密はほとんどのアプリケーションでは長すぎるだけです。実際の暗号は、最小の重要な素材と統計的な関係を破るアルゴリズムを見つけることです。

それを念頭に置いて、短いまたは非ランダムなパスワードを使用してOTP実装を締め付けることができます。パスワードとして1を使用して必要に応じて繰り返してみてください。私たちの暗号文は2345を読んで、ピンは2番目の試みで推測されます。ランダムなパスワードを使用したいのです。ピッキング0000それは数学を簡単にしますので、上記よりも悪いのは簡単です。 (厳密に言えば、私が0000,1111,9999,1234,4321、または類似している場合は再ロールします。とにかく、あなたの誕生日を使わないでください。幼年期の友達の古い電話番号が受け入れられるかもしれません。

モジュロ算術演算の役割はもう少し微妙です。どの関数が使用されているものがすべて、平文の可能な文字のセットは暗号文と1対1をマッピングする必要があります。なんで? MOD-10追加の代わりに単純な追加を使用したと想像してください。 PIN暗号文の最後の桁を取得するには、4 – 7 = -3 – > 7を使用し、7 + 7 = 14 – > 4を復号しました。 ‘tは6より大きいので、最大値を追加するので、6の場合にのみ6を与えます。

そしてそれは最後にめちゃくちゃになったことを残します:「1回限りの」パッドを再利用してください。明らかなね?違う。

Lorenz Machine、パブリックドメイン
一方では、再利用は明確な責任です。非常に似た暗号化スキームでパスワードを再利用すると、WWIIの重要なコードである「Thanny」が「Tunny」を破った。 4,000文字の暗号化されたメッセージが送信されましたが正しく受信されませんでした。送信者は、同じ秘密でメッセージを再送信しましたが、さまざまな略語などを使用して、テキストに小さな変更を加えました。これにより、TunnyとReverse Engineerが暗号化されたマシンを破るのに十分な同盟国を与えました。ゲームオーバー。

これはチュニーを復号化した数学です。メッセージAとBを秘密鍵Cとともに符号化すると、誰かが両方とも走査されている場合、それらはそれらをまとめて(MOD C)MOD(B MOD C)=(A MOD B)MOD C MOD C = A MOD B、ここで、MODは現在に使用されているビット単位または数値モジュロ演算子です。バイナリモジュロを取ることはそれ自身の逆になるので、結果は平文の両方に関連し、秘密鍵とは無関係のものです。

ここから、AとBのスマートな推測を比較し、A MOD Bの結果と比較すると、コードが破損する可能性があります。したがって、両方のテキストに「攻撃」が表示されていることをよく確信しているのであれば(暗号タイプは常に夜明けで「攻撃を暗号化されます」)、その後、MOD Bと一致するまで、異なる位置にある「攻撃」を異なる位置にまとめて試すことができます。

驚きの終わり

しかし、これが最後のひねりです! 上記の数学にもかかわらず、私達の銀行カード全体で秘密鍵を再利用することができます。 なんで? ピン自体がランダムであるためです。 Wartimeの間に送信された自然言語メッセージとは対照的に、aとbの両方がランダムピンである場合、mod bはmod cと同じくらいランダムです。

だから、ハッカーがピンを覚えている方法:ワンタイムパッドについて多くを学ぶことによって、それを壊す方法、そしてそれが保護する必要があるメッセージが短い場合にはそれがどのように役立ちますか。 そして、特定のメッセージについては、ルールを破ることさえできます。

Leave a Reply

Your email address will not be published. Required fields are marked *

Related Post

Hacklet 86 – タイムラプスプロジェクト

「私が瓶の中で時間を節約できたら…」それはただ古い歌ではなく、それは多数の写真ハッカーへの情熱です。タイムラプス撮影は、静止画像を通る時間の移動を示す方法です。これらの画像は、本質的に非常に低いフレームレートで記録されたビデオであるものにアニメ化されています。私たちは1分あたり1フレームまたは遅く話しています。ビデオカメラはすべてこれに依然としてない必要はありませんが、あらゆる動きを徹底的に管理する必要があります。これにはハッカー、メーカー、およびエンジニアが無数のタイムラプスリグを作成しました。今週のハッキングレットは、Hackaday.ioの最高のタイムラプスプロジェクトのいくつかについてのものです! [Swisswilson]で始まり、単にタイムラプスリグという名前の名前付き。このリグが牛肉であると言うことは控えめなものだろう。ギアを除いて、すべてのアルミニウム部品は[Swisswilson]によって機械加工されました。 2つのNEMA-23 NEMA-17モーターはSparkfun Easy Stepper Drive Boardsによって制御されますが、Arduino Microはコントローラとして機能します。電子機器はすべてリモコンとしても機能する耐久性のある箱に収容されています。ジョイスティックは、パンとチルトを手動で制御することを可能にします。 [Swisswilson]がDSLRカメラでこのリグを使用しているので、爆弾の建設は確かにここでの助けです。レンズと組み合わせると、これらの設定はポンドまたは2に達することができます。 次回はMINWIです。 Raspilapseは写真を撮るプロセス全体を自動化し、それらを映画に組み立て、YouTubeに提出します。ハードウェアはRaspberry Pi Model Bで、RASPIカメラがあります。 PIは画像を撮影してから仮想プライベートサーバー(VPS)にアップロードします。 【minwi】PIのSDストレージカードに着用して断線を保存するための外部サーバーを使用しました。一日の終わりに、VPSはFFMPEGを使用して画像をビデオに組み立ててから、すべてのものをYouTubeにアップロードします。私たちはいくつかのスクリプトモッドで賭けています、このプロセス全体をラズベリーPIで実行することができます2. SDカードを本当に心配している場合は、USBフラッシュドライブを使用できます。 [Andyhull]日没と日の出のビデオカメラコントローラで1日あたり1フレームに連れて行きます。 [Andy]日の出のショットを毎日入りたかった。一度ビデオに変換されたら、これらのショットは季節の通過を文書化するための素晴らしいです。彼はキヤノンのポイントを使い、カメラのためのキヤノンハックDevleoperのキット(CHDK)と一緒にビデオカメラを使いました。ビデオカメラには独自のリアルタイムクロックがあり、CHDKでは、日の出で画像を撮影するようにプログラムできます。問題は電力です。ビデオカメラを常に早く出ると電池が急速に排出されます。救助へのアルドイノ! [Andy] Sunriseの直前にビデオカメラを回すために小さいArduino Proをプログラムしてからバックダウンします。眠っているATmega328のスタンバイ電力はカメラよりもはるかに低いため、数週間で測定されたバッテリー寿命があります。 最後に、携帯型観察装置(POD)を搭載した時間経過写真にデータを追加した[CaramellCube]があります。 PODは、超常的な研究者を支援するための装置として考えられていた。このアイデアは、ロックされた部屋の中から画像とデータを設定した間隔でデータを記録することができる装置を持つことでした。ラズベリーPIの仕事のように聞こえます! [CaramellCube] AdaFruitのラズベリーPIベースのタッチスクリーンビデオカメラキットから始めました。そこから、彼らはArduino Nanoによって制御された2番目のボードを追加しました。ナノは、湿度、空気圧、磁場強度、加速、光(4バンド)、音、および静電荷を含む、すべてのセンサー[CaramellCube]に適合することができます。 Nanoでは、[CaramellCube]がPI上の単一のUSBポートでこれらすべてのセンサーを接続できます。 [CaramellCube]が幽霊を見つけたのであればよくわかりませんが、私たちはこのようなデバイスのための多くの用途を十分に考えることができると確信しています!

センスハットが生きてくる

ラズベリーのPi Sense Hatを覚えていますか?もともと国際宇宙ステーションへのミッションのために開発されたボードには、ボードと8×8 RGB LEDマトリックスがあります。あなたは8×8画面で何を終えることができますか? [Ethan’s] Python Sense Hat Animation Librationを使用している場合は、驚くかもしれません。下のビデオで完全な視覚効果を得ることができます。 コードは画面を表す範囲を使用しています。特定の要素をアニメートする、言って、Pong Puckはライブラリの有無にかかわらず、難しくありません。これはライブラリでそれをするためのいくつかのコードです: X範囲(0,7)の場合: ECT.Cell(画像、[0、X]、[Randint(0,255)、Randint(0,255)、Randint(0,255)]、0.1) ECT.Cell(画像、[0、X]、E、0.1) X範囲(7,0、-1)の場合: ECT.Cell(画像、[0、X]、[Randint(0,255)、Randint(0,255)、Randint(0,255)]、0.1) ECT.Cell(画像、[0、X]、E、0.1) 各ループはランダムな色のボックスを描き、次に次の位置に進む前にそれを消去します。 2番目のループは、パックの再配置を反対方向に移動させます。あなたはおそらく最初の引数がスクリーン配列であることを推測することができます、2番目は位置です。 3番目の引数は色を設定し、最後の引数はアニメーションタイマーを設定します。コードを見て、それはおそらくいくつかのアプリケーションのために機能するつもりはないタイマーブロックのように見えます。 それがすべてあったならば、これは価値がないでしょうが、三角形、円、および正方形を描くこともできます。例えば: ECT.circle(Image、(4,4)、3、[Randint(0,255)、Randint(0,255)、Randint(0,255)]、0.1) 私たちはセンスハットをしばらく覆っています。もちろん、この天気ダッシュボードからわかるように、LEDを点灯させるだけではるかに多くあります。

ハッカデイ賞:自律ビーチアートロボット

何人かの人々は、床や地面の膨大な平らな広がりを見るのが難しいと感じ、キャンバスを見ません。野球公園の野球の草地から、いくつかの貧しい農家の麦畑への山から、踏み伏せ、トリミングまたは塗装パターンが魅力的な誘惑を提示することができます。しかし、キャンバスの大きい方は、この組成物は、この自律的なビーチコーミングアートロボットが遊びになるところです。 まだ進行中の仕事で、[Pablo.odysseus] ‘ビーチボットは彼の家の近くにある後退潮汐によって残された全てのビーチを利用するために建てられました。その巨大なキャンバスは手入れされていることを懇願しており、このボットはタスクのために構築されています。ランニングギア自体は簡単です。一対のARDUINOSは、デュアル走行距離計、コンパス、およびGNSS受信機を実行し、オンザフライの変更のためのスマートフォンインタフェースを提供します。当技術分野は、緯度と経度点に変換され、KMLとしてGoogle EarthにエクスポートされたDXFファイルとして構成されています。それはボットをビーチに持ち運ぶことができ、自律的に描くことを許可されていることを意味します。初期のテストランがブレークの下に見られます。より良い「ブラシ」が作品にあります。 禅の庭園を見ているのを見るのと同じように、ビーチで展開することを見ることはリラックスしています。これは[パブロ]の進歩を楽しみにしています。もちろん、アートボットは大きく、広いビーチが引き付けられる唯一の自律的な機械ではありません。 HackadayPrize2017は次のようにスポンサーされています。