2013-01-14 3 views
2

기본 모드의 데스 파이 카드로 인증하고 싶습니다. 여기 내 현재의 단계는 다음과 같습니다desfire ev1에서 원시 인증을 수행하는 방법

  • 나는 카드에서 (AID = 0×00 0×00 0×00)
  • 내가 응답을 수신 마스터 응용 프로그램을 (은 "도전", randB)를 선택
  • 그런 다음 두 번째 단계에서, 나는를 생성 응답 (randA); 나는 8 바이트의 A와 8 바이트를 해독하고 회전시킨 rand B를 연결한다.
  • 나는 그것을 암호화하여 카드로 보낸다.

나는 91 ae 답변을 받았으며 이유는 알 수 없습니다.

  • 카드 : 여기서 메시지들의 순서는 카드 90 0A 00 00 01 00 00
  • 5B 57 69 C7 CE 4B 16 7B 91 AF
  • 는 RandB = 5B 57 69 C7 CE 4B를 암호화 16 7B
  • 는 D5 17 RandB '= 17 8D 23 57 10 C9 32 D5를
  • 1 바이트 lshitf의 RandB'= 8D 23 57 10 C9 32 해독
  • 생성 랜드 A = 43 9D 17 8E 9A 5F BA 70
  • Rand A와 Ra 연결 nd B "= 43 9D 17 8E 9A 5F BA 70 8D 23 57 10 C9 32 D5 17
  • 암호화 된 랜드 A + R 및 B"= 9E ED DC 4F BC E7 BE BD 09 02 CF 99 F7 40 34 7B
  • 카드
  • 90 AF 00 00 10 43 9D 17 8E 카드에서 9A 5 층의 BA 70 8D 23 57 10 C9 32 D5 17 00
  • 91 AE
  • 볼 경우

하면 지적 드리겠습니다 뭐가 잘못 됐니? 어떤 문제가있을 수 있습니까?

답변

2

나는 답장이 조금 늦었지만 어쨌든 그 답에 답해 주었다. 나는 어제 인증 만받을 수 있었다. ae는 인증 오류를 나타냅니다. 즉, 연결 및 암호화 후에 RandA와 함께 보내는 RandB '가 PICC (Ev1)에서 예상하지 못한 것입니다. 문제는 암호화에있을 수 있습니다. EV1 데이터 시트의 예제를 사용하여 논리를 암호화하는지 확인할 수 있습니까? 내 경험에

+0

답변에 형식을 지정하십시오. – Luv

0

(당신은 자신에 의해 이미 문제를 해결하지 못한 경우)

는 희망이 도움이, 대부분의 시간은 잘못된 방법으로 이루어집니다 암호화입니다. 올바른 모드를 사용하여 응답을 암호화하고 있습니까? (BTW, DES, TDES 또는 AES를 사용하고 있습니까?). DES를 사용하는 경우 CBC를 역방향 모드로 사용하고 있습니까? IIRC를 사용하여 응답을 암호화하면 "역 (inverse)"알고리즘 (보통 당신이 삐걱 거리기를 위해하는 알고리즘)을 사용해야합니다. 또한 키가 패리티가 필요한지 확인하십시오.

1

마스터 키와 다른 응용 프로그램 인증은 동일한 논리에서 작동합니다. Here은 안드로이드에서 DesFire Authentication이라는 주제로 저의 질문입니다. 희망이 도움이됩니다.

문제는 여기에 나와 있어야합니다. no-padding으로 3DES 또는 AES로 CBC를해야합니다.

관련 문제