IMSI를 이용한 IMSI_M 구하기

2011. 9. 28. 15:20IT관련

반응형
USIM의 IMSI와 유사한 개념으로 CSIM에는 EF IMSI_M이 존재한다.
당연히 IMSI 값을 가지고 IMSI_M의 값을 계산할 수 있다.

IMSI의 값이 450011012341234일 경우

Value 4 5 0 0 1 1 0 1 2 3 4 1 2 3 4
Name D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1
 
주의) D15 ~ D1의 값이 '0'인 경우에는 '10'으로 대체하여 계산한다.
        즉, 위 표에서 D13, D12, D9는 '10'으로 대체한다.

  1. IMSI_M_CLASS (1 byte)
    1. 고정 값 '00'
       
  2. IMSI_M_S2 (2 bytes)
    1. (100*D10) + (10*D9) + (D8) - 111
    2. A에서 계산된 값을 2 bytes의 HEX값으로 변환
    3. B의 HEX 값을 Byte 단위로 스위칭 한다.

    Ex>
    1. (100*1) + (10*10) + (1) - 111 = 90
    2. 90을 2 bytes의 HEX값으로 변환 --> 005A
    3. 005A를 Byte 단위로 스위칭 한다. --> 5A00
       
  3. IMSI_M_S1 (3 bytes)
    1. (100*D7) + (10*D6) + (D5) - 111
    2. D4 --> 1: 0001b, 2: 0010b, 3: 0011b, 4: 0100b, 5: 0101b, 6: 0110b, 7: 0111b, 8: 1000b, 9: 1001b, 0: 1010b
    3. (100*D3) + (10*D2) + (D1) - 111
    4. A, B에서 계산된 값을 binary 값으로 바꾼 후 binary를 모두 붙인다.
      - A, C의 결과 binary값은 항상 10자리 binary값이며 B의 binary값은 4자리 binary값이어야 한다.
      - 그래서 총 binary의 길이는 24자리이며 6 bytes값이 된다.
    5. D에서 계산된 값을 HEX값으로 변환한다.
    6. E의 HEX 값을 Byte 단위로 자리를 변경한다.

    Ex>
    1. (100*2) + (10*3) + (4) - 111 = 123
    2. D4 = 1
    3. (100*2) + (10*3) + (4) - 111 = 123
    4. 123 1 123
      0001 1110 11 00 01 00 0111 1011
      0001 1110 1100 0100 0111 1011

    5. 0001 1110 1100 0100 0111 1011
      0001 1110 1100 0100 0111 1011
      1      E C     4 7     B

    6. 1E C4 7B
      7B C4 1E

  4. IMSI_M_11_12 (1 byte)
    1. (10*D12) + (D11) - 11
    2. A의 값을 HEX값으로 변환한다.

    Ex>
    1. (10*10) + (1) - 11 = 90
    2. 90을 HEX값으로 변환 --> "5A"

  5. IMSI_M_PROGRAMMED (1 byte)
    1. 고정 값: "80"

  6. MCC_M
    1. (100*D15) + (10*D14) + (D13) - 111
    2. A의 계산된 값을 2 bytes HEX값으로 변환한다.
    3. B의 HEX값을 byte 단위로 스위칭한다.

    Ex>
    1. (100*4) + (10*5) + (10) - 111 = 349
    2. 349를 2 bytes의 HEX값으로 변환한다. --> 015D
    3. 015D를 byte 단위로 스위칭한다. --> 5D01

결과 값은 위의 1 ~6의 모든 값을 순서대로 나열을 하면 다음과 같다.
  1. IMSI_M_CLASS               :  00
  2. IMSI_M_S2                     :  5A00
  3. IMSI_M_S1                     :  7BC41E
  4. IMSI_M_11_12                 :  5A
  5. IMSI_M_PROGRAMMED   :  80
  6. MCC_M                         :  5D01

즉, IMSI 450011012341234가 IMSI_M으로 변경이 되면 0x00 5A 00 7B C4 1E 5A 80 5D 01이 된다.
반응형

'IT관련' 카테고리의 다른 글

Response APDU structure  (0) 2011.09.28
Command APDU structure  (4) 2011.09.28
PLMN(Public Land Mobile Network)  (0) 2011.09.23
IMSI(International Mobile Subscriber Identity)  (0) 2011.09.23
ICCID(Integrated Circuit Card Identifier)  (0) 2011.09.22