2014-11-08 1 views
1

이 칩을 사용하여 초경량 C 카드로 상호 인증을 얻은 사람이 있습니까? 인증 절차는 이해하지만 칩 설명서에있는 명령 세트를보고 실제로 가능한 것은 아닌 것으로 생각하지만 칩셋을 버리고 CJS 인코더를 사용하기 전에 여기에 게시 할 생각이었습니다 검증을 위해 사전에PN532 MiFare Ultralight C 상호 인증

감사

답변

0

네, MIFARE 초경량 C. 사용하여 다음 절차에 따라 상호 인증을 수행 할 수 있습니다 :

1 단계 : 보내기 시작 인증 명령을 사용합니다. (1A 00) ~

2 단계 : 카드는 8 바이트의 난수 RndB를 생성합니다. 이 난수는 ek (RndB)로 표기된 다변화 된 키로 암호화 된 DES/3DES이며, 단말로 전송된다.

단계 3 단말기는 수신 된 ek (RndB)에 대해 DES/3DES 해독 동작을 실행하고, 따라서 RndB를 검색한다. 그런 다음 RndB가 8 비트만큼 왼쪽으로 회전합니다 (첫 번째 바이트는 RndB의 끝으로 이동 됨). RndB '가 생성됩니다. 이제, 단말기 자체는 8 바이트 난수 RndA를 생성한다. 이 RndA는 RndB '와 연결되고 DES/3DES를 사용하여 해독됩니다 (두 블록의 암호 해독은 Cipher Block Chaining (CBC) 전송 모드를 사용하여 연결됨). 이 토큰 dk (RndA + RndB ')가 카드로 보내집니다.

STEP 4 : 카드는받은 토큰에서 DES/3DES 암호화를 실행하므로 RndA + RndB '를 얻습니다. 카드는 원래 RndB를 내부적으로 8 비트만큼 왼쪽으로 돌려서 얻은 RndB '와 비교하여 전송 된 RndB'를 확인할 수 있습니다. 성공적인 확인은 카드와 단말기가 동일한 비밀 (키)을 가지고 있음을 카드에 증명합니다. 확인에 실패하면 카드는 인증 절차를 중지하고 오류 메시지를 반환합니다. 카드가 단말기에서 생성 한 난수 RndA를 수신하면 RndA에서 8 비트만큼 왼쪽 회전 조작을 수행하여 RndA '를 얻고 다시 암호화하여 ek (RndA')를 얻을 수 있습니다. 이 토큰은 터미널로 전송됩니다.

STEP 5 : 단말기가 수신 EK (RndA ')의 DES/3DES의 해독을 실행하며, 따라서 RndA을 얻는다'는과의 비교를 위해 단말기 - 내부 'RndA 회전. 비교가 실패하면, 단말기는 절차를 종료하고 카드를 정지시킬 수있다.

STEP 6 : 카드는 어떤 부분이 당신에게 문제를 준

'인증'으로 인증 상태를 설정?

+0

답장을 보내 주셔서 감사합니다. 다른 곳에서 읽었을 때 가능한 읽기 오류 코드를 읽은 시간과 시간이 지나면 읽은 응답이 잘못된 값으로 설정되어 바이트 수가 너무 많아 졌음을 알게되었습니다. 버퍼 내의 데이터. 거대한 두통으로 이어지는 간단한 실수. – watersa8