Product Design, Manufacturing & Innovation Resources
家 » 製品デザイン » 製造業 » 製品設計と製造におけるチェックサム:誤ったラベル、バーコードスキャンエラー、高額なリコールを防ぐ方法

製品設計と製造におけるチェックサム:誤ったラベル、バーコードスキャンエラー、高額なリコールを防ぐ方法

製品設計および製造におけるチェックサム
チェックサム
チェックサムを導入することで、製品ライフサイクル全体を通してデータの整合性が向上します。

正しい製品が入ったパレットがドックから出荷されるが、ラベルが間違っていた。受入工場がそれをスキャンし、ERPシステムがコードを受け入れる。3週間後、誰も特定できないロットに関する苦情が寄せられる。部品自体に問題はなかった。部品を識別するデータの一桁が間違っていたのだ。

チェックサムは、この種の障害に対する最も安価な対策です。レコードに数桁または数バイトを追加するだけで、下流のどのステーションでもデータベース検索なしでレコードを検証できます。
物理的な製品は、多くの人の手、機械、フォーマットを経てデータを伝達します。CADファイルは部品表(BOM)になり、BOMは作業指示書になり、作業指示書はラベルになります。ラベルはスキャンされ、スキャンされたデータは出荷記録になります。

このガイドでは、チェックサムをITや開発のトピックではなく、品質管理ツールとして扱います。チェックデジットからSHA-256までのアルゴリズムを網羅し、設計、工業化、生産、品質管理、物流、サービスといった段階ごとに適用していきます。各章の最後には、物理​​製品を扱うエンジニア向けのヒントを2つ掲載しています。

 

目次
1. 物理製品がデータ整合性に依存する理由
2. チェックサムとは何ですか?
3. コア特性と、それが品質指標に及ぼす影響
4. チェックサムと類似の簡単な歴史
5. 製品ライフサイクルにおけるチェックサムの位置づけ
6. パリティビットと単純な和
7. チェックデジット:GS1チェックデジットの計算方法とその重要性
8. バーコードスキャンエラー:原因、検証方法、および修正方法
9. ラベルの誤りを防ぐ方法
10. ネットワークおよびフィールドバスのチェックサム
11. CRCエラーチェックとは何ですか?
12. 非暗号化ハッシュ関数
13. 暗号学的ハッシュとSHA-256チェックサムの検証方法
14. キーによるチェックサム、署名、および真正性
15. 誤り訂正符号
16.アルゴリズムの比較
17. 設計およびエンジニアリング
18. 工業化と製造、ファームウェアのフラッシュ検証方法を含む
19. 品質管理とコンプライアンス
20.リーンシックスシグマの視点
21. 物流:倉庫ピッキングエラーを減らす方法
22.サービス、アフターマーケット、製品寿命末期
23.偶発的な汚職と悪意のある汚職
24. 適切なチェックサムの選び方
25.導入ガイド
26. 役割別ベストプラクティスチェックリスト
チェックサムと類似点に関する結論
よくある質問
付録
用語集

注記: この記事に記載されているEUサイバーレジリエンス法、デジタルプロダクトパスポート、米国DSCSAなどの規制施行日は、2026年11月に確認されたものです。コンプライアンス計画を策定する前に、再度ご確認ください。

主なポイント

  • チェックサムは偶発的なエラーを検出する。意図的な変更を阻止するには、署名または鍵付きコードが必要となる。
  • チェックデジットは、人間やスキャナが扱う識別子を保護します。CRCはフレームとファームウェアイメージを保護します。暗号化ハッシュはファイルとレコードを保護します。
  • GS1チェックデジットは、1桁の誤りはすべて検出します。ただし、隣接する桁の転置、つまり2桁の数字の差が5の場合の約11%は見逃します。
  • 作成時と使用時の両方で検証を行う。いずれか一方の段階での検証だけでは、他のすべての段階が見落とされてしまう。
  • 検査自体を測定システムとして捉える。既知の不良サンプルを用いて検証し、検証者を校正し、結果を追跡する。

 

1. 物理製品がデータ整合性に依存する理由

製品とは、物理的な物体とそのデータを組み合わせたものである。

そのデータには、CADモデル、図面、部品表、ファームウェアイメージ、校正テーブル、ラベル、バッチ記録、試験結果、出荷書類などが含まれます。これらのいずれかに誤った値があると、生産ラインが停止したり、顧客に誤った商品が送られたり、リコールが発生したりする可能性があります。

データエラーがチェーンに侵入する場所

エラーは通常、以下の5つの原因から発生します。

  • 人々は数字の入力ミスをしたり、読み間違えたりする。
  • 機械は損傷したマークを誤って読み取る。
  • ストレージと伝送のフリップビット。
  • プロセス変更により、正しいバージョンが古いバージョンに置き換えられる。
  • 最後に、誰かが意図的にデータを改ざんする可能性もある。
データエラー
製品設計およびエンジニアリングプロセスにおけるデータエラーの原因を特定する。
エラーの原因 例 典型的な結果 典型的な制御
キーイング 部品番号の数字の入れ替わり ラインに誤った部品が供給されました チェックデジット
読む 汚れた1次元バーコードが別の数字としてデコードされました ロット番号が間違って記録されています シンボルチェック、検証グレード、エラー訂正
伝染 ; 感染 フィールドバスフレームのビット反転 設定値またはセンサー値が破損しています CRC
ストレージ 現場で劣化したフラッシュセル ファームウェアまたはキャリブレーションデータが破損している CRC(誤り訂正符号)
バージョン プリンターに古いラベルテンプレートが残っていた 出荷された商品に関する古いデータ リリースされたファイルのハッシュ
改ざん 変更されたファームウェアイメージ 安全性またはセキュリティの不具合 署名、キーコード

 

低品質のコスト

品質不良によるコストは、予防、評価、内部失敗、外部失敗の4つに分類されます。チェックサムは最初の2つのカテゴリで有効です。データを自動的に評価し、エラーがそれ以上広がるのを防ぎます。コスト削減は、検出を上流工程に移行することによって実現されます。

ラベルプリンターでエラーが発覚した場合、再印刷の費用が発生します。同じエラーが顧客側で発覚した場合、封じ込め、仕分け、場合によってはリコール、そして信頼の喪失といった損失につながります。

1-10-100ルールのような経験則は、せいぜい参考程度にしかならない。実際の乗数は、自社の不良品、再加工品、苦情の記録によって明らかになる。

エンジニアのためのプロのヒント

  • CADリリースから出荷ラベルに至るまで、人がデータを再入力したり、ツールがデータを再フォーマットしたりするすべての引き継ぎ工程をマッピングします。そして、これらの引き継ぎ工程に対して最初のチェックを実施します。
  • 自社の不良品発生履歴(苦情件数、不良品タグ数、再加工記録数)に基づいて、引き渡し工程をランク付けしてください。不良品発生コストが最も高い箇所、つまり通常は製品が工場を出荷した後から開始してください。
チェックサム
チェックサムは、製品設計およびエンジニアリングにおけるデータの整合性を確保するための迅速な検証方法です。

2. チェックサムとは何ですか?

チェックサムとは、定義されたアルゴリズムによってデータブロックから計算される小さな値です。送信側は、このチェックサムをデータとともに保存または送信します。受信側は、受信した値からチェックサムを再計算し、両者を比較します。両者が異なる場合、2回の計算の間にデータがどこかで変更されたことになります。

合否判定ゲージを考えてみてください。データの全次元を測定するわけではありません。迅速かつ再現性の高いテストを実施し、合格か不合格かを返します。

 

チェックサムの世界の用語

工場やソフトウェア開発チームでは、いくつかの用語が曖昧に使われている。以下の表は、それぞれの用語が答える質問ごとに分類している。

学期 それは何なのか 質問への回答 典型的な使用例
チェックデジット 識別子に付加される1桁または2桁の数字で、モジュラー式で計算される。 この番号は正しく入力またはスキャンされましたか? GTIN、SSCC、VIN、IBAN
シンプルなチェックサム メッセージのバイトの合計またはXOR 短いメッセージは無事に届きましたか? NMEA 0183センテンス、Intel HEXレコード
CRC Remainder of a polynomial division over [latex]\mathrm{GF}(2)[/latex] このフレーム、ブロック、または画像でビット反転が発生しましたか? CAN、Modbus RTU、イーサネット、ファームウェア
ハッシュまたはダイジェスト 任意のデータの固定サイズ指紋 このファイルはあのファイルと同一ですか? リリースパッケージ、ダウンロード、重複排除
MACまたはHMAC ハッシュまたは暗号と秘密鍵の組み合わせ これは鍵を握っている人物によって作られたものだろうか? 認証済みメッセージ、デバイスタグ
デジタル署名 ハッシュに基づいて計算された非対称な起源証明 これは誰が公開したもので、変更は加えられていないのですか? ファームウェア、証明書、規制対象記録
エラー訂正コード 破損したデータの修復を可能にする冗長性 その損傷は修復可能でしょうか? データマトリックス、QRコード、ECCメモリ

検出対修正

ほとんどのチェックサムはエラーを検出するだけで、何が間違っているかは教えてくれません。生産ラインでは、停止、再印刷、再スキャン、再送信といった対応が適切なので、それで十分です。エラー訂正コードはさらに進んでデータを修復するため、傷がつきやすいマークや劣化しやすいメモリに適しています。第15章では、これらのコードについて詳しく解説します。

プロのヒント

  • 各チェックについて、保護対象データ、想定されるエラーモデル、アルゴリズムとそのパラメータを1行で記述してください。エラーモデルのないチェックはFMEAで評価できません。
  • 保存されたすべてのチェック値の横にアルゴリズム識別子を保存します。例えば、「sha256」という名前に続いてダイジェストを記述します。こうすることで、後々の移行によってアーカイブされたレコードが無効になることはありません。

3. コア特性と、それが品質指標に及ぼす影響

チェックサムの各プロパティには、品質工学の用語に対応するものが存在する。それらを対応付けることで、翻訳することなくFMEAや管理計画にチェック内容を記述できる。

財産 意味 品質の対等な存在
決定論 同じ入力は常に同じ値を返す 検査の再現性
固定出力サイズ 入力の長さに関わらず、値はnビットです。 小切手1枚あたりの費用は一定、ラベル上のフィールドの長さは既知
検出確率 値を変更する破損した入力の割合 [latex]1 – P_{\mathrm{escape}}[/latex], input to the FMEA detection rating
衝突 2つの異なる入力が1つの値を生成する エスケープ、別名偽受容
ハミング距離 気づかれずに済む最小のビットエラー数 検出深度保証
バースト長 常に最も長い連続した破損ビットが検出される 実際のノイズ環境に適合します。例えば、ドライブ付近のEMIなど。
雪崩効果 優れたハッシュ関数では、入力ビットを1つ反転させると、出力ビットの約半分が変化する。 偶然の一致は無視できる

検出確率(数値)

For an arbitrary corruption pattern, an [latex]n[/latex]-bit check lets the error through with this probability:

[latex]\displaystyle P_{\mathrm{escape}} = 2^{-n}[/latex]

A mod-10 check digit lets about one random error in ten through. A 16-bit CRC lets one in 65,536 ([latex]2^{-16}[/latex]) through. A 32-bit CRC lets one in roughly 4.3 billion ([latex]2^{-32}[/latex]) through.

保証された特性は、統計的な数値よりも強力です。優れたCRCは、シングルビットエラーと、自身の長さまでのバーストをすべて検出します。エンジニアが特定の多項式を選択するのは、まさにこのためです。

脱出率の計算

データエラーの逃避率は、エラーが発生する確率と、チェックでエラーが見逃される確率を掛け合わせた値に等しい。

[latex]\displaystyle P_{\mathrm{escape}} = P_{\mathrm{error}} \times P_{\mathrm{miss}}[/latex]

Take an error rate of 1 in 1,000 keyed entries and a mod-10 check digit. Then [latex]P_{\mathrm{escape}} = 10^{-3} \times 10^{-1} = 10^{-4}[/latex]. About 1 entry in 10,000 still passes with a wrong random value. State such numbers in the FMEA instead of rating detection by feel.

FMEA検出評価

2019年版AIAG-VDA FMEAハンドブックでは、検出制御は1から10までの段階で評価され、10は検出能力がないことを意味します。同ハンドブックでは、リスク優先度番号の代わりに、重大度、発生頻度、検出可能性の順に重み付けを行うアクション優先度表が採用されています。次の操作をブロックする自動チェックは、目視チェックよりもはるかに高い検出評価を正当化できます。例えば、不良サンプルを用いたチャレンジテストなど、証拠を保管しておきましょう。

偽の承認
データ検証におけるエラーの種類をバランスよく調整することで、製品設計における正確性と効率性を確保する。

誤った受け入れと誤った拒否

チェックには2種類のエラーが存在します。誤った受け入れは不正なデータを通過させてしまい、これがエスケープとなります。誤った拒否は正常なデータを阻止し、処理時間を浪費します。正しく実装されたチェックデジットまたはCRCは、ルールが厳密であるため、正常なデータを拒否することはありません。誤った拒否は、読み取りステップで発生します。例えば、スキャナーが有効なコードであっても印刷状態が悪い場合にエラーを起こす場合などです。

ヒント

  • FMEAにおける検出の証拠として、ランダムな破損に対するnビットチェックの回避確率、および構造的障害に対する保証されたバースト長とハミング距離を挙げてください。
  • 2つのチェックの検出率を乗算しないでください。ただし、それぞれのエラーが独立している場合は除きます。同じ破損したソースを読み取る、または同じ演算子やソフトウェアライブラリを共有する2つのチェックは、同時に失敗します。

4. チェックサムと類似の簡単な歴史

この記事で紹介されている技術は古くからあるものだが、それが強みでもある。それぞれの技術には数十年にわたる現場での実績があり、それぞれの故障モードも記録されている。

年 発達 なぜここでそれが重要なのか
1950年代初頭 電信と初期のコンピュータストレージにおけるパリティビット 最初の実用的なエラー検出
1954 IBMのハンス・ピーター・ルーンがチェックデジット方式の特許を出願 決済カードにおけるmod-10チェックの起源
1961 ピーターソンとブラウンは、循環冗長性チェックを発表した。 バスとファームウェアにおけるCRCの基礎
1969 Verhoeff は、すべての隣接する転置を捕捉する 10 進数スキームを公開します。 mod 10よりも優れたチェックデジットが存在することを示している
1974 小売店で最初にスキャンされたUPCマーク付き商品 バーコードベースのトレーサビリティの開始
1995 FIPS 180-1で規定されているSHA-1 ハッシュベースのファイル検証の時代が始まる
2002 FIPS 180-2で公開されたSHA-2ファミリー SHA-256がデフォルトのダイジェストになります
2004 Dammは準群ベースのチェックデジットを発表した。 完全な転置検出機能を備えたシンプルな方式
2015 FIPS 202で標準化されたSHA-3 独立した第2のハッシュ関数ファミリー
2017 SHA-1衝突の最初の実用的な事例は、SHAtteredとして知られている。 SHA-1は改ざんが問題となるような場面では不向きである。
2022 NISTは、SHA-1を2030年12月31日までに廃止すると発表しました。 長寿命製品の計画期間

プロからのアドバイス: 既存のインターフェースを統合する場合は、そのリンクに対する元のチェック機能を維持しつつ、アプリケーション層でより強力なエンドツーエンドのチェック機能を追加してください。既存のフレーム形式を変更することは、リスクに見合う価値はほとんどありません。

5. 製品ライフサイクルにおけるチェックサムの位置づけ

この表は、記事の残りの部分を理解するための地図として活用してください。各段階でどのような種類のチェックが適用されるか、そして通常どこで不具合が発生するかを示しています。

ステージ データが危険にさらされている 一般的な保護 典型的な故障 表面化
デザイン CAD、BOM、ファームウェアソース、部品番号 リリースされたパッケージのハッシュ、部品番号のチェックデジット、ファームウェアヘッダーのCRC 誤った改訂版がリリースされ、部品番号の入力ミスがありました。 設計変更レビュー、初回ビルド
工業化 レシピ、PLCパラメータ、ラベルテンプレート、テストプログラム ハッシュまたはCRCはゴールデンレコードと比較されます 古いレシピまたはテンプレートが読み込まれました 最初の記事、ラインテスト
生産 マーク、シリアル番号、ファームウェア、ステーションデータ 検証グレード、リードバックハッシュ、バスCRC 判読不能なマーク、フラッシュの失敗、フレームの破損 インラインスキャン、エンドオブラインテスト
品質 試験記録、証明書、系図 ハッシュチェーン、署名、監査証跡 改ざんされた記録または欠落した記録 監査、顧客からの苦情
ロジスティクス GTIN、SSCC、GLN、ASN、EPCISイベント GS1チェックデジット、メッセージ制御合計 誤選別、配送先間違い、シリアル番号の重複 ピッキング確認、商品受領
サービスと終末期 アップデート、スペアパーツID、パスポート 署名付きアップデート、認証済みパーツ、固有識別子 アップデートが破損している、部品が偽造されている 現場での故障、保証請求

プロのヒント

  • ライフサイクル段階、データオブジェクト、チェック項目、および保管されている証拠をマトリックス形式で作成します。空欄はギャップを表し、このマトリックスが改善バックログとなります。
  • ソースシステムでチェックを生成し、受信システムで独自に作成したルーチンを使用して検証します。2つの実装では、1つの共有ライブラリでは隠蔽されているパラメータとバイト順序の誤りが明らかになります。

6. パリティビットと単純な和

パリティビットとは、ワード内の1の数が偶数か奇数かを決定するための追加のビットです。奇数個の反転ビットを検出し、偶数個の反転ビットは見逃します。2つの反転ビットは相殺されるため、ワードはそのまま通過します。

2次元パリティは、データを行と列に配置し、各行と各列にパリティビットを追加します。これにより、反転したビットを1つだけ検出し、それを訂正することができます。2ビットまたは3ビットのエラーはすべて検出できますが、長方形の角にある4つの反転ビットは検出されません。

加算チェックサムとXORチェックサム

次のステップでは、すべてのバイトを合計するか、XOR演算を行い、結果を送信します。これらのチェックは低コストで、最小のマイクロコントローラにも適用できます。ただし、実際には重要な2つの弱点があります。バイト順序を無視するため、バイトが入れ替わっていても通過してしまいます。また、エラーによって相殺される可能性もあります。例えば、あるバイトが1つ増え、別のバイトが1つ減ったとしても、合計値は変わりません。

XORチェックサムは、異なるバイト間で同じビット位置における偶数回の反転を見逃してしまうという欠点もある。MaxinoとKoopmanは2009年に組み込み制御ネットワークにおけるこうしたチェックサムの有効性を測定し、同じ幅のCRCの方が構造的エラーに対して優れていることを発見した。

それらは今でも出現する

場所 スキーム コメント
NMEA 0183センテンス(GPS、船舶用電子機器) ドル記号とアスタリスクの間の文字のXOR演算結果を2桁の16進数で送信します。 単一ビットエラーを検出するが、ペアエラーには弱い。
ファームウェアファイル内のIntel HEXレコード レコードバイトの合計の2の補数 画像全体ではなく、各レコードのみを保護します。
従来のシリアルリンクとシンプルなセンサー 8ビット和またはXOR データシートを読み、データが重要な場合はアプリケーションレベルのチェックを追加する。

Intel HEX ケースはファームウェアにとって重要です。ファイルはすべてのレコードチェックを通過しても不完全な場合があります。なぜなら、欠落したレコードは他のレコードに痕跡を残さないからです。第 18 章で説明されているように、イメージレベルの CRC またはハッシュを追加してください。

パリティと単純な計算を依然として使用する物理デバイス

磁気ストライプカード

各文字には奇数パリティビットが付与されており、末尾の番兵文字の後に縦方向の冗長性チェック文字が続く。リーダーは、いずれかのテストに不合格となったスワイプを拒否する。

シリアル計測機器およびPLC周辺機器

RS-232およびRS-485リンクでは、各文字にパリティビットを追加することができ、これにより電気ノイズによって引き起こされる1ビットの反転を検出できます。

パリティ
物理デバイスにおけるパリティビットとチェックサムの利用は、エラー検出とデータ整合性の確保に用いられる。

フラッシュプログラマーとブートローダー

このツールは、各レコードに合計値が格納されているIntel HEXファイルとMotorola Sレコードファイルを読み込み、一致しないレコードは通常拒否します。


ITに関する専門家のアドバイス

  • 消去済みまたはゼロで埋められたブロックは、決して検証対象にしないでください。合計の計算はゼロ以外の値から開始するか、その補数を格納することで、0xFFまたは0x00バイトで埋められた空のフラッシュメモリではチェックが失敗するようにします。
  • 合計とXOR演算ではバイトの順序は無視されます。レガシーリンクでバイト順序が強制される場合は、長さフィールドとシーケンス番号を追加して、スワップ、ドロップ、または重複したフレームを検出できるようにします。

7. チェックデジット:GS1チェックデジットの計算方法とその重要性

チェックデジットは、業界で最も古く、最も広く用いられているチェックサムです。人が入力し、機械が読み取る識別子の末尾に位置します。ロット、シリアル番号、場所、出荷など、あらゆる情報が識別子によって参照されるため、チェックデジットはトレーサビリティの基盤となります。

GS1チェックデジットの計算方法

GS1では、GTIN-8、GTIN-12、GTIN-13、GTIN-14、GLN、SSCCを含むすべての固定長数値識別キーにチェックデジットが必要です。アルゴリズムは10を法とする加重和です。重みは3と1が交互に適用され、チェックデジットの次の桁には常に重み3が割り当てられます。

  1. チェックデジットを除いたキーの数字を書き出してください。
  2. 右端から始めて、数字を交互に3と1で掛けます。
  3. すべての桁の積を合計します。
  4. チェックデジットとは、合計値を次の10の倍数にするための数値です。合計値が既に10の倍数である場合、チェックデジットは0になります。

Written as a formula, the check digit [latex]C[/latex] uses the digits [latex]d_i[/latex] of the body, counted from the right. The weight is [latex]w_i = 3[/latex] for odd [latex]i[/latex] and [latex]w_i = 1[/latex] for even [latex]i[/latex].

[latex]\displaystyle C = \left(10 – \left(\sum_{i=1}^{n} w_i d_i \bmod 10\right)\right) \bmod 10[/latex]

GTIN-13 本体 400638133393 の計算例です。左から数えると、右端の本体桁が右から奇数番目の位置にあるため、重みは 1、3、1、3 となります。

桁 4 0 0 6 3 8 1 3 3 3 9 3
重さ 1 3 1 3 1 3 1 3 1 3 1 3
製品 4 0 0 18 3 24 1 9 3 9 9 9

The products add up to 89. The next multiple of 10 is 90, so the check digit is [latex]C = (10 – (89 \bmod 10)) \bmod 10 = 1[/latex] and the complete GTIN-13 is 4006381333931. The same rule applies to an SSCC. The 17-digit body 34012345000000001 sums to 43, which gives [latex]C = (10 – (43 \bmod 10)) \bmod 10 = 7[/latex] and the SSCC 340123450000000017.

チェックデジットがキャッチするもの

この表は、GS1方式と3つの代替方式を比較したものです。GS1とLuhnの数値は、ランダムな鍵を用いたシミュレーションによって確認されています。VerhoeffとDammの特性については、それぞれの原著論文に記載されています。

エラーの種類 GS1 mod 10(重量3と1) ルン対10 フェルホフ くそっ
一桁の置換 すべて検出されました すべて検出されました すべて検出されました すべて検出されました
隣接転置 異なる数字の交換のうち、約11パーセントは5の差がある数字のペアを除くすべて 09と90を除くすべて すべて検出されました すべて検出されました
ランダムな多桁のゴミ 約90パーセントが検出 約90パーセントが検出 約90パーセントが検出 約90パーセントが検出

GS1の重み付けは、利用可能なスキームの中で最も強力なものではありません。GS1キーには必ずこの重み付けを使用する必要があります。自分で定義する識別子には、より強力なスキームを選択してください。

有効なチェックデジットは、存在そのものについては何も示しません。それは、番号が正しく構成されていることを示すだけです。GTINが割り当てられていること、この製品に属していること、またはマスタデータで有効になっていることを示すものではありません。算術チェックと並行して、マスタデータの検証も実施してください。

VINチェックデジットの9桁目

北米では、49 CFR 565 により、17 文字の VIN の 9 桁目にチェック デジットが必要です。各文字は数字に翻字され、位置の重み (8、7、6、5、4、3、2、10、0、9、8、7、6、5、4、3、2) で乗算されます。これらの積を合計します。11 で割った余りがチェック デジットとなり、余りが 10 の場合は文字 X で表されます。

[latex]\displaystyle C = \left(\sum_{i=1}^{17} t_i w_i\right) \bmod 11[/latex]

Here [latex]t_i[/latex] is the transliterated value and [latex]w_i[/latex] is the weight of position [latex]i[/latex].

ヨーロッパ由来のVINの多くは有効なチェックデジットを持たないため、北米の検証ルールでは自動的に拒否してはなりません。実装のための簡単なテスト:17個の1で構成されるVINはチェックデジット1を生成する必要があります。ルールのテキストは 49 CFR 565.15.

他にも遭遇する制度があります

  • 書籍に付いているEAN-13バーコードにはISBN-13が付与されており、GS1アルゴリズムが使用されています。従来のISBN-10はmod 11方式を採用していました。
  • クレジットカード番号とIMEI番号は、IBMのハンス・ピーター・ルーンが1954年の特許出願で説明したルーンアルゴリズムを使用しています。
  • IBANはISO/IEC 7064のMOD 97-10を使用します。
  • ISO 6346規格に基づく輸送コンテナ番号は、チェックデジットで終わります。

内部部品番号およびシリアル番号のチェックデジットの設計

多くのシステムは独自の識別子を考案し、さらに独自のチェック機能を追加しています。しかし、独自の方式では転置を見落としがちで、これはよくある入力ミスです。特別な理由がない限り、公開されている方式を使用してください。

  • 確立された公開済みのアルゴリズムを選択してください。数値識別子には、DammアルゴリズムまたはVerhoeffアルゴリズムが適しています。ISO/IEC 7064では、数値、アルファベット、英数字の文字列に対応する純粋システムとハイブリッドシステムが定義されており、その中にはMOD 11-2、MOD 37-2、MOD 97-10などがあります。
  • 識別子の長さを固定し、チェック文字を最後に配置してください。
  • Oと0、Iと1など、見た目が似ている文字をアルファベットから削除するか、あるいはスキーム内で明示的に処理する。
  • すべてのシステムが同じルールを実装するように、テストベクトルを含む管理文書でアルゴリズムを定義する。
  • 単一置換、隣接転置、双子エラー、および音声入力が存在する場合の音声エラーなど、関心のあるエラーの種類に対して、このスキームをテストしてください。
  • 新しい分類体系には、重要でない番号を使用することを検討してください。そうすることで、分類が変更された際に番号を振り直す必要がなくなります。
  • ERP、MES、ラベルソフトウェア、PLCスクリプトなど、すべての入力ポイントで検証を実施してください。あるシステムで有効なチェックが、他のシステムでは無視される可能性があります。

チェックデジットを検証するデバイスとツール

装置またはツール チェック内容 なぜそれが役立つのか
バーコードスキャナーとデコーダー デコード時のEANまたはUPCチェックデジット 読み間違いは破棄され、ホストシステムには到達しない。
ラベルソフトウェアとプリントサーバー ラベル印刷前のキーのチェックデジット 入力ミスのあるGTINまたはSSCCは、物理的なラベルにはなりません。
決済端末 カード番号のLuhn数字 ネットワーク呼び出しの前に、入力ミスは拒否されます。

ヒント

  • チェックデジットは、テスト済みのライブラリ関数1つから生成し、すべてのシステムで再利用してください。チェックデジットを手入力することは絶対に避け、下記の付録Aのテストベクトルをライブラリに同梱してください。
  • 識別子は固定長のテキストとして保存し、GTIN-14およびSSCCキーの先頭のゼロが保持されるようにしてください。ラベル印刷、受領スキャン、ERPインポートなど、すべての入力ポイントでチェックデジットを検証してください。

8. バーコードスキャンエラー:原因、検証方法、および修正方法

バーコードスキャンエラーは、大きく3つの種類に分類されます。読み取り不能は処理を停止させ、時間のロスにつながります。読み取りミスは、一見有効に見えるものの、実際には誤った値を返します。誤った読み取りは、例えば隣接するラベルなど、誤ったアイテムから有効な値を返します。読み取りミスは最も危険な種類であり、シンボル体系に組み込まれたチェック機能は、こうしたミスの発生を最小限に抑えるために存在します。

シンボル体系に組み込まれたチェック

象徴学 内蔵チェック コメント
EAN-13、UPC-A、ITF-14 GS1 mod 10 チェックデジット エンコードされたデータの一部
コード128およびGS1-128 必須のmod 103チェックキャラクター シンボルを保護し、リーダーがそれを削除します。内部のGS1キーは、独自の10桁のモジュールを保持しています。
コード39 オプションのmod 43チェックキャラクター プリンターとリーダーの両方を制御する場合は、これを有効にしてください。
インターリーブ 2/5 オプションモジュール10 部分的な読み取りを避けるため、リーダーの想定長を固定してください。
データマトリックスとQRコード リード・ソロモン誤り訂正 損傷したモジュールを修理します。第15章を参照してください。

読書は質の高さとは同義ではない

シンボルをデコードできるスキャナーは、そのシンボルが正常であることを証明するものではありません。品質が不十分なシンボルは、今日はデコードできても、輸送中にラベルが擦れて破損すると、正常に機能しなくなる可能性があります。検証者は、印刷品質を基準と比較して評価し、等級を割り当てます。

シンボルタイプ 採点基準 コメント
ラベル上の線状記号 ISO/IEC 15416、2025年版 4.0から0.0までの成績(AからFとも表記される)
ラベル上の二次元シンボル ISO/IEC 15415、2024年版 AからFまでの成績
部品に直接マーキングを施す方法(ドットピン加工、レーザー加工、エッチング加工) ISO/IEC 29158(旧技術報告書ISO/IEC TR 29158) 異なる照明を使用しているため、ISO/IEC 15415規格の等級とは比較できません。

検証者は適合性標準テストカードを用いて校正を行う必要があります。アプリケーション規格または顧客によって、許容される最低グレードが定められます。ご使用のシンボルタイプに関する最新のGS1一般仕様および各分野の規則をご確認ください。

原因と対策

原因 症状 修理
印刷コントラストが低い、または不適切な基材 低グレード、断続的な読み取り不能 リボンまたは基材を交換し、印刷濃度を調整し、プリンターで確認する。
静穏区域違反 ラベルの端でミス ラベルのレイアウトを修正し、テンプレートチェックを追加します。
X軸の寸法がプリンターの解像度と一致していません 棒グラフが合体したり、隙間が消えたりする X軸の寸法は、プリンターのドット数で整数になるように選択してください。
リーダー構成 有効化されているが未使用のシンボル体系からの誤読 必要なシンボルのみを有効にし、長さを固定し、チェックデジットを検証する
直接マークのグレアまたは低変調 不安定な読み取り マークに適した照明を使用し、ISO/IEC 29158に準拠して検証する。
輸送中の損傷 受信機側の故障 より高い補正レベルの2Dシンボルを使用し、ラベルをオーバーラミネートで保護してください。

各スキャンステーションで1つのルールを適用する。デコード、チェックデジットの検証、想定されるキーとのフォーマットの照合を行い、その後で初めて値を受け入れる。いずれかのステップでスキャンが失敗した場合は、定義された反応がトリガーされる。誰もカウントしないリトライループをトリガーしてはならない。

実世界での応用に関するヒント

  • 測定基準と検証装置の設定とともに、検証済みの最小シンボル等級をラベル仕様書に記入してください。ライン上でスキャンできるシンボルは、スキャンできることを示しているだけで、マージンがあることを示しているわけではありません。
  • ラベルテンプレートでは、静音領域を厳密なレイアウト制約として扱います。実際のステーションの照明条件と読み取り角度の下で、ISO/IEC 29158に準拠した部品マークの直接テストを実施します。

9. ラベルの誤りを防ぐ方法

ラベルの誤りは、最も一般的で目につきやすいデータ障害の一つです。これには複数の原因があり、チェックサムではその一部しか対処できません。対策を選択する前に、原因を特定することが重要です。

故障モード 例 Control チェックサムの役割
誤ったデータが印刷されました 印刷ジョブ作成後に注文データが変更されました。 公開されたソースから印刷し、印刷されたペイロードを期待されるレコードと比較する チェックデジットはキーを検証し、比較によって間違ったキーを検出します。
テンプレートまたはバージョンが間違っています 時代遅れのレイアウトと古い規制文言 ドキュメント管理下にあるリリーステンプレートをハッシュでロードする リリース記録に保存されているテンプレートファイルのハッシュ値
正しいラベルが間違った製品に貼られている ロール交換時にプリンター内に別の製品のラベルが残る ラインクリアランス、ロール調整、アプリケーションでのスキャンマッチング チェックデジットと、想定されるGTINまたはシリアル番号との一致を確認します。
ラベルが紛失または誤って貼られている アプリケーターがラベルをスキップしました 存在検知、視覚チェック いいえ、別の制御が必要です
シリアル番号が重複しています 再版は連載を再利用している 中央シリアル割り当て、一意性制約 いいえ、チェックデジットは重複を検出しません
判読不能な記号 低コントラストプリント 最低グレードのインライン検証器 記号チェックとグレーディング

クローズドループラベルプロセス

  1. ラベルテンプレートとそのデータソースを、変更管理下でリリースします。リリース記録にテンプレートファイルのハッシュ値を保存してください。
  2. ジョブ開始時に、プリンタまたはラベルサーバは読み込まれたテンプレートのハッシュ値を計算し、リリースレコードと比較します。ハッシュ値が一致しない場合、ジョブの印刷はブロックされます。
  3. ペイロードは、信頼できる単一の記録から構築してください。チェックデジットは、テスト済みのライブラリを使用してソフトウェアで生成し、決して手入力しないでください。
  4. 印刷後、インラインでシンボルを確認します。指定された最低基準を下回る場合は、ラベルは不合格となります。
  5. 印刷されたラベルをスキャンし、デコードされた内容をこのユニットの記録情報と比較します。ラベルが一致しないユニットはすべて拒否してください。
  6. 適用後、梱包または出荷ステーションで再度スキャンしてください。2回目のチェックにより、印刷後に発生する可能性のあるミスを検出できます。
  7. 各処理の終了時に、集計結果を照合してください。発行済み、貼付済み、廃棄済み、返却済みのラベルの合計数が一致する必要があります。

このシーケンスでは、3種類のチェックが行われます。ハッシュによって正しいテンプレートであることが証明されます。チェックデジットとフォーマットによって、キーが正しく構成されていることが証明されます。期待されるレコードとの比較によって、このキーがこのユニットにとって正しいものであることが証明されます。正しく構成されているものの、誤っているラベルを検出できるのは、3つ目のチェックだけです。

ヒント

  • ラベル交換の前に必ずラインクリアランスを実行してください。 古いロール紙、印刷済みの残り物、および以前のテンプレートを取り除き、テンプレートのハッシュ値がリリースレコードと一致した後にのみ印刷ジョブを開始するようにしてください。
  • 印刷されたラベルを注文記録と照合し、停止条件を厳密に設定します。停止条件が正常に機能することを確認するため、各シフトの開始時に、不良ラベルを1枚挿入します。

10. ネットワークおよびフィールドバスのチェックサム

機械はプロトコルで定義されたチェックによってデータを保護します。これらのチェックは、リンクを1ホップずつ保護しますが、データがPLCメモリやデータベースに格納された後は保護しません。

インターネットのチェックサム

IPヘッダー、TCP、UDPでは、RFC 1071で説明されている16ビットの補数和が使用されます。これは計算コストが低い反面、脆弱です。16ビットワードの入れ替わりや、一部の補償エラーを見落としてしまいます。リンク層では、より強力なCRCが下位層に追加されるため、この脆弱なチェックサムが存続しているのです。

FletcherとAdler-32は2つのアキュムレータを持つ単純な和なので、通常の和よりも多くの順序エラーを検出できます。Adler-32はzlibライブラリに含まれています。短いメッセージには弱いという欠点があります。

Modbus RTU

Modbus RTUフレームは16ビットCRCで終わります。多項式は0x8005で、反射形式0xA001が使用され、初期値は0xFFFFです。CRCの下位バイトが最初に送信されます。Modbus ASCIIでは、代わりに8ビットの縦方向冗長性チェックというよりシンプルな方式が採用されています。

以下は、スレーブ1のアドレス0から始まる10個の保持レジスタを読み取る完全なRTUリクエストです。CRC値は0xCDC5で、これはC5に続いてCDとしてワイヤ上を伝送されます。

01 03 00 00 00 0A C5 CD

CANとCAN FD

従来のCANでは、多項式0x4599を用いた15ビットCRCが使用されています。これにより、固定フレーム長の場合、ハミング距離は6となり、ランダムに分布した5ビットのエラーを検出できます。CAN FDでは、16バイトまでのペイロードには17ビットCRC、それ以上のペイロードには21ビットCRCが使用され、いずれもハミング距離6を維持するように選択されています。

ビットスタッフィングは状況を複雑にする。CAN in Automationでは、スタッフィングによって古典的なフレーム内の一部のビットパターンの実効ハミング距離が減少する可能性があることが指摘されており、CAN FDではそのギャップを埋めるためにスタッフィングビットカウンタが追加されている。詳細は CiAによるCANフレームにおけるCRCの説明.

イーサネットベースのバス

PROFINET、EtherCAT、EtherNet/IP、およびModbus TCPは、標準のイーサネットフレームでデータを伝送します。各フレームの末尾には32ビットのフレームチェックシーケンス(CRC-32)が付加されており、デバイスは各ホップでこのシーケンスをチェックします。シーケンスに異常のあるフレームは破棄されます。

PROFIBUSやIO-Linkなど、他のバスでは独自のフレームチェックが定義されています。プロトコル仕様書をよく読み、FMEAにチェック内容を記録してください。安易に推測しないでください。

イーサネットベースのバス
イーサネットベースのバスは、産業用途における信頼性の高いデータ伝送のために、CRCチェックを備えた標準的なイーサネットフレームを使用します。

バスの屋根の上での安全対策

PROFIsafe、CIP Safety、EtherCAT上のFail Safeなどの安全プロトコルは、基盤となるバスをブラックチャネルとして扱います。このチャネルは、メッセージを破損させたり、遅延させたり、繰り返したり、順序を変えたりする可能性があります。安全レイヤーは独自のCRC、シーケンスカウンタ、ウォッチドッグを追加することで、安全機能がリンクのチェックに依存しないようにしています。

この教訓を自身の設計に活かしてください。リンクレベルのCRCは、レシピがメモリ上に保持されている間や、OPC UAサーバーとMESを経由している間は、レシピを保護しません。安全性や品質に影響を与えるすべてのパラメータセットについて、アプリケーションレベルでエンドツーエンドのチェックを追加してください。

ヒント: 1 ゲートウェイは反対側でCRCを再計算するため、メモリ内の破損は検出されません。安全に関わるすべての信号と設定値について、ゲートウェイ間でカウンタを備えたエンドツーエンドのCRCを追加してください。

 

11. CRCエラーチェックとは何ですか?

A cyclic redundancy check treats the message as a long binary number, which is a polynomial over [latex]\mathrm{GF}(2)[/latex]. It divides that polynomial by a fixed generator polynomial and keeps the remainder. The remainder is the CRC, usually 8, 16 or 32 bits long. The sender appends it, the receiver divides again, and any mismatch signals corruption.

具体的な例

Take the 3-bit generator 1011, which stands for [latex]x^3 + x + 1[/latex], and the message 1101. Append three zeros to get 1101000. Then divide by repeated XOR with the generator.

1101000
1011
-------
0110000
 1011
-------
0011100
  1011
-------
0001010
   1011
-------
0000001

余りは001なので、送信ワードは1101001です。このワードを1011で割ると余りは000になります。任意の1ビットを反転すると、余りはゼロ以外になります。実際のCRCは8~32ビットのジェネレータを使用し、ハードウェアまたはルックアップテーブルで動作しますが、原理は同じです。

CRCが保証するもの

  • ジェネレーターが複数の項を持つ限り、すべてのシングルビットエラー。
  • すべてのバーストエラーはCRC幅を超えない。
  • Every odd number of bit errors, for generators that contain the factor [latex]x + 1[/latex]. The common 16-bit polynomials qualify. The Ethernet CRC-32 does not.
  • Longer bursts and random patterns pass with a probability of roughly [latex]2^{-n}[/latex].
  • 多項式とメッセージの長さに依存するハミング距離。

一致しなければならないパラメータ

2つの当事者が同じCRCを計算するのは、幅、多項式、初期値、入力反射、出力反射、最終XORの6つのパラメータに合意した場合のみです。CRC-16やCRC-32のような名前は曖昧です。 Reveng CRCカタログ 一般的に使用されるパラメータセットを一覧表示します。ASCII文字列「123456789」のチェック値を使用して実装を確認してください。

変異体 多項式 熱 内と外を映し出す 最終XOR 値を確認する 典型的な使用例
CRC-8 0x07 0x00 いいえ 0x00 0xF4 汎用8ビット小切手、ATMヘッダー
CRC-8/最大 0x31 0x00 はい 0x00 0xA1 DallasおよびMaximの1-Wireデバイス
CRC-16/MODBUS 0x8005 0xFFFF はい 0x0000 0x4B37 Modbus RTU
CRC-16/CCITT-FALSE 0x1021 0xFFFF いいえ 0x0000 0x29B1 シリアルプロトコル、ブートローダー
CRC-16/XMODEM 0x1021 0x0000 いいえ 0x0000 0x31C3 XMODEM、一部のブートローダー
CRC-32 0x04C11DB7 0xFFFFFFFF はい 0xFFFFFFFF 0xCBF43926 イーサネット、ZIP、PNG
CRC-32C 0x1EDC6F41 0xFFFFFFFF はい 0xFFFFFFFF 0xE3069283 iSCSI、ストレージ、ハードウェアに関する説明

メッセージ長による多項式の選択

CRCの強度は、多項式とメッセージの長さに依存します。クープマンは、 32ビットCRCの研究 IEEE 802.3 多項式は、最大長のイーサネット メッセージにおいてハミング距離がわずか 4 にしか達しないのに対し、他の多項式は 6 に達することがわかっています。短いメッセージを使用する組み込みネットワークでは、このギャップはさらに大きくなり、広く使用されている一部の 16 ビット多項式は、使用されている長さにおいて性能が低下します。

  • 多項式を選択する前に、メッセージの長さの範囲を固定してください。
  • 最大長で必要なハミング距離を決定します。安全性が重要なアプリケーションでは、一般的に距離6が必要です。
  • 多項式は、民間伝承やコードサンプルではなく、公表されている網羅的探索の結果から取得してください。

CRCの限界

CRCはメッセージの線形関数です。メッセージとそのCRCが与えられれば、秘密鍵がなくても誰でもメッセージを改ざんして一致するCRCを計算できます。したがって、CRCは発信元を証明するものではなく、意図的な改ざんを防ぐこともできません。第13章と第14章では、それを阻止できるツールについて解説します。

CRCを搭載したデバイス

デバイス CRCが位置する場所 述べる
UHF RFIDタグ(EPC Gen2) タグ返信に対する16ビットCRC ドックドアとコンベアでの読み取りエラーを検出します
USBデバイス トークンパケットには5ビットCRC、データパケットには16ビットCRCを適用 ホストは失敗したパケットを再試行する
SDカードとmicroSDカード コマンドには7ビットCRC、データブロックには16ビットCRCが適用されます。 組み込み製品におけるログとファームウェアの共通ストレージ

ヒント: CRCは、ペイロードだけでなく、ヘッダー、アドレス、長さの各フィールドも対象とするようにしてください。ペイロードのみを対象としたCRCでは、アドレスや長さが破損している場合に通過させてしまう可能性があります。

12. 非暗号化ハッシュ関数

xxHash、MurmurHash、CityHash、FNVなどの非暗号化ハッシュ関数は、セキュリティを犠牲にして速度を向上させます。これらは最新のCPUでメモリに近い速度で動作し、入力値を均等に分散する32ビット、64ビット、または128ビットの値を生成します。

意図的に競合する入力を作成する者に対しては、何の保護も提供しない。

製品データに役立つ

  • PLMとPDMの同期中に、ファイルを転送することなく変更されたファイルを検出します。
  • 検査システムから得られる大規模なテストデータセットと画像アーカイブの重複排除。
  • 設定のエクスポートファイルと保存済みの設定ファイルを比較して、変更点がないか確認します。
  • MESおよび分析パイプラインにおけるキャッシュとルックアップテーブルのキー設定。

衝突リスク

The birthday bound sets the risk. For [latex]k[/latex] items and a [latex]b[/latex]-bit hash, the probability of at least one collision is approximately:

[latex]\displaystyle p \approx 1 – e^{-k^2 / 2^{b+1}}[/latex]

64ビットハッシュと100万個の異なるアイテムの場合、2つのアイテムが衝突する確率は約1億分の2.7です。一方、32ビットハッシュと10万個のアイテムの場合、衝突が発生する確率は69%と、衝突しない可能性の方が高くなります。

インベントリには64ビット以上のビット数を選択してください。一致した場合は強力なヒントとして扱い、結果が重要な場合は完全なデータを比較して確認してください。これらの関数をファイルの真正性を証明するために使用しないでください。

エンジニアのためのヒント

  • 暗号化されていないハッシュは、自社システム内での変更検出と検索にのみ使用してください。在庫管理には64ビット以上を保持し、一致が判断の根拠となる場合は必ず完全なデータを比較してください。
  • プログラミング言語の組み込みハッシュ関数から得られた値を保存しないでください。Pythonの文字列ハッシュなど、一部のハッシュ関数は実行ごとに値が変わります。固定シードを持つ名前付きアルゴリズムから得られたダイジェストを永続化してください。
6-256
安全な製品設計のために、暗号学的ハッシュ関数とその耐性特性を理解する。

13. 暗号学的ハッシュとSHA-256チェックサムの検証方法

この章では、技術的かつ実践的な詳細について掘り下げていきます。

暗号学的ハッシュ関数は、次の3つの攻撃に耐えなければならない。

  • 原像抵抗とは、特定のダイジェストに対応する入力が見つからないことを意味する。
  • 第二原像抵抗とは、与えられた入力のダイジェストと一致する別の入力を誰も見つけられないことを意味する。
  • 衝突耐性とは、誰も同じダイジェストを持つ2つの入力を見つけることができないことを意味します。
アルゴリズム 出力 状態 使用
MD5 128ビット 衝突は実際に発生する可能性がある 偶発的な破損の検出にのみ許容される。新規設計では使用を避けること。
SHA-1 160ビット 2017年に公開された実用的衝突試験。NISTは2030年12月31日までに廃止する予定。 レガシーシステムのみ
SHA-256、SHA-384、SHA-512 256、384、512ビット 実際に攻撃された事例は知られていない。 リリースハッシュ、ファームウェアダイジェスト、署名のデフォルト値
SHA-3 (FIPS 202) 224~512ビット SHA-2とは異なる内部設計 多様性を求める代替家族
ブレイク2、ブレイク3 最大512ビット、デフォルトは256ビット 最新かつ高速だが、FIPS承認アルゴリズムではない 速度が重要で承認が不要な大容量ファイル

NISTはSHA-1廃止計画について説明している。 SHA-1のお知らせページSHA-256ダイジェストは約128ビットの衝突耐性を持ち、これは実際の攻撃をはるかに凌駕する。

SHA-256チェックサムを検証する方法

必要なのは、信頼できる情報源からの期待されるダイジェストと、ファイルです。ダイジェストはローカルで計算し、文字列全体を比較してください。最初の数文字だけを比較すると、保護機能のほとんどが失われてしまいます。

# Linux sha256sum firmware.bin sha256sum -c SHA256SUMS # macOS shasum -a 256 firmware.bin # Windows PowerShell Get-FileHash .\firmware.bin -Algorithm SHA256 # Windows コマンドプロンプト certutil -hashfile firmware.bin SHA256

SHA256SUMSファイルには、ファイルごとに1行、ダイジェスト、2つのスペース、ファイル名が格納されます。コマンドsha256sum -cは、このファイルを読み込み、各ファイルに対してOKまたはFAILEDを表示します。ツールを使用する前に、付録Bのテストベクトルと照らし合わせて、そのツールが信頼できるものであることを確認してください。

ファイルの隣にある要約はほとんど

ファイルを置き換えることができる攻撃者は、そのファイルの隣にあるダイジェストも置き換えることができます。公開されたダイジェストは、ダウンロードの失敗から保護しますが、悪意のあるミラーサイトや侵害されたWebサーバーからは保護しません。信頼性を確保するには、以下のいずれかの方法を使用してください。

  • 要約は、別の信頼できるチャネル(例えば、HTTPS経由のサプライヤーポータル、または署名済みの購入書類など)を通じて入手してください。
  • 独自に取得したフィンガープリントを持つキーで署名されたダイジェストファイルを検証します。たとえば、gpg –verify SHA256SUMS.asc SHA256SUMS を使用します。
  • デバイスまたはインストーラーにコード署名を検証させることで、人間が文字列を比較する必要がなくなります。

バッチレコードと監査証跡のためのハッシュチェーン

ハッシュチェーンによってログの改ざん防止が可能になります。各レコードには前のレコードのハッシュが格納され、そのレコード自身のハッシュは、その内容と前のレコードの値の合計をカバーします。

[latex]\displaystyle H_n = \mathrm{SHA}\text{-}256(H_{n-1} \parallel r_n)[/latex]

Here [latex]r_n[/latex] is record number [latex]n[/latex].

いずれかのレコードを変更すると、それ以降のハッシュはすべて一致しなくなります。チェーンの順序と完全性は、最新のハッシュがログを保持するシステムの外部にアンカーされている場合にのみ証明されます。アンカーとしては、定期的な署名、RFC 3161に基づく信頼できるタイムスタンプ、またはハッシュを顧客や監査担当者に送信する方法があります。アンカーがない場合、書き込み権限を持つ人は誰でもチェーン全体を再計算できます。

14. キーによるチェックサム、署名、および真正性

これまでのところ、すべて公開されています。誰でも、改ざんされたメッセージのCRCやSHA-256を計算できます。意図的な改ざんを防ぐには、チェックに秘密鍵または機密情報を使用する必要があります。

機構 仕組み 証明する 鍵の取り扱い 典型的な使用例
HMAC(RFC 2104) ハッシュと共有シークレットの組み合わせ メッセージは変更されておらず、鍵の所有者によって作成されたものです。 両者が共有する秘密 システムとデバイス間の認証済みメッセージ
CMAC(NIST SP 800-38B) MACはブロック暗号(通常はAES)に基づいて構築される。 HMACと同じ 秘密情報として共有されており、AESエンジンを搭載したハードウェアに適しています。 組み込みデバイス、セキュアエレメント
AEADタグ(AES-GCM、ChaCha20-Poly1305) 暗号化と認証タグの組み合わせ 機密性、完全性、および原産地 共有キーとメッセージごとの固有のnonce 暗号化されたテレメトリとアップデート
デジタル署名(ECDSA、Ed25519、RSA) 秘密鍵はハッシュに署名し、公開鍵はそれを検証する。 完全性と出所は、公開鍵を持つ者なら誰でも検証可能 ハードウェアセキュリティモジュール内の秘密鍵、デバイス内の公開鍵 ファームウェア、証明書、規制対象記録

共有秘密鍵方式では、すべての検証者が鍵を共有することになります。数十のテストステーションや数千のデバイスに鍵が分散していると、保護もローテーションも困難です。署名方式では、この問題を逆転させます。ステーションやデバイスは公開鍵のみを保持し、秘密鍵はリリース機関のハードウェアセキュリティモジュールに格納されます。

秘密鍵とメッセージをSHA-256でハッシュ化してMACを作成しないでください。SHA-2では、この構成に対して長さ拡張攻撃が発生する可能性があります。HMACはまさにこの攻撃を回避するために存在します。

セキュアブート
セキュアブートと署名付きファームウェアは、エンジニアリングにおける製品の完全性とセキュリティを向上させます。

製品環境におけるユースケース

    • 署名付きファームウェアとセキュアブート。ブートROMはブートローダーの署名を検証し、ブートローダーはアプリケーションを検証します。CRCはフラッシュメモリとRAMの実行時整合性を確保する上で依然として重要な役割を果たしますが、署名に取って代わるものではありません。
  • スペアパーツの真正性は別の問題です。有効なチェックデジットを持つシリアル番号は、誰でも計算できるため、真正性を証明するものではありません。認証には秘密情報が必要です。例えば、セキュリティエレメント内の暗号化タグや、サーバーが検証でき、シリアル番号から誰も推測できないコードなどです。
  • ラベルには偽造防止データを含めることができます。GS1は、データキャリアに鍵とともに格納されるデジタル署名のためのアプリケーション識別子AI 8030を定義しています。
  • 規制対象となる記録には、特別な注意が必要です。暗号署名は電子記録をサポートするものですが、21 CFR Part 11 に基づく電子署名とは異なります。この規制では、本人確認、署名の意味、および記録との関連性についても規定されています。

錠前、鍵、アクセス機器

機械式錠と電子錠は、エラー検出と認証の違いを示している。

  • ピンタンブラー錠:鍵の溝とピンの高さが一致する必要があるため、錠は物理的な形状を検証します。この形状は事実上共有された秘密であり、それをコピーした人は誰でもアクセスできるようになります。
  • 低コストの非接触型認証情報:読み取りフレームには無線エラーに対するCRCが含まれていますが、これは本人確認には何の役にも立ちません。MIFARE Classicなどの独自の暗号方式に欠陥のある古いカードは複製される可能性があります。最新の認証情報は、AESなどの標準暗号方式を用いたチャレンジ・レスポンス方式を採用しています。
  • Bluetooth Low Energyスマートロック:リンク層は各パケットをAES-CCMで保護し、そのメッセージ整合性コードは鍵付きチェックです。
  • 認証済み消耗品およびアクセサリ:一部のプリンターカートリッジ、バッテリーパック、センサーには、ホストデバイスからの暗号化チャレンジに応答するチップが搭載されています。

2つのプロのヒント

  • アルゴリズムを選択する前に、鍵管理の計画を立ててください。製品ファミリーごとに異なる鍵を使用し、セキュリティ保護された端末で鍵を挿入し、ハードウェアセキュリティモジュールに保管し、シリアル番号ごとに鍵挿入のログを記録してください。
  • 認証済みのメッセージにはすべてカウンターまたはナンスを追加してください。これがないと、攻撃者は記録された有効なメッセージを再生できてしまいます。

15. 誤り訂正符号

検出機能はデータに誤りがあることを示し、修正機能はそれを修復します。その代償として冗長性が増加しますが、利点は再スキャン、再送信、再作業のステップなしに処理が継続されることです。

コード 原理 どこで出会うか
パリティビットを追加したハミング符号(SECDED) シングルビットエラーを訂正し、ダブルビットエラーを検出します。 産業用PCおよびマイクロコントローラのRAMとフラッシュメモリにおけるECCメモリ
リード・ソロモン バーストを適切に処理するシンボルベースの補正 QRコード、データマトリックスECC200、光ディスク、ストレージシステム
BCH バイナリマルチビット訂正 NANDフラッシュコントローラ
LDPC 理論限界に近い反復復号 SSDコントローラー、無線規格

損傷後も残る痕跡

QRコードには、L、M、Q、Hの4つの訂正レベルがあり、それぞれコードワードの約7%、15%、25%、30%を復元します。Data Matrix ECC 200は、シンボルサイズごとに一定量の冗長性を持つリード・ソロモン符号を使用しています。レーザーマーキングされた部品、汚れた部品、擦り傷のある部品は直接的に恩恵を受け、サプライチェーンを通過するラベルも同様です。

エラー訂正機能はマークの堅牢性を高めますが、同時に劣化を隠蔽する可能性もあります。データマトリックスシンボルが破損していても、デコード自体は正常に行われる場合があり、その一方で、予備のエラー訂正容量は徐々に減少していきます。ISO/IEC 15415に基づく検証では、未使用のエラー訂正容量を等級パラメータとして報告します。印刷およびマーキングの品質を監視するには、読み取り結果ではなく、検証器の等級をモニタリングしてください。

組み込み製品におけるECCメモリとフラッシュメモリ

車載用および産業用マイクロコントローラは、フラッシュメモリとRAMをECCで保護することがよくあります。ハードウェアは1ビットの反転を訂正し、その数をカウントします。訂正済みエラーカウンタを読み取り、ログに記録します。カウントの増加は、セルの劣化、電源供給の不安定性、または放射線による障害を示します。訂正後に計算されるCRCはクリーンなデータを参照するため、カウンタは初期段階で得られる唯一の信号となります。

ECCメモリ
ECCメモリは、フラッシュメモリとRAMのエラーを検出して訂正することで、組み込み製品の信頼性を向上させます。

エラー訂正に依存するデバイスとメディア

  • レーザーマーキングとドットピーニング加工が施された部品には、リード・ソロモン符号を使用するデータマトリックスECC 200シンボルが刻印されているため、マーキングに傷がついていても解読可能です。
  • サーバー、コントローラー、車載用マイクロコントローラー:ECCメモリは通常、1ビットエラーを訂正し、2ビットエラーを検出します。
  • SSD、eMMC、SDカード:コントローラはフラッシュページにBCHまたはLDPCコードを適用し、その修正ビットカウンタは摩耗インジケーターとして機能する。

ヒント

  • マーキング方法と環境に基づいて、エラー修正レベルを選択してください。擦り傷や部分的なマスキングなど、意図的な損傷を与えて選択したレベルをテストし、結果を評価してください。
  • ECCメモリ、フラッシュメモリ、シンボルデコードの訂正エラー数を記録します。増加傾向は早期警告となります。なぜなら、まだ動作しているユニットでも、訂正能力が残っていない可能性があるからです。

16.アルゴリズムの比較

この表は、各ファミリーとその位置づけをまとめたものです。速度の数値はプラットフォームによって異なるため、ご自身のターゲットハードウェアで測定してください。

アルゴリズム 出力サイズ 検出する 相対速度 意図的な変更に対するセキュリティ 典型的な使用例
パリティビット 1ビット 奇数回のフリップ 最速 なし 従来のシリアルリンク
8ビット和またはXOR 8ビット 単純なエラーは発生するが、構造的なエラーへの対応は弱い。 非常に速い なし NMEAセンテンス、Intel HEXレコード
GS1 mod 10 チェックデジット 1桁 すべて一桁の誤り、ほとんどが転置 インスタント なし GTIN、SSCC、GLN
フェルホフ、ダム 1桁 すべての1桁の誤りおよび隣接する転置 インスタント なし 内部識別子
ISO/IEC 7064ファミリー 1文字または2文字 システムによります インスタント なし IBAN(内部識別子)
CRC-16 16ビット 最大16ビットのバースト、ハミング距離は多項式と長さで設定 非常に高速、ハードウェアサポートは一般的 なし Modbus RTU、ショートフレーム
CRC-32、CRC-32C 32ビット 最大32ビットのバースト、ハミング距離は多項式と長さで設定 非常に高速なハードウェア命令 なし イーサネット、ファームウェアイメージ、ストレージ
xxHash64、xxHash128 64ビットまたは128ビット 偶発的な差異 メモリ速度に近い なし 重複排除、変更検出
SHA-256 256ビット 実用上の目的での変更 高速、多くのCPUでハードウェアサポート 約128ビットの衝突耐性 リリースハッシュ、ファームウェアダイジェスト、監査証跡
SHA-3-256、BLAKE2、BLAKE3 256ビット以上 実用上の目的での変更 速い SHA-256と同じクラス SHA-256の代替手段
HMAC-SHA-256、CMAC 128~256ビット 変化と起源 速い 鍵の機密性による 認証済みメッセージ
ECDSA、Ed25519署名 標準64バイト 変化と起源 署名は遅いが、検証は速い 秘密鍵が保護されている間は強力です ファームウェア、記録、証明書
リード・ソロモン データの約10~30パーセントに冗長性がある。 検出して修正します 適度 なし QRコード、データマトリックス、ストレージ

17. 設計およびエンジニアリング

チェックサムは、最初の部品が製造される前に製品に組み込まれます。これらはリリースプロセスとデータモデルに組み込まれるべきものです。

CADデータ、図面、部品表は順次公開予定です。

PLMまたはPDMシステムは、リビジョンによってリリースを識別します。リビジョンレターには、リリース予定のバージョンが記載されています。リリースされたパッケージのハッシュ値には、リリースされたバイト数が記載されています。これら両方をリリースレコードに保存します。これにより、利用者は受け取ったファイルを検証でき、リビジョンレターでは解決できない問題、つまりリリース後にファイルが置き換えられたり編集されたりした場合の対処が可能になります。

  • リリースされた各ファイル(例えば、STEPモデル、図面PDF、BOMエクスポートなど)について、SHA-256ダイジェストを計算します。
  • すべてのファイルとそのダイジェストを一覧表示したマニフェストに対して、もう一度ダイジェストを計算し、単一の値がパッケージ全体を表すようにします。
  • マニフェストの要約をECOまたはECNレコードと、サプライヤーに送付する送付状に含めてください。
  • 仕入先ポータルまたは製造システムで、受領時に再計算して比較するようにしてください。
  • 設計時構成と製造時構成のBOMエクスポートをハッシュ値で比較します。不一致があれば差異が示され、その後、担当者によるレビューでその原因が説明されます。

部品番号とコネクタの誤り防止

設計によって、後々のミスを防ぐことができます。部品番号にチェックデジットを設けることで、入力ミスをあらゆる段階で検出できます。購入部品、図面、組立品にそれぞれ異なる番号形式を用いることで、ある品目が別の品目と混同されるのを防ぎます。キー付きコネクタや非対称ラベル形式も、物理的な側面において同様の効果を発揮します。

組み込みファームウェアとキャリブレーションデータ

ファームウェアイメージは、自己記述性と自己検証性を備えているべきである。一般的なレイアウトでは、固定ヘッダーが既知のアドレスに配置される。

ヘッダーフィールド 目的
魔法の数字 画像の種類を識別し、誤ったファイルの読み込みを検出します。
フォーマットバージョン ブートローダーが将来のヘッダーレイアウトを解析できるようにする
製品およびハードウェア識別子 別の製品用の有効なイメージの実行を停止します。
ソフトウェアバージョン トレーサビリティとロールバック保護をサポート
画像の長さ チェックの対象となる領域を定義します。
画像のCRC-32 起動時または必要に応じて偶発的な破損を検出します
SHA-256ダイジェストまたは署名 初回実行前に完全性と出所を証明する
定義されたフィルバイト 未使用のフラッシュ領域を決定論的に保持することで、ビルドの再現性を確保します。

EEPROMまたはフラッシュメモリ内のキャリブレーションブロックとコンフィギュレーションブロックにも、同様の規律を適用してください。各ブロックにはCRCを格納してください。チェックが失敗した場合の動作を定義してください。デフォルト設定に戻す、エラーを発生させる、データを黙って使用しないなどです。冗長コピーを保持し、電源喪失時にもデータが保持されるようにブロックを書き込みます。

機能安全の文脈

機能安全規格では、メモリ破損や通信エラーを診断対策が必要な故障モードとして扱います。道路車両向けのISO 26262、産業システム向けのIEC 61508、医療機器ソフトウェア向けのIEC 62304はいずれも、これらの障害をどのように検出するかを示すことを求めています。一般的な対策としては、コードメモリとデータメモリに対するCRCチェック、シーケンスカウンタを用いた保護された通信、冗長ストレージなどが挙げられます。

分析では、診断カバレッジ、つまり測定によって検出される障害の割合を明記する必要があります。32ビットCRCは、システム全体を自動的に99%カバーするわけではありません。カバレッジは、CRCが対象とする範囲、実行頻度、および障害発生時のシステムの動作によって異なります。

ハードウェアに組み込まれた機械的なエラー防止機能

物理的な製品では、コンピュータが登場するずっと以前から、小切手の概念が用いられていました。これらの製品では、部品の形状自体が小切手の値を表しています。

コード付きコネクタM12コネクタにはA、B、D、Xのコードが付いているため、センサーケーブルはイーサネットポートに接続できません。D-subシェルも同じ理由で台形形状を使用しています。医療用ガス継手ピンインデックス安全システムでは、ヨーク上のピンの位置がガスごとに異なるため、間違ったガスのボンベは接続できません。小径医療用コネクタISO 80369シリーズでは、誤接続を防ぐために、経腸栄養や神経軸栄養など、異なる用途向けに異なる形状のコネクタを定義しています。燃料ノズル多くの市場では、ディーゼルノズルはガソリン給油口には大きすぎます。位置決めピンと治具非対称パターンで異なる直径のピンを使用すると、部品は1つの向きにのみ配置できます。合否ゲージプラグゲージは、公差内の穴には合格し、そうでない場合は不合格と判定します。これは、チェックサムを比較するような物理的な合否判定テストです。

エンジニアリングにおけるチェックサムに関するプロのアドバイス

  • まず予防、次に発見。 設計FMEAにおいて、形状、キー付きコネクタ、非対称構造を予防策として活用し、電子的な識別チェックを第2層として追加する。
  • すべてのファームウェアおよびキャリブレーションイメージに、バージョン、長さ、CRCを含むヘッダーを付加し、ブートチェックが失敗した場合の動作を指定します。セーフ状態は設計上の決定事項であり、デフォルト値ではありません。

18. 工業化と製造、ファームウェアのフラッシュ検証方法を含む

工業化によって、設計データは実行可能なプロセスへと変換される。生産段階に到達するデータエラーのほとんどは、この段階で発生する。例えば、レシピの間違い、ラベルテンプレートの間違い、試験限度値の不一致などだ。

マーキングおよびスキャンステーションのエラー防止

  • マーキングの時点でマークを確認し、その後、マークが最初に必要となる場所で再度確認してください。等級付けについては、ISO/IEC 15415、15416、および29158で規定されています。
  • スキャンステーションをゲートとして設定します。PLCは、デコード、チェックデジット、フォーマット、および期待値テストがすべて合格した場合にのみ、次の操作を実行します。
  • 製造ラインで生成されるシリアル番号にチェックデジットを付けることで、再加工ステーションでの手動入力も保護されます。
  • スキャンが失敗した場合は、ステーション、時刻、そして可能な場合はシンボル画像を記録してください。これは第20章のDMAIC作業に役立てられます。

レシピとパラメーター

機械のレシピ、トルクプログラム、溶接スケジュール、試験限界値は、ファイルまたはデータベースの行として保存されます。パラメータ設定が間違っていたり古くなっていたりすると、機械は誤った指示でも正しく動作するため、目に見えない不具合が発生します。

MESまたはPLMに、ハッシュ値とともにゴールデンレコードを保持してください。レシピのダウンロード時および各ロットの開始時に、ステーションソフトウェアはアクティブなレシピのハッシュ値を再計算し、比較します。ハッシュ値が一致しない場合は、ロットの生産が停止します。バス経由でコントローラに送信されるパラメータについては、受信側のコントローラが破損した値で動作しないように、データブロック内にCRCを追加してください。

回線終端でのファームウェアのフラッシュを確認する方法

フラッシングは、溶接やトルク締めなどの工程の一つです。明確な方法、合格基準、そしてシリアル番号ごとの記録が必要です。成功を報告するプログラマーは、単にコマンドが完了したことを示しているにすぎません。

  1. デバイスとツールが対応している場合は、プログラマーの検証オプションを有効にしてイメージをプログラムしてください。
  2. プログラムされた領域を読み出し、制御計画で定義された領域に対してSHA-256またはCRC-32を計算します。その結果をリリース記録のゴールデンダイジェストと比較します。
  3. ユニット固有のデータは別の手順で処理してください。シリアル番号、MACアドレス、および校正値はユニットごとに異なります。これらのデータを全体のイメージダイジェストから除外し、それぞれの記録と照合して検証するか、ユニットデータをパッチ適用して期待されるダイジェストを計算してください。
  4. オプションバイト、ヒューズ、ロックビットを確認してください。ブート構成が間違っている、または読み出し保護が設定されていないにもかかわらず、アプリケーションが正しく動作している場合は、ユニットに欠陥があります。
  5. 実行中のデバイスに対し、アプリケーションプロトコルを介してソフトウェアバージョンと自身のイメージのダイジェストを要求します。多くの製品はハードウェア周辺機器を使用してフラッシュメモリのCRCを計算し、その結果を報告します。これは通信経路のテストにもなります。
  6. 検査結果を、装置のシリアル番号、画像ダイジェスト、およびツールバージョンとともにMESに記録してください。合格記録がない状態で装置を次の工程に進めないでください。
  7. 一定間隔で、既知の不良サンプル(例えば、1ビットが反転した画像など)を用いて、放送局の性能を検証する。これにより、放送局が依然として不良信号を拒否することが証明される。
方法 強さ 時間コスト 制限
プログラマーによる検証 フラッシュ画像を、先ほど書き込んだソース画像と比較します。 低い オプションバイトは対象外です。ツールの実装に依存します。
ステーション上で読み戻しとハッシュ化を行う 実際の内容の独立した検証 大きな画像の場合、読み込みはプログラミングよりも遅いことが多いため、中程度から高い負荷がかかります。 読み出し保護によって禁止される可能性がある読み出しバックを許可する必要がある
デバイスで計算されたCRCがバス経由で報告される 高速で、アプリケーションパスをテストします 低い 偶発的なエラーのみを保護し、それを計算するファームウェアに依存します。
初回起動時のブートローダーによる署名チェック 完全性と原産地を証明する 低い 署名が間違っているが有効なイメージも受け入れるため、バージョンチェックと組み合わせる。

手順の順序に注意してください。読み出し保護を有効にすると、後から読み出すことはできなくなります。まず検証を行い、次にロックを行い、最後にロックビットが設定されていることを確認してください。

試験ステーションおよびツールの記録

トルク、視覚、漏れ、電気特性に関する試験結果は、商業上の証拠であり、場合によっては法的証拠にもなります。プレーンファイルや行として保存された記録は、痕跡を残さずに改ざんまたは消失する可能性があります。

  • シリアル番号、ステーション、時刻、結果、測定値に基づいてレコードハッシュを計算します。
  • レコードを追記専用ストアに書き込むか、第13章で説明されているように、定期的なアンカーを使用してレコードを連結します。
  • 駅の時計を信頼できる時刻情報源と同期させ、タイムスタンプに意味を持たせる。

機械間通信

OPC UAは、セキュリティモード「Sign」と「SignAndEncrypt」を通じて、メッセージの署名と暗号化を提供します。これらのモードは、ステーション間、PLC間、MES間で使用できます。トランスポートセキュリティは、転送中のデータを保護します。ただし、ストレージ、変換、エクスポート後も維持されなければならない重要なパラメータに対するアプリケーションレベルのチェックに取って代わるものではありません。

プロセスをエラー防止するステーションデバイス

物理的な測定値の中には、チェックサムのような役割を果たすものがある。例えば、キットの重量は冗長な特性であり、期待値と一致しなければならない。

デバイス 検証内容 典型的なハードストップ
固定式スキャナーまたはビジョンリーダー 作業指示書に対するラベルまたはマークの内容を解読します コンベアを保持するPLCインターロック
治具識別機能を備えたトルクおよび角度コントローラ 適切なプログラムが適切なジョイントに、そしてウィンドウ内のトルクと角度 正しいプログラムがアクティブになるまで、ツールは無効になります。
重量チェック装置 組み立て品またはキットの質量と予想質量との比較 部品の欠落または過剰部品による拒否ゲート
部品存在センサーとキー付き治具 部品の存在、種類、および向き サイクル開始は解除されませんでした
リードバック機能を備えたプログラミング治具 デバイス自体から読み取られたプログラム領域の要約 ユニットは故障と判定され、修理に回されました。
ゴー・ノーゴーまたはエアゲージ 寸法内公差 自動的に、またはオペレーターによって分離された部品
画像認証
製品アップデートに安全な画像検証機能を実装する。

プロのヒント

  • ステーションは、リリースサーバーからリビジョンごとにイメージをロードし、フラッシュする前にハッシュまたは署名を検証するようにしてください。作業指示書と一致しないイメージはすべて拒否してください。
  • ハードストップのバイパスはすべてキースイッチまたは認証済みログインの背後に配置し、行ごと、シフトごとにバイパス回数を推移させてください。バイパス回数の増加は、エスケープが発生する前に制御が弱いことを示しています。

19. 品質管理とコンプライアンス

品質システムでは、チェックサムが実現に役立つ成果、すなわち識別、トレーサビリティ、管理された文書、信頼できる記録が求められます。規格ではチェックサム自体が明記されることはほとんどなく、成果が示され、チェックは成果を証明する一つの方法となります。

フレームワーク 関連要件 チェックサムがそれをサポートする仕組み
ISO 9001:2015 識別と追跡可能性、および文書化された情報の管理に関する条項8.5.2 識別子のチェックデジット、管理対象文書のハッシュ
IATF 16949 トレーサビリティ、エラー防止、管理計画、PPAP チェックデジットと検証、PPAPデータパッケージ内のハッシュによるポカヨケ
AS9100 構成管理、製品識別、偽造部品の防止 構成ベースラインのリリースハッシュ、部品の認証
ISO 13485:2016 トレーサビリティ(7.5.9項)、UDI、ソフトウェア検証 UDIチェックデジット、ラベルとファームウェアの検証済み
21 CFR Part 11およびEU Annex 11 電子記録、監査証跡、電子署名 監査証跡上のハッシュチェーン、記録の署名
スポーツ5 コンピュータシステムのリスクベース検証 チェック機能自体の検証

データ整合性とALCOA+

規制当局は、データの完全性をALCOA原則(帰属可能、判読可能、同時性、原本性、正確性)で定義しています。拡張版ALCOA+では、さらに完全性、一貫性、永続性、可用性が追加されます。チェックサムはこれらの原則のいくつかに対応しており、レコードが作成時から正確で変更されていないことを示します。ハッシュチェーンは、レコードが完全で順序通りであることを示します。

チェックサムは、誰がいつレコードを作成したかを示すものではありません。監査証跡とアクセス制御を補完するものであり、それらに取って代わるものではありません。

トレーサビリティとリコール対応

トレーサビリティは、部品の受領から出荷まで、識別子が常に正しい状態を維持することに依存します。チェックデジットは、スキャナーやキーボードを通過する際に識別子の正確性を維持します。系譜情報は、ロット番号、バッチ番号、シリアル番号を、上下の階層間でリンクします。

模擬リコールで準備状況を測定します。指標は、サプライヤーのロット番号などのトリガーから、影響を受ける完成品の全リストとその保管場所が判明するまでの時間です。チェックの失敗や重複した識別子は、模擬リコールに数時間ではなく数日かかる典型的な理由です。

較正
製品設計およびエンジニアリングにおいて、校正データおよびサプライヤーデータに関する堅牢な検証プロセスを導入する。

校正、試験装置、サプライヤーデータ

  • 校正証明書をチェックデジットを含む機器識別子に紐付け、各証明書ファイルのハッシュ値を保管する。
  • CoC、CoA、材料試験報告書などのサプライヤー証明書については、署名済みのファイルまたは構造化データを要求してください。ロット番号と部品番号を、発注書および受領記録と自動的に照合してください。
  • サプライヤーから提供されたCADファイル、ファームウェア、テストプログラムについては、ファイルを使用する前に、送信内容と照合して内容を確認してください。

ボーナス:チェック自体の検証

規制対象環境では、チェック機能はコンピュータシステムの一部であり、GAMP 5の原則に基づいて検証する必要があります。リスクに応じて、設置時適格性確認(IQ)、運用時適格性確認(OQ)、性能適格性確認(PQ)を計画してください。

OQ(運用適格性評価)には、ネガティブテストを含める必要があります。不良データを入力して、テストが拒否されることを確認してください。テストベクターは検証ファイルに保存し、ソフトウェア、リーダーのファームウェア、またはラベルテンプレートに変更があった場合は、必ず再実行してください。

ヒント: でチェックをプロセスの一部として実施します。陰性テストを含め、テストベクトルを検証ファイルに保存し、スキャナのファームウェア、プリンタ、ライブラリ、またはオペレーティングシステムに変更があった場合は、それらを再実行します。

20.リーンシックスシグマの視点

ポカヨケ
ポカヨケと自働化を統合することで、エンジニアリングプロセスにおける品質の組み込みとエラー防止が確保され、製品設計が向上する。

ポカヨケと自働化

チェックサムとの共通点が多い。新郷重雄氏はトヨタ自動車で働きながら、ポカヨケ(間違い防止)の概念を体系化した。彼は、エラーを不可能にしたりプロセスを停止させたりする制御機能と、エラーを知らせるだけの警告機能を分離した。自働化(組み込み品質)は、そこに停止機能を加える。つまり、異常を検知すると機械が停止するのだ。

スキャンステーションでハードストップ付きのチェックデジットは制御機能です。スキャン失敗後もユニットが通過できる場合は、単なる警告です。この違いを正確に把握するために、各ステーションを監査してください。

FMEA

各制御の検出結果を正直に評価してください。確実に停止し、既知の不良サンプルでテストされ、故障原因を網羅するチェックは、オペレーターがスキップできる同じチェックよりも高い評価を得られます。その証拠をPFMEAに記録してください。

AIAG-VDAのアクション優先順位付け手法では、まず予防策の改善を促しています。ここでいう予防策とは、例えば識別子やラベルを手入力するのではなく、単一のソースから生成するなどして、誤ったデータが発生しないようにプロセスを設計することを意味します。

データエラーにDMAICを適用する

段階 活動 ラベル表示ミスのある製品の例
定義する 問題、範囲、品質にとって重要な特性 過去12か月間に、誤ったラベルが顧客Aに届きました。重要な品質特性(CTQ)は、ラベルの内容が製品と100%一致することです。
測定 ベースラインと測定システム 100万ラベルあたりの欠陥数をカウントし、検証者と参照との属性一致分析を実行します。
分析 根本原因 原因のパレート図:テンプレートバージョン、ロール変更、手動入力、再印刷
改善する コントロール テンプレートハッシュチェック、スキャンツーマッチ、中央シリアルサービス、キー入力が残っている箇所でのチェックデジット
Control 利益を維持する スキャン失敗率の管理図、管理計画、監査、対応計画

The defects per million opportunities follow from the number of defects [latex]D[/latex], the units [latex]N[/latex] and the opportunities per unit [latex]O[/latex]. The sigma level adds the conventional 1.5 sigma shift to the normal quantile.

[latex]\displaystyle \mathrm{DPMO} = \frac{D}{N \times O} \times 10^{6}[/latex]

[latex]\displaystyle \sigma_{\mathrm{level}} = \Phi^{-1}\left(1 – \frac{\mathrm{DPMO}}{10^{6}}\right) + 1.5[/latex]

A worked example with illustrative numbers shows the arithmetic. 36 wrong-label defects in 480,000 labels, counting one opportunity per label, give [latex]\mathrm{DPMO} = 36 / 480000 \times 10^{6} = 75[/latex]. With the conventional 1.5 sigma shift, that is a sigma level of about 5.3. After the improvements, 6 defects in the next 480,000 labels give 12.5 per million and about 5.7 sigma. The figures illustrate the calculation. They are not a benchmark.

測定システム分析とSPC

スキャナと検証装置は測定システムとして扱います。検証装置は、適合性基準にトレーサブルな校正が必要です。合否判定データについては、オペレーター、スキャナ、および基準の間で属性一致分析を実行し、一致度とバイアスを定量化します。

次に、管理図を用いて監視します。p管理図はロットあたりのスキャン失敗率に適しています。u管理図はユニットあたりの欠陥数に適しています。初回読み取り失敗率の上昇は、検証グレードが許容範囲を下回るずっと前に、プリントヘッドの摩耗、リボンの摩耗、または基材の変化を示していることがよくあります。

廃棄物と投資収益率

Data errors create classic wastes: defects, rework, waiting for corrected data, motion to find the right item, and excess inventory held as a buffer against bad data. A simple model sums, over all stages [latex]s[/latex], the number of errors [latex]n_s[/latex] times the cost per error [latex]c_s[/latex].

[latex]\displaystyle C_{\mathrm{total}} = \sum_{s} n_s c_s[/latex]

その数字を、主にソフトウェア構成、スキャナと検証装置のハードウェア、およびトレーニングといった導入コストと比較してみてください。

自社の原価計算データから、エラー1件あたりのコストを算出してみてください。印刷段階で発生したエラーと、顧客側で発生したエラーでは、コストに大きな差が生じます。

管理計画の例

特性 方法 頻度 受容 対応計画
ラベルテンプレートの識別情報 リリース記録と比較したハッシュ値 すべての仕事は マッチ ジョブをブロックし、エンジニアリング部門に通知する
シンボル印刷品質 インライン検証ツール 100パーセント、またはリスクが許せばロットごとにサンプルを採取する。 指定された最低基準以上の成績 ラベルを拒否し、プリントヘッドとリボンを確認してください。
ユニットレコードにラベル内容を関連付ける スキャンして比較する 100パーセント 完全一致 ユニットを分離し、役割とデータを調査する
ファームウェアダイジェスト リードバックハッシュ ラインの終端で100パーセント ゴールデンダイジェストとマッチ 一度再フラッシュしてから、廃棄して根本原因を突き止める
チェック機能の健全性 悪質なチャレンジとして知られる 各シフト 拒否が記録されます ラインを停止し、再調整または修理する
トレーサビリティ ロットからユニットへの模擬リコール 年間または監査計画ごとに 目標時間を達成 系図データの欠落部分を補う

ポカヨケ装置の3つのファミリー

新郷氏は、ミス防止の手法を3つの系統に分類しました。それぞれの系統には、このガイドに記載されているチェック項目に対応するものがあります。

連絡方法
形状、サイズ、色を触覚またはセンサー(例えば、リミットスイッチやキー付き治具など)によって検出します。データ側の対応物は、フォーマットテストまたはチェックデジットテストです。
固定値法
設定された部品数または動作数に達しない場合にエラーを通知します。例えば、カウントされた位置を持つトレイなどが該当します。対応するデータは、長さフィールドまたはセグメント数です。
動作ステップ法
手順が正しい順序で実行されることを確認します。例えば、前の手順が完了するまで次の手順をブロックするインターロックなどです。データ側の対応物は、シーケンス番号またはスキャンからリリースまでのワークフローです。

ヒント

  • 検査ステーションの不良データをSPC(統計的工程管理)に入力する。例えば、シフト、プリンタ、治具ごとにサブグループを作成し、ラインごとにチャートを作成する。不良率が安定していても、生産能力を圧迫する再作業ループが隠れている可能性がある。
  • 検査で不合格となった場合は、検査の成功ではなく、前の工程の不具合として処理してください。原因を特定し、発生源で処理を完了させてください。

21. 物流:倉庫ピッキングエラーを減らす方法

ピッキングミスは、物流におけるデータ駆動型障害の中でも最もコストのかかるものの1つです。ピッキングミス1つが、返品、再出荷、苦情といった連鎖反応を引き起こします。

GS1識別

GTINは、特定の包装レベルで製品を識別します。SSCCは、パレットなどの物流単位を識別する18桁のコードです。GLNは、場所または関係者を識別します。GRAIは、返却可能な資産を識別します。これらはすべてチェックデジットを持ち、GS1物流ラベル規格によって、各単位への表示方法が定義されています。

スキャンベースのエラー防止

  1. まず、場所のラベルをスキャンします。チェックデジットとフォーマット検証により、不正な場所コードが即座に検出され、WMSはそれが想定された場所であることを確認します。
  2. 商品またはケースのGTINをスキャンしてください。システムはそれをピッキングタスクと比較し、数量入力前に誤った商品を拒否します。
  3. スキャン数で数量を確認するか、個々をスキャンすることが現実的でない場合は重量で確認してください。
  4. ユニットを閉じる際に、宛先コンテナまたはSSCCをスキャンし、内容物をそれにリンクします。
  5. 積み込み時に、SSCCを出荷明細書と照合してスキャンしてください。
ピッキングエラーの原因 一般的な治療法
隣接するスロットにある類似アイテム GTINのスキャン確認、スロットルール
場所コードまたはアイテムコードの手動入力 処理からキーボードを排除し、キー入力が避けられない場合はチェックデジットを使用する。
測定単位の混同(個、個包装、ケース) GTIN-14指示桁を使用して、包装レベルごとに異なるGTINを割り当てます。
破損または判読不能なラベル ラベリング時の検証、エラー訂正機能付き2Dコード、再ラベルステーション
マスターデータエラー 輸入時にGTINチェックデジットを検証し、サプライヤーのソースデータと比較する
SSCCの重複 中央配分と一意性制約

Quantify accuracy as defects per million lines picked. A line accuracy of 99.9 percent sounds high, yet it equals [latex](1 – 0.999) \times 10^{6} = 1000[/latex] errors per million lines, far from six sigma. State targets in DPMO, so that they connect to your Lean Six Sigma metrics.

EDI、ASN、およびEPCISメッセージの整合性

ビジネスメッセージには、独自の整合性フィールドが含まれています。EDI規格には、EDIFACTメッセージやX12トランザクションセットの末尾セグメントなどに、制御番号やセグメント数が含まれています。受信側はこれらを使用して、データの切り捨てや欠落を検出します。EPCISイベントには、関係するユニットの識別子が含まれており、イベントの値はチェックデジットとそれらの識別子の一意性によって決まります。

メッセージ受信時に、以下の順序で検証を行います。まず、カウント数、次に識別子のチェックデジットとフォーマット、そして発注書と一致するASNなどのビジネスルールです。検証に失敗したメッセージは拒否または隔離し、取引先ごとの拒否率を追跡します。

規制された連鎖におけるシリアル化

医薬品および医療機器チェーンはシリアル化ルールを追加しています。米国では、医薬品サプライチェーンセキュリティ法により、各パッケージにNDC、シリアル番号、ロット、有効期限を含む2Dデータマトリックスの製品識別子を義務付けています。強化された流通セキュリティ要件は段階的に発効しました。当初の発効日は2023年11月27日でしたが、安定化期間は2024年11月27日に終了し、FDAは小規模ディスペンサーに2026年11月27日まで免除を与えました(FDA免除通知).

法律事務所の要約によると、FDAは2026年8月に特定の小規模ディスペンサーの免除を2027年11月27日まで延長した(ブキャナンの要約最新の状況については、FDAのウェブサイトをご確認ください。

EUでは、偽造医薬品指令の枠組みにより、医薬品の包装に固有識別子と改ざん防止装置が義務付けられています。医療機器のUDI(固有識別子)も同様の仕組みを採用しています。GS1などの発行機関が識別子の構造を定義し、チェックデジットによってその妥当性が検証されます。

コールドチェーンとIoTデータ

温度ロガーやIoTセンサーは、出荷が規定の範囲内であったことを示す証拠となります。CRCまたは署名付きで測定値を保存するデバイスを選択し、署名付きダウンロードを推奨します。認証付き暗号化で輸送を保護してください。これらの手順を踏まなければ、ログファイルは編集可能なスプレッドシートとなってしまいます。

偽造防止と追跡システム

有効なチェックデジットを持つシリアル番号は偽造が容易です。追跡システムでは、どのシリアル番号が発行され、どこで確認されたかのサーバー側の記録が追加されます。2か所で同じシリアル番号が見つかった場合、または発行されていないシリアル番号が見つかった場合は、偽造の兆候となります。高額商品については、第14章で説明されているように、署名またはセキュリティ要素を追加してください。

ブロックチェーンと分散型台帳

分散型台帳はサプライチェーンのイベントのハッシュ値を固定できるため、誰もこっそりと履歴を改ざんすることはできません。ただし、イベントが実際に発生したことや、スキャンされた商品が本物であることを検証するものではありません。誤ったデータは、永続的なタイムスタンプによって誤ったまま記録されます。

外部アンカー付き署名ハッシュチェーンは、運用上の負担なしに、ほとんどのプラントが必要とする改ざん防止証拠を提供します。共有台帳は、互いに信頼していない複数の関係者が共通の記録を必要とする場合にのみ検討してください。

 

倉庫用機器およびツールの例

  • 音声ピッキングヘッドセット:システムはピッカーに対し、ピッキング場所に掲示されているチェックデジットを声に出して読むように指示します。場所が間違っている場合は、商品がピッキングされる前に拒否されます。
  • ピック・トゥ・ライトおよびプット・トゥ・ライトモジュール:ライトと数量表示でビンをマークし、オペレーターはボタンで確認します。ピッキングミスによる損失が大きい箇所には、アイテムスキャン機能を追加してください。
  • ハンディスキャナーおよびリングスキャナー:パレットラベルの位置、品目、SSCCをスキャンして確認します。
  • 計量・寸法測定ステーション:測定された重量はマスターデータと比較され、誤った商品や破損したカートンが発見されます。
  • ドックドアに設置されたRFIDポータル:パレット内部のタグが読み取られ、事前出荷通知と比較される。

22.サービス、アフターマーケット、製品寿命末期

無線によるアップデート
製品設計における堅牢なアップデートプロセスは、潜在的な障害に対する多層防御を通じて、セキュリティと信頼性を確保します。

無線および現場でのアップデート

アップデート処理は、次の3つの原因で失敗する可能性があります。転送データが破損している、イメージファイルがデバイスに合っていない、またはイメージファイル自体が悪意のあるものである場合です。これらの失敗に対応できるよう、防御策を多層的に構築してください。

  • チャンクごと、またはブロックごとにCRCチェックを行うことで、転送エラーを早期に検出できます。
  • インストール前にチェックされるイメージ全体のハッシュ値によって、完全性が確認されます。
  • デバイスに保存されている公開鍵との署名照合により、出所が確認されます。
  • 製品識別子とハードウェア識別子が一致すると、別のデバイス向けに作成されたイメージのインストールが防止されます。
  • ロールバック保護機能を備えたバージョンチェックにより、脆弱性のあるリリースへのダウングレードを防ぎます。
  • 起動時に確認を行うデュアルパーティション構成では、新しいイメージが失敗した場合でも、古いイメージが実行可能な状態を維持します。

スペアパーツ、保証、返品

  • スペアパーツ番号にはチェックデジットが付いており、保証登録用のウェブフォームでそのチェックデジットが検証されるため、入力ミスを発生源で検出できる。
  • シリアル番号は、現場での故障を製造履歴(ラインの最後に記録されたファームウェアのダイジェストを含む)と関連付けるものです。
  • 逆物流においても、順物流と同様の識別子と検査が必要となる。

デジタルプロダクトパスポート

持続可能な製品のためのエコデザイン規則(EU)2024/1781は、2024年7月18日に発効し、デジタル製品パスポートを導入しました。パスポートは、標準化されたライフサイクルデータを製品上のデータキャリア(多くの場合QRコード)にリンクします。

欧州委員会は、2026年7月20日にテスト環境を備えたDPPレジストリを開始しました。最初の義務的なパスポートは、EUバッテリー規則に基づき、2027年2月18日から特定のバッテリーに適用されます。委任法が採択されるにつれて、他の製品グループもそれに続きます。 電池に関する委員会ページ そして 登録に関するお知らせ.

データ整合性への影響は明白です。固有の製品識別子は、製品のライフサイクル全体を通して一意性、永続性、正確性を維持する必要があり、そのためにはチェックデジットと中央割り当てプロセスが正当化されます。パスポートデータは検証可能である必要があり、そのためには基となる文書のハッシュ値と経済事業者の署名が必要となります。データキャリアも読み取り可能である必要があり、これはマーキング品質とエラー訂正の問題につながります。

23.偶発的な汚職と悪意のある汚職

適切なチェック方法は、エラーの原因が誰または何であるかによって異なります。騒音、摩耗、人為的なミスはランダムです。しかし、攻撃者や偽造者はランダムではなく、チェックでは検出できない特定の改変箇所を意図的に選びます。

脅威 例 役立つチェック 役に立たないチェック
偶発的なエラー ビット反転、数字入力ミス、部分的なダウンロード チェックデジット、CRC、ハッシュ これら以外には何も必要ありません
意図的な改変 ファームウェアを編集し、テスト記録を変更しました。 シグネチャー、HMAC CRC、プレーンハッシュ、チェックデジット
代替 シリアル番号がコピーされた偽造部品 認証タグ、追跡システム チェックデジット
リプレイ 有効な古いメッセージが再度送信されました MACでカバーされるシーケンスカウンタまたはタイムスタンプ 任意の静的チェックサム
ロールバック 古い署名済みの脆弱性のあるファームウェアが再インストールされました アンチロールバックカウンター付きバージョンチェック 署名のみ

衝突攻撃は、一方の当事者が作成したファイル上のダイジェストを信頼するあらゆる場面で問題となります。MD5とSHA-1はこのテストに合格しません。メッセージ認証には、長さ拡張の問題があるため、秘密プレフィックスハッシュではなくHMACを使用してください。

産業サイバーセキュリティと規制

IEC 62443シリーズは、システムインテグリティに関する基礎的な要件を定義しています。これは、産業オートメーションおよび制御システムにおける通信の完全性、ソフトウェアおよび情報の完全性を対象としています。ファームウェア、構成、およびレシピのチェックは、その直接的な証拠となります。

EUサイバーレジリエンス法(規則(EU)2024/2847)は、2024年12月10日に発効しました。悪用された脆弱性および重大なインシデントに関する報告義務は、既に市場に出回っている製品も含め、2026年9月11日から適用されています。最初の通知は、製造業者が脆弱性を認識してから24時間以内に行う必要があります。必須要件およびCEマーキングを含む完全な適用は、2027年12月11日から開始されます。報告義務違反に対する罰金は、1,500万ユーロまたは全世界年間売上高の2.5%に達する可能性があります。 マシソンによる要約 年表を網羅している。

必須要件には、不正な改変からデータ、プログラム、構成の完全性を保護すること、および安全な更新メカニズムが含まれます。そのため、署名付きファームウェアと検証済みアップデートは、単なる技術的な好みではなく、コンプライアンス上の問題となります。NIS2指令(EU)2022/2555は、機械、電気機器、車両、医療機器の多くの製造業者に、セキュリティと報告に関する義務を追加しています。

偽造品、グレーマーケット、サプライチェーン攻撃

  • 偽造品はラベルやシリアル番号を模倣する。対策としては、より精度の高いチェックデジットではなく、秘密の認証を用いることだ。
  • グレーマーケット商品は正規品だが、流通経路が不正に流用されている。シリアル番号が本来の地域とは異なる場所で確認された場合、追跡システムによってその存在が明らかになる。
  • サプライチェーン攻撃は、ビルドサーバー、アップデートチャネル、またはサプライヤーからのコンポーネントファームウェアを標的とします。署名付きビルドを使用し、ダイジェスト付きのソフトウェア部品表を保持し、サプライヤーのファームウェアダイジェストを別のチャネルで検証してください。

24. 適切なチェックサムの選び方

まず脅威、次にデータ型、そして制約の順に検討します。 質問を順番に進めていき、最初に当てはまるメカニズムで止め、後の質問への答えも「はい」であれば、次のメカニズムを追加してください。

  1. 誰かが意図的にデータを改ざんして利益を得る可能性はありますか?もしそうであれば、デジタル署名またはHMACを使用してください。CRCまたはハッシュは、偶発的なエラーの場合のみに使用してください。
  2. 値を入力、読み取り、またはスキャンするのでしょうか?もしそうであれば、識別子にチェックデジットを使用し、スキャナーで検証を行い、物理的な損傷に対するエラー訂正機能を備えた2次元マークを使用してください。
  3. データはバス経由で送信されるのか、それとも小さなメモリに格納されるのか?もしそうであれば、メッセージ長と必要なハミング距離に合わせて多項式を選択したCRCを使用してください。重要なパラメータについては、エンドツーエンドCRCを追加してください。
  4. ファイルまたはレコードが参照ファイルと同一である必要がある場合は、比較にSHA-256を使用してください。重要度の低い比較であれば、高速な非暗号化ハッシュで十分です。
  5. データは、再試行なしで破損しても復旧できる必要がありますか?もしそうであれば、エラー訂正コードを追加してください。
  6. そのデータは規制対象記録の一部ですか?もしそうであれば、監査証跡、検証、および選択した方法の根拠を文書化して追加してください。
データまたはステージ リスク 推奨されるアプローチ
人が入力した部品番号とシリアル番号 中くらい Damm、Verhoeff、またはISO/IEC 7064チェックデジット。GS1キーの場合はGS1デジット。
ラベルとマーク 中~高 ISO/IEC 15415、15416または29158への検証、エラー訂正付き2Dシンボル、テンプレートハッシュ
フィールドバスとセンサーデータ 中くらい プロトコルCRC(長さに合ったハミング距離を使用)、必要に応じて安全プロトコル
レシピとパラメーター 高い ゴールデンレコードに対するハッシュ値と、転送ブロック内のCRC
CADおよびリリースパッケージ 中くらい リリース記録に保存されているSHA-256マニフェスト
ファームウェアとアップデート 高い リリース時には署名とSHA-256、実行時チェックにはCRCを使用
規制対象記録 高い 監査証跡付きハッシュチェーンまたは署名、検証済み
物流識別子とメッセージ 中くらい GS1チェックデジット、メッセージ制御合計、ビジネスルール検証
一括比較と重複排除 低い xxHash は、一致時に完全な比較を行います。

意思決定のためのヒント

  • エラーモデル、キャリア、サイズ予算、寿命、所有者など、各データオブジェクトに関する決定記録を保持してください。設計の各段階、およびサプライチェーンや脅威に変更があった場合はいつでも、この記録を見直してください。
  • 実際の障害モード(ビット反転、桁の入れ替え、切り捨て、誤ったファイルなど)に一致するエラーを注入して、テスト対象をチェックします。理論に頼るのではなく、検出率を測定します。

25.導入ガイド

3つのルールを守れば、ほとんどの問題は回避できます。テスト済みのライブラリ、または単一の共有実装を使用してください。すべてのパラメータを管理文書で固定してください。最初の本番実行前に、公開されているベクトルを使用してテストしてください。付録Bには、以下で使用するベクトルが記載されています。

PythonでGS1チェックデジット

def gs1_check_digit(body: str) -> int:
    if not body.isdigit():
        raise ValueError('digits only')
    total = sum(int(d) * (3 if i % 2 == 0 else 1)
                for i, d in enumerate(reversed(body)))
    return (10 - total % 10) % 10

def gs1_is_valid(full: str) -> bool:
    return (full.isdigit() and len(full) > 1
            and gs1_check_digit(full[:-1]) == int(full[-1]))

assert gs1_check_digit('400638133393') == 1
assert gs1_check_digit('34012345000000001') == 7
assert gs1_is_valid('4006381333931')

ExcelでのGS1チェックデジット

セルA1にテキストとして格納された12桁のGTIN-13本文に対して、この数式はチェックデジットを返します。

=MOD(10-MOD(SUMPRODUCT(--MID(A1,{1,3,5,7,9,11},1))+3*SUMPRODUCT(--MID(A1,{2,4,6,8,10,12},1)),10),10)

識別子はテキストとして保存し、数値として保存しないでください。Excelは数値の有効桁数を15桁までしか保持しないため、18桁のSSCCを数値として保存すると、末尾の桁が失われます。また、先頭のゼロも削除されるため、GTIN-12およびGTIN-8の値が破損します。

SQLにおけるGS1チェックデジット

このクエリは再帰的な共通テーブル式を使用しています。SQLiteでテスト済みで、上記のGTIN-13ボディでは1、SSCCボディでは7を返します。ご使用のデータベース方言に合わせて構文を調整してください。

WITH RECURSIVE d(i, n) AS ( SELECT 1, LENGTH('400638133393') UNION ALL SELECT i + 1, n FROM d WHERE i < n ) SELECT (10 - (SUM(CAST(SUBSTR('400638133393', i, 1) AS INTEGER) * CASE WHEN (n - i) % 2 = 0 THEN 3 ELSE 1 END) % 10)) % 10 AS check_digit FROM d;

PLC構造化テキスト内のGS1チェックデジット

この関数は、IEC 61131-3 の文字列関数に準拠しています。ベンダーによって文字列変換名などの細部が異なるため、付録 B のベクトルに対して、ご自身のランタイム環境で実行してください。

FUNCTION GS1_CheckDigit : INT VAR_INPUT sBody : STRING(17); END_VAR VAR i, n, iSum : INT; END_VAR n := LEN(sBody); iSum := 0; FOR i := 1 TO n DO IF ((n - i) MOD 2) = 0 THEN iSum := iSum + 3 * STRING_TO_INT(MID(sBody, 1, i)); ELSE iSum := iSum + STRING_TO_INT(MID(sBody, 1, i)); END_IF END_FOR GS1_CheckDigit := (10 - (iSum MOD 10)) MOD 10;

CRC-32(C)

ビット演算バージョンは最も短く、監査も容易です。これはASCII文字列「123456789」のベクトルに対してコンパイルおよびテストされました。本番コードでは通常、テーブルまたはハードウェア周辺機器に切り替わります。

uint32_t crc32_update(uint32_t crc, const uint8_t *data, size_t len) { while (len--) { crc ^= *data++; for (int bit = 0; bit > 1) ^ (0xEDB88320u & (0u - (crc & 1u))); } } return crc; } /* 0xFFFFFFFF から開始し、すべてのチャンクをフィードし、最後に XOR で終了します。 crc = 0xFFFFFFFFu; crc = crc32_update(crc, buffer, length); crc ^= 0xFFFFFFFFu; ASCII 文字列 123456789 の結果は 0xCBF43926 です。 */

PythonにおけるModbus CRC-16とストリーミングSHA-256

import hashlib

def crc16_modbus(data: bytes) -> int:
    crc = 0xFFFF
    for byte in data:
        crc ^= byte
        for _ in range(8):
            crc = (crc >> 1) ^ 0xA001 if crc & 1 else crc >> 1
    return crc

frame = bytes([0x01, 0x03, 0x00, 0x00, 0x00, 0x0A])
crc = crc16_modbus(frame)
wire = frame + bytes([crc & 0xFF, crc >> 8])   # low byte first

def sha256_file(path, chunk=1024 * 1024):
    h = hashlib.sha256()
    with open(path, 'rb') as f:
        for block in iter(lambda: f.read(chunk), b''):
            h.update(block)
    return h.hexdigest()

可変ワイヤには 01 03 00 00 00 0A C5 CD が格納されます。ストリーミング機能はファイルをチャンク単位で読み込むため、任意のサイズの画像を一定のメモリで処理できます。16 進数および ASCII 文字列のチェックサムを試すには、 16進数およびASCIIチェックサム計算機 このサイトで。

チェックサム実装における落とし穴

落とし穴 何が起こるのですか 対策
バイト順 ModbusはCRCの下位バイトを最初に送信します。バイトの入れ替わりは毎フレーム失敗します。 実機からキャプチャしたフレームと照合して検証する
初期値と反射 別のパラメータセットでは、もっともらしいが誤ったCRCが生成される。 インターフェース仕様の6つのCRCパラメータすべてを修正する
テキストとバイト 行末、テキストエンコーディング、末尾のスペースによってダイジェストが変わります 保存されたバイト列を正確にハッシュ化し、テキストが含まれる場合は正規化を定義します。
識別子の数値型 先頭のゼロは消え、浮動小数点数では長い数値の桁数が失われます。 識別子を文字列としてExcel、CSV、データベース、PLCデータに保存する
ファイル全体をメモリに読み込む 大きな画像はステーションのRAMを使い果たす ハッシュをチャンクに分割
未定義の補償 ダイジェストには、シリアル番号などの揮発性フィールドが含まれます。 正確な領域を定義し、ユニット固有のデータを除外またはパッチする
未検証ライブラリ サイレントバグは、あなたが書いていないテストをすべて通過します。 ビルドパイプラインで公開済みベクターを実行する

26. 役割別ベストプラクティスチェックリスト

研究開発および設計

  • 番号付け概念の最初の草案から始めて、すべての識別子方式において、チェックデジットと固定フォーマットを定義する。
  • ファームウェアイメージに、マジックナンバー、バージョン、長さ、CRC、署名を含むヘッダーを付加し、障害発生時の動作を指定します。
  • インターフェース仕様書に、CRCパラメータと多項式の根拠を記載してください。
  • リリースされたパッケージのハッシュ値をリリース記録とサプライヤーへの送付文書に保存する。
  • 安全性分析には、メモリおよび通信チェックの診断範囲を含めること。

製造業

  • スキャンステーションとフラッシュステーションを、ハードストップ付きのゲートとして実行し、バイパスされた箇所はすべてログに記録する。
  • ファームウェアを読み出しまたはデバイスから報告されるダイジェストによって検証し、シリアル番号ごとに結果を記録します。
  • 各ロットの開始時に、有効なレシピとゴールデンハッシュを比較してください。
  • 各シフトごとに、既知の不良サンプルを用いて各検査項目を検証する。
  • 検証装置とスキャナは、常に校正および保守を行ってください。
FMEA検出
体系的なテストと検証を通じて製品の信頼性を向上させるため、堅牢な品質保証プロセスを導入する。

品質

  • チャレンジテストの結果やバイパス記録などの証拠に基づいて、FMEAによる検出率を評価する。
  • チェック項目を検証し、テストベクトルを検証ファイルに保持します。
  • 模擬リコールを実施し、影響を受けるユニットのリストが表示されるまでの時間を追跡する。
  • スキャン失敗率と検証グレードをグラフ化し、傾向に基づいて対策を講じる。
  • 仕入先証明書を、発注書および受領データと自動的に照合します。
  •  

ロジスティクス

  • 各ピックアップ時に、場所、品目、コンテナを確認するためにスキャンしてください。
  • 受信時に識別子とメッセージを検証し、取引相手ごとの拒否率を追跡する。
  • SSCCを中央で割り当て、一意性を強制する。
  • ラベル貼付の時点でラベルを検証し、サプライチェーンが長い場合や複雑な場合は2Dシンボルを使用してください。
  • 目標値を100万行あたりの欠陥数で表してください。

ITとOT

  • チェックデジット、CRC、ハッシュ値のための共有ライブラリまたはサービスを1つ提供し、公開されたテストベクトルを含める。
  • ファームウェアとビルドに署名し、秘密鍵をハードウェアセキュリティモジュールに保管し、ローテーションと失効の計画を立てる。
  • 時計を同期させ、追記専用ストアまたは外部アンカー付きハッシュチェーンに記録を保持する。
  • 識別子は、それらにアクセスするすべてのシステムにおいて文字列として保存してください。
  • SHA-1は廃止されつつあり、ポスト量子署名が登場するため、アルゴリズムの柔軟性を計画しておく必要がある。

エンジニアのための2つのプロのヒント

  • 各チェックごとに担当者を1名指定してください。その担当者は、アルゴリズム、パラメータ、テストベクトル、および対応計画を管理します。
  • 各チェック項目を管理計画とプロセスFMEAに組み込み、測定システムと同じスケジュールで監査を実施する。
チェックサム
堅牢なチェックサムと管理されたプロセスを統合することで、製品ライフサイクルの完全性と信頼性が向上します。

チェックサムと類似点に関する結論

チェックサムは小さく、古くから存在し、十分に理解されています。物理的な製品の製造においてチェックサムが価値を発揮するのは、ライフサイクルの適切なタイミングで適切なチェックサムを使用すること、そしてチェックを証拠に基づいた管理されたプロセスとして扱うことにあります。

識別子を人やスキャナが扱う箇所では、チェックデジットを使用してください。フレーム、ブロック、画像には、メッセージ長に合った多項式を用いたCRCを使用してください。ファイルやレコード、署名、またはキー付きコードにはSHA-256を使用してください。意図的な改ざんのリスクがある場合は、必ずSHA-256を使用してください。マークやメモリが破損する可能性がある箇所には、エラー訂正を追加してください。

そして、証拠に基づいて検証を完結させる。チェック項目に疑問を投げかけ、検証者を調整し、結果を記録し、数値を検証する。誰もテストしないチェック項目は、単なる思い込みに過ぎない。

 

本日、最も高いコストで脱出が発生し、かつチェックが行われていないパイロットを交代要員として選定する。交代前後の脱出率を測定し、その結果を次回の交代要員選定の根拠とする。

すべての検査は、仕様、所有者、検査方法、および検査頻度を備えた管理対象項目として扱われます。これらが存在しない検査は、機能不全に陥ります。

 

よくある質問

CRC-32に合格したからといって、ファームウェアイメージが意図したリリース版であると証明されないのはなぜですか?

CRCは偶発的な破損のみを検出するものであり、誰でも同じCRCを持つ改変されたイメージを作成できます。別のチャネルを通じて入手したリリースレコードに対してSHA-256ダイジェストを検証し、意図的な変更のリスクがある箇所には署名を追加してください。

GS1 mod-10チェックデジットでは、どのようなエラーが見逃されるのでしょうか?

このチェックでは1桁の誤りはすべて検出できますが、5ずつ異なる隣接する桁の入れ替え(異なる桁の入れ替えの約11%)は見逃してしまいます。また、有効な桁であっても割り当てについては何も証明しないため、算術チェックの横にマスタデータの検証も行うようにしてください。

チェックサムベースの制御におけるFMEA検出の評価はどのように行うべきでしょうか?

アルゴリズムではなく、証拠に基づいて評価してください。既知の不良サンプルで検証された自動ハードストップは、オペレーターが回避できるチェックや、そもそも検証されなかったチェックよりもはるかに高い評価を得られます。回避確率を定量化し、検証ログと回避レジスターを保持し、AIAG-VDA 2019のアクション優先順位ロジックを適用してください。

インターフェース用のCRC多項式はどのように選択すればよいですか?

保証されるハミング距離は、多項式とメッセージ長の両方に依存するため、まず長さの範囲を固定する必要があります。Koopmanは、IEEE 802.3 CRC-32では最大長のイーサネットフレームでハミング距離が4にしか達しないのに対し、他の多項式では6に達することを示したため、公開されている網羅的探索の結果から多項式を選択してください。

CRC-16を使用していると主張する2つのシステムが、なぜすべてのフレームで異なる結果を示すのでしょうか?

名前だけではアルゴリズムは定義されません。幅、多項式、初期値、入力反射、出力反射、最終XORのすべてが一致する必要があるからです。6つのパラメータをインターフェース仕様に記述し、RevengカタログのASCII文字列「123456789」のチェック値を使用して両端をテストしてください。

行末でのSHA-256比較が、正しいフラッシュの証明にならないのはどのような場合ですか?

ソースファイルをハッシュ化したり、プログラマの成功フラグを信頼したりしても、デバイスの内容については何もわかりません。デバイスから別の経路で領域を読み出し、オプションバイト、ヒューズ、ロックビットを含め、シリアル番号、MACアドレス、キャリブレーションなどのユニット固有のデータを個別に処理し、シリアル番号ごとに結果を記録してください。

ハッシュチェーンは、バッチレコードの改ざん防止に十分でしょうか?

チェーンの順序と完全性は、最新のハッシュがログを保持するシステム外部にアンカーされている場合にのみ証明されます。定期的な署名、RFC 3161に準拠した信頼できるタイムスタンプを使用するか、ハッシュを顧客または監査担当者に送信するようにしてください。そうしないと、書き込み権限を持つユーザーは誰でもチェーン全体を再計算できてしまうからです。

フィールドバスCRCは、どの時点で信号保護を停止するのでしょうか?

ゲートウェイまたはブリッジは次のセグメントのCRCを再計算するため、2つのホップ間のメモリ内の破損は検出されません。安全に関わる信号や設定値については、送信元で生成され、受信側で検証されるカウンタを使用したエンドツーエンドのCRCを追加してください。

非暗号化ハッシュは、在庫管理や重複排除のために何ビット必要ですか?

誕生日境界が決定要因となります。10万個のアイテムを持つ32ビットハッシュでは衝突確率が約69%であるのに対し、100万個のアイテムを持つ64ビットハッシュでは1億分の2.7程度に抑えられます。64ビット以上を使用し、一致が判断の決め手となる場合は必ず全データを比較してください。

計測システム分析において、バーコードスキャナーと検証装置はどのように扱うべきでしょうか?

適合性標準テストカードを使用して検証器を校正し、シンボルタイプにISO/IEC 15416、15415、または29158を適用し、オペレーター、スキャナ、および参照の間で属性一致分析を実行します。正常に読み取られたシンボルは、読み取られたことを示しているだけなので、ドリフト指標として等級分布と未使用の誤り訂正容量を追跡します。

規制環境下では、チェック機能自体を検証する必要があるのでしょうか?

はい、なぜならそのチェックはGAMP 5の原則、21 CFR Part 11、またはEU Annex 11に準拠するコンピュータシステムの一部だからです。リスクに応じてIQ、OQ、PQを計画し、テストベクターと陰性テストを検証ファイルに保存し、スキャナのファームウェア、プリンタ、ライブラリ、またはオペレーティングシステムの変更後にそれらを再実行します。

10年から20年間運用される製品において、アルゴリズムの廃止をどのように計画すればよいでしょうか?

アルゴリズムの登録簿には、レビュー日を記載しておいてください。例えば、NISTはSHA-1を2030年12月31日までに廃止する計画です。また、2027年12月11日からサイバーレジリエンス法により署名と検証済みのアップデートがコンプライアンス事項となるため、ブートローダーとアップデートチャネルを設計する際には、現場でアルゴリズムとキーを交換できるようにしてください。

 

付録

付録A:テストベクトル

すべての値は、第25章に示されているコード、または参照ツールを使用して計算または確認されました。入力文字列はすべてASCIIテキストで示されています。

関数 入力 期待される結果
CRC-32 123456789 0xCBF43926
CRC-32C 123456789 0xE3069283
CRC-16/MODBUS 123456789 0x4B37
CRC-16/CCITT-FALSE 123456789 0x29B1
CRC-8(多項式0x07) 123456789 0xF4
SHA-256 123456789 15e2b0d3c33891ebb0f1ef609ec419420c20e320ce94c65fbc8c3312448eb225
Modbus RTUフレーム 01 03 00 00 00 0A CRC 0xCDC5、C5 CDとして送信
CRC-3の教育例 メッセージ1101、ジェネレーター1011 残り001
GTIN-13チェックデジット 400638133393 1、フルキー 4006381333931
GTIN-12チェックデジット 03600029145 2、フルキー 036000291452
GTIN-14チェックデジット 1540014128876 3、フルキー 15400141288763
SSCCチェックデジット 34012345000000001 7、フルキー 340123450000000017
ルーンチェックデジット 7992739871 3、フル番号79927398713
VINチェックデジット(北米方式) 11111111111111111 1
VINチェックデジット(北米方式) 1HGBH41JXMN109186 Xは9番目の位置にある

付録B:規格および参考文献

この記事で使用したオンライン情報源(2026年11月時点):

引用されている規格および刊行物は、発行機関から入手可能です。

  • RFC 1071(インターネットチェックサム)、RFC 2104(HMAC)、RFC 3161(タイムスタンププロトコル)
  • FIPS 180-4 (SHA-1およびSHA-2)、FIPS 202 (SHA-3)、NIST SP 800-38B (CMAC)
  • ISO/IEC 7064(文字システムのチェック)、ISO 6346(容器コード)、ISO/IEC 29158(部品への直接マーキングの品質)
  • ISO 9001、IATF 16949、AS9100、ISO 13485、ISO 26262、IEC 61508、IEC 62304、IEC 62443
  • AIAGおよびVDA FMEAハンドブック、第1版、2019年
  • 21 CFR Part 11、EU GMP Annex 11、GAMP 5
  • MaxinoとKoopman、「組み込み制御ネットワークにおけるチェックサムの有効性」、IEEE Transactions on Dependable and Secure Computing、2009年
  • 規則(EU)2024/2847(サイバーレジリエンス法)、規則(EU)2024/1781(持続可能な製品のためのエコデザイン)、規則(EU)2023/1542(電池)、指令(EU)2022/2555(NIS2)

用語集

Advance Shipping Notice (ASN): a notification sent by a supplier to inform a buyer about the details of a pending shipment, including contents, quantities, and expected arrival time, facilitating efficient receiving and inventory management.

Advanced Encryption Standard (AES): 米国国立標準技術研究所によって確立された対称鍵暗号アルゴリズムであり、128ビット、192ビット、または256ビットの鍵サイズを持つブロック暗号を利用し、置換および順列処理によって電子データを保護するように設計されている。

Asynchronous Transfer Mode (ATM): 固定サイズのセルを用いてデータ伝送を行う高速ネットワーク技術であり、様々なメディアタイプ間での効率的かつ柔軟な通信を可能にする。音声、ビデオ、データなど複数のサービスタイプをサポートし、サービス品質(QoS)管理を容易にする。

Attributable, Legible, Contemporaneous, Original, Accurate (ALCOA+): a set of principles ensuring data integrity in regulated environments, emphasizing that data must be traceable to its source, easily readable, recorded at the time of occurrence, in its original form, and precise in content.

Bill Of Material (BOM): 製品の製造に必要な部品、サブアセンブリ、原材料を数量と仕様を含めて詳細に記述した構造化されたリストで、生産計画や在庫管理に使用されます。

Bill of Materials (BOM): 製品の製造に必要な部品、材料、数量を詳細に示した包括的なリスト。製造業やエンジニアリング分野で、生産計画、在庫管理、コスト見積もりを容易にするためによく用いられる。

Carriage and Insurance Paid To (CIP): 輸送条件の一つで、売主が指定された目的地までの商品の輸送費と保険料を負担し、商品が運送業者に引き渡された時点でリスクが買主に移転することを示すもの。

Central Processing Unit (CPU): コンピュータプログラムからの命令を実行し、算術演算、論理演算、制御、入出力操作を行うハードウェアコンポーネント。算術論理演算ユニット、制御ユニット、レジスタから構成され、コンピュータシステムの主処理ユニットとして機能する。

Certificate of Analysis (CoA): a document issued by a manufacturer or testing laboratory that confirms a product's specifications, quality, and compliance with regulatory standards, detailing test results and methods used for analysis.

Certificate of Conformance (CoC): 製品が特定の基準、規制、または契約上の要件を満たしていることを確認するために製造業者または供給業者によって発行される文書で、品質保証およびコンプライアンス検証プロセスでよく使用されます。

Code of Federal Regulations (CFR): アメリカ合衆国の連邦機関が発行する一般規則および恒久規則をまとめたもので、主題別に50のタイトルに分類されており、連邦規則の公式な法的情報源として機能する。

Computed Tomography (CT): X線とコンピュータ処理を用いて人体の断面画像を生成する医用画像技術であり、内部構造や組織の詳細な可視化を可能にする。2次元データから3次元表現を提供することで、診断能力を向上させる。

Computer Aided Design (CAD): エンジニアリング、建築、製造などの様々な分野における設計の作成、変更、分析、最適化に使用されるソフトウェアアプリケーションであり、デジタルツールと技術を用いて精密な図面やモデルの作成を可能にする。

Computer Algebra Systems (CAS): 数式を記号形式で操作するために設計されたソフトウェアで、簡略化、微分、積分、方程式の解法などの演算を可能にします。これらのシステムは正確な計算を容易にし、代数的な問題解決のためのツールを提供するため、教育や研究で広く利用されています。

Computer-Aided Design (CAD): エンジニアリング、建築、製造などの様々な分野における設計の作成、変更、分析、最適化に使用されるソフトウェアアプリケーションであり、デジタルツールと技術を用いて精密な図面やモデルの作成を可能にする。

Contract Manufacturer (CM): 他社に代わって製品を製造する会社で、通常は特定の設計および品質仕様に従って製造を行う。この仕組みにより、依頼企業はマーケティングや製品開発といった中核事業に集中できる一方、製造工程は外部委託することができる。

Conversion Rate (CR): ウェブサイトやランディングページへの訪問者のうち、購入やニュースレターへの登録など、目的の行動を完了した人の割合。コンバージョン数を総訪問者数で割って算出する。

Cost and Freight (CFR): 輸送契約とは、売主が指定された港まで商品を配送するための輸送費と運賃を負担し、買主は商品が船舶に積み込まれた後の保険および費用に関するリスクと責任を負うという契約である。

Cost of Poor Quality (COPQ): 製品またはサービスの欠陥、故障、非効率性に関連する総コスト。これには、再加工、廃棄、保証請求、販売機会損失などが含まれ、品質基準を満たさないことによる財務的影響を反映している。

Critical to Quality (CTQ): 顧客満足度と製品性能に大きな影響を与える、測定可能な特性または属性であり、品質管理およびプロセス改善イニシアチブにおける重要な要素となる。

Cyclic Redundancy Check (CRC): a method for detecting errors in digital data by applying polynomial division. It generates a fixed-size checksum based on the data's binary representation, allowing verification of data integrity during transmission or storage.

Defects Per Million Opportunities (DPMO): 品質管理で使用される指標で、エラー発生機会100万回あたりのプロセスにおける欠陥数を定量化するものであり、欠陥数をエラー発生機会の総数で割り、100万を掛けることで算出される。

Define Measure Analyze Improve Control (DMAIC): シックスシグマで用いられる、プロセス改善のためのデータ駆動型品質戦略であり、問​​題の特定、現状のパフォーマンスの測定、原因特定のためのデータ分析、分析結果に基づくプロセスの改善、そして改善を持続させるための将来のパフォーマンス管理という5つの段階から構成される。

Define, Measure, Analyze, Improve, Control (DMAIC): a data-driven quality strategy used in Six Sigma for process improvement, consisting of five phases: defining the problem, measuring current performance, analyzing data to identify causes, improving processes based on findings, and controlling future performance to sustain improvements.

Differential Scanning Calorimetry (DSC): 熱分析技術の一つで、材料の相転移に伴う熱流を温度の関数として測定し、融点、ガラス転移温度、比熱容量などの熱特性を決定することを可能にする。

Electronic data interchange (EDI): 組織間でビジネス文書を電子的に交換するための標準化された方法であり、データの自動転送を可能にし、紙ベースのプロセスを削減します。ANSI X12やEDIFACTなどの構造化されたフォーマットを通じて、注文書、請求書、出荷通知などの取引を円滑化します。

Electronic Product Code Information Services (EPCIS): a set of standards enabling the sharing of information about the physical movement and status of products in the supply chain, facilitating visibility and traceability through the use of Electronic Product Codes (EPC).

Engineering Change Notice (ECN): 製品設計、仕様、またはプロセスに対する変更を伝える文書であり、変更の理由、影響を受ける項目、および実施手順を詳細に記載し、すべての関係者が情報を把握し、移行を効果的に管理できるようにする。

Engineering Change Order (ECO): 製品の設計、仕様、またはプロセスに対する変更を承認する文書であり、変更内容、理由、および実施手順を詳細に記載し、製品ライフサイクル全体を通して変更の適切な追跡と管理を保証する。

Enterprise Resource Planning (ERP): 財務、人事、製造、サプライチェーンといった主要なビジネスプロセスを統合したソフトウェアソリューション。業務の効率化、データ精度の向上、組織全体の意思決定の強化を実現する。

Error-Correcting Code (ECC): a method used in digital communication and data storage that enables the detection and correction of errors in transmitted or stored data by adding redundant information, allowing recovery of original data despite corruption or loss.

Failure Mode and Effects Analysis (FMEA): a systematic method for evaluating potential failure modes within a system, process, or product, assessing their effects on performance, and prioritizing risks to improve reliability and safety through corrective actions.

First Article Inspection (FAI): 製造業者の生産工程を検証する品質保証プロセスであり、最初に生産された製品を規定の要件に照らして検査し、量産開始前に設計仕様および規格への準拠を確認するものである。

Food and Drug Administration (FDA): a federal agency of the United States Department of Health and Human Services responsible for regulating food safety, pharmaceuticals, medical devices, cosmetics, and tobacco products to ensure public health and safety through scientific evaluation and enforcement of compliance standards.

Forms Follow Functions (FFF): 物体の形状や外観は、主にその意図された機能や目的に基づいて決定されるべきであり、美的考慮事項よりも実用性と使いやすさを重視すべきであるという設計原則。

Global Location Number (GLN): a unique identifier for physical locations or legal entities within the supply chain, consisting of 13 digits. It facilitates efficient data exchange and enhances traceability in business transactions.

Global Positioning System (GPS): 衛星を利用した航法システムで、衛星、地上局、受信機のネットワークを利用して三角測量により正確な座標を特定し、地球上のあらゆる場所で正確な位置情報と時刻情報を提供する。

Global Trade Item Number (GTIN): a unique identifier for products, consisting of 8, 12, 13, or 14 digits, used internationally to facilitate the identification and tracking of items in commerce and supply chains. It is often represented in barcodes.

Good Manufacturing Practice (GMP): a system ensuring products are consistently produced and controlled according to quality standards, minimizing risks involved in pharmaceutical production and related industries. It encompasses guidelines for manufacturing processes, facility conditions, personnel qualifications, and documentation practices to ensure product safety and efficacy.

Hash-Based Message Authentication Code (HMAC): a cryptographic construct that combines a hash function with a secret key to ensure data integrity and authenticity, producing a fixed-size output that verifies both the message and the key, protecting against tampering and forgery.

Hypertext Transfer Protocol (HTTP): インターネットを介してハイパーテキストを送信するために使用されるプロトコルであり、Webブラウザとサーバー間の通信を可能にする。リクエストとレスポンスのフォーマットを定義し、HTMLドキュメント、画像、その他のメディアなどのWebリソースの取得を容易にする。

Installation Qualification (IQ): 設備やシステムが仕様書に従って設置されていることを検証するための文書化されたプロセス。これには、ユーティリティ、環境条件、設計要件への準拠の評価が含まれ、運用資格取得に向けた準備が整っていることを保証する。

Institute of Electrical and Electronics Engineers (IEEE): 電気工学、電子工学、コンピュータ科学、および関連分野における技術の発展を、出版物、会議、標準規格策定などを通じて推進する専門家団体。世界中の専門家や研究者間のイノベーションと協力を促進します。

International Electrotechnical Commission (IEC): 電気、電子、および関連技術に関する国際規格を開発・発行し、国際貿易を促進するとともに、電気機器およびシステムの安全性、効率性、相互運用性を確保するグローバル組織。

International Organization for Standardization (ISO): a non-governmental international body that develops and publishes standards to ensure quality, safety, efficiency, and interoperability across various industries and sectors, facilitating global trade and cooperation. Established in 1947, it comprises national standardization organizations from member countries.

Internet of Things (IoT): センサー、ソフトウェア、その他の技術が組み込まれた相互接続されたデバイスのネットワークであり、インターネットを介してデータを収集および交換することを可能にし、さまざまなプロセスやシステムの自動化、監視、および制御を容易にする。

Manufacturing Execution System (MES): 生産プロセスをリアルタイムで監視、制御、最適化するソフトウェアソリューション。データ収集、製造業務の追跡、および企業システムとの統合を容易にし、製造現場の効率と生産性を向上させます。

Measurement System Analysis (MSA): 測定プロセスおよび測定機器の正確性、精度、信頼性を評価するために用いられる統計的手法であり、収集されたデータが品質管理およびプロセス改善における意思決定のために有効かつ一貫性があることを保証する。

Metal Active Gas (welding) (MAG): 鉄系金属と非鉄金属の接合時に、溶融池を大気汚染から保護するために、連続的に供給される消耗電極と、通常は二酸化炭素を含むシールドガス混合物を使用する溶接プロセス。

Metal Inert Gas (welding) (MIG): 溶接ガンを通して供給される連続した固体ワイヤ電極を使用し、ワイヤとワークピースの間に電気アークを発生させて両方を溶融させ、溶融池を形成する溶接プロセス。通常、汚染を防ぐために不活性ガスでシールドされる。

Operational Qualification (OQ): a validation process that ensures equipment or systems operate according to specified requirements within defined limits, confirming that they perform as intended in their operational environment.

Optical Proximity Correction (OPC): 半導体製造時の光学的な歪みを補正するためにマスクパターンを修正するリソグラフィ強化技術であり、露光および現像後に所望の寸法となるように形状とサイズを調整することで、シリコンウェハ上のパターンの忠実度を向上させる。

Ordinary Differential Equation (ODE): 1変数関数とその導関数を含む数式で、関数とその変化率の関係を表す。解とは、指定された範囲内でこの数式を満たす関数のことである。

Performance Qualification (PQ): a process that verifies a system or equipment operates according to specified requirements under real-world conditions, ensuring it consistently performs its intended function within predetermined limits.

Probability Density Function (PDF): 連続確率変数が特定の値をとる可能性を表す関数であり、ある区間における曲線下の面積は、その変数がその区間内に収まる確率を表す。

Process Failure Mode and Effects Analysis (PFMEA): 製造工程や業務プロセスにおける潜在的な不具合を特定・評価し、それらが成果に及ぼす影響を分析し、リスクを軽減するための対策に優先順位を付ける体系的な方法。

Product Data Management (PDM): 製品ライフサイクル全体を通して製品関連データとプロセスを管理するためのシステムであり、関係者間のコラボレーション、バージョン管理、データ検索を促進することで、製品開発と製造における効率性を向上させ、エラーを削減する。

Product Lifecycle Management (PLM): 製品のライフサイクルを、構想段階からエンジニアリング設計、製造、サービス、廃棄に至るまで体系的に管理するアプローチであり、人材、プロセス、データ、テクノロジーを統合することで、製品品質の向上、市場投入までの時間の短縮、関係者間の連携強化を図る。

Production Part Approval Process (PPAP): 製造業において、量産前にサプライヤーが品質要件を満たしていることを確認するために用いられる標準化された手順であり、設計仕様、プロセス能力、および生産サンプルの文書化と検証を含み、顧客の期待に適合していることを確認する。

Programmable Logic Controller (PLC): 産業プロセスの自動化に使用されるデジタルコンピュータであり、命令を格納するためのプログラム可能なメモリ、機械の監視および制御のための入出力インターフェース、および制御アルゴリズムを実行するためのプロセッサから構成される。

Project Management Office (PMO): 組織内の中央集権的な組織体であり、プロジェクト管理の実践を標準化し、ガバナンスを提供し、プロジェクトの実行を支援し、リソース配分を促進することで、戦略目標との整合性を確保し、プロジェクトの成果を向上させる。

Random Access Memory (RAM): データの読み書きを任意の順序で行えるコンピュータメモリの一種で、アクティブなプロセスやアプリケーションへの高速アクセスと一時的なデータ保存を可能にする。揮発性メモリであるため、電源を切るとデータは失われる。

Read-Only Memory (ROM): 電源が切れてもデータを保持する不揮発性記憶媒体で、通常は頻繁な変更を伴わないファームウェアやソフトウェアの保存に使用されます。アクセスは一般的に読み取り専用で、データの書き込み機能は限定的または全くありません。

Request For Comments (RFC): コミュニティ内での検討と議論のために、標準、プロトコル、または方法論を提案する文書であり、多くの場合、正式な採用につながる。技術分野の利害関係者間のフィードバックを募り、協力を促進する手段として機能している。

Return on Investment (ROI): 投資の収益性を評価するために使用される財務指標で、投資による純利益を初期費用で割って算出され、パーセンテージで表されます。

Serial Shipping Container Code (SSCC): a unique identifier for logistics units, consisting of 18 digits, used to track and manage shipments in supply chains, facilitating automated data capture and improving inventory accuracy.

Solid State Drive (SSD): NAND型フラッシュメモリを使用して永続データを保存するデータストレージデバイス。従来のハードディスクドライブに比べて、可動部品がなく、読み書き速度が速く、レイテンシが低く、耐久性が高い。

Statistical Process Control (SPC): a method of quality control that employs statistical techniques to monitor and control a process, ensuring it operates at its full potential by identifying variations and maintaining consistent output within specified limits.

Structured Query Language (SQL): リレーショナルデータベースの管理と操作に使用される標準化されたプログラミング言語であり、ユーザーは定義済みのコマンドと構文のセットを通じて、データの照会、更新、挿入、削除などの操作を実行できる。

Toyota Production System (TPS): 廃棄物の削減、継続的な改善、効率的な生産フローを重視し、ジャストインタイムや自働化などの技術を活用して品質と業務効率を向上させる製造方法論。

Transmission Control Protocol (TCP): インターネットプロトコルスイートの中核となるプロトコルであり、ネットワークを介してアプリケーション間でデータが確実に、順序よく、エラーチェックされた状態で配信されることを保証する。接続を確立し、データフローを管理し、パケット損失が発生した場合の再送信を処理する。

Unique Device Identification (UDI): a system that assigns a distinct numeric or alphanumeric code to medical devices, enabling their identification and tracking throughout their lifecycle, ensuring traceability, regulatory compliance, and improved patient safety.

Universal Serial Bus (USB): コンピュータとデバイスを接続するための規格で、データ転送と電源供給を可能にする。様々なプロトコルをサポートし、ホットスワップにも対応。複数のバージョンがあり、それぞれ異なるデータ転送速度と電力供給能力を提供する。キーボード、マウス、ストレージデバイスなどの周辺機器によく使用される。

User Requirement Specification (URS): システムまたは製品に対するユーザーのニーズと期待を詳細に記述した文書であり、開発を導き、ユーザーの目標との整合性を確保するために、機能要件と非機能要件を概説する。

User Datagram Protocol (UDP): 接続を確立することなくデータグラムを送信できるコネクションレス型のトランスポート層プロトコルであり、最小限のエラー回復サービスを提供します。ストリーミングやオンラインゲームなど、信頼性よりも速度が優先される、高速かつ効率的なデータ転送を必要とするアプリケーションに適しています。

Value Engineering (VE): プロジェクトの機能分析、コスト削減、パフォーマンス向上を通じて、品質や信頼性を損なうことなくプロジェクトの価値を高めるための体系的な手法。費用対効果の高い代替案を特定し、実行するために、学際的なチームワークが不可欠である。

取り上げるトピック: チェックサム、データ整合性、製品ライフサイクル、バーコードスキャンエラー、品質ツール、チェックデジット、CRC、SHA-256、CADファイル、BOM、作業指示書、出荷記録、GS1チェックデジット、エラー訂正、ファームウェアイメージ、署名、キーコード、デジタル製品パスポート。

歴史的背景

1959-11
1960
1960
1960
1960
1960
1960
1958
1960
1960
1960
1960
1960
1960
1960

(日付が不明または関連性がない場合、例えば「流体力学」などでは、その注目すべき出現時期の概算値が提示されます。)

10年目 周年

フルサイズの画像とダウンロードは、登録会員のみが100%無料で利用できます。