API 如何在 POS 上创建密码块?
How API on POS creating pin block?
我们为 POS 终端开发软件,并使用他们的 POS 开发人员库。生成pin block的函数,向我们询问PIN key。为了生成 PIN 密钥,我们需要指定主密钥,为了生成主密钥,您首先需要指定加载密钥。
所以顺序是:loading key -> master key -> PIN key。
我们需要找出这些键是如何相互关联的。函数内部发生了什么。由于我们无法查看它们的功能。
我们对它们的应用了解多少?
在应用程序上使用加密 3des 的方法,并且可能某些密钥是 XORing。我们确切地知道它显示的是哪个引脚块。
例如,如果您指定以下键:
加载密钥:1111111111111111111111111111111
主密钥:1111111111111111111111111111111
PIN 码:1111111111111111111111111111111
潘:1111111111111111
密码:1111
我们得到这样的引脚块:
0C43B779D7A1CB72
请帮助那些精通加密和终端的人。提前致谢!
您的方案是 master/session PIN 加密,使用在 "loading key" 下加载的主密钥。
加载密钥11111111111111111111111111111111
以普通方式加载到设备中。
loadingKey = 11111111111111111111111111111111
PIN 主密钥密文 11111111111111111111111111111111
在 ECB 模式下使用 DES 解密,给出普通 PIN 主密钥 237B2304C393D3AC237B2304C393D3AC
(使用加载密钥)。
pinMasterKey = DES_Dec_ECB(key=loadingKey,data=11111111111111111111111111111111)
pinMasterKey = 237B2304C393D3AC237B2304C393D3AC
使用工作密钥密码 11111111111111111111111111111111
请求 PIN 输入,在 ECB 模式下使用 DES 解密为普通工作密钥 5CC98C26CB8C00CE5CC98C26CB8C00CE
(使用 PIN 主密钥)。
pinWorkingKey = DES_Dec_ECB(key=pinMasterKey,data=11111111111111111111111111111111)
pinWorkingKey = 5CC98C26CB8C00CE5CC98C26CB8C00CE
此工作密钥用于加密纯格式 0 PIN 块 041100EEEEEEEEEE
(由 XORing 041111FFFFFFFFFF
和 0000111111111111
形成 here) 到 0C43B779D7A1CB72
.
pinBlock = (041111FFFFFFFFFF XOR 0000111111111111)
pinBlock = 041100EEEEEEEEEE
encryptedPinBlock = DES_Enc_ECB(key=pinWorkingKey,data=pinBlock)
encryptedPinBlock = 0C43B779D7A1CB72
祝你好运!
免责声明:我不是加密专家,所以请验证我的想法。
(注:DES密钥奇偶校验未调整)
我们为 POS 终端开发软件,并使用他们的 POS 开发人员库。生成pin block的函数,向我们询问PIN key。为了生成 PIN 密钥,我们需要指定主密钥,为了生成主密钥,您首先需要指定加载密钥。 所以顺序是:loading key -> master key -> PIN key。
我们需要找出这些键是如何相互关联的。函数内部发生了什么。由于我们无法查看它们的功能。 我们对它们的应用了解多少? 在应用程序上使用加密 3des 的方法,并且可能某些密钥是 XORing。我们确切地知道它显示的是哪个引脚块。
例如,如果您指定以下键:
加载密钥:1111111111111111111111111111111
主密钥:1111111111111111111111111111111
PIN 码:1111111111111111111111111111111
潘:1111111111111111
密码:1111
我们得到这样的引脚块: 0C43B779D7A1CB72
请帮助那些精通加密和终端的人。提前致谢!
您的方案是 master/session PIN 加密,使用在 "loading key" 下加载的主密钥。
加载密钥
11111111111111111111111111111111
以普通方式加载到设备中。loadingKey = 11111111111111111111111111111111
PIN 主密钥密文
11111111111111111111111111111111
在 ECB 模式下使用 DES 解密,给出普通 PIN 主密钥237B2304C393D3AC237B2304C393D3AC
(使用加载密钥)。pinMasterKey = DES_Dec_ECB(key=loadingKey,data=11111111111111111111111111111111)
pinMasterKey = 237B2304C393D3AC237B2304C393D3AC
使用工作密钥密码
11111111111111111111111111111111
请求 PIN 输入,在 ECB 模式下使用 DES 解密为普通工作密钥5CC98C26CB8C00CE5CC98C26CB8C00CE
(使用 PIN 主密钥)。pinWorkingKey = DES_Dec_ECB(key=pinMasterKey,data=11111111111111111111111111111111)
pinWorkingKey = 5CC98C26CB8C00CE5CC98C26CB8C00CE
此工作密钥用于加密纯格式 0 PIN 块
041100EEEEEEEEEE
(由 XORing041111FFFFFFFFFF
和0000111111111111
形成 here) 到0C43B779D7A1CB72
.pinBlock = (041111FFFFFFFFFF XOR 0000111111111111)
pinBlock = 041100EEEEEEEEEE
encryptedPinBlock = DES_Enc_ECB(key=pinWorkingKey,data=pinBlock)
encryptedPinBlock = 0C43B779D7A1CB72
祝你好运!
免责声明:我不是加密专家,所以请验证我的想法。
(注:DES密钥奇偶校验未调整)