KR20220138639A - 분할 에러 검출을 이용한 데이터 유효성 검사 방법 및 그 장치 - Google Patents
분할 에러 검출을 이용한 데이터 유효성 검사 방법 및 그 장치 Download PDFInfo
- Publication number
- KR20220138639A KR20220138639A KR1020210044556A KR20210044556A KR20220138639A KR 20220138639 A KR20220138639 A KR 20220138639A KR 1020210044556 A KR1020210044556 A KR 1020210044556A KR 20210044556 A KR20210044556 A KR 20210044556A KR 20220138639 A KR20220138639 A KR 20220138639A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- validation
- code
- blocks
- validation code
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 30
- 238000013502 data validation Methods 0.000 title claims description 20
- 238000001514 detection method Methods 0.000 title 1
- 238000010200 validation analysis Methods 0.000 claims abstract description 74
- 238000012795 verification Methods 0.000 description 16
- 230000000694 effects Effects 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 101100217298 Mus musculus Aspm gene Proteins 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 230000003334 potential effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
- G06F11/1016—Error in accessing a memory location, i.e. addressing error
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/588—Random number generators, i.e. based on natural stochastic processes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
본 발명은 데이터의 유효성 검증에 관한 것으로 전체 데이터에 대한 유효성 검증을 수행하는 것이 아니라 랜덤 함수에 의해 생성한 난수로 데이터의 일부 블록을 선택하여 해당 블록에 대한 유효성 검증을 수행함으로써 유효성 검증에 소요되는 시간을 단축하면서도 유효성 검증의 반복에 의해 전체 데이터에 대한 유효성 검증을 수행할 수 있는 장점이 있다.
Description
본 발명은 저장장치에 저장된 데이터의 유효성을 검사하는 기술에 관한 것이다.
데이터를 저장하기 위한 저장장치는 소프트웨어 오류 또는 외부 자극, 수명, 저장장치 특성 등의 하드웨어 오류로 인해 저장된 데이터가 손실될 수 있다. 이러한 손실은 데이터를 읽는 시점에 데이터의 유효성을 검사함으로써 데이터 오류로 인한 오동작을 예방할 수 있다.
하지만 저장장치에 저장된 모든 데이터를 읽을 때마다 유효성을 검사한다면 데이터의 무결성을 보장할 수는 있으나 유효성 검사에 많은 시간이 걸리는 단점이 있다. 특히 부트로더(Boot loader)나 운영체제(OS: Operating System)와 같이 시스템의 부팅에 필요한 데이터인 경우 모든 데이터에 대한 유효성 검사에 의해 부팅 시간이 지연될 수 있으며 이로 인해 빠른 부팅속도를 필요로 하는 시스템에서는 적용하기 어려운 문제가 있다.
본 발명의 발명자들은 이러한 종래 기술의 데이터 유효성 검사 문제의 해결을 위해 연구 노력해 왔다. 저장된 데이터 중 일부에 대해서만 검사를 수행하면서도 모든 데이터에 대한 유효성을 보장하고 따라서 데이터 유효성 검사에 소요되는 시간을 단축할 수 있는 방법 및 장치를 완성하기 위해 많은 노력 끝에 본 발명을 완성하기에 이르렀다.
본 발명의 목적은 전체 데이터 중 일부 영역에 대해서만 검사를 수행하면서도 전체 데이터 영역에 대한 유효성을 검증할 수 있는 방법을 제공하는 것이다.
한편, 본 발명의 명시되지 않은 또 다른 목적들은 하기의 상세한 설명 및 그 효과로부터 용이하게 추론 할 수 있는 범위 내에서 추가적으로 고려될 것이다.
본 발명에 따른 데이터 유효성 검사 방법은,
(a) 전체 데이터를 복수의 블록으로 분할하는 단계; (b) 상기 복수의 블록 각각에 대한 유효성 검증 코드를 생성하는 단계; 및 (c) 상기 유효성 검증 코드를 저장하는 단계;를 포함한다.
상기 (c)단계 이후에, (d) 임의의 난수를 생성하는 단계; (e) 상기 생성한 난수에 대응하는 데이터 블록에 대한 유효성 연산을 수행하는 단계; 및 (f) 상기 연산 결과와 상기 유효성 검증 코드를 비교하여 데이터의 유효성을 검사하는 단계;를 더 포함하는 것을 특징으로 한다.
상기 (a) 내지 (c) 단계는 시스템 부팅 영역에 대해서만 수행하는 것을 특징으로 한다.
상기 (b) 내지 (c) 단계는 상기 분할된 블록에 포함된 데이터의 변경이 있는 경우 다시 수행하는 것을 특징으로 한다.
상기 (b) 내지 (c) 단계는 상기 분할된 블록에 포함된 데이터의 변경이 있는 경우 상기 변경된 데이터가 포함된 블록에 대해서만 유효성 검증 코드를 다시 생성하여 저장하는 것을 특징으로 한다.
상기 (d) 내지 (f) 단계는 상기 제어부가 포함된 시스템 부팅시에만 수행되는 것을 특징으로 한다.
본 발명에 따르면 전체 데이터 중 일부 데이터에 대해서만 유효성 검사를 수행하면서도 전체 데이터의 유효성을 검증할 수 있는 효과가 있다.
또한 일부 데이터에 대해서만 유효성 검사를 하기 때문에 검사 시간을 단축시킬 수 있는 장점도 있다.
한편, 여기에서 명시적으로 언급되지 않은 효과라 하더라도, 본 발명의 기술적 특징에 의해 기대되는 이하의 명세서에서 기재된 효과 및 그 잠정적인 효과는 본 발명의 명세서에 기재된 것과 같이 취급됨을 첨언한다.
도 1은 본 발명의 바람직한 어느 실시예에 따른 데이터 유효성 검사 장치의 개략적인 구조도이다.
도 2는 본 발명의 바람직한 다른 실시예에 따른 데이터 유효성 검사 방법의 개략적인 흐름도이다.
도 3은 본 발명의 바람직한 다른 실시예에 따른 데이터 유효성 검사 방법의 보다 자세한 흐름도이다.
도 4는 본 발명의 바람직한 또 다른 실시예에 따른 데이터 유효성 검사 방법의 개략적인 흐름도이다.
도 5는 본 발명의 바람직한 또 다른 실시예에 따른 데이터 유효성 검사 방법의 보다 자세한 흐름도이다.
※ 첨부된 도면은 본 발명의 기술사상에 대한 이해를 위하여 참조로서 예시된 것임을 밝히며, 그것에 의해 본 발명의 권리범위가 제한되지는 아니한다.
도 2는 본 발명의 바람직한 다른 실시예에 따른 데이터 유효성 검사 방법의 개략적인 흐름도이다.
도 3은 본 발명의 바람직한 다른 실시예에 따른 데이터 유효성 검사 방법의 보다 자세한 흐름도이다.
도 4는 본 발명의 바람직한 또 다른 실시예에 따른 데이터 유효성 검사 방법의 개략적인 흐름도이다.
도 5는 본 발명의 바람직한 또 다른 실시예에 따른 데이터 유효성 검사 방법의 보다 자세한 흐름도이다.
※ 첨부된 도면은 본 발명의 기술사상에 대한 이해를 위하여 참조로서 예시된 것임을 밝히며, 그것에 의해 본 발명의 권리범위가 제한되지는 아니한다.
이하, 도면을 참조하여 본 발명의 다양한 실시예가 안내하는 본 발명의 구성과 그 구성으로부터 비롯되는 효과에 대해 살펴본다. 본 발명을 설명함에 있어서 관련된 공지기능에 대하여 이 분야의 기술자에게 자명한 사항으로서 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다.
'제1', '제2' 등의 용어는 다양한 구성요소를 설명하는데 사용될 수 있지만, 상기 구성요소는 위 용어에 의해 한정되어서는 안 된다. 위 용어는 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용될 수 있다. 예를 들어, 본 발명의 권리범위를 벗어나지 않으면서 '제1구성요소'는 '제2구성요소'로 명명될 수 있고, 유사하게 '제2구성요소'도 '제1구성요소'로 명명될 수 있다. 또한, 단수의 표현은 문맥상 명백하게 다르게 표현하지 않는 한, 복수의 표현을 포함한다. 본 발명의 실시예에서 사용되는 용어는 다르게 정의되지 않는 한, 해당 기술분야에서 통상의 지식을 가진 자에게 통상적으로 알려진 의미로 해석될 수 있다.
이하, 도면을 참조하여 본 발명의 다양한 실시예가 안내하는 본 발명의 구성과 그 구성으로부터 비롯되는 효과에 대해 살펴본다.
도 1은 본 발명의 바람직한 어느 실시예에 따른 데이터 유효성 검사 장치의 개략적인 구조도이다.
본 발명에 따른 데이터 유효성 검사 장치(100)는 제어부(110) 및 저장부(120)로 이루어진다.
제어부(110)는 하나 이상의 프로세서(112) 및 메모리(114)를 포함하며, 프로세서(112)는 데이터 유효성 검사를 위한 명령어들을 수행하고 메모리(114)에는 프로세서(112) 구동을 위한 프로그램 코드 및 데이터가 저장된다.
저장부(120)에는 다양한 데이터들이 저장될 수 있다. 시스템 구동에 필요한 운영체제(OS: Operating System)나 부팅에 필요한 부트코드, 프로그램 코드나 프로그램 실행에 필요한 데이터 등이 저장된다.
저장부(120)에 저장된 데이터들은 여러가지 요인으로 손상될 수 있기 때문에 유효성 검증이 필요하다.
가장 간단한 방법으로는 전체 데이터에 대해 유효성 검사를 수행하는 방법이다.
다음 표 1은 전체 데이터에 대해 유효성 검증을 하는 예를 나타낸다.
주소 0x0000 부터 0x0FFF 까지의 모든 데이터에 대해 유효성 검증 코드의 한 예인 체크섬(Checksum) 계산을 하고 이를 마지막 데이터 다음인 0x1000 주소에 저장해두는 것이다.
그런데 이런 방법으로 유효성을 검사하려면 모든 데이터에 대해 체크섬 연산을 해야 하므로 데이터의 양이 커지는 경우 유효성 검사에 많은 시간이 소요되는 단점이 있다.
표 2는 이러한 단점을 보완하기 위한 유효성 검증의 다른 예이다.
표 2에서는 전체 데이터가 아니라 데이터의 일부에 대해서만 체크섬을 연산하여 기록해두고 유효성을 검사하는 방법을 사용한다.
이러한 방법은 전체 데이터를 체크하는 것에 비해 연산량을 줄일 수는 있겠지만 체크섬 연산에 포함되지 않는 데이터들의 오류를 검증할 수 없는 문제가 있다.
따라서 본 발명에서는 이러한 문제를 보완하기 위해 랜덤으로 데이터를 선택하여 유효성 검증을 실시하는 방법을 사용한다.
도 2는 제어부(110)에 수행되는 본 발명의 바람직한 어느 실시예에 따른 데이터 유효성 검사 방법 중 유효성 검증 코드를 생성하는 과정의 개략적인 흐름도이다.
우선 데이터를 복수의 블록으로 분할하기 위해 부호화 파라미터를 입력받는다(S110).
부호화 파라미터는 유효성 검증을 위한 데이터의 시작과 종료 주소(Addr), 유효성 검증 부호화를 위한 데이터 바이트 수(N), 데이터를 복수의 블록으로 분할하기 위한 블록의 수(M) 등이 포함될 수 있다.
유효성 검증 부호화를 위한 데이터 바이트 수와 블록의 수를 가변으로 하는 이유는 제어부(110)나 저장부(120)의 특성에 따라 유효성 검증 연산 속도나 데이터 기록 특성의 차이가 있으므로 최적의 바이트 수와 블록 수를 설정하기 위함이다.
부호화 파라미터가 입력되면 전체 데이터를 입력받은 블록 수로 분할한다(S120).
데이터의 분할은 연속된 데이터의 블록으로 이루어 질 수도 있고 파라미터의 바이트 수 만큼 교차로 분할하는 것도 가능하다.
예를 들면 앞에서 입력받은 부호화 파라미터의 데이터 바이트 수(N), 데이터 블록의 수(M)에 따라 전체 데이터를 분할한다면 전체 데이터를 N바이트씩 나누고, 이를 다시 M개의 블록으로 묶는 분할이 가능할 것이다.
블록의 분할은 첫 N바이트는 제1 블록, 두번째 N바이트는 제2 블록, M번째 N바이트는 제M 블록, M+1번째 N바이트는 다시 제1 블록으로 분할하듯이 교차로 분할하거나, 처음부터 K번째의 N 바이트를 하나의 블록으로, 그 다음 K개의 N바이트를 그 다음 블록으로 순서대로 분할하는 것도 가능할 것이다. 구체적인 예는 아래 S140 단계에서 보다 자세히 설명된다.데이터 분할이 이루어진 후 각 블록에 대한 유효성 검증 코드를 생성하게 된다(S130).
유효성 검증 코드의 생성은 체크섬 외에도 순환 중복 검사(CRC: Cyclic Redundancy Check), MD5, SHA1, SHA256, SHA512 해쉬(Hashes) 등 다양한 기법이 사용될 수 있다.
유효성 검증 코드 생성의 한 예로 체크섬은 말 그대로 각 블록에 속한 데이터들을 모두 더하여 이 데이터를 체크하는 것이다. 예를 들어 각 블록의 데이터들이 4바이트의 데이터들로 구성된다면, 4바이트의 데이터들을 모두 더한 합을 4바이트로 잘라낸다(truncation). 이후 검증 단계에서 다시 각 블록의 데이터들을 더한 다음 동일한 결과가 나오는지 확인하여 데이터들의 이상 여부를 확인하는 것이다.
유효성 검증 코드의 생성이 완료되면 유효성 검증 코드의 헤더와 함께 유효성 검증 코드를 저장한다(S140).
유효성 검증 코드 헤더는 바이트수, 블록의 수, 유효성 검증 코드가 저장된 위치의 주소, 크기 등이 포함될 수 있다.
다음 표 3은 본 발명에 따른 유효성 검증 코드 생성 예를 나타낸다.
표 3의 예에서는 데이터 바이트 수 N=4로, 블록의 수 M=8로 데이터에 대한 유효성 검증 코드가 생성되었다.
데이터 바이트 수 N=4이고 블록의 수 M=8 이므로 4*8=32바이트(16진수 0x20) 단위로 같은 블록이 나타나게 된다. 제1 데이터 블록은 0x0, 0x20, 0x40…FE0의 4 바이트 데이터 단위로 구성이 되고 유효성 검증 코드는 0x1010 주소에 저장된다. 마찬가지로 제2 내지 제8 데이터 블록이 이어지며 교차하여 검증 코드가 생성될 것이다.
유효성 검증 코드 헤더에는 (4, 8, 0x1010, 0x40)이 저장된다.
이러한 유효성 검증 코드 생성은 시스템의 부트로더 등 부팅에 필요한 부팅 영역 데이터에 대해서만 수행될 수 있다. 부팅 영역 데이터는 읽고 쓰기가 반복되는 영역이 아니고 거의 고정된 데이터이며 부팅시에만 사용되기 때문에 변화가 적고 또한 중요성이 높기 때문이다.
부팅 영역이나 부팅 영역이 아니더라도 데이터의 변화가 있는 경우에는 위의 검증 코드 생성은 다시 이루어 질 수 있다. 이 대 유효성 검증 코드는 전체 데이터에 대해서가 아니라 변화가 발생한 데이터가 속한 블록에 대해서만 수행함으로써 유효화 검증 부호화의 효율을 높일 수 있다.
도 3은 본 발명의 바람직한 다른 실시예에 따른 유효성 검증 코드를 생성하는 방법의 보다 자세한 흐름도이다.
도 2에서 유효성 검증 코드 생성 단계(S130)는 부호화 파라미터에 의해 구분된 데이터 블록들에 대해 수행된다.
따라서 반복 상수 K는 0으로 설정되고(S131) 데이터의 주소(Addr)는 K*N으로 설정된다. 표 3의 예에서는 N=4 이므로 주소는 0에서 시작한다.
시작 주소에서 N바이트의 데이터를 읽어서(S133) 유효성 검증 코드 계산을 수행한다(S134).
유효성 검증 코드의 계산은 블록 별로 이루어져야 하므로 다음 데이터의 주소는 N*M만큼 증가해야 한다(S135). 표 3의 예에서 블록의 수 M=8이므로 주소 Addr은 4*8=32씩 증가하게 된다. 따라서 다음 주소는 32(16진수 0x20)가 된다.
데이터 주소가 종료 주소보다 큰지 확인하여(S136) 아직 종료 주소에 이르지 못했다면 유효성 검증 코드 계산을 반복하게 된다.
한 블록의 유효성 검증 코드 계산이 끝나게 되면 유효성 검증 코드를 유효성 검증 코드 헤더와 함께 저장한다(S137).
그리고 다음 블록의 유효성 검증 코드를 계산하기 위해 K값을 증가시키고(S138) K가 블록의 수 M보다 크지 않은지 확인하여(S139) 크지 않으면 다음 블록에 대한 초기 주소를 설정하고(S132) 유효성 검증 코드 계산을 반복하게 된다. K=1인 경우 초기 주소 Addr=K*N=1*4=4 이므로 표 3의 0x4의 주소에 위치한 제2 블록의 4바이트 데이터를 시작으로 제2 블록에 대한 유효성 검증 코드를 계산하는 것이다.
도 4는 본 발명의 바람직한 또 다른 실시예에 따른 데이터 유효성 검사 방법의 개략적인 흐름도이다.
유효성 검증 코드가 생성된 데이터에 대해 유효성 검증을 위해서는 일부 블록에 대해서만 검증 코드를 이용하여 데이터를 검증하게 된다.
우선 유효성 검증 코드 헤더를 읽어서(S210) 유효한 헤더인지 먼저 검증한다(S220).
만일 유효한 헤더가 아니라면 검증의 의미가 없으므로 검증을 종료하게 된다.
유효성 검증 코드 헤더가 유효하다면 선별된 검증 코드를 계산하여(S230) 저장되어 있던 검증 코드와 비교하게 된다(S240).
검증 코드 계산은 유효성 검증 코드 생성에 사용된 동일한 알고리즘들을 사용한다. 예를 들어 유효성 검증 코드 생성에 체크섬 방식이 사용되었다면 검증 코드 계산 역시 체크섬 방식을 사용해야 한다. 즉 각 블록에 속한 데이터들을 모드 더하여 단위 데이터 길이만큼으로 잘라내면 검증 코드가 계산되는 것이다.
계산한 검증 코드와 저장된 검증 코드가 일치하는지 판단하여(S250) 일치하면 데이터는 유효한 것으로 판단하여 검증 절차를 종료하게 된다.
만일 검증 결과 검증 코드가 일치하지 않는 다면 저장되어 있던 유효성 검증 코드를 삭제하고(S260) 검증을 종료한다. 필요한 경우 해당 블록에 대해 유효성 검증 부호화를 다시 수행하여 유효성 검증 코드를 다시 생성할 수 있을 것이다.
이러한 유효화 검증 코드의 복호화는 데이터를 읽을 때마다 수행하기에는 전체 시스템에 부담이 될 수 있다. 따라서 유효성 검증은 시스템 부팅시에만 수행할 수 있다. 하지만 시스템 특성에 따라서는 주기적으로 혹은 데이터를 읽을 때마다 수행하는 것도 가능할 것이다.
도 5는 유효성 검증 코드 계산을 위한 보다 자세한 흐름도이다.
우선 임의의 수 K를 생성한다(S231).
K는 유효화 검증 코드 헤더에 저장된 M의 범위에서 랜덤 함수에 의해 생성된다. 표 3의 경우 블록의 수 M은 8이므로 K는 0~7 사이의 수에서 유효화 검증 코드 계산시마다 랜덤하게 생성된다.
따라서 유효화 검증시마다 데이터의 임의의 부분들에 대해 검증이 이루어지므로 전체 데이터에 대한 유효성을 검사하는 효과를 얻게 되는 것이다.
데이터를 읽기 위한 시작 주소는 랜덤하게 생성된 K와 유효화 검증 코드 헤더에 저장된 N을 곱하여 얻을 수 있다(S232).
K*N의 주소에서 N바이트를 읽어서(S233) 유효성 검증 코드를 계산하고(S235) 주소는 블록의 수 M과 바이트 수 N을 곱한 M*N만큼 증가시켜(S235) 마지막 데이터가 있는 주소까지(S236) 반복해서 유효성 검증 코드를 계산하게 된다.
이렇게 전체 데이터를 M개의 블록으로 분할함으로써 전체 데이터 중 1/M의 데이터에 대해서만 유효성 검사가 이루어지게 된다. 하지만 랜덤 함수에 의해 선택된 블록에 대해 선별적인 검사가 반복됨으로써 결국 전체 데이터에 대한 검사가 이루어지는 효과를 얻을 수 있다.
본 발명의 보호범위가 이상에서 명시적으로 설명한 실시예의 기재와 표현에 제한되는 것은 아니다. 또한, 본 발명이 속하는 기술분야에서 자명한 변경이나 치환으로 말미암아 본 발명이 보호범위가 제한될 수도 없음을 다시 한 번 첨언한다.
Claims (6)
- 하나 이상의 프로세서 및 메모리를 포함하는 제어부에 의해 수행되는 데이터 유효성 검사 방법에 있어서:
(a) 전체 데이터를 복수의 블록으로 분할하는 단계;
(b) 상기 복수의 블록 각각에 대한 유효성 검증 코드를 생성하는 단계; 및
(c) 상기 유효성 검증 코드를 저장하는 단계;를 포함하는, 데이터 유효성 검사 방법.
- 제1항에 있어서 상기 (c)단계 이후에,
(d) 임의의 난수를 생성하는 단계;
(e) 상기 생성한 난수에 대응하는 데이터 블록에 대한 유효성 연산을 수행하는 단계; 및
(f) 상기 연산 결과와 상기 유효성 검증 코드를 비교하여 데이터의 유효성을 검사하는 단계;를 더 포함하는 것을 특징으로 하는, 데이터 유효성 검사 방법.
- 제1항에 있어서,
상기 (a) 내지 (c) 단계는 시스템 부팅 영역에 대해서만 수행하는 것을 특징으로 하는, 데이터 유효성 검사 방법.
- 제1항에 있어서,
상기 (b) 내지 (c) 단계는 상기 분할된 블록에 포함된 데이터의 변경이 있는 경우 다시 수행하는 것을 특징으로 하는, 데이터 유효성 검사 방법.
- 제4항에 있어서,
상기 (b) 내지 (c) 단계는 상기 분할된 블록에 포함된 데이터의 변경이 있는 경우 상기 변경된 데이터가 포함된 블록에 대해서만 유효성 검증 코드를 다시 생성하여 저장하는 것을 특징으로 하는, 데이터 유효성 검사 방법.
- 제2항에 있어서,
상기 (d) 내지 (f) 단계는 상기 제어부가 포함된 시스템 부팅시에만 수행되는 것을 특징으로 하는, 데이터 유효성 검사 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210044556A KR20220138639A (ko) | 2021-04-06 | 2021-04-06 | 분할 에러 검출을 이용한 데이터 유효성 검사 방법 및 그 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210044556A KR20220138639A (ko) | 2021-04-06 | 2021-04-06 | 분할 에러 검출을 이용한 데이터 유효성 검사 방법 및 그 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20220138639A true KR20220138639A (ko) | 2022-10-13 |
Family
ID=83599281
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210044556A KR20220138639A (ko) | 2021-04-06 | 2021-04-06 | 분할 에러 검출을 이용한 데이터 유효성 검사 방법 및 그 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20220138639A (ko) |
-
2021
- 2021-04-06 KR KR1020210044556A patent/KR20220138639A/ko active Search and Examination
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3678346B1 (en) | Blockchain smart contract verification method and apparatus, and storage medium | |
US9530004B2 (en) | Secure boot method, semiconductor device and recording medium | |
CN108563532B (zh) | 数据处理方法及相关装置 | |
CN104461641B (zh) | 一种数据烧写方法、系统、烧写设备以及目标设备 | |
US20110320794A1 (en) | Flash System And Method For Updating The Flash System | |
CN107977233B (zh) | 内核镜像文件快速加载方法和装置 | |
CN104391727B (zh) | 数据烧写方法、系统、烧写设备以及目标设备 | |
WO2019165794A1 (zh) | 数据校验方法及装置、计算机可读存储介质 | |
US20200026427A1 (en) | System and method for handling data storage on storage devices | |
US20150154091A1 (en) | Bios maintenance method | |
JP2015022521A (ja) | セキュアブート方法、組み込み機器、セキュアブート装置およびセキュアブートプログラム | |
KR20230091660A (ko) | 소프트웨어의 무결성 검증 방법 및 그 장치 | |
CN107239358A (zh) | 安卓系统的启动方法、移动终端及具有存储功能的装置 | |
CN110334486B (zh) | 应用程序完整性校验方法及设备 | |
WO2022156512A1 (zh) | 一种固件更新方法、装置、设备及存储介质 | |
CN108196975B (zh) | 基于多校验和的数据验证方法、装置及存储介质 | |
CN109033818B (zh) | 终端、验证方法和计算机可读存储介质 | |
KR20220138639A (ko) | 분할 에러 검출을 이용한 데이터 유효성 검사 방법 및 그 장치 | |
CN111767231A (zh) | 多平台Bootrom验证方法、装置、系统和计算机可读介质 | |
CN105354107A (zh) | NOR Flash的数据传输方法及系统 | |
KR20230082388A (ko) | 차량 제어기의 부트로더 검증 장치 및 그 방법 | |
CN111737260A (zh) | 一种数据复制一致性检查的方法及系统 | |
CN112054895A (zh) | 可信根构建方法及应用 | |
CN106844088B (zh) | 一种raid存储系统的数据发送方法及装置 | |
CN115291957B (zh) | 多处理器主板的初始化方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination |