★独学者が1年後にExcelVBAを爆発的に伸ばすための最低限の基礎知識メモ(ダイジェスト):Vol0053:【番外】電帳法についてとそれ用の小さなアプリの作成事例-02_ 国税庁の言う「タイムスタンプ」がいかに「バカげているか?」について
バックナンバー目次ページは→こちらです。
まぐまぐのページは以下です。
https://www.mag2.com/m/0001691660.html
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■独学者が1年後にExcelVBAを爆発的に上達させるための最低限の基礎知識メモ(ダイジェスト)
Vol.0051
タイトル:★独学者が1年後にExcelVBAを爆発的に伸ばすための最低限の基礎知識メモ(ダイジェスト):Vol0053:【番外】電帳法についてとそれ用の小さなアプリの作成事例-02
国税庁の言う「タイムスタンプ」がいかに「バカげているか?」について
バックナンバー目次とサンプル号
https://euc-access-excel-db.com/tips/ct07_se/ct075012_xls2k_vba_tips/mag2-01
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
国税庁の言う「タイムスタンプ」がいかに「バカげているか?」について
今回はExcelファイルでの「検索簿」のご紹介をするつもりでしたが、
「ハッシュ値」や「タイムススタンプ」「タイムサーバー」などについての
大事なことを書き忘れたので、ここで書いておきます。
今回は、以下のことについて書きました。
目次替わりです。
●「ハッシュ値」とは?
●「ファイル」のハッシュ値はどんな時に書き換わるか?
●ハッシュ値の「脆弱性(理論値的・確率的)」と「裁判(現実的)」の関係について
●電帳法のファイルの保存形式は、PDF形式が好ましい。
●「本当の意味での ”原本”って?」と、それを考えたたけでも電帳法のいい加減さが分かります。
●「ファイル」のハッシュ値の調べ方
●国税庁の言う「タイムスタンプ」がいかに「バカげているか?」について
●「デジタル検索簿」に、ついでにファイルのハッシュ値も記録しておけばいいか?
今回はすごく長いので、上記の目次を、Ctrl+Fなどで検索すれば、その位置にジャンプします。
そのようにしても読んでみてください。
============================
では、以下、本文です。
まず、国税庁の言う「タイムスタンプ」は、
「ハッシュ値+政府公認?のタイムサーバの時刻」、
ということだそうですが、
今号では、その「タイムスタンプ」の、
「+政府公認?のタイムサーバの時刻」という部分がいかに「バカげているか?」について、
少し触れてみたいと思います。
(※今回の内容は裁判したら負けるかもしれないので、信用はしないでください。
もしかしたら負けないかもしれませんが・・・。
でも裁判官がIT知識が無い「とてつもないバカ」だったとか、
国税局や財務省の回し者だと確実に負けると思います。
どうか信用はしすぎないようにご注意ください。)
また、今回はここで「ハッシュ値」というものにも触れてみたいと思います。
●「ハッシュ値」とは?
ここでは「ハッシュ値」について僕自身が思うところをお話します。
まず、「ハッシュ値」は、「ファイルの指紋」とも呼ばれます。
これ以降を読まれて、その理由がお分かりになって頂けるといいのですが、
僕の説明がヘタクソすぎて もしそうなれなかったら、ほんとにすみません!
先に謝っておきます(^^)m( _ _ )mm( _ _ )mm( _ _ )m
「ハッシュ値」は、暗号化にも少し関係するものです。
(暗号化とは異なりますが、少しだけ、関係、します。)
また、「何か」をもとに、「計算して算出する値」、です。
で、その「何か」には、
(01)「文字列(パスワードなど)」
(02)「ファイル」
などがあります。
たとえば「文字列(パスワードなど)」をもとにハッシュ値を出せば、
たとえば「パスワードの暗号化」に使えます。
参考URL
「ハッシュ化と暗号化の違いとは?」
https://eset-info.canon-its.jp/malware_info/special/detail/211013.html
(↑パスワードにハッシュ値を使う理由、など。↑)
そのほか、例えば今回の電帳法のケースでは、
「ファイル」をもとに、そこからハッシュ値を算出して、
「このファイルは間違いなく原本ですよ!」という「証明」に使えます。
基本的に、
「ハッシュ値」というものは、
「同じモトデータ」からは「同じ値」が「毎回」算出されます。
例えば「abc」という文字列をモトにハッシュ値を算出すると、
何度計算しても同じ値が算出されます。
逆に、「abc」を「ABC」としたり「Abc」などと、異なる文字を使うと、
今度はそれだけでハッシュ値は異なる値が算出されます。
これは、「ファイル」をもとに、そこからハッシュ値を算出する場合も同じです。
例えばWordファイルの中に「abc」と書いて保存し、ハッシュ値を算出したとします。
このときのハッシュ値が仮に「1234567890」だったとします。
するとファイルの場合、「ファイル名や作成日時を変えただけ」ではハッシュ値は変化しません。
(中身を書き変えないと変化しません。)
例えばWordファイルの中身が「abc」のまま、
ファイル名だけを変えてファイルをコピー(=複製)すると、
いくつコピー(=複製=バックアップ)を作っても、毎回、ハッシュ値は同じになります。
つまり、毎回、「1234567890」というハッシュ値が算出される、ということです。
ただし、「新規の」Wordファイルとして「全く同じ内容のabcを書いて保存した場合」は、
今度は異なったハッシュ値が算出されます。
つまり、「1234567890」というハッシュ値ではなくて、
例えば「ABCDEFG123」という値に変わってしまう・・・、みたいな感じです。
テキストファイルの場合は、新規ファイルを作っても、
内容が全く同じなら全く同じハッシュ値が算出されてしまいますが、
ただ、
『 同じハッシュ値なら、「ファイルの内容」が、「異なる内容にはならない」』、
ということには変わりはありません。
(もちろん、テキストファイルの内容が「abc」から「Abc」に変化すれば、
ハッシュ値も変化します。改行やスペースが1つ増えただけでも変化します。)
というわけで、「ファイル」の場合は、ハッシュ値は、
「ハッシュ値の値に変化が無ければ」、
「そのファイルが正真正銘、原本ですよ!」という、
「証明に使える」、
ということになります。
あるいは、逆に(ハッシュ値に変化があれば)、
「そのファイルは改ざんされた」という証明にもなります。
そのほかには、
「ウイルス感染などで変なデータがファイルに結合してファイルが改ざんされていないか?」
などにも使えます。
よって、
「ダウンロードしたファイルが本当に純粋な本物か、それともウィルスが混入しているか?」
などにも使えます。
「VirusTotal」というウィルスチェックサイトでも、ハッシュ値が表示されますよね。
また、ハッシュ値は、
「ハッシュ値から逆算してもとのファイルを生成する」ということもできません。
「不可逆性」をもつ値なので。
だから、パスワードの暗号化、に使われます。
万が一、パスワードをハッシュ化した値が漏洩しても、
パスワードを逆算で解読することができないからです。
(後述する「MD5」のような古い形式のハッシュ値からは
パスワードが解読されてしまうようですが、
新しい形式のハッシュ値では、それはできません。)
●「ファイル」のハッシュ値はどんな時に書き換わるか?
では、ファイルを元にハッシュ値を算出した場合、
どんなときに
「ハッシュ値が変わる=改ざんされたよ」、
という証拠になるのでしょうか?
それは以降に挙げたようなときです。
(a)何も修正しなくても、単に開いて、単にCtrl+Sなどで上書き保存だけをしたとき。
ただし、これはファイルの種類によります。
上書きしてもハッシュ値が変わらないファイルの種類のほうが多いかも?です。
(ただ、一応電帳法の場合に限っては、
上書きができないPDF形式での
ファイル保存が望ましいと思います。)
(b)1ドットでも色(RGB)の情報が少しでも変わったとき。
どんな種類のファイルでも、必ずハッシュ値が変化します。
(c)1文字でも書き換えたとき。
これも、どんな種類のファイルでも、必ずハッシュ値が変化します。
(大文字を小文字にしたとか、半角を全角にした、改行を1つ多く入れた、
それらの逆、なども含みます)。
・・・などなど。
以上のようなときに、ハッシュ値は変化します。
同一ではいられません。
結果、
「ハッシュ値が同一でない」ということは、
「=そのファイルは改ざん(修正)された」という証明になります。
(※ウィルスがファイルの中に混入した時も、これで粗チェックができます。
もちろん、もともとの正しいハッシュ値が事前にわかってないといけませんが・・・。)
それに対して、
「上書き(上記の(a)も含む)をしてないファイル」を、
そのままコピーして「複製を作った場合」は、
両方とも、同じハッシュ値になります。
つまり「コピー=複製=バックアップ」は、いくつ作成しても、
「全部同じハッシュ値」となり、
「=原本証明できる」ということになります。
新規作成すれば、同じ文章内容のファイルでも、
異なったハッシュ値になることが多いです。
(テキストファイル以外で。)
ですので、
「ハッシュ値」「だけ」で、
「そのファイルは改ざんされていない」、
「間違いなく原本である」、
「同一内容である」、
という証明ができます。
このとき(繰り返しになりますが)、
(イ)ファイル名を変えただけ、とか、
(ロ)作成日時が変わっただけ、
などの場合も、ハッシュ値は変化しません。
何度調べても、何度コピー(=複製)を繰り返しても、同じ値のままです
ということは、
ファイルを右クリックする事で見ることができる「ファイルの更新日時や作成日時」の値なんて、
基本的には無関係です。
要りません。
これはかかなりあとでお話しする、
「政府公認のタイムサーバーによる」「時刻の値」、でも同じことです。
そんなものは必要なく、「ハッシュ値」「だけ」で、「完結」できます。
「ハッシュ値」「だけ」で、
「そのファイルは改ざんされていない」、
「間違いなく原本である」、
「同一内容である」、
という証明ができます。
「ハッシュ値」が「ファイルの指紋」と呼ばれるのもそのためです。
時刻の値なんて要りません。
ハッシュ値だけで「指紋」となるのです。
ちなみにですが、
1文字も何も書かれていないファイルは、ハッシュ値が全部同じだったりします。
あるいは、計算できずにエラーになります。
そういうケースもあるのでプログラムでハッシュ計算をする場合は、
そのケースのエラートラップをするか、何らかの分岐処理をするか、が必要になってきます。
ご注意ください。
●ハッシュ値の「脆弱性(理論値的・確率的)」と「裁判(現実的)」の関係について
実は「ハッシュ値」には、
「MD5、SHA1、SHA256、SHA512・・・」などと、色んな種類があります。
そしてこの
「MD5、SHA1、SHA256、SHA512・・・」という並びは、
「解読や衝突がされてしまいやすい順」でもあります。
そして、
例えば「MD5」は、パスワードの暗号化に使われていたことがありますが、
「その解読が短時間にできてしまう」、
というほど、脆弱性があります。
SHA1についても、いちおう、Googleの「専門」のチームが、2017ごろだったかに、
ハッシュ値の「衝突」に成功したという経緯もあります。
ちょっと「心配」ですね。
ただし、このとき、
まず、「短時間に解読されてしまう」というのは、古い形式の「MD5」だけであり、かつ、
「パスワード」のような「短い文字列」からハッシュ値を算出した場合、だけの話です。
「ファイル」からハッシュ値を算出した場合は、
「MD5」であったとしても、そう簡単には解読(というか意図的な”衝突”)はできないし、
「意図的な”衝突”」ができたとしても「不可逆性」がありますので、
もとのファイルの内容の復元もできません。
原則的には。
(パスワードハッシュ値のMD5の不可逆性については
今の自分には詳細はわかりません。すみません。)
とはいうものの、多くの方が
「ちょっと心配」だったり、
「ほんとにハッシュ値って信頼できる?」
という疑問がわいてくると思います。
なので、
「じゃあ、脆弱性があるからといって、本当に、MD5のようなハッシュ値は役立たずなのか?」
「じゃあ、脆弱性があるからといって、本当に、
”ハッシュ値が同じ値なのに、内容が異なるファイル ”(=改ざん偽ファイル)が、
簡単に作れてしまうのか?」、
ということについて考えてみたいと思います。
これについては、「ハッシュ値 裁判」でWeb検索すると色々と出てきます。
とりあえず、以下の3つだけでも、消えてしまうといけないので、
mhtml形式やPDF形式などで保存しておくことをお勧めします。
(A)ITの知識不足による判決間違い?-MD5の脆弱性
https://kigyou-fullsupport.com/media/column/column-667/
部分引用→「脆弱性の指摘されるハッシュ関数の”MD5 ”ですら、
ファイル内容が異なるのに同一のハッシュ値になるその確率は、
「340潤回に1回」(340潤=3400兆を1兆倍したもの)」
(B)ハッシュ値を扱った裁判例
https://jnotary.com/info/hash-trial-example/
どんな裁判なのかちょっとわかりませんが、もしこれが本当なら、
引用→『「ファイルサイズ」「ハッシュ値」が同一であることから、二つの顧客名簿が同一であると判断した。』
ということですから、
「裁判では原本証明に日付は不要」、
ということになるかもしれないですね。
(C)ハッシュ値の有効性 ITに疎い裁判官が起こした問題
https://www.itmedia.co.jp/enterprise/articles/1109/10/news001.html
引用→「暗号としての使い方と原本を担保する使い方では明らかに異なる」
「ハッシュ関数は論理的には非可逆であり、一方向性関数(ハッシュ値から原本の生成は不可能)である。
ただし現在は、後述する状況になっているので絶対だとは限らないが、原則的には正しい。」
以上のWebページによると、現実の裁判では、
「脆弱性があるからといって、本当に、MD5のようなハッシュ値は役立たずなのか?」
という点については、
可能性はゼロではないものの、
でも「現実には」、
とてつもないマシンパワー、人材、お金、時間、などがなければ、
「内容が異なるのにハッシュ値が同じ値のファイル」、
なんてものは絶対に作れなくて、
それが、犯行の時間に間に合わないなら、「不可能、できなかった」とみなされるようです。
「不可能、できなかった」ということに、「相当する」ということなんでしょうね。
きっと。
つまり、
「脆弱性があるからといっても、MD5のような古い形式のハッシュ値でも、
”ファイルの ”ハッシュ値、であれば、役立たずではない」、
ということです。
実際に、
「衝突=同じハッシュ値のファイルを作る(中身はわからない)」ということだけでも、
MD5ですら、その確率は「340潤回に1回」ということだそうです。
(340潤=3400兆を1兆倍したもの)
SHA1という種類のハッシュ値の「衝突」がGoogleの「専門」のチームがやっとの思いでやれた、
というのもうなずけますね。
一般の会社には、まずどうあがいても「ムリ」でしょう。
よって、
「理論的に」「(低い確率での)脆弱性があるからといって」、
「でもだからといって、そのハッシュ値が ”使えない”という証明にはならない」、
わけです。
一番「脆弱」なハッシュ形式の「MD5」ですらそうなんです。
そしてそれは「SHA1」でも同じです。
前述のとおり、
「ハッシュ値」には「MD5、SHA1、SHA256、SHA512・・・(←脆弱順)」などがあり、
「MD5」は一番桁数が少ないですが、「それよりも桁数が多い」「SHA1」なら、
なおさらマシンパワー、人材、お金、時間、がかかるから、なおさらそうです。
(繰り返しますが、2017年に”Googleの””専門”のチームがやっとこさ、
異なる内容で同じハッシュ値のファイルを作成できたそうです。
でも”Google”の”専門”のチームですらそうなんだから、
普通の会社にできるわけがないですよね。)
またまた繰り返しになりますが、
ファイルではなくて、文字列に対するハッシュ値もありますが、
それは古い形式の「MD5」の場合はすぐに解読されてしまうとの例が、
上記の3つめのURLのWebページに載っていますが、
でも「ファイルに対するハッシュ値」についてはまだそこまでじゃない、ということですね。
また、たとえ文字列に対してのハッシュ値の場合でも、
「MD5」以外の「SHA1」や「SHA256」などなら、
まだ全然解読されていない、ということのようです。
SHA256なら(SHA1よりもさらに桁数が多いので)もっと、そう。
ビジネスの現場(普通の会社)でなら、さらに、なおさらそう。
SHA1同様、”Googleの””専門”のチームですら時間がかかります。
おまけに、彼らでさえ、まだ解法は見つかっていません。
一般の会社では「不可能」です。
一般の会社で、皆さん本業が忙しくて時間が無い中で、
だれがそんな膨大な時間とマシンパワー、人材、お金、をかけて、原本の偽物をつくるの?
顧問会計士も居て、何かすればすぐにバレて自分のクビが飛ぶのに?
「ありえない」です。
「”犯罪してもかまわない”というほど上司や同僚や会社や社会を恨んでいる」、
ということなら別かもしれませんが。
でもそんな特殊な例は、電帳法の「外」になります。
結局、結論としては、、「裁判も考慮に入れれば」、
(01)「ハッシュ値が同じ、しかし、内容は異なるファイル」は、理論的には不可能でないとしても、現実的には「作れない」。
(※MD5ですら、その確率は「340潤回に1回」(340潤=3400兆を1兆倍したもの)
(02)「よってファイルの原本性は、”ハッシュ値””だけ”で証明と完結」が「できる」。
(03)「よって、”更新日時”や”作成日時”、”証明日時”」なんてものは、もとから不要。
(※強いて言うなら、OS上の「更新日時」で十分。
多少時間が狂っていようがその値があれば。
コピーなら作成日時は変化しますが、更新日時だけはずっと同じなので。)
ということになります。
日本で実際にどういう裁判になるかはわからないので、なんとも言えませんから、
あまり信用はしすぎないでほしいのですが、
でも
「原本ファイルの”普通のハッシュ値”さえあれば、
国税庁の言うタイムスタンプが無いからといって、
必ずしも、”原本”を保証できないわけではない」
ということを争点にできるかも?ということは言えるかも???しれません。
裁判官が
「とてつもないバカ」か、
「財務省や国税庁のイヌ」でない限り、
「抵抗」はできるかもしれません。
ただまあ、
「いやしかし、あんた、そもそも法律を破ってるがな」と言われて、
それが「こんなクソ法律、意味ないし(前号で示したとおり)矛盾してる」と
覆せなかったら負ける、ということになるわけですけど・・・。
●電帳法のファイルの保存形式は、PDF形式が好ましい。
以上に述べてきたことから考えますと、
上書き保存できない「PDF」ファイルが「ハッシュ値が同じファイル」として、
狂いが生じないか、生じにくいので、
「原本性を保証する目的」とか、「7年間保存する」という目的からでしたら、
できるだけPDFの形で保存するのが好ましいのではないかと思います。
●「本当の意味での ”原本”って?」と、それを考えたたけでも電帳法のいい加減さが分かります。
例えば、メールで届いた添付のPDFは、
それをパソコンのデスクトップに取り出して保存した場合、
メール内の添付ファイルの「コピー=複製」となりますので、
「真の」「オリジナル」とは異なります。
というか、そもそも、送ってくれた人のパソコン上でも、
「真の」オリジナルファイルがメールの添付ファイルとして「コピー=複製」されたものですから、
それをこちらに送ってくれてるわけで、
「本当に本当のオリジナルファイル直接」がこちらに届くわけではありません。
「オリジナルファイル」の「コピー」がこちらに届きます。
でも前述のとおり、
「コピー(バックアップ)のハッシュ値はいくつ作っても全部・同一」なので、
「一応は」便宜上、「原本」とみなしてもOKだと思います。
でも、よく考えてみてください。
ファイルの「移動」にしてもOSは「移動先にコピーしてから元のファイルを消している」、
という動きなわけですから、下手すると「真のオリジナルは」、その時点で「消滅」しています。
送り主のパソコン内でも、すでに真の原本は消えているかもしれません。
「真の原本」ってどれなんですかね?
そしてそれを国税庁の言う「タイムスタンプ」を、
自分が知らないうちに「真の原本ファイルの」「コピー」につけていたとしたら、
それは「真の原本性」を保証することになりますかね?
そんなものが。
そしてあきれることに、ひどいことに、
国税庁はもう「タイムスタンプもいらない」って言ってます。
検索簿と社内規程さえあれば。
これは、「原本はどーでもいい」と言っているに等しいです。
「じゃあPDFから紙にすぐに印刷したやつのほうが信用できるんじゃね?」、
みたいに思ってしまいます。
あるいは
「紙とPDF、両方あっても内容が同じならいいんじゃね?もともとそんなにいい加減なら。」、
となってしまいます。
しかも、「1年の売り上げが5000万円行かない業者」は、「検索簿すら作らなくていい」そうです。
↓
参考:「結局、紙で保存でOKなのか? 電子帳簿保存法がアップデート 売上高5000万円以下は検索要件不要に」
https://www.itmedia.co.jp/news/articles/2301/13/news036.html
それって、もう、『「電子取引」なんて法律、もとから要らないんじゃね? 』ってなりませんか?
なんじゃそれ?バカなのか?ですよね。
(というか、ハッシュ値だけあれば国税の言うタイムスタンプなんて
無くても原本証明できるのですけど、彼らはそれは知ってて無視してるので、
やり方が汚いですよね。
逆に知らずにやってたとしたら、「とてつもないバカ」です。
そんな奴が法律なんて作れるわけないです。
そして「要件緩和」と言ってごまかして、国民に恩を売ろうとしている。
バカか?としか思えません。クズすぎます。
結局官公庁内でも、
「厳しくしたら原本証明の信ぴょう性ばかりに追われて、本来の仕事が回らんくなった」
ってのが実際のところだったんじゃないかと推測されます。
じゃなきゃ、ここまで何度も「保存要件緩和・改正(タイムスタンプ要らない)」
なんてしませんわね。)
●「ファイル」のハッシュ値の調べ方
ところで、ファイルのハッシュ値はどうやって調べるのでしょうか?
Windowsパソコンなら、「コマンドプロンプト」というもので、
「誰でも」簡単に調べることができます。
ITにまったく詳しくない人でも、簡単に調べられます。
もっと簡単にするとすると、
Cドライブのルートに「1」というフォルダを作って、
その中にハッシュ値を知りたいファイルを入れます。コピーでも移動でもOKです。
で、以下のように操作します。(SHA256の場合)
(01)Windowsキーを押しながら「R」キーを押します。
「ファイル名を指定して実行」のミニ画面が出ます。
(02)その「名前」のところに「cmd」と入力してOKします。
コマンドプロンプトの黒い画面が出てきます。
(03)コマンドプロンプトに「certutil -hashfile 」と入力します。
「certutil -hashfile」をコピペして、黒い画面上で右クリックしてもOKです。
「certutil -hashfile」が黒い画面に貼り付きます。
(04)黒い画面の「certutil -hashfile」の後ろに半角空けて、
「"C:\1\ファイル名"」と書き加えます。
ファイルのフルパスを「"」で囲んだものを書き加えます。
「"」で囲む理由は、フォルダ名やファイル名に半角スペースが
入っているとエラーになることがあるのですが、
「"」で囲むとそのエラーを回避できるためです。
(※なお、ここでも、
テキストエディタなどで書いたものをコピーして、
黒い画面上で右クリックして貼り付けてもOKです。)
(05)さらに、その記述のあとに半角空けて、「SHA256」と書き加えます。
結局、
「certutil -hashfile "C:\1\ファイル名" SHA256」
というコマンド文になります。
(※↑これ全部をテキストエディタなどで書いたものをコピーして、
黒い画面上で右クリックして貼り付けてもOKです。)
(06)そこまでできたら、Enterキーを押します。
結果は以下のようになります。
SHA256 ハッシュ (対象 c:\1\ファイル名):
f8a4298554baebac88dbc1fd409413c5ede084412233537382a4a8cade38fb6f
CertUtil: -hashfile コマンドは正常に完了しました。
↑この「f8a4298554baebac88dbc1fd409413c5ede084412233537382a4a8cade38fb6f」が
「ハッシュ値」です。
MD5でのハッシュ値を得たい場合は、(05)のところで、
「certutil -hashfile "C:\1\ファイル名" MD5」、とすればいいですし、
SHA1でやりたい場合は、
「certutil -hashfile "C:\1\ファイル名" SHA1」とすればOKです。
それでEnterキーを押します。
いかがでしょうか?
これなら誰にでもできると思いませんか?
★★★ 少なくとも、ハッシュ値をゲットするのに「専門業者」はまるで必要ありません。★★★
★★★ Windows95の時から、ハッシュ値「だけ」で原本性は調べられたようです(後述)。★★★
※Windows95の時代は、MD5やSHA1で調べられたみたいです。
(電帳法は1998年7月に施行された法律です。)
以上の方法のほかにも、.NET FrameWork3.5を使う方法や、
遅いですけど、WindowsAPIを使う方法もあります。
それらは全部、ExcelVBAとも連動させて、
プログラミングとして、ハッシュ値をゲットすることも可能です。
プログラムコードなど、詳しくは以下をご参照ください。
https://euc-access-excel-db.com/tips/ct07_se/ct075012_xls2k_vba_tips/denntyouhou-timestamp-hash-get01
★★★★★ 補足:Windows95の時代のハッシュ値の調べ方をChatGPTに聞いてみました。★★★★★
(電帳法は1998年7月に施行された法律です。)
【質問内容】:
Windows95の時代に、ハッシュ値でファイルの正当性を証明する方法は、
どんな方法がありましたか?
【ChatGPTの回答】:
Windows 95の時代では、ファイルの正当性を証明するために一般的に使用された手法として、
ハッシュ関数がありました。ハッシュ関数は、任意のデータから固定長のハッシュ値を生成するもので、
同じデータに対しては必ず同じハッシュ値が生成されます。
以下は、当時のファイルの正当性を証明するための主な手法です:
1:
MD5 (Message Digest Algorithm 5): MD5は、128ビットのハッシュ値を生成するアルゴリズムで、
当時広く使用されていました。ファイルのMD5ハッシュを計算し、それを提供することで、
ファイルが改ざんされていないことを証明できました。
ただし、MD5は現在ではセキュリティ上の脆弱性が指摘されており、安全性が疑われるようになっています。
2:
SHA-1 (Secure Hash Algorithm 1): SHA-1は160ビットのハッシュ値を生成するアルゴリズムで、
MD5よりも強力でした。しかし、SHA-1にも後に衝突攻撃が発見され、現在では安全ではないとされています。
これらのハッシュ関数を使用して、ファイルの正当性を確認する際には、以下の手順が一般的でした:
1、オリジナルのファイルからハッシュ値を計算する。
2、ハッシュ値を提供する。
3、ファイルを受け取る側は、同じアルゴリズムを使用してファイルからハッシュ値を計算し、
提供されたハッシュ値と比較する。
4、ハッシュ値が一致すれば、ファイルが改ざんされていないことが証明される。
これにより、ファイルの送信や受信時にデータの完全性を確保することができました。
ただし、セキュリティ上の問題から、
近年ではより強力で安全なハッシュ関数(SHA-256やSHA-3など)が推奨されています。
●国税庁の言う「タイムスタンプ」がいかに「バカげているか?」について
やっと本題です。
まず、政府、というか、国税庁の言う「タイムスタンプ」は、
「ファイルのハッシュ値+政府公認?のタイムサーバの時刻の値」でできているそうです。
でもこれまでに色々とお話をしてきましたとおり、
本当なら、
「ファイルの原本性を、ハッシュ値だけで断定・完結できて」、かつ、
「ハッシュ値はITにまったく詳しくない人でも、簡単に調べられるのに」、
また、
https://jnotary.com/info/hash-trial-example/
での裁判では、
「ハッシュ値とファイル容量」「だけ」で
「原本として認める!」という「判決が出ている」のに、
といいますか、
「そもそも、★★★ 電帳法施行前から(Windows95の時代から) ★★★、それが、
つまりハッシュ値がファイルの指紋として、
それオンリーでファイルの原本性の証明に使われていた」のに、
それなのに、
国税庁はファイルの原本証明に
「タイムスタンプ(ハッシュ値+政府公認の業者のタイムサーバの時刻)」が「必要だ」、
などと言っています。
これって、
「タイムサーバ業者やタイムスタンプ業者、クラウド会計業者、などとの癒着」、
でもあるんでしょうか?
わかりませんけど。
でもあるとしか思えない・・・、
と想像したくもなるような、前号でご紹介したWebページたちの内容…。
なくせに、
今は「検索簿(デジタル索引簿など)があれば、タイムスタンプなんていらない」、
ともなっています。
なんじゃ?そりゃ?
こんないいかげんなものが、「本当に」「法律」? なのか?
前回も書きましたが、
===========================================
「もうタイムスタンプは不要。2022年1月施行の電子帳簿保存法に対応するには。」
『世の中では、この電子帳簿保存法をよく知らない会社に対して、
あたかも自社サービスを使わないと対応できないような言い回しや、
タイムスタンプを付与しないと運用できないようなセールストークにて
ハードウェア・ソフトウェア・クラウドサービスを売り込むようなことが見受けられます。』
(↑電子取引制度のみの話です。スキャナ保存制度は異なります。)
https://trinity.jp/343681/
===========================================
ということを考えると、
マジで、タイムスタンプ業者とかクラウド業者とかと
癒着でもしてんじゃないか?って思ってしまいます。
してないことを祈りますが。
そして何度でも繰り返しますが、
「今はタイムスタンプなんていらない(=原本の証明なんてどうでもいい)」、
となっていて、
おまけに、
「年商が5000万円以下の業者」は、
「索引簿すらいらない(検索機能の確保の要件が不要)」と、
人をバカにしたような法律になり下がっています。
https://www.jcci.or.jp/2023denchohou.pdf
例えば
https://www.nttcoms.com/service/naviexp/column/errl-revision/#idx09
の「改正電子帳簿保存法に対応する際のポイント」、
から引用↓
「可視性の要件」
「検索機能の確保→※検索要件不要対象者:売上高1,000万円以下で
「税務職員の求めに応じてダウンロードできる」事業者。
(令和6年より「売上高が5,000万円以下」、
もしくは「電子データを日付・取引先ごとに整理した状態で
書面出力、提出できる」事業者。)」
※『 売上高1,000万円以下で「税務職員の求めに応じてダウンロードできる」事業者 』なんて
決まりがあったことすら知らんかったわ。
そんなこと書いてある「業者のWebページ」にほとんど出会ったことがなかったです。
※「電子取引」じゃなくて「スキャナ保存」には、
「(令和6年より廃止)」みたいなものもありますね。なんじゃ?これ?
こんなことでは、
・Webに出ている各種業者たちの情報は何なんだ!
・Webに出ている会計士・会計事務所たちの情報は何なんだ!
・あれだけ「タイムスタンプ、タイムスタンプ」ってあおっておいて!
・おかしいじゃないか!
・大事なポイントをまったく説明しないか、
・スミッこの分かりづらいところにちょろちょろ書きで!
・信用できない!
・2000年あたりから準備していた人たちは無駄な事務を強いられて損じゃないか!無駄骨!
となってしまいます。
こんな甘々の、しかも「無駄な作業(雑務)が増えるだけの」、
「現場の邪魔」「日本の邪魔」でしかない法律、
必要でしょうか?
自分は仕方なく(会計士さんにも迷惑がかかるといけないので)、
国税庁の言う事聞いて従っていますけど・・・。
でも、以上のように考えると、
「タイムサーバの時刻」や「タイムスタンプ」なんて、本当にバカバカしい、
と思いませんか?
「ハッシュ値オンリー」でファイルの原本性は証明できてしまうんですから。
(理論上は完全じゃないにしても、
逆に「不完全の証明」は、Googleの専門チームでも不可能なほど、
とてつもない莫大な各種コストが必要なので、
事実上「証明できる」と言っていい。)
「しかもIT知識がなくても、誰にでも、簡単に調べられる」し、
さらにしかも、
「そもそも、★★★ 電帳法施行前から(Win95の時代から) ★★★、それが、
つまり「ハッシュ値」が、「ファイルの指紋として」、
しかも、「ハッシュ値オンリー」で、ファイルの原本性の証明に使われていた」、
わけですから。
スキャナ保存では電子取引よりも保存要件が難しいみたいで、
タイムスタンプが必須な場面が多そうですが、それにしても、
本来なら「タイムスタンプなんて要らない」わけです。
まったく・・・。
この「電子取引」制度の法律、
ほんとうに「イートイン10%」みたいに、
「守られない法律」になる可能性がある気がします。
事業所に、
「膨大な」、
「しかも」「無駄な」、
「金額コスト、作業時間コスト、」を強いて、
そして「税金を増やして」、
「企業を弱くしている」のが分からないのでしょうか?
「仕事の邪魔でしかない」のがわからないでしょうか?
実際、
「うちは全部紙でやる」と、
法律の目的(ペーパーレスその他)と「逆行」している企業が多いです。
「できるだけ紙でやればOKです。ってそう勧める会計士も多い」ですし。
「できるだけ紙でやればOKです。ってそう勧める会計士も多い」って何?
どうなってんの?
また、実務上、紙にはいろいろ書けるし、ポストイットも貼れて
「PDF検索するよりも速い処理ができる」ケースが少なくありません。
一時的な紙印刷ができないと、マジで「PDFオンリーは仕事の邪魔でしかない」となっています。
TVCMでは「紙に印刷してファイルに閉じる行為を」「違反だ」と強調していますが、
「愚の骨頂、騙しの最たるもの」、のような気がしてなりません。
実務上、「原本じゃないから後で捨てる」という意味で、
「一時的なPDFの紙印刷」は、しても可罰的な違法性は無いように思います。
あとで捨ててデジタル(PDF)を原本とすることをちゃんと社内規程すれば。
むしろそれ(紙での一時印刷)をやらないと、仕事が進まない。
政府は仕事の邪魔ばかりしてくる。
デジタルデータだけで全部がスピーディにおわると(勘違いし)、
アナログは必要ないと、
「机上の空論を振りかざして」くる。
「有事(災害時)」には「デジタルなんか電気が通じなきゃ読むこともできない」のに。
「アナログ、デジタル、両方が大事」、という考え方ができない。
(特に「アナログのほうこそが人間にとっては一番大事」、
「アナログあってこそのデジタル」、という考え方がまるでできない。
「デジタルばかりがカッコいい・スマート」と決めつける「本物のバカ」。
「スピードからはデジタルが大事、こころを守るにはデジタルは役立たずでアナログしかない。」
それがわからないってんだから、立派な大学出て何を勉強してきたのか?さっぱりわからない。)
「公僕としての頭脳」に障碍があるかたたち。
日本の事務の現場を後退させる。
無駄な作業を増やして、無駄な人件費を増大させる。
日本の企業を後退させる。
無駄なコストを増やす。
そして税金だけ増やす。
利益を奪っていく。
政府は仕事の邪魔ばかりしてくる。
「タイムスタンプ」=「ファイルのハッシュ値+政府公認?のタイムサーバの時刻の値」、
特に「+政府公認?のタイムサーバの時刻の値」、
「実務上」は「まったく不要」です。
調べてみたら、「裁判上も」、「まったく不要」でした。
そんなのなくても、ハッシュ値「のみ」で「原本証明」ができます。
本当に、バカバカしい、ですよね。
●「デジタル検索簿」に、ついでにファイルのハッシュ値も記録しておけばいいか?
いいのではないかと思います。
普通に、そのハッシュ値だけで、原本であることを証明できます。
これも何度でも繰り返しますが、
そもそも、国税庁が「タイムスタンプ」なんて言い出す前から、
というか、電帳法が施行される以前から、
コンピュータの現場では「そうだった」、んですから。
MD5は1991年に開発されたハッシュ関数だそうです。
電帳法は1998年7月施行。
それを「頭のいい」役人さんたちが認めるかどうかだけですけど、
このハッシュ値の検索簿への記録は、お役人さん向けではなくて、
自社内での確認、会計士さんとの確認、向けです。
ファイルのハッシュ値は、その用途には、「充分すぎるほど」、使えると思います。
だって脆弱性のある、MD5でのハッシュ値であっても、
「現実には」、
「一般的な会社であれば」、
「誰も」、
「ハッシュ値が同じファイルならば両方とも本物だ・原本だ」っていう現実を、
「否定することはできない」、
「ひっくりかえすことはできない」んですから。
今回は以上です。
==========================================================================
バックナンバー目次とサンプル号
https://euc-access-excel-db.com/tips/ct07_se/ct075012_xls2k_vba_tips/mag2-01
----------------------------------------------------------------------
■独学者が1年後にExcelVBAを爆発的に上達させるための最低限の基礎知識メモ(ダイジェスト)
発行システム:『まぐまぐ!』 http://www.mag2.com/
配信中止はこちら https://www.mag2.com/m/0001691660.html
----------------------------------------------------------------------