我正在阅读关于卡安全代码(CSC、CVD、CVV、CVC、V 代码、SPC、CID、CV2、CVN2、CAcronym2 等)的维基百科文章,并且某个断言引起了我的注意(强调我的):
每张卡(表 1 和表 2)的 CSC 由发卡机构在发卡时生成。它的计算方法是使用只有发卡机构知道的加密密钥对银行卡号和到期日期(卡上印有的两个字段)进行加密,并将结果十进制化。
该描述听起来很像 HMAC,仅使用已经公开的信息作为主要输入 - 但无论如何,鉴于存在的大量信用卡号码(带有卡安全码),肯定可以推导出发卡人的现在加密密钥?(它是对称加密还是非对称加密有关系吗?)
如果是真的,那么我很惊讶系统是这样设计的,而不是为每张卡生成一个唯一的密钥或数字,CSC 是从中派生出来的,而不是机构范围的密钥——我的问题假设可以从给定所有明文输入的知识的大量输出值) - 因为我目前对密码学的理解告诉我,在足够已知的明文输入(受损的卡详细信息)和密文输出(受损的 CSC 代码)的情况下,可以导出密钥。