機密データをデジタル署名されたファイルに保存して、その内容がいつ改ざんされたかを把握したいと思います。
私の最初の考えは、データはNVP(名前と値のペア)に格納され、内容を確認するための何らかのCRCまたはその他のチェックサムが含まれることです。
ANSI C ++を使用して、このようなファイルの作成(つまり書き込み)と検証(読み取り)を実装することを考えています。
これが私が保存したいデータであると仮定します:
//Unencrypted, raw data to be stored in file
struct PrivateInfo {
double age; weight;
FitnessScale fitness;
Location loc;
OtherStuff stuff;
};
//128-bit Encrypted Data (Payload to be stored in file)
struct EncryptedData {
// unknown fields/format ??
};
[この質問に対するいくつかの回答を読んだ後]
これまでに寄せられたコメントから判断すると、ほとんどの人にとっては危険信号のように思われる「ライセンス」という言葉に、人々が傍観されているのではないかと心配しています。そうかもしれないと思いましたが、セキュリティが高まり、一般的な緊張感が高まっている今日の雰囲気の中で、誰かが「核兵器のパスワード」を誰かに渡すことを考えていると思わないように、「隠す」必要があるものを詳しく説明したほうがいいと思いました。テロリストか何か。ここで、質問から「ライセンス」という単語を削除します。
技術的な質問としてもっと見てください。私が学生(私はそうです)であり、安全である必要がある情報をエンコードするための推奨(またはベストプラクティス)について調べようとしていると想像してください。
上記を念頭に置いて、質問を次のように再フォーマットします。
- さまざまなデータ型フィールドの構造体を考えると、「合理的に安全な」暗号化を提供するための「推奨」アルゴリズムは何ですか(私はまだ128ビットを使用することを好みますが、それは私だけです)
- 暗号化されたデータに対してROBUSTチェックを提供するための推奨される方法は何ですか。そのため、そのチェック値を使用して、ファイルの内容(暗号化されたデータのペイロード)が元のデータと異なるかどうかを知ることができます。