プロが教える店舗&オフィスのセキュリティ対策術

デジタルデータってもし、破損などしてデータが変化した場合、そもそも、そのファイル自体が再生できなくなりますよね。再生できるけど部分的に破損している、というようなアナログ的な事象は、ほとんど無い、と理解しております。が、100歩譲って、そのような事象が、仮に起きる場合を想定して質問させてください。
もし、そのデータが再生できるけど、一部、破損(変化)してるんじゃないか?と不安に思う場合、遡ることそのデータを作成した時にプロパティで、そのファイルの『サイズ』をメモしておいて、それと突き合わせてピタシ一致してれば、今に至るまで、そのデータの破損(変化)は一切無い。という私の認識、間違ってないでしょうか?
というのも、フツー、1ビットでも、データが変化すれば、当然、プロパティの『サイズ』も変わってくるだろう…と思うからです。
(もちろん、デジタルデータは0、1の構成だから劣化しない、など基本的な知識はもっています)

A 回答 (8件)

質問者さんの以下の記述はちょっと疑問です。



もし、そのデータが再生できるけど、一部、破損(変化)してるんじゃないか?と不安に思う場合、遡ることそのデータを作成した時にプロパティで、そのファイルの『サイズ』をメモしておいて、それと突き合わせてピタシ一致してれば、今に至るまで、そのデータの破損(変化)は一切無い。という私の認識、間違ってないでしょうか?

これは、誤解されてると思います。
データの1bit(または数bit)が0→1または1→0に変化してしまった場合、データサイズが変化しないのはご理解してもらえると思います。このために、データをいくつかのバイト数でブロックにしてそのブロックの末尾にCRCなどのデータが正しいかチェックできるようなものを付けるのです。
(データが欠落し、データサイズが変化してしまうこと事より上記のデータが変化してしまうことが多く発生されると思われます。データを受信または読み出し、CRCを再計算し、そのデータに付加されたCRCと一致しない場合、”CRCエラー”などと言うエラー表示などがされます。)

ちなみに通信(InternetでのTCP/IPなど)では上記のブロックをパケットと呼びます。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。少し分からない単語がありますが、参考になりました。ありがとうございます。

お礼日時:2014/03/08 16:27

>ファイルの『サイズ』をメモしておいて、それと突き合わせてピタシ一致してれば



いいえ、間違っています。
データが変化してもサイズが同一であることはしばしば発生します。
bit表示で【0101】と【1010】は同じ「4bit」ですが、中身、違いますよね?

中身の整合性チェックをするには通常「サイズ」ではなく、MD5チェックサムなどを生成してメモなりしておきます。


デジタルデータは0と1なので劣化しないというのも少し語弊があります。
実際には実在する物質(アナログ)に保存するので細かい傷だとか太陽光などでデータは破損・変化しますよ。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。ごもっともな回答ありがとうございます。勉強になりました。ありがとうございます。

お礼日時:2014/03/08 16:28

大きさが違わなくても、中身が違うなんてことはごくごく当然のように起こりますよ。

ここで今読んでる文字なんかもそうです。文字コードがSJISだったら、1文字の大きさは全て16ビット(2バイト)で共通しており、ビット列の並びだけが違う。なので大きさだけ見ていたのでは、こうしたビットが化けた状態を検出できません。

これをなんとかする方法として、文字のように1つずつに意味があるデータでは1文字ずつチェックする必要があるので、パリティチェックというものが考え出されました。これは最も古典的な方法です。やり方としては、ある1バイトのデータを送る時に1ビット追加して(パリティビット)、9ビットにします。で、この9ビットのデータの中にある1になっているビットの数が常に偶数または奇数個になるように。パリティビットを0または1にします。1が常に偶数個になるようにする方法が偶数パリティ、奇数個になるのが奇数パリティです。こうすると、途中でビットが化けた場合は1のビットの偶数個・奇数個の関係に矛盾が生ずるため、化けたことが解るという仕掛けです。

ただし、化け方によってはパリティを矛盾させずにビット列を崩すことが可能なので、それは見つけられません。例えば11110000が10101010になっても、パリティビットはどちらも同じになるからです。なのでこれだけでは完璧な検出はできません。

で、次に登場するのがこれまた古典的で、今でも使われている「チェックサム」による調査です。これはデータを頭から最後まで全部足し合わせ、その合計をデータに付け足すというものです。途中でビットが化けると合計値が変化するので、化けたことが解るという至って簡単な仕掛け。パリティと組み合わせると、かなりの確率で化けたことを検出できます。

実はこれでも見落としがあり得るので、チェックサムよりも強度が高い方法が考案されています。音楽CDで使われている方法として、CIRCというものがあります。またファイルの途中化けを調べるのに、CRCというものもよく使われます。興味があったら、wikiの解説を調べてください。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。何回か読み返してしまいましたが、勉強になりました。ありがとうございました。

お礼日時:2014/03/08 16:30

サイズをメモしても残念ながら破損しているはそれだけだと分かりません


同じサイズのファイルとかありますから・・・

よって、CRCやハッシュ値を記録するしかありません
その値が違う場合は、違うデータってことで、破損などが分かります
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
確かに、冷静に考えればサイズをメモしとくだけで破損してるかどうか、分かるはずもありませんよね…。
CRCやハッシュ値、などついて今後、勉強していきたいと思います。ありがとうございました。

お礼日時:2014/03/08 16:13

劣化しないですか・・・。

劣化してはいけないというのが正しいかと思います。

まず、データの容量はどうやって認識していると思いますか?大事なのはそこです。
容量が例えば1MBだったとして、その1MBはどこを見て1MBなのでしょうか?
では、見ている場所は、本当に1MBを示す場所にあるのでしょうか?

FAT(File Allowcation Table/ファイルアロケーションテーブル)でも、NTFS(NT File System/NTファイルシステム、Master File Table + Index Journaling)の構造でも、UDF(Universal Disk Format)でもそうですが、容量の認識はファイルシステムが持つ、インデックス(索引)を元に構成されます。

もし、それに不適合があればデータは壊れてしまっていたり、行方不明にもなるわけですし、そもそも不適合でも読める可能性はあります。何せ、実データとインデックスに書かれているデータは本の索引と同じです。何ページと書かれているだけで、その場所にデータがなくとも、書かれていればそこにあると認識します。
即ち、サイズなど実体のデータが壊れていないという理由にはなりません。それが一部であろうが、全てであろうがです。

それから、デジタルデータは0、1の構成だから劣化しないというのも、よく陥る間違いです。
そもそも、答えになっていません。何故なら、2と3なら壊れるのか、1と6は1だけが壊れないのか・・・考えてみれば、0と1という数字の概念で壊れないというのは、理論で言えば何故の根拠ではありません。別に10進数でも0と1で劣化しないなら劣化しない可能性はあります。まあ、変化幅を大きくしたことで、中間の微妙なラインを減らし、劣化率を抑える効果はありますが、別に0と1だからではありません。

では、デジタルは劣化しないというのは、どういう意味かというと、劣化しないというのは、そもそも当初CD(Compact Disc)などで、売り文句として広まった間違いです。厳密に言えば、当時はそれは正しいと思われていたのです。
CDでは、ディスクの記録面に凹凸を与えその変化が一定の間隔であるかないかを、レーザーで読み取りある場合を1、なければ0としました。DVDやBDも同じ原理です。

当時、100年持つとも50年持つとも言われていましたが、15年から20年で初代のCDが読めなくなりました。理由は単純で、蒸着しているアルミ層が乖離するとともに、保護層に用いる樹脂素材が弾力性や透過性を失い、その凹凸まで光を通さなくなったためです。

デジタルは劣化しない神話は、そのころには既に失墜していましたが、それとは別に生データ(エラー訂正符号化技術を使っていないもの)のデジタルは1ビットたりとも劣化が許されないケースが多いという、シビアな技術であったため、CDの販売の際の長く音質が同じという理屈を元に、デジタルは劣化しない先進的な技術と勘違いして市場に広まったと考えられます。

ちなみに、最初に一般市場で最も普及したデジタルの代名詞Audio CDは、CIRC(Cross Interleaved Reed-Solomon Code)と呼ばれる80年代においては画期的な2種類の符号化(エラーが発生したときに、前後のマルチビットからパリティデータを元に失われたデータを復号する)を登載しています。
データが壊れることは、既に当時から想定しており、小さな傷でも致命的になることが分かっていたため、強力なエラー訂正技術をCDに組み込み、製品化したのです。
このように商品化したのがCDです。そして、その延長線上にECCなどのエラー訂正を組み込んだ、デジタル商品があるのです。デジタルはデータの破損が起きるものを前提として作られているのです。ただし、破損しても支障がないように、広いエリアにヒントを含めることで、完全に読めなくなる事態を防いでいるのです。

では、ビットデータが壊れたらどうなるかというと、読めなくなることが多いです。
だから、音声や映像の場合は、CIRCに近い技術を組み合わせ、完全に一部がバーストし再現できない場合でも、前後から中間を取るか、または前の部分のみを延長する手法が取られます。

データファイルの場合は、それが致命的な場合なら、ほぼ文字化けとなり不正なファイルとなります。
ただ、デジタルデバイスでは、予め記録する装置にエラー訂正によるパリティ符号化を付与するため、初期不良を除けば、短期間で生じることはあまりありません。そして、もし一度エラーが発生すると、その媒体に記録している全てのデータにおいて信頼性が急速に失われるという欠点があります。(一部だけで、他がほとんど無事な時間はとても短い)

それは、容量の云々の問題ではなく、記録しているデータ全体が徐々に化けることになります。


まあ、リンゴとナシを、2個紙袋に入れておけば、そのまま10年後もそれが同じリンゴとナシのままで現存するかと同じようなものです。劣化というのは、どういうものであっても、必ず発生します。2個入っていたというのが分かったとしても、いつかはそれがリンゴなのか、なしなのかを普通に見て知る術はなくなります。場合によっては、徐々に2つの果物が分解し、大きなものが2つなのか、3つなのか、小さく10個だったのかも、分からなくなるかも知れません。

データも同じです。化けないのではなく、例え化けたとしてもこれはリンゴだった、これはナシだったと分析する機能がある程度付いていれば、腐ってもわかるかもしれません。それが、デジタルの劣化しないとされる信頼性です。アナログなら画質が落ちるなどで劣化が見える状況が、デジタルでは発生しにくいのです。ただ、記録媒体がエラー訂正できる限界点を越えるとそれが、何なのかすら認識できなくなります。要は、劣化=消えるとほとんど同意語になるのです。


尚、アナログの場合は、リンゴの種類が数種類。なしの種類が数種類といった具合で入っています。
だから、デジタルに比べると、劣化率が高いのです。ただし、その中に含まれるものが、りんごとナシに限らず、分解されにくい情報も含まれているのです。具体的に、金銀などの宝飾品も含まれるかも知れません。要は、全てありのままを記録するのです。そのため、弱いところから劣化は進むが、完全に消えるまでには、かなりの時間が掛かることが多いのです。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。基本的なことから詳しくありがとうございます。知識も再確認もできました。ありがとうございました。

お礼日時:2014/03/08 17:03

サイズでは無理ですね。



音楽関係のことみたいなので、そのつもりで書きますが、
2つのファイルを比較するのなら普通にファイル比較ソフトでできます。が、音楽の場合は音の前後に無音部分があってドライブによってオフセットが違いますから、無音部分を自動的に無視してくれるソフトのほうが便利です。
WaveCompare http://www.ne.jp/asahi/fa/efu/soft/wc/wc.html
音比べ http://yakki.digi2.jp/otokurabe/


デジタルではデータの破損はあらかじめ織り込み済です。
破損している箇所はエラーになりますが、エラー訂正で復元されて、元と同じデータになります。復元できないほど酷く破損している場合、HDDでは読み込みが停止しますが、音楽CDでは前後から計算して穴埋め(補間)され、もっと酷い場合はやっぱり停止しますw

いづれも(一見)正常に行われた場合、
HDD間のコピーではデータは変化しない
音楽CDのリッピングでは、変化しなかった保証がない。

ことになりますが、実際には音楽CDのリッピングでも補間が発生して変化してしまうことはほとんどありません。傷や汚れなど軽度の破損なら、エラーはすべて訂正されて、元と同じデータに復元されます。
気になる方は、AccurateRipという仕組みで、リッピング時にネット上のデータベースと比較して確認できるソフトを使います。Exact Audio Copy や dBPoweramp CD Ripper などです。

でも、(本当に音楽関係の質問だったのか???)
なんだか雲を掴むような質問なので答えにくいです。
もう少し具体的に、疑問点を書いていただけませんか?
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。たしかに質問内容が少しアバウトすぎて失礼しました。が、ご回答いただけた内容だけでも十分勉強になりました。
特に『デジタルではデータの破損はあらかじめ織り込み済でエラー訂正で復元されて、元と同じデータになる』というのがとても参考になりました。ありがとうございます。

お礼日時:2014/03/08 16:09

窓の杜サイトにファイルハッシュ値の確認等の関連ソフトがあります。


例えば "HashTab" 等です。

ファイルの内容を1ビットだけ変えてみる、2ビットを同時に変えてみる、連続する2文字を入れ替えてみる等色々と変えてみてハッシュ値がどのように変わるか等を試してみて下さい。

ファイルのサイズとハッシュ値を同じに保ち、気付かれないように中身を変更偽造する事は普通無理だとされています。

http://www.forest.impress.co.jp/library/nav/genr …
http://www.forest.impress.co.jp/library/software …
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
ファイルの内容を1ビットだけ変えてみる、2ビットを同時に変えてみる、連続する2文字を入れ替えてみる、など是非やってみたいと思います。ありがとうございました。

お礼日時:2014/03/08 16:35

> 再生できるけど部分的に破損している、というようなアナログ的な事象は、ほとんど無い



という訳でもないです。
デジタルデータは破損しても問題なく再生できる仕組みを持てますので。
身近な例が音楽CDですね。
裏面に細いマジックで中心から外周に向かう線を引いて、その部分を読めなくしても音楽再生に影響ありません。
(線が太すぎたり度が過ぎると再生できなくなります)
これは冗長データとエラー訂正という機能を持ってるためです。
データの一部に破損がある場合、どこが破損しているか判別でき、さらに元に戻すことができるのです。
もちろん、仕組みとして持ってるからできる芸当ではあります。
結果として正しいデータに戻しているので、破損したまま再生してるのとはちょっと異なりますか。

データの破損は0、1の反転もありうるので、劣化は十分にありえます。
DRAMやSRAMという半導体メモリはアルファ線が当たると容易に反転してしまいます。
(これをソフトエラーと言います)
この場合でもソフトエラーの発生を認識し、戻す仕組みがあります。
‥‥ありますが、一般のパソコンには積まれていないです。
サイズが変わるだけではないというのを理解してください。

有線、無線による通信でも途中のノイズによりデータ破損が発生します。
現在の地上デジタル放送が代表的でしょう。
従来のアナログ放送だと画面が乱れることになりますが、地デジだと何もおこらないか、画面が停止するか、画面がモザイク状になるという現象が発生します。
何もおこらない場合、データの破損を修正できたのです。
画面がモザイク状になった場合、修正しきれなかったためにできる範囲で修正した状態です。
画面が停止した場合、修正できる範囲を超えて破損してしまったのです。
ワンセグチューナ持って電波受信しにくい山間部に行くと簡単に体験できますよ。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。冗長データとエラー訂正、といった言葉は耳にしたことがあるぐらいで、あまり知らなかったので勉強できました。デジタルデータは、少しぐらいデータが破損しても、自力で復元できる、というのは知れて少し安心しました、ありがとうございます。

お礼日時:2014/03/08 16:01

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!