| English | 의미 |
|---|---|
| integrity/ɪnˈteɡrɪti/ | 무결성 |
| validation/ˌvælɪˈdeɪʃn/ | 검증 |
| verification/ˌverɪfɪˈkeɪʃn/ | 확인 |
| range check/reɪndʒ tʃek/ | 범위 검사 |
| check digit/tʃek ˈdɪdʒɪt/ | 검산 цифр |
| double entry/ˈdʌbl ˈentri/ | 이중 입력 |
| parity check/ˈpærɪti tʃek/ | 패리티 체크 |
| checksum/ˈtʃeksəm/ | 체크섬 |
| cyclic redundancy check/ˈsaɪklɪk rɪˈdʌndənsi tʃek/ | 순환冗余检查 |
| parity block check/ˈpærɪti blɒk tʃek/ | 패리티 블록 체크 |
모든 숫자가 모든 점검을 통과함
- 1999년 9월 NASA의 화성 기후 관측기가 궤도에 진입하기 위해 엔진을 발사했으나 더 이상 소식이 들리지 않았습니다. 계획보다 170km 낮게 비행하여 타버렸습니다.
- 한 팀의 소프트웨어는 파운드힘초 단위의 추력을 산출했습니다; 수신 소프트웨어는 뉴턴초를 기대했습니다. 모든 값은 효한 범위 내의 잘 형성된 숫子了. 모든 값은 4.45배만큼 틀렸습니다.
- 데이터가 형식이 틀리지 않았기 때문에 어떤 양식 검사도 이를 포착할 수 없습니다. 단순히声称한内容与事实不符일 뿐입니다. $327 백만 달러.
- 이 교훈은 무결성을 보호하는 두 가지 점검 패밀리입니다: 검증(validation)은 데이터가 합리적인지 묻고, 확인(verification)은 올바르게 복사되었는지 묻습니다. 그리고 그 사이 간격이 화성이 떨어졌던 곳입니다.
두 가지 질문
- 데이터는 정확하고 일관되며 완전할 때 무결성(integrity) 을 갖습니다.
- 검증(validation) 은 입력된 데이터가 합리적이며 설정된 규칙을 따르는지 자동적으로 확인합니다. 질문: 이것이 합리적인가?
- 확인(verification) 은 데이터가 올바르게 입력되거나 전송되었는지, 소스나 재계산된 값과 비교하여 확인합니다. 질문: 이것이 올바르게 복사되었는가?
- 둘 다 데이터가 참임을 증명하지는 않습니다. 둘 다 필요합니다.
컴퓨팅 개념 실험실
구체적인 예시를 그들이 시연하는 컴퓨팅 개념에 따라 분류하십시오.
검증 방법
| 점검 | 규칙 | 예시 |
|---|---|---|
| 범위 점검(range check) | 두 한계 사이 | 한 달은 1~12 |
| 한계 점검(limit check) | 단일 한계의 한쪽 | 나이에 ≥ 18 |
| 존재性(lookup) 검사 | 값이 목록이나 표에 있음 | 제품 코드가 존재함 |
| 길이 검사 | 올바른 개수의 문자 | 6 자리의 우편 번호 |
| 유형/문자 검사 | 올바른 종류의 데이터 | 전화번호 필드는 숫자만 허용함 |
| 양식 검사 | 패턴과 일치함 | 이메일에 @ 포함됨 |
| 필수 입력 검사(presence check) | 필수 필드가 비어 있지 않음 | 성함이 입력됨 |
| 검증 digit | 다른 숫자들을 기반으로 계산된 추가 숫자 | ISBN, 카드 번호 |
입력된 달이 1부터 12 사이인지 확인하는 것은:
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
범위 검사는 값이 합리적인 범위 내에 있는지 확인합니다.
각 검증 검사를 그 목적에 매칭하십시오.
난이도 2/5 · 140 코인 + 오늘 첫 완료 시 소액 보너스
존재 = 비어 있지 않음; 양식 = 패턴과 일치; 검증 숫자 = 입력 실수를 잡기 위해 계산됨.
다른 숫자들을 기반으로 계산되어 틀린 숫자를 포착하는 추가된 숫자는 ______ 숫자입니다.(ISBN이나 카드 번호와 같이)
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
검증 숫자는 나머지 숫자로부터 재계산되어 비교되며, 대부분의 단일 숫자 오류와 위치 바뀜 오류를 포착합니다.
worked example: 가짜 코드가 수행하는 확인 사항 나열하기
| 가짜 코드 | 확인 사항 |
|---|---|
IF x < 0 OR x > 10 THEN OUTPUT "Invalid" |
범위 확인: 두 한계 사이 |
IF x = "" THEN OUTPUT "Invalid" |
필수 항목 확인: 비어 있지 않음 |
IF NOT(x = "Red" OR x = "Yellow" OR x = "Blue") THEN OUTPUT "Invalid" |
존재성(검색) 확인: 목록 중 하나임 |
IF LENGTH(x) <> 6 THEN OUTPUT "Invalid" |
길이 확인: 여섯 문자 |
IF MID(x, 1, 1) < "A" OR MID(x, 1, 1) > "Z" THEN OUTPUT "Invalid" |
양식 확인: 첫 번째 문자가 글자임 |
- 차량 등록 번호가 한 글자, 세 숫자, 두 글자로 이루어졌다면 각 위치마다 양식 확인이 필요하고, 총 여섯 문자에 대한 길이 확인도 필요합니다. 생일은 양식 확인(
DD/MM/YYYY), 범위 확인(월은 1~12, 연도는 미래가 아님), 필수 항목 확인이 필요합니다.
각 가상의 코드 줄이 수행하는 검증 검사에 매칭하십시오.
난이도 2/5 · 140 코인 + 오늘 첫 완료 시 소액 보너스
비어 있음 테스트 = 존재; 문자 개수 = 길이; 두 가지 한계 = 범위; 허용되는 값 목록 = 존재 또는 검색.
worked example: 체크 디지트와 그 한계
- 간단한 방식: 체크 디지트는 숫자의 합을 10으로 나눈 나머지를 해당 번호 뒤에 붙인 것입니다.
4162의 숫자 합은 13이므로, 이는41623로 저장됩니다. - 사용자가
41523를 입력하면: 합이 12가 되어 체크 디지트는 2여야 하므로, 오류는 검출됨. - 사용자가
14623를 입력하면: 첫 두 숫자가 바뀠지만 합은 여전히 13이므로 체크 디지트가 일치하여 오류는 검출되지 않음. 실제 방식(ISBN, 카드 번호)은 각 위치의 가중치를 적용하여 순서 변경 시 결과가 달라지게 합니다.
검증(Validation)이 할 수 없는 일
- 검증은 양식이 틀리거나 범위를 벗어난 데이터를 검출합니다.
- 올바른 양식을 가지지만 사실적으로 틀린 데이터는 검출할 수 없습니다.
Bob가Bib대신 입력되면 모든 확인을 통과합니다. 화성에 보내진 모든 로켓 도발 장치 역시 마찬가지였습니다. - 이를 위해서는 소스와의 비교(Verification)와 입력 내용을 읽을 사람이 필요합니다.
왜 검증은 여전히 잘못된 데이터를 통과시킬 수 있는가?
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
검증은 형식을 확인할 뿐 진실성을 확인하지 않습니다. 올바르게 형식화되었지만错误的인 값은 통과합니다.
데이터 입력 중 검증(Verification)
- 이중 입력: 동일한 사람 또는 두 사람이 데이터를 두 번 입력하며, 컴퓨터가 두 버전을 비교해 차이를 보고합니다. 새 비밀번호 설정이 일상적인 예시입니다.
- 시각적 확인: 사용자는 화면에 표시된 내용과 원본 문서를 대조하여 저장 전에 차이를 수정합니다.
- 둘 다 저장된 데이터가 소스와 일치하도록 하여 무결성을 보호합니다.
사용자에게 새 비밀번호를 두 번 입력하도록 요청하는 것은 예시입니다:
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
이중 입력은 두 번 입력된 복사본을 비교하여 데이터가 올바르게 입력되었는지 확인합니다.
데이터 전송 중 검증(Verification)
- 전송 중 비트가 뒤바뀌기도 합니다. 패리티 확인은 각 바이트에 하나의 추가 비트를 더해 1의 개수를 짝수(짝 패리티)나 홀수로 만듭니다. 수신측에서 다시 세면 단일 비트 변경 시 세기가 맞지 않습니다.
- 체크섬은 알고리즘을 통해 데이터 블록에서 계산한 값으로, 함께 전송되어 수신측에서 다시 계산하여 비교합니다. 카메라에서 서버로 비디오 파일을 전송할 때 이 방식을 사용합니다: 불일치 시 재전송합니다.
- 순환冗余检查(CRC) 는 다항식除法를 사용하는 강력한 체크섬으로 더 많은 오류 패턴을 검출합니다.

추가된 하나의 비트가 1의 개수를 짝수로 만듭니다; 뒤바뀐 비트가 이를 깨뜨림

계산, 전송, 다시 계산, 비교
패리티 검사는 다음 방식으로 작동합니다:
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
패리티 비트는 1의 개수를 짝수나 홀수로 만듭니다; 수신자가 다시 세어 단일 비트 오류를 감지합니다.
데이터 전송 중 사용되는 검증 방법은 무엇입니까? 모두 선택하십시오.
난이도 2/5 · 140 코인 + 오늘 첫 완료 시 소액 보너스
패리티와 체크섬은 수신 측에서 값을 재계산합니다. 이중 입력과 시각적 검사는 데이터 입력 중 발생합니다.
바이트 패리티 검사는 해당 바이트의 가능한 모든 전송 오류를 감지합니다.
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
두 비트가 뒤바뀌면 1의 개수는 변하지 않아 통과합니다. 패리티는 단일 비트 오류만 reliably하게 포착합니다.
worked example: 패리티 블록이 비트 위치를 locating함
- 패리티 블록 확인은 바이트를 격자 형태로 배치합니다: 각 바이트에는 행 패리티 비트가 있고, 하나의 추가 패리티 바이트는 위쪽 바이트들의 열 패리티를 담습니다.
- 짝 패리티로 네 바이트가 전송되고其后 패리티 바이트가 따라옵니다. 각 행과 열의 1의 개수를 세면: 바이트 3은 다섯 개, 열 4는 세 개로 모두 홀수입니다.
- 해당 행과 열이 교차하는 위치의 비트가 변경된 것이므로, 이를 1에서 0으로 초기화합니다. 단일 패리티 비트는 오류를 감지하지만, 블록은 오류의 위치를 locating하여 수정합니다.

한 행이 틀리고, 한 열이 틀림: 비트는 교차점에 있음
패리티 블록 검사의 단계를 순서대로 나열하십시오.
난이도 3/5 · 200 코인 + 오늘 첫 완료 시 소액 보너스
행은 감지하고, 열은 감지하며, 교차점은 위치를 지정하고, 반전은 수정합니다. 이것이 단일 패리티 비트보다 블록이 추가하는 기능입니다.
worked example: 어떤 확인이 어떤 오류를 검출하는가
- 사용자가 생일을
31/02/2009로 입력한 후 이메일 주소를 두 번 입력했습니다. 어떤 확인이 어떤 오류를 검출하며, 그 차이는 무엇입니까? - 검증(Validation): 양식 또는 범위 확인이
31/02/2009를 거절합니다. 2월은 31일까지 존재하지 않기 때문입니다. 컴퓨터는 값을 규칙에 대해 테스트합니다. - 검증(Verification): 이중 입력이 두 이메일 주소를 비교하여 차이가 있을 경우 불일치를 보고합니다. 컴퓨터는 두 사본을 비교하므로, 같은错误的주소를 두 번 입력해도 수락합니다.
- 검증은 데이터가 타당한지 묻고, 검증(Verification)은 올바르게 입력되었는지 묻습니다.

타당함, 혹은 정확하게 복사됨: 서로 다른 질문
어느 문장이 맞습니까?
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
검증은 규칙에 따른 합리성을 테스트합니다; 확인은 데이터가 변경되지 않고 입력/전송되었음을 테스트합니다.
검증은 데이터가 변경 없이 복사되거나 입력되었음을 증명하지만, 값이 사실적으로 정확한지는 증명하지 않습니다.
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
이중 입력/체크섬은 데이터가 변경 없이 도착했음을 증명합니다; 실제로 참인지 확인하려면 사람이나 교차 검증만이 가능합니다.
놓칠 수 있는 점
- 체크 디지트는 입력 시 검증(Validation)이며, 패리티와 체크섬은 전송을 검증(Verification)합니다. 잘못된 category에 분류하지 마십시오.
- 어느 확인도 데이터가 진실임을 증명하지 않습니다. 검증은
- 바이트 패리티 검사는 동일한 바이트 내에서 두 비트가 뒤집힐 경우 서로 상쇄되므로 이를 놓칩니다. '단일 비트 오류(single-bit errors)'라고 명시하십시오.
- 암호화는 보안 조치입니다. 하지만 무결성(integrity)을 보장하지는 못합니다.
이해했습니다
- 검증 = 입력 시 자동 적용되는 규칙: 범위, 한계, 존재 여부, 길이, 유형, 형식, 유무, 체크 디지트; 올바른 형식이더라도 잘못된 값은 포착할 수 없음
- 검증 입력 시 = 이중 기록 및 시각적 점검; 전송 시 = 패리티(바이트 또는 블록), 체크섬, CRC
- 패리티 블록은 실패한 행과 열의 교차점에서 뒤집힌 비트를 위치 확인함
- 검증은 "타당한가?"를 묻고, 검증(verification)은 "올바르게 복사되었는가?"를 묻으며, 어느 쪽도 "참인가?"를 묻지 않는다.