CRCとは何ですか?また、エラー検出にどのように役立ちますか?
3 に答える
CRC は、未加工のコンピューター データへの偶発的な変更を検出するように設計された安全でないハッシュ関数であり、デジタル ネットワークやハード ディスク ドライブなどのストレージ デバイスで一般的に使用されています。
CRC 対応のデバイスは、CRC コードと呼ばれる短い固定長のバイナリ シーケンスをデータの各ブロックに対して計算し、両方を一緒に送信または保存します。ブロックが読み取られるか受信されると、デバイスは計算を繰り返します。新しいCRCコードが以前に計算されたものと一致しない場合、ブロックにはデータエラーが含まれており、デバイスはブロックの再送信を要求するなどの修正アクションを実行できます。
出典:ウィキペディア
CRC は Cyclic Redundancy Check の略です。エラー検出に役立ちます..次のもので構成されています
b(x)-> transmitted code word
q(x)-> quotient
i(x)-> information polynomial
r(x)-> remainder polynomial
g(x)-> generated polynomial
step 1: x^(n-k) * i(x)
step 2: r(x) = (x^(n-k) * i(x))%g(x)
step 3: b(x) = (x^(n-k) * i(x)) XOR with r(x)
which results in a transmitted code word.
this b(x) is send to the reciever end from the sender and if u divide the
transmitted code word i.e. b(x) with g(x) and if the remainder
i.e. r(x) is equal to 0 at the reciever end then there is no error
otherwise there is an error in the transmitted code word during the
transmission from sender to reciever.
In this way it is helpful in error detection.
Cyclic Redundancy Check は、同じ入力に対して常に同じであることが保証されている入力を指定して、一意の値を計算できるハッシュ関数です。入力がオリジナルから何らかの形で変更された場合、別の CRC チェックサムが生成されます。したがって、入力とチェックサムがある場合、入力から新しいチェックサムを計算し、両方のチェックサムを比較できます。それらが同じ場合、入力が変更されていないことを意味します。