ファイルを分割して保存したい

第1版: 2004年12月14日
公開: 2007年4月6日
著者: 木本雅彦

いや、大したネタではなく。
初出は、2004年12月。
みんなで作った同人誌のデータを保管するのに、一人のところに全体を持たせると、 そいつが暴走してファイルを流用するかもしれない。ならば分割して、かつ暗号化 して保存しようと思った訳だ。

暗号化といっても、全員がPGPを使えるリテラシーは期待できないけれど、 まあzipの暗号化で対応可能な程度で。

以下、当時のメールを掲載。


あるファイル、またはアーカイブがあったとします。
それのバックアップをみんなで分散して管理しようとします。
でもその「みんな」の誰か一人でも、もとのアーカイブを一人の力で復元できるのは
嫌だとします(横流し防止)。
でもその中の誰か一人が突然失踪した場合でも、残った人が協力すればファイルを
復元できるようにしたいとします。

考えられるのはRAIDなんかで使っているのと同じ方法です。
そのアーカイブの1byteごとのparityを作成し、9bitのストリームを作り、ビットごとに
別のファイルに格納して9つのファイルを作ります。
次にそれらのファイルを9人に分配して、それぞれが自分しかしらないパスワードで
暗号化します。

暗号化したものを集めて全員に再分配します。

そうすると、9人の手もとにはそれぞれ9つの暗号化ファイルが渡されますが、自力で
復号化できるのは一つのファイルだけです。
誰か一人が失踪した場合は、一つのファイルは復号化できなくなりますが、残りの
ファイルを元にデータを復元することは可能です。

こういうようなことをやってくれるプログラムってないでしょうか。
暗号化復号化はPGPでもzipでもいいので、splitの部分だけやってくれればいいの
です。UNIXでもWindowsでもいいです。

単にbit単位でsplitするプログラムがあればいいだけなんだけどね。

ちょいちょいと作れる範囲だが、割り切れない部分のpaddingをするのに、 簡単なヘッダくらいは付けないといけないかもしれない。

[目次へ]


Masahiko KIMOTO, Ph.D. <kimoto@ohnolab.org>
Last modified: Fri Apr 6 21:52:58 JST 2007