2013-06-26 98 views
0

我在研究如何從PIV卡生成非對稱密鑰方面處於死衚衕。我已經瀏覽了NIST sp800-73-3標準,但我無法做到這一點。在該文件的第3部分中概述它顯示他們使用INS 47來做到這一點,但我得到一個6D00錯誤。在獲得這些信息之前是否需要發送另一個命令?智能卡非對稱密鑰生成

另外,如果我錯了,請糾正我的錯誤,但從我的理解中,當生成密鑰時,私鑰會在公鑰返回時存儲在卡上。爲了使用私鑰對數據進行加密,必須將數據發送到卡上並返回加密的信息。這是否準確?卡一次可以存儲多少個密鑰?

+1

通常情況下,您需要先對卡進行身份驗證,然後才能生成密鑰。通常在某種個性化階段執行此操作。如果公鑰被返回,那麼它仍然需要以某種方式被信任。私鑰應該總是留在卡上(如果它被分配給它的話)。通常可以創建多少個按鍵取決於智能卡的實現和卡上可用的持久存儲器。 –

回答

2

標準是件好事,但大多不足以滿足智能卡的要求。你需要一張你的特定卡片的手冊,描述它支持的標準的哪些部分。 對於密鑰生成,查看ISO 7816第8部分(除卡手冊外)是一個不錯的主意。有一些命令變體返回公鑰和其他變量,將其靜靜地留在卡中供以後檢索。對於你的錯誤:有可能,你的卡處於生命週期階段,密鑰生成不再可用,而且偶數指令代碼46也值得一試。

加密命令是執行安全操作也在7816-8中描述。請注意,使用非對稱密鑰進行加密對於大量的明文而言並不常見。通常使用對稱密碼對文本進行加密,並且出於性能原因僅使用非對稱加密傳輸的對稱密鑰。