0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

データのハッシュ化&マッシュ化による強固なセキュリティー通信

Posted at

はじめに ~~

今回は、セキュリティー通信についての私なりのアイデアを披露・共有させていただきます。
よろしければ、最後までお付き合いください。

本題 ~~

「ハッシュ, Hash」については、みなさんご存じの通り、データのダイジェストを生成する技術のことですが、この記事の中で、私が提案したいのは「マッシュ, Mash」のほうです。では、マッシュとはどのような手法・技術なのかについて説明したいと思います。

ここで、その概要について説明します。まずは、所与の元データをランダムに加工・変換する手順を決定します。これを「レシピ」と呼びます。そのレシピを受け取り側に送信します。ついで、送り手側が元データをレシピ通りに加工・変換します。これを「マッシュ化」と呼びます。
※マッシュ化とは、具体的には、元データの並びを入れ替えたり、元データにダミーのデータを混ぜ込んだりすること。

マッシュ化されたデータを複数のパケットに分割してランダムな時刻に送信します。最後に、受け取り側でパケットを合体させた上で、レシピとは逆の手順でデータを加工・変換します。すると、元通りのデータが得られます。ちなみに、加工・変換されたデータを「マッシュ」と呼びます。

以下に、手順をわかりやすく、かつ詳細に整理してみました。

  1. レシピの決定: 元データをチャンクに分解してランダムに加工・変換する手順(=レシピ)を決定します
  2. レシピの送信: レシピを受け取り側に送信します
  3. マッシュ化: 送り手側が元データをレシピ通りに加工・変換します
  4. ブロックの作成: マッシュ化されたチャンクをブロックにまとめます
  5. パケットの作成: それぞれのブロックをパケットに収納します
  6. ランダムな送信: それぞれのパケットをランダムな時刻に送信(=時間差送信)します
  7. 受信パケットの解体: それぞれのパケットから各ブロックを取り出します
  8. ブロックの解体: それぞれのブロックを取り出して各チャンクを取り出します
  9. 逆マッシュ化: レシピとは逆の手順で各チャンクを逆加工・逆変換します
  10. チャンクの合体: 受け取り側でチャンクを合体させます

さらに、セキュリティーを強化するために、分割後の各ブロックに「相互ハッシュ」をつけるということも考えられます。たとえば、ブロックが全部で「A, B, C」の3つあった場合、ブロックAに、B, Cのハッシュを付加して、ブロックBに、A, Cのハッシュを付加するという具合にです。これにより、通信途上での窃視を防ぎつつ、データの改竄を検出しやすくなります。

おわりに ~~

この手法・技術が実際にリファレンス実装されて、世の中に普及するかどうかはわかりません。しかし、単純に面白いと思ったので、記事にして共有させていただければと思いました。

また、なにか面白いアイデアが思いついたら、記事にして投稿したいと思います。
それでは、また~。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?