まずはデータについて。
パソコン上のデータは0と1の繰り返しです。例えば…
0 ↔ 00110000
@ ↔ 01000000
A ↔ 01000001
a ↔ 01100001
0か1のように二種類の状態を区別できるスイッチを1ビットと言って、上記文字は8ビット区切りで保存しています。なぜ8個になったかは、オクテットの8個派が人気でスタンダードになったからです。パソコンは「8ビットの並び」と「文字」の対応表を元に「データ」と「表示」を相互に変換します。
上記例はビットの並びを文字データとして表示していますが、パソコンにビットマップデータと宣言すれば0と1の並びを色の対応表を使って画像として表示します。
jpgのようなファイル名最後ドットの右側を拡張子と言って、データをパソコンにどの対応表を基に処理してもらうのか指示する意味があります。拡張子を変えると人間の目には使い物にならなくなったモノとして映りますが、データは変わっていないので拡張子を戻せば開いたときの処理も元に戻ります。
ちなみに、先ほどから出ているビットとはデータ量を表す単位でもあって、寸が尺に変わるようにビットも8個でバイトになります。世の中のデータの単位は大体がバイト表示ですね。ただ、通信関係の話しの時はビットを使う傾向があります。
やっと電子帳簿保存法の話が始まります。
あなたの行為が確かにこの時間に行われましたよって言う証明がタイムスタンプで、タイムスタンプは国が認めた期間が発行してくれます。
そのタイムスタンプを書類データに適応したのが電子帳簿保存法です。
上記データの話をいちいちしたのはハッシュの説明の為で、いろいろなデータの並びから不可逆の圧縮演算することをハッシュ演算と言います。
可逆の圧縮で有名なのはzipで、不可逆の圧縮で有名なのはjpgですね。jpgはビットマップデータに戻せませんが、画像としては成り立ちます。その代わり圧縮すればするほど画質が粗くなります。
ハッシュ値はデータを文字列に圧縮したものと考えて差し支えなく、他と被らない不可逆な文字列を特にハッシュ値と呼びます。ハッシュ値への変換方法はいくつかあり、同じ変換方法からは同じ長さのハッシュ値ができます。
・不可逆
・唯一無二
・タイムスタンプ
この三つで改ざんが不可能になった領収書の画像データ(以下、領収書)を紙の代わりに使おうとするのが電子帳簿保存法です。
領収書のハッシュ値に国が認めた機関が発行する時間証明を添えて、「あれからはデータが変わっていませんよ」っていつでも言え、誰でも探せるように保存します。
逆に言えば時間を証明できればなんでもいいはずなのに、何だかちょっと小難しくして対応にお金がかかってしまうのは理不尽ですねぇ。
言葉よりもわかりやすと思うので簡易なブロックチェーンもどきを作りました。→定刻ハッシュバンク
2021/9/29
--------------------------------