TD1, TD2, TD3: 세 가지 MRZ 형식
TD1, TD2, TD3는 ICAO Doc 9303이 정의하는 세 가지 기계 판독 영역(MRZ) 형식입니다. TD3는 한 줄에 44자씩 두 줄로 여권에 쓰이고, TD2는 한 줄에 36자씩 두 줄로 예전 신분증과 여행 카드에 쓰이며, TD1은 한 줄에 30자씩 세 줄로 카드 크기의 문서에 쓰입니다.
세 가지 형식 한눈에 보기
| 형식 | 줄 × 문자 | 문서 유형 | 예시 (첫 줄) |
|---|---|---|---|
| TD3 | 2 × 44 | 여권 및 기타 TD3 크기 여행 문서 | P<GRCPARADEIGMA<<ELENI<SOFIA<<<<<<<<<<<<<<<< |
| TD2 | 2 × 36 | TD2 크기 공식 여행 문서, 구형 신분증 | I<GRCPARADEIGMA<<ELENI<SOFIA<<<<<<<< |
| TD1 | 3 × 30 | 카드 크기 공식 여행 문서 및 신분증 | IDGRCAK472913<4PN48291630<<<<< |
모든 줄은 채움 문자 <로 전체 길이까지 채워집니다. 줄마다 정확히 44자, 36자 또는 30자가 아닌 영역은 해당 형식의 유효한 영역이 아닙니다. 파서가 영역을 거부할 때 가장 먼저 확인할 부분입니다.
TD3 – 44자 2줄
여권 형식입니다. 첫째 줄에는 문서 코드, 발급 국가, 이름이 들어가고, 둘째 줄에는 문서 번호, 국적, 생년월일, 성별, 만료일, 개인 번호와 체크 디지트가 들어갑니다. 여기서 이름 영역은 39자로, 세 형식 가운데 가장 넓습니다. 성과 이름은 채움 문자 두 개로 구분하고, 이름끼리는 채움 문자 하나로 구분합니다.
P<GRCPARADEIGMA<<ELENI<SOFIA<<<<<<<<<<<<<<<<
AM73045184GRC9403084F3203101PN48291630<<<<72 복합 체크 디지트는 아래 줄의 44번 위치에 있으며, 그 줄의 1–10, 14–20, 22–43 위치를 대상으로 합니다. 11–13 위치(국적)와 21 위치(성별)는 표준에 따라 복합 계산에서 제외됩니다.
TD2 – 36자 2줄
같은 두 줄 구성이며, 줄마다 여덟 자씩 더 좁습니다. 이름 필드는 31자입니다.
I<GRCPARADEIGMA<<ELENI<SOFIA<<<<<<<<
TR61850420GRC9403084F2911043<<<<<<<2 복합 체크 디지트는 아래 줄의 36번 위치에 있으며, 1–10, 14–20, 22–35 위치를 대상으로 합니다.
TD1 – 30자 3줄
카드 형식이며, 파서가 가장 자주 잘못 처리하는 형식입니다. 필드 배치가 다르기 때문입니다. 위 줄에는 문서 코드, 발급 국가, 문서 번호, 첫 번째 선택 데이터 블록이 들어가고, 가운데 줄에는 날짜, 성별, 국적이 들어가며, 이름은 아래 줄 30자 전체를 혼자 차지합니다. 세 형식 가운데 가장 좁은 이름 필드이므로, 긴 이름이 잘릴 위험이 가장 큰 형식은 TD1입니다.
IDGRCAK472913<4PN48291630<<<<<
9403084F3405204GRC<<<<<<<<<<<9
PARADEIGMA<<ELENI<SOFIA<<<<<<< 복합 체크 디지트는 가운데 줄의 마지막 문자인 30번 위치에 있으며, 위 줄의 6–30 위치와 가운데 줄의 1–7, 9–15, 19–29 위치를 대상으로 합니다. 두 줄에 걸친 범위이며, 바로 이 부분에서 구현이 틀립니다.
그 밖에 만나게 될 형식
세 가지 여행 문서 형식 외에도 다음과 같은 형식이 있습니다:
- MRV-A – A형 기계 판독 비자: 44자 2줄.
- MRV-B – B형 기계 판독 비자: 36자 2줄.
- 운전면허증 영역에 쓰이는 30자 1줄 형식.
- 카드 접근 번호를 담은 6자짜리 한 줄.
- 30자 2줄 변형.
저희 API는 감지한 형식을 알려 주므로, 줄 길이로 형식을 직접 추론할 필요가 없습니다.
체크 디지트, 그리고 보호하지 않는 것
각 체크 디지트는 해당 필드에 7, 3, 1 가중치를 반복 적용해 계산합니다. 숫자는 그 자체 값, 알파벳은 알파벳 순서에 9를 더한 값(A = 10), 채움 문자 <는 0으로 셉니다. 합계를 10으로 나눈 나머지(modulo 10)가 체크 디지트입니다.
체크 디지트는 문서 번호, 생년월일, 만료일, 그리고 TD3에서는 개인 번호를 보호하며, 여기에 영역 대부분을 아우르는 복합 체크 디지트가 더해집니다.
이름을 보호하는 체크 디지트는 없고, 발급 국가를 보호하는 체크 디지트도 없습니다. 둘 중 어느 쪽이 잘못 읽혀도 아무 신호가 없습니다. 계산은 여전히 맞아떨어지기 때문입니다. 문서의 인쇄면도 함께 읽고 두 판독 결과를 비교해야 하는 가장 강력한 이유가 바로 이것이며, 저희 API는 기본적으로 그렇게 합니다.
MRZ 파서에서 계산 과정을 문자 하나하나 따라가 볼 수 있으며, 직접 가져온 영역으로 다시 계산해 볼 수도 있습니다.
표준의 근거
ICAO Doc 9303, Machine Readable Travel Documents, 제8판, 2021. 문서 시리즈 안내 페이지가 더 이상 열리지 않으므로, 각 부는 링크 대신 번호와 영어 원제로 인용합니다:
| 부 | 제목 |
|---|---|
| 제3부 | Specifications Common to all MRTDs |
| 제4부 | Specifications for Machine Readable Passports (MRPs) and other TD3 Size MRTDs |
| 제5부 | Specifications for TD1 Size Machine Readable Official Travel Documents (MROTDs) |
| 제6부 | Specifications for TD2 Size Machine Readable Official Travel Documents (MROTDs) |
| 제7부 | Machine Readable Visas |
제3부에는 모든 형식에 공통된 내용, 즉 문자 집합, 채움 문자, 체크 디지트 계산법이 담겨 있습니다. 제4부는 TD3, 제5부는 TD1, 제6부는 TD2, 제7부는 두 가지 비자 형식을 정의합니다. 각 형식의 체크 디지트 표는 4.2.4절에 있으며, 이는 제4부, 제5부, 제6부 모두 같습니다.
직접 영역 확인하기
무료 MRZ 파서에 영역을 붙여 넣으면 모든 체크 디지트가 브라우저에서 바로 다시 계산됩니다. 아무것도 업로드되지 않습니다. 테스트 데이터용 유효한 영역을 만들려면 MRZ 생성기를 사용하고, 인식 결과로 돌아오는 전체 필드 목록을 보려면 문서 필드 탐색기를 여세요. 세 도구 모두 계정이 필요 없습니다.
영역만이 아니라 인쇄된 면과 인코딩된 면을 포함한 문서 전체를 읽으려면 요청 한 번이면 되며, 처음 몇 번의 호출은 계정이 필요 없습니다. 두 판독 결과가 다를 때 어느 쪽을 믿어야 하는지는 문서의 MRZ and the visual zone(영문) 페이지에서 설명합니다.
이 페이지의 모든 영역은 가상의 소지자 한 명의 것입니다. 번호도 날짜도 지어낸 것이며, 체크 디지트는 손으로 입력하지 않고 그 값으로 계산했습니다. 실제 누구의 것도 아닙니다.