PAN (カード番号) を保存する場合は、絶対に暗号化する必要があります。
カード所有者の名前、有効期限、発行番号 (およびそれらを PAN にリンクできる) を保存する場合、すべき 暗号化されますが、(私の理解では)絶対に必要というわけではありません。 PCI-DSS は、少なくとも PAN を暗号化する必要があることのみを述べています。
CV2/AVS/CSC コードは承認後に保存することはできません。理想的には、まったく保存されていないことを証明する必要があります (たとえば、承認の実行中にのみメモリに保持されます)
証明書/キーについて - すべてのカード関連データの暗号化に 1 つのキーを使用できます。複数の目的でキーを使用しないことをお勧めします。そのため、暗号化された他の (カード関連以外の) データがある場合は、別のキーを使用してください。
最も難しい部分は、あなたが実際に詳細に言及していない部分です - そしてそれは重要な管理です. PCI 要件を満たすには、キーをデータベースとは別の物理ボックスに格納する必要があり、少なくとも年に 1 回はキーを変更できる必要があります。 SQL 2008 では、拡張キー管理 (EKM) でこれをサポートしています。
これらのポイントはすべて、PCI コンプライアンスを満たすために、ある時点で関与する必要がある独立した QSA (Qualified Security Assessor) と話し合うのが最善です。 QSA は、このような質問についてあなたを導くことができ、最終的にはコンプライアンスを満たすために従うべき彼/彼女のアドバイスになります。
ほとんどの人は、PCI コンプライアンスがどれほどの負担になるかをすぐに認識し、サードパーティの支払いゲートウェイを使用してその負担を最小限に抑えようとします。ほとんどの支払いゲートウェイでは、認証/決済を実行し、カードの詳細を (すでに PCI に準拠している) サーバーに保存できます。その後、そのカードでさらに請求/払い戻しを実行する必要がある場合に備えて、それらの支払いの詳細を参照する TokenId を保存するだけで済みます。
どちらにしても頑張ってください!