張三が試験でカンニングをしたい場合、どのような暗号化アルゴリズムを使用すればよいでしょうか?先生にバレないように?

張三が試験でカンニングをしたい場合、どのような暗号化アルゴリズムを使用すればよいでしょうか?先生にバレないように?

「平常時に努力しなければ、試験では友達に頼らざるを得なくなる」ということわざがある。試験が近づくにつれ、カンニングマニアの張三は期末試験でカンニングする方法を考えている。

張三の学校には試験に関して2つの特別な規則があることが知られています。

  • 試験前に試験用紙は封印されます。試験監督者は試験問題を知らず、試験中に学生の試験用紙の内容を確認することができないため、教師は正解を知ることができません。
  • 生徒がカンニングをしているのを見つけたら、証拠を提示してください。生徒がメモを渡しているのが見つかったとしても、教師がメモの内容を理解または解読できない場合は、生徒をカンニングで有罪にすることはできません。

もちろん、この学校の教師たちは不正行為防止の経験が豊富です。左耳に触れるとBを表し、右耳に触れるとAを表すといったことは、教師たちの目を逃れることはできません。

[[398937]]

対称暗号化

彼は昔からハッカーになることを夢見ていた。一昨日、ネットワーク情報セキュリティに関する本を読んだところ、「対称暗号化」という暗号化方式について触れられていた。

暗号化と復号化の両方に同じキーを使用する方法です。

データ送信者は、特殊なアルゴリズムを使用して平文と暗号化キーを処理し、非常に複雑な暗号化された暗号文に変換してから、データ受信者に送信します。データ受信者は、暗号化キーと同じアルゴリズムの逆アルゴリズムを使用して暗号文を復号化し、平文に戻します。

張三は考えた。

私は親友の李思に、正解を紙に書いて、対称暗号化を使って暗号化してから私に送ってもらうように頼みました。先生がその紙を受け取っても内容を理解できなかったとしても、私に何もできないのです!

張三はすぐに次の不正行為のプロセスを設計しました。

  • 張三は李斯に内緒でこう言った。「y=3(鍵)」
  • 試験室の黒板に次のように書きます: x+y=z (x は答え、z は紙に書かれた暗号化されたテキストを表します)
  • このアルゴリズムによれば、Li Siは答えを暗号化し、答えにzの値を書き込み、それをZhang Sanに渡す。
  • 張三はメモを入手し、yの値を使って解読し答えを復元する。

このように、張三と李思だけがy=3(鍵)を知っているため、試験監督者がメモを入手したとしても、yの値を持っていないためメモの内容を解読できず、何もできません。

張三は李四にその考えを伝えた。李四はしばらく考えた後、それに伴うリスクについて次のように語った。

(1)鍵が漏洩しないようにするにはどうすればいいですか?

私たちが鍵について話し合っているときに他の生徒がそれを知り、先生に伝えたら、私たちの努力はすべて無駄になってしまいます。

(2)鍵管理が難しい

李思がこの問題を解決する方法がわからない場合、王武に助けを求めるしかありません。王武と鍵について話し合う必要があります。王武がこの問題を解決する方法がわからない場合、他の学生と鍵について話し合う必要があります。このように、鍵はたくさんあります。間違って覚えていたらどうしますか?

実際、対称暗号化には多くの欠点があります。

非対称暗号化

諦めきれなかった張三は、戻ってもう一度読み始めました。今度は、より良い方法、非対称暗号化を見つけました。

非対称暗号化アルゴリズムには、公開鍵と秘密鍵の 2 つの鍵が必要です。これら 2 つはペアになっており、公開鍵はデータの暗号化を担当し、秘密鍵はデータの復号化を担当します。

非対称暗号化の利点は、公開鍵は公開されており、誰でもそれを使ってデータを暗号化できるが、それを復号化できるのは秘密鍵だけである。張三が秘密鍵を厳重に保持している限り、誰もデータを復号化できない。

そこで彼は不正行為のプロセスのステップを設計し始めました。

(1)張三は試験室の黒板に「((x*y)%1000)*m)%1000」と書いた。ここでxは3桁の数字、y=91、yは公開鍵である。xとyの積の最後の3桁を取り、それをmで乗じて、最後の3桁を取る。

  • 李思は公開鍵で回答を暗号化し、張三に送る。
  • 張三は暗号化されたデータを入手した後、m=11を使用してそれを復号化する。

注: たとえば、質問の正解が 111 の場合、111 に 91 を掛けると 10101 となり、最後の 3 桁を取ると 101*11=1111 となり、最後の 3 桁を取ると 111 となり、答えを復元できます。これは、91*11=1001 であり、3 桁の数字に 1001 を掛けても最後の 3 桁は変化しないためです。このため、暗号化には y=91 が使用されますが、復号化には m=11 を使用できます。

非対称暗号化により、Li Si、Wang Wu、およびその他の学生は y=91 (公開鍵) を使用して答えを暗号化できます。Zhang San だけが m=11 (秘密鍵) を知っているため、彼だけが答えを復号化して復元できます。

プロセス全体を通じて、張三は誰にも鍵を渡す必要がないため、当然漏洩のリスクはありません。必要な鍵は 1 組 (公開鍵と秘密鍵) だけなので、管理も非常に簡単です。

張三は浮気の計画を立てた後、興奮しながら李四に話した。これを聞いた優秀な学生の李思はうなずいたが、その後、別の質問をした。

対称暗号化と比較すると、非対称暗号化ははるかに安全ですが、計算もより複雑になります。以前は、x+y=z を計算するだけでしたが、現在は (((x*y)%1000)*m)%1000 を計算することになります。

このように、李斯が張三に答えを渡すと、張三はそれを解読するために必死に取り組まなければならず、試験が終わっても解読が終わらないかもしれません。

私に何ができる?

諦めきれなかった張三は解決策を考えるために戻りました...

(つづく...)

<<:  AIに対する期待や考え

>>:  インタビュアーは、なぜ新世代ではマークスイープアルゴリズムを使わないのかと尋ねた。

ブログ    

推薦する

...

自動運転車がコーナーを「見通し」できるようにする

自動運転車がその名に恥じない性能を発揮するには、満たすべき要件が数多くありますが、環境の認識と理解が...

さまざまなオフィスAIを集めて活用すれば、最も効率的な人材になれる

人工知能(AI)技術の急速な発展は、さまざまな分野に多くの革新と利便性をもたらしました。この記事では...

重力波検出からRNAシークエンシングまで、AIが科学的発見を加速させる方法

[[433235]]この記事はLeiphone.comから転載したものです。転載する場合は、Leip...

テスラはどのようにしてPyTorchを使って自動運転を実現し、世界に挑戦したのでしょうか?

[[313367]]テスラのエンジニアたちは、データの拡大に伴ってエンジニアの数を増やすことなく、...

JavaScript によるデータ構造とアルゴリズムの実装と応用: Stack/Recursion/Hanno

まとめこの記事では、Stack データ構造の基本的な操作とそのいくつかの応用について紹介します。括弧...

500以上の研究と50以上のモデルを網羅したコードビッグモデルレビューがここにあります

BERT や GPT などの事前トレーニング済みのトランスフォーマーの登場により、言語モデリングは近...

AIの現実世界での最悪の使用例

人工知能(AI)の最悪のシナリオは、ハリウッドの大ヒット映画でおなじみのものだ。人間のような知性と知...

今後、セキュリティ分野で顔認識技術はどのように発展していくのでしょうか?

顔認識とは、顔の特徴情報の本人分析を利用して本人認証を行う生体認証技術を指します。人気の生体認証技術...

レポート予測:Appleは2020年にSiriオペレーティングシステムをリリースする

[[271210]]海外メディアの報道によると、マングローブ・キャピタル・パートナーズは今週、201...

2017 年に最も価値のある機械学習のスキルや知識は何ですか?

2017 年に最も価値のある機械学習スキルはどれでしょうか? Quora の 2 つの回答では、最...

テンセント、自動運転のリアルタイム制御を改善する新たな特許を発表

テンセントテクノロジー(深圳)有限公司は5月13日、人工知能ベースの自動運転方法、デバイス、設備、媒...

AIチャットボット市場は2028年までに150億ドルに達する

AI チャットボットは、自然言語処理と機械学習を使用してユーザーとの人間の会話をシミュレートするソフ...

第1回世界情報会議は6月29日〜30日に天津で開催される。

【51CTO北京ニュース】2017年6月6日、北京で第1回世界インテリジェンス大会の記者会見が開催...

C# 遺伝的アルゴリズム学習ノート

次のコードは、C# 遺伝的アルゴリズムを使用して、単純な花の進化シミュレーション プロセスを実装しま...