首页 / 国际专利分类库 / 作业;运输 / 无轨陆用车辆 / 机动车;挂车 / 用于鉴别车辆碰撞情况的装置;用于标志或记录碰撞范围的装置 / 실시간 데이터의 무결성과 기밀성을 보장하기 위한 데이터 처리방법과 장치 및 이를 이용한 블랙박스 시스템

실시간 데이터의 무결성과 기밀성을 보장하기 위한 데이터 처리방법과 장치 및 이를 이용한 블랙박스 시스템

申请号 KR1020110089760 申请日 2011-09-05 公开(公告)号 KR101105205B1 公开(公告)日 2012-01-13
申请人 주식회사 아나스타시스; 发明人 김윤규;
摘要 PURPOSE: A data processing method for guaranteeing integrity and confidentiality of real time data and a black box system using the same are provided to forbid data access through an unauthorized person, thereby preventing a leakage of data saved in the black box. CONSTITUTION: A data Input part(100) comprises an image photographing apparatus(110) which takes a photograph, a sound detection apparatus(120) which detects voice, signal tone, and etc. and an acceleration detection apparatus(130) which detects a change of speed. The data Input part comprises an angular velocity detection apparatus(140) which detects rotation and etc. and an impact detection apparatus(150) detects a collision state. A user input apparatus(300) transfers data saved in a black box to an input interface(210) of a black box system(200). The black box system comprises the input interface, an integrity and confidentiality protection apparatus(250), and a data storage module(240).
权利要求
  • 실시간으로 입력되는 데이터의 무결성과 기밀성을 보장하는 데이터 처리장치에 의해 데이터를 처리하는 방법으로서,
    상기 데이터를 미리 결정된 크기의 블록으로 분할하여 데이터 블록을 생성하는 단계;
    사용자로부터 입력된 패스워드를 기초로 생성된 시드값을 이용하여 상기 데이터 블록을 암호화하는 단계;
    상기 데이터의 최초 데이터 블록값과 최초 데이터 블록에 관한 타임 스탬프값과 인덱스값을 결합한 값에 대해 서명키에 의한 서명을 수행하여 초기 인증 데이터(Initial Authentication Data;IAD)를 생성하는 단계;
    분할된 각 데이터 블록에 대해 무결성 검증 데이터를 생성하는 단계; 및
    직전 데이터 블록의 제2 해시값을 이용하여 각 데이터 블록의 상기 무결성 검증 데이터를 업데이트하는 단계를 포함하고,
    상기 무결성 검증 데이터를 생성하는 단계는,
    현재 데이터 블록값에 직전 데이터 블록의 제1 해시값, 현재 데이터 블록에 관한 타임 스탬프값 및 현재 데이터 블록에 관한 인덱스값을 결합하고, 상기 결합된 값을 해싱하여 상기 각 데이터 블록에 관한 제1 해시값을 생성하는 단계;
    상기 제1 해시값을 재해싱하여 상기 데이터 블록에 관한 제2 해시값을 생성하는 단계; 및
    상기 제2 해시값에 타임 스탬프를 결합한 값을 무결성 검증 데이터로 출력하는 단계를 포함하고,
    상기 최초 블록에 관한 제1 해시값으로서 상기 초기 인증 데이터를 이용하는 것을 특징으로 하는 데이터 처리방법.
  • 제 1 항에 있어서,
    상기 암호화 단계는,
    각 데이터 블록에 대해 상기 시드값으로부터 상기 데이터 블록과 동일한 크기를 갖는 난수 수열을 생성하는 단계; 및
    상기 난수 수열과 데이터 블록값을 연산하여 암호화 데이터를 생성하는 단계를 포함하는, 데이터 처리방법.
  • 삭제
  • 삭제
  • 제 1 항에 있어서,
    현재 데이터 블록에 관한 제1 해시값이 생성되면, 직전 데이터 블록에 관한 제1 해시값 및 현재 데이터 블록값을 삭제하는 단계를 더 포함하는, 데이터 처리방법.
  • 제 1 항에 있어서,
    상기 무결성 검증 데이터 업데이트 단계는,
    현재 데이터 블록의 제1 해시값과 직전 데이터 블록의 제 2해시값을 결합하여 해싱하는 단계; 및
    상기 해싱값에 직전 데이터 블록의 타임 스탬프를 부가한 값을 직전 데이터 블록에 관한 무결성 검증 데이터 업데이트값으로 출력하는 단계를 포함하는, 데이터 처리방법.
  • 실시간으로 입력되는 데이터의 무결성과 기밀성을 보장하는 데이터 처리장치로서,
    데이터의 입력 데이터 스트림을 미리 결정된 크기의 데이터 블록으로 분할하는 데이터 블록 생성 모듈;
    사용자로부터 입력된 패스워드를 기초로 시드값을 생성하고, 상기 데이터의 최초 데이터 블록값, 최초 데이터 블록에 관한 타임 스탬프값 및 인덱스값을 결합한 값에 대해 서명키에 의한 서명을 수행하여 초기 인증 데이터를 생성하는 보안 저장 모듈;
    상기 시드값을 이용하여 상기 데이터 블록을 암호화하는 데이터 암호화 처리 모듈; 및
    상기 데이터 블록 각각에 대해 무결성 검증 데이터를 생성하고, 직전 데이터 블록의 제2 해시값을 이용하여 각 데이터 블록의 상기 무결성 검증 데이터를 업데이트하는 무결성 검증 데이터 처리 모듈을 포함하고,
    상기 무결성 검증 데이터 처리모듈은:
    현재 데이터 블록값에 직전 데이터 블록에 관한 제1 해시값, 현재 데이터 블록에 관한 타임 스탬프값 및 현재 데이터 블록에 관한 인덱스값을 결합하고 해싱함으로써 현재 데이터 블록에 관한 제1 해시값을 생성하는 제1 해시모듈;
    상기 제1 해시값을 저장하는 제1 해시값 저장모듈;
    상기 제1 해시값을 재해싱하여 제2 해시값을 생성하는 제2 해시모듈;
    상기 제2 해시값을 저장하는 제2 해시값 저장모듈;
    상기 제2 해시값에 현재 데이터 블록에 관한 타임 스탬프값을 결합하여 현재 데이터 블록에 관한 무결성 검증 데이터를 생성하는 무결성 검증 데이터 생성 모듈; 및
    현재 데이터 블록에 관한 제1 해시값과 직전 데이터 블록에 관한 제2 해시값을 결합하여 해싱하고, 직전 데이터 블록의 타임 스탬프값을 부가한 값을 직전 데이터 블록에 관한 무결성 검증 데이터 업데이트값으로 출력하는 무결성 검증 데이터 업데이트 모듈을 포함하는, 데이터 처리장치.
  • 제 7 항에 있어서,
    상기 초기 인증 데이터, 상기 서명키 및 상기 시드값은 상기 보안 저장 모듈에 저장되는 것을 특징으로 하는, 데이터 처리 장치.
  • 제 7 항에 있어서,
    상기 데이터 암호화 처리 모듈은 상기 시드값을 기초로 상기 데이터 블록과 동일한 크기를 갖는 난수 수열을 생성하고, 상기 난수 수열과 상기 데이터 블록값을 연산하여 암호화 데이터를 생성하는, 데이터 처리장치.
  • 삭제
  • 삭제
  • 제 7 항에 있어서,
    상기 보안 저장 모듈은 스마트 카드와 같은 보안 저장소(Secure Storage)인 것을 특징으로 하는, 데이터 처리장치.
  • 실시간으로 입력되는 데이터를 수집 및 저장하는 블랙박스 시스템으로서,
    제 7 항 내지 제 9 항 또는 제 12 항 중 어느 한 항에 따른 데이터 처리 장치;
    상기 데이터를 수신하고, 사용자 입력 매체로부터 사용자 입력을 수신하는 입력 인터페이스; 및
    상기 암호화 데이터 및 상기 무결성 검증 데이터를 저장하는 데이터 저장 모듈을 포함하는, 블랙박스 시스템.
  • 说明书全文

    실시간 데이터의 무결성과 기밀성을 보장하기 위한 데이터 처리방법과 장치 및 이를 이용한 블랙박스 시스템{An apparatus and a method of processing data for guaranteeing data integrity and confidentiality in real time, and black box system using thereof}

    본 발명은 차량 등에서 실시간으로 수집되는 데이터의 무결성과 기밀성을 보장하기 위한 데이터 처리방법 및 데이터 처리장치와, 이를 이용한 블랙박스 시스템에 관한 것이다.

    블랙박스 시스템은 차량, 열차, 선박 등(이하, '차량 등')과 같은 특정 시스템 및 장치와 연동되어 작동하는 시스템으로써, 특정 시스템 및 장치의 정보를 수집하고 저장한다. 블랙박스 시스템은 평소에는 정보를 단순히 수집하고 저장하다가 특정 이벤트 및 사건이 발생한 경우 사용자나 제3자가 특정 이벤트 및 사건이 일어나게 된 배경 및 정황사항을 파악하기 위해 그 안의 정보를 열람하기 위한 목적으로 사용된다.

    보통의 블랙박스 시스템은 여태까지 항공기 및 선박 등에 장착되어 사용되어왔다. 하지만 근래 들어 자동차와 같은 차량에도 블랙박스 시스템이 장착되면서 그 용도 및 범위가 점차 넓어지고 있는 실정이다. 블랙박스는 운행기록계, 사고기록장치, 영상사고기록장치 등 여러 가지 이름으로 알려져 있다. 하지만 이들의 목적은 차량의 여러 정보들(운행정보, 사고정보, 영상 및 음성 정보 등)을 저장하여 사고가 일어났을 때에 이들 저장된 정보들을 통해 사고 원인 분석을 돕기 위한 점에서 실질적으로 동일하다.

    또한 이러한 블랙박스 시스템과 이름은 다르지만 유사한 목적으로 작동하는 시스템들이 있다. 예를 들면 CCTV와 같은 모니터링 시스템들이다. CCTV도 평소에는 주변의 정보들을 수집하고 저장하지만 이벤트 및 사건이 발생했을 때, 그 안의 정보들을 열람하여 사건을 해결하기 위한 목적으로 사용된다.

    그러나, 위에서 언급한 시스템들은 모두 실시간으로 정보를 저장하지만, 정보를 수집하고 저장할 때에 단순히 저장만 할 뿐, 데이터의 무결성(integrity)과 기밀성(confidentiality)을 보장하지는 못하는 한계가 있다. 무결성이란 데이터가 저장된 시점 그대로 유지되었음을 보장하는 성질을 의미한다. 즉, 데이터가 저장된 시점 이후로 위조, 변조 또는 삭제되지 않았음을 나타낸다. 그리고 기밀성은 데이터에 접근권한이 있는 사용자만 그 데이터를 열람할 수 있음을 보장하는 성질을 의미한다. 즉, 데이터에 접근권한이 없는 사용자가 데이터를 열람하여도 그 내용을 식별할 수 없음을 나타낸다.

    이 두 가지 성질은 블랙박스 시스템에서 매우 중요한 요소이다. 사고 발생후, 블랙박스 내의 데이터를 열람하여 그 데이터를 사건의 증거물로 사용하려는데 데이터가 신뢰할 수 없는 상태라면, 블랙박스는 무용지물이 되고 만다. 따라서, 무결성은 블랙박스의 존재 이유와 직결되는 점에서 매우 중요하다. 또한 기밀성은 사용자의 프라이버시와 직결되기 때문에, 이 또한 블랙박스 내에 저장된 데이터에 대해 매우 중요하게 고려되어야 한다. 왜냐하면, 블랙박스내의 저장된 정보들은 개인의 사생활과 밀접한 관련이 있기 때문에, 예를 들면 각 개인이 어디를 다녔는지, 어떤 사람을 만났는지, 어떤 말을 했는지 등의 개인의 사생활과 관련된 수많은 정보들이 블랙박스의 정보들을 통해 프로파일링될 수 있기 때문이다. 그렇기 때문에 블랙박스 내 데이터들은 함부로 타인에게 제공되거나 열람되어서는 안 된다.

    이와 같이 블랙박스 시스템에 의해 수집 및 저장되는 데이터와 관련된 연구는 주로 수집된 데이터를 통한 사고의 재구성에 초점이 맞추어져 있고, 실시간 무결성 및 기밀성 모두를 보장하기 위한 연구는 이루어지지 않았다. 따라서, 기존의 블랙박스 시스템에 의하면, 블랙박스 시스템에 저장된 데이터의 신뢰성이 떨어질 뿐만 아니라, 사용자는 프라이버시 침해 등의 위험에도 노출되는 문제들이 존재했다.

    이와 관련한 선행기술로서, 한국공개특허공보 제10-2011-0023412호 (공개일: 2011.03.08)은 데이터의 위조, 변조, 삭제 등을 고려하여 실시간 차량 데이터의 무결성을 보장하기 위한 구성을 개시하고 있으나, 사용자가 아닌 제3자가 블랙박스 시스템에 저장된 데이터를 열람하게 되어 프라이버시 등이 손상되는 문제를 해결하지 못하는 단점이 있다. 또한 특정 시점 이후로 원본 데이터와 무결성 검증 데이터 쌍을 전부 삭제할 경우 이를 탐지 못한다는 단점이 있다. 그리고 데이터의 생성시점을 정확히 알 수 없다는 단점이 있다.

    또한, 관련 선행기술로서, 한국공개특허공보 제10-2011-0022960호(공개일: 2011.03.08)는 주행정보를 암호화하여 암호화된 데이터를 저장하는 블랙박스 데이터의 위조 및 변조 방지 장치를 개시한다. 그러나. 선행기술 2에 개시된 패스워드 기반 암호화 방법은 이미 널리 알려져있는 암호화 기술 중 하나에 불과하며, 주행정보를 암호화하기 위한 구체적인 알고리즘에 대해 개시하는 바가 없다. 또한, 선행기술 2에 의하면 데이터가 저장되는 매 순간마다 사용자가 패스워드를 입력해야 하는 단점이 있다.

    선행기술 1: 한국공개특허공보 제10-2011-0023412호 (공개일: 2011.03.08)

    선행기술 2: 한국공개특허공보 제10-2011-0022960호(공개일: 2011.03.08)

    본 발명은 상기와 같은 선행기술들의 문제점을 해결하기 위하여 안출된 것으로서, 본 발명은 복잡한 연산 처리 없이 실시간으로 입력되는 데이터의 무결성과 기밀성을 모두 보장하기 위한 데이터 처리방법 및 장치를 제공하는 것을 제1 목적으로 한다.

    또한, 본 발명은 부인 방지(non-repudiation) 및 에러 복구가 가능한 데이터 처리 방법 및 장치를 제공하는 것을 제2 목적으로 한다.

    그리고, 본 발명은 복잡한 연산 처리 없이 실시간으로 입력되는 데이터의 무결성과 기밀성을 모두 보장하기 위한 블랙박스 시스템을 제공하고자 한다.

    본 발명은 실시간으로 입력되는 데이터의 무결성과 기밀성을 보장하는 데이터 처리방법으로, 데이터를 미리 결정된 크기의 블록으로 분할하여 데이터 블록을 생성하는 단계, 사용자로부터 입력된 패스워드를 기초로 생성된 시드값을 이용하여 생성된 난수 수열값으로 상기 데이터 블록을 암호화하는 단계, 데이터의 최초 데이터 블록값과 최초 데이터 블록에 관한 타임 스탬프값과 인덱스값을 결합한 값에 대해 서명키에 의한 서명을 수행하여 초기 인증 데이터(Initial Authentication Data;IAD)를 생성하는 단계, 분할된 각 블록에 대해 무결성 검증 데이터를 생성하는 단계; 및 무결성 검증 데이터를 업데이트하는 단계를 포함하여 구성된다.

    그리고, 본 발명의 암호화 단계는, 각 데이터 블록에 대해 상기 시드값으로부터 상기 데이터 블록과 동일한 크기를 갖는 난수 수열을 생성하는 단계; 및 상기 난수 수열과 데이터 블록값을 연산하여 암호화 데이터를 생성하는 단계를 포함한다.

    또한, 본 발명의 무결성 검증 데이터를 생성하는 단계는, 상기 각 데이터 블록에 관한 제1 해시값을 생성하는 단계; 상기 제1 해시값을 재해싱하여 상기 데이터 블록에 관한 제2 해시값을 생성하는 단계; 및 상기 제2 해시값에 타임 스탬프를 결합한 값을 무결성 검증 데이터로 출력하는 단계를 포함하고, 상기 최초 블록에 관한 제1 해시값으로서 상기 초기 인증 데이터를 이용하는 것을 특징으로 한다.

    그리고, 본 발명의 제1 해시값을 생성하는 단계는, 현재 데이터 블록값에 직전 데이터 블록의 제1 해시값, 현재 데이터 블록에 관한 타임 스탬프값 및 현재 데이터 블록에 관한 인덱스값을 결합하고, 상기 결합된 값을 해싱하여 제1 해시값을 생성하는 것을 특징으로 한다.

    본 발명은 현재 데이터 블록에 관한 제1 해시값이 생성되면, 직전 데이터 블록에 관한 제1 해시값 및 현재 데이터 블록값을 삭제하는 단계를 더 포함한다.

    그리고, 무결성 검증 데이터 업데이트 단계는, 현재 데이터 블록의 제1 해시값과 직전 데이터 블록의 제 2해시값을 결합하여 해싱하는 단계; 및 상기 해싱값에 직전 데이터 블록의 타임 스탬프를 부가한 값을 직전 데이터 블록에 관한 무결성 검증 데이터 업데이트값으로 출력하는 단계를 포함한다.

    한편, 본 발명은 실시간으로 입력되는 데이터의 무결성과 기밀성을 보장하는 데이터 처리장치로서, 입력 데이터 스트림을 미리 결정된 크기의 데이터 블록으로 분할하는 데이터 블록 생성 모듈; 사용자로부터 입력된 패스워드를 기초로 시드값을 생성하고, 상기 데이터의 최초 데이터 블록값, 최초 데이터 블록에 관한 타임 스탬프값 및 인덱스값을 결합한 값에 대해 서명키에 의한 서명을 수행하여 초기 인증 데이터를 생성하는 보안 저장 모듈; 상기 시드값을 통해 생성된 난수 수열값을 이용하여 상기 데이터 블록을 암호화하는 데이터 암호화 처리 모듈; 및 상기 데이터 블록 각각에 대해 무결성 검증 데이터를 생성하고 업데이트하는 무결성 검증 데이터 처리 모듈을 포함하여 구성된다.

    본 발명의 보안 저장 모듈은 상기 초기 인증 데이터, 상기 서명키 및 상기 시드값을 저장하는 것을 특징으로 한다.

    또한, 본 발명의 데이터 암호화 처리 모듈은 상기 시드값을 기초로 상기 데이터 블록과 동일한 크기를 갖는 난수 수열을 생성하고, 상기 난수 수열과 상기 데이터 블록값을 연산하여 암호화 데이터를 생성한다.

    본 발명의 무결성 검증 데이터 처리모듈은, 현재 데이터 블록값에 직전 데이터 블록에 관한 제1 해시값, 현재 데이터 블록에 관한 타임 스탬프값 및 현재 데이터 블록에 관한 인덱스값을 결합하고 해싱함으로써 현재 데이터 블록에 관한 제1 해시값을 생성하는 제1 해시모듈; 상기 제1 해시값을 저장하는 제1 해시값 저장모듈; 상기 제1 해시값을 재해싱하여 제2 해시값을 생성하는 제2 해시모듈; 상기 제2 해시값을 저장하는 제2 해시값 저장모듈; 및 상기 제2 해시값에 현재 데이터 블록에 관한 타임 스탬프값을 결합하여 현재 데이터 블록에 관한 무결성 검증 데이터를 생성하는 무결성 검증 데이터 생성 모듈을 포함한다.

    그리고, 본 발명의 무결성 검증 데이터 처리 모듈은 현재 데이터 블록에 관한 제1 해시값과 직전 데이터 블록에 관한 제2 해시값을 결합하여 해싱하고, 직전 데이터 블록의 타임 스탬프값을 부가한 값을 직전 데이터블록에 관한 무결성 검증 데이터 업데이트값으로 출력하는 무결성 검증 데이터 업데이트 모듈을 더 포함한다.

    본 발명의 보안 저장 모듈은 스마트 카드와 같은 보안 저장소(Secure Storage)인 것을 특징으로 한다.

    한편, 본 발명은 실시간으로 입력되는 데이터를 수집 및 저장하는 블랙박스 시스템으로서, 상기한 특징들을 구비한 데이터 처리 장치; 데이터를 수신하고, 사용자 입력 매체로부터 사용자 입력을 수신하는 입력 인터페이스; 및 암호화 데이터 및 상기 무결성 검증 데이터를 저장하는 데이터 저장 모듈을 포함한다.

    상기와 같이, 본 발명에 의하면 블랙박스 시스템에 실시간으로 저장되는 데이터에 대해서 무결성 및 기밀성 모두를 함께 보장할 수 있다. 즉, 블랙박스 시스템에 저장된 데이터 원본의 진위여부(원본 데이터의 생성시간 포함)를 입증하고, 데이터의 훼손 여부(위조, 변조, 삭제(특정 시점 이후의 전부 삭제를 포함) 등)를 검출할 수 있다. 또한, 권한 없는 제3자에 의한 데이터 열람을 금지할 수 있게 되어, 블랙박스 내에 저장된 데이터 유출에 따른 사용자의 프라이버시 침해를 방지할 수 있다.

    도 1은 본 발명의 일실시예에 따른 블랙박스 시스템을 개략적으로 도시한 블록도이다.
    도 2는 본 발명의 일실시예에 따른 블랙박스 시스템 내 무결성 및 기밀성 보호장치의 상세 구성을 도시한 블록도이다.
    도 3은 본 발명의 바람직한 일실시예에 의한 기밀성 보장을 위한 데이터 암호화 처리의 연산을 도시한 흐름도이다.
    도 4는 본 발명의 바람직한 일실시예에 의한 데이터 암호화 처리 연산을 도시한 플로우챠트이다.
    도 5는 본 발명의 바람직한 일실시예에 의한 블록 데이터와 난수에 의해 생성된 암호화 데이터의 관계를 나타낸 표이다.
    도 6은 본 발명의 바람직한 일실시예에 의한 무결성 보장을 위한 데이터 연산처리를 도시한 플로우챠트이다.
    도 7은 본 발명의 바람직한 일실시예에 의한 무결성 보장을 위한 연산처리에 사용된 데이터들간의 상관관계를 나타낸 표이다.

    이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. 이들 실시예는 오로지 본 발명을 보다 구체적으로 설명하기 위한 것으로, 본 발명의 범위가 이들 실시예에 의해 제한되지 않는다는 것은 당업계에서 통상의 지식을 가진 자에게 있어서 자명할 것이다.

    도 1은 본 발명의 일실시예에 따른 블랙박스 시스템을 개략적으로 도시하고 있다. 도 1을 참조하면, 블랙박스 시스템은 다양한 정보들을 입력하는 데이터 입력부(100), 데이터 입력부(100)에 의해 입력된 정보를 수집 및 저장하는 블랙박스 시스템(200) 및 사용자로부터 블랙박스와 관련된 제어명령 등을 입력받기 위한 사용자 입력장치(300)를 포함한다.

    데이터 입력부(100)는 음성, 영상 등과 같은 다양한 정보를 검출하기 위한 각종 장치들을 포함한다. 예를 들면, 데이터 입력부(100)는 영상을 촬영하는 영상촬영장치(110), 음성, 신호음 등을 검출하는 음향검출장치(120), 속도 변화를 감지하는 가속 감지장치(130), 회전 등을 감지하는 각속도 감지장치(140) 및 충돌 여부를 감지하는 충격 감지장치(150) 등을 포함할 수 있다.

    사용자 입력장치(300)는 블랙박스 시스템에서의 데이터 암호화에 관한 패스워드 설정, 블랙박스에 저장된 데이터의 열람, 무결성 검증 등을 위한 정보들을 사용자로부터 입력받아 블랙박스 시스템(200)의 입력 인터페이스(210)로 전달하는 장치로서, 예를 들면 퍼스널 컴퓨터, 휴대폰, PDA등 사용자가 제어명령을 입력할 수 있는 단말로 구현될 수 있다.

    블랙박스 시스템(200)은 실시간으로 수집되는 데이터의 무결성 및 기밀성을 보호하기 위한 데이터 처리 및 저장이 이루어지는 장치로서, 입력 인터페이스(210), 무결성 및 기밀성 보호 장치(250) 및 데이터 저장모듈(240)을 포함한다.

    입력 인터페이스(210)는 데이터 입력부(100)에서 입력된 데이터 신호를 무결성 및 기밀성 보호 장치(250)로 전달한다. 만약, 데이터 입력부에서 입력된 데이터 신호가 아날로그 형태라면, 입력 인터페이스(210)는 데이터 신호를 디지털 형태의 입력 데이터 스트림으로 변환하고, 변환된 입력 데이터 신호를 무결성 및 기밀성 보호 장치(250)로 전달한다. 또한, 입력 인터페이스(210)는 사용자 입력 장치(300)로부터 입력되는 신호를 무결성 및 기밀성 보호 장치(250)로 전달한다.

    무결성 및 기밀성 보호 장치(250)는 무결성 및 기밀성 보호 알고리즘을 실행하여 입력 인터페이스(210)로부터 수신한 입력 데이터를 처리하는 장치로, 보안 저장모듈(220)과 무결성 및 기밀성 연산 처리 모듈(230)을 포함한다. 무결성 및 기밀성 보호 장치(250)에 관해서는, 이하 도 2를 참조하여 보다 상세하게 설명하도록 한다.

    한편, 데이터 저장 모듈(240)은 무결성 및 기밀성 보호 장치(250)에서 생성된 암호화된 데이터와 무결성 검증 데이터를 저장하는 메모리로서, 보안성이 보장된 보안 저장 모듈(220) 내 메모리와는 달리 보안이 취약한 일반 메모리로도 구현될 수 있다.

    도 2는 본 발명의 바람직한 일실시예에 따른 무결성 및 기밀성 보호장치(250)의 상세 구성을 도시한 블록도이다.

    도 2를 참조하면, 무결성 및 기밀성 보호장치(250)는 보안 저장 모듈(220)과, 입력 데이터 스트림에 대해 무결성 및 기밀성 보호 알고리즘을 실행하여 데이터 처리를 수행하는 무결성 및 기밀성 연산처리 모듈(230)를 포함한다.

    보안 저장 모듈(220)은 데이터 암호화 및 보안키 생성 알고리즘 등을 실행하는 프로세서(222)와 데이터를 저장하기 위한 메모리(224)를 포함하고, 예를 들면 집적회로(IC) 칩을 내장한 스마트 카드로 구현될 수 있다.

    보안 저장 모듈의 메모리(224)에는 블랙박스를 셋업할 때 블랙박스 시스템의 권한있는 사용자가 설정한 패스워드로부터 생성된 시드값과 랜덤하게 생성된 서명키가 미리 저장되어 있다. 즉, 블랙박스의 셋업단계에서, 입력 인터페이스(210)를 통해 사용자로부터 패스워드가 입력되면, 보안 저장 모듈(220)의 프로세서(222)는 미리 설정된 알고리즘을 실행하여 시드값을 생성한다. 여기서 생성된 시드값은 데이터 암호화 처리를 위한 난수 수열 생성을 위해 이용되는 값으로, 보안성을 보장하기 위해 보안 저장 모듈 내 메모리(224)에 저장된다. 또한, 보안 저장 모듈(220)은 서명키/서명검증키 쌍을 램덤하게 생성하여, 서명키는 보안 저장 모듈(220) 내 메모리(224)에 저장하고, 서명 검증키는 데이터 저장 모듈(240)에 저장한다. 서명 검증키는 차후 무결성 검증시에 사용될 수 있다.

    또한, 보안 저장 모듈(220) 내 프로세서(222)는 데이터 블록 생성 모듈(231)로부터 입력 데이터의 첫번째 데이터 블록을 수신하면, 첫번째 데이터 블록값에 첫번째 블록에 관한 타임 스탬프값 및 인덱스값을 연결하고, 보안 저장 모듈(220) 내 메모리(224)에 저장되어 있는 서명키로 전자서명을 하여 초기 인증 데이터(Initial Authentication Data, 이하, 'IAD')를 생성한다. 생성된 IAD는 보안 저장 모듈(220) 내 메모리(224)에 저장되고, 이후 무결성 검증 데이터 생성시 최초 블록에 관한 제1 해시값으로 사용된다.

    무결성 및 기밀성 연산처리 모듈(230)는 데이터 블록 생성모듈(231), 데이터 암호화 처리 모듈(232), 제1 해시모듈(233), 제1 해시값 저장 모듈(235), 제2 해시모듈(234), 제2 해시값 저장 모듈(236), 무결성 검증 데이터 생성 모듈(237) 및 무결성 검증 데이터 업데이트 모듈(239)을 더 포함할 수 있다.

    데이터 블록 생성모듈(231)은 입력 인터페이스(210)로부터 수신한 디지털 입력 데이터 스트림들을 소정 크기의 블록으로 분할하여 복수의 데이터 블록을 생성한다.

    데이터 암호화 처리 모듈(232)은 보안 저장 모듈(220)의 메모리(224)에 저장된 시드값을 이용하여 데이터 블록의 크기와 동일한 크기를 갖는 난수 수열을 데이터 블록 각각에 대해 생성한다. 그리고, 데이터 블록 모듈(231)로부터 수신한 데이터 블록 각각에 대해 난수 수열을 이용하여 연산을 수행함으로써 데이터를 암호화한다. 데이터 암호화는 예를 들면 데이터 블록의 값과 난수 수열의 XOR 연산에 의해 수행될 수 있으나, 이에 한정되지 않고 다양한 방법을 이용할 수 있다. 데이터 암호화 연산에 의해 암호화된 데이터는 데이터 저장 모듈(240)에 저장된다.

    제1 해시모듈(233)은 데이터 블록 모듈(231)로부터 수신한 데이터 블록에 대해 해시 연산을 수행한다. 제1 해시모듈(233)은 현재 데이터 블록 값에 직전 데이터 블록의 제1 해시값, 현재 데이터 블록에 관한 타임 스탬프값 및 인덱스값을 결합하여 해싱함으로써, 현재 데이터 블록에 관한 제1 해시값을 생성한다. 그러나, 첫번째 블록의 경우에는, 직전 데이터 블록이 존재하지 않기 때문에 현재 데이터 블록에 관한 제1 해시값을 생성할 수 없다. 본 발명은 제1 블록의 제1 해시값으로서 보안 저장 모듈(220)에 저장된 초기 인증 데이터(IAD)를 이용함으로써 이러한 문제를 해결한다.

    제1 해시값 저장 모듈(235)는 제1 해시모듈(233)에 의해 생성된 현재 데이터 블록의 제1 해시값을 저장한다.

    제2 해시모듈(234)은 제1 해시값을 해싱하여 현재 데이터 블록의 제2 해시값을 생성하고, 제2 해시값 저장 모듈(236)는 제2 해시모듈(234)에서 생성한 제2 해시값을 저장한다.

    무결성 검증 데이터 생성 모듈(237)은 현재 블록의 제2 해시값에 현재 데이터 블록의 타임 스탬프와 결합하여 현재 데이터 블록의 무결성 검증 데이터를 생성하고, 생성된 무결성 검증 데이터를 데이터 저장 모듈(240)에 전송한다.

    무결성 검증 데이터 업데이트 모듈(239)는 데이터 저장 모듈(240)에 저장된 무결성 검증 데이터를 업데이트하는 장치로서, 현재 데이터 블록에 관한 제1 해시값이 생성되면, 현재 데이터 블록에 관한 제1 해시값과 직전 데이터 블록의 제2 해시값을 결합하여 해싱한 값에 직전 데이터 블록의 타임 스탬프를 결합한 값을 직전 데이터 블록의 무결성 검증 데이터로 출력하여 데이터 저장 모듈(240)에 전송한다. 이에 따라, 직전 데이터 블록의 무결성 검증 데이터는 새로운 값으로 변환(업데이트)되어 저장된다.

    본 발명의 바람직한 일실시예에 따른 실시간 무결성 및 기밀성 보장을 위한 데이터 처리방법에 대해 이하 도 3 내지 도 6을 참조하여 설명한다.

    도 3은 본 발명의 바람직한 일실시예에 따라 생성되는 입력 데이터 블록과 암호화 데이터 및 무결성 검증 데이터 및 무결성 검증 데이터 업데이트값을 도시한다.

    도 3을 참조하면, 데이터 입력모듈에서 입력된 데이터들, 즉 디지털 형태의 입력 데이터 스트림은 일정 크기의 블록으로 분할되여 총 N개의 데이터 블록 BD 1 , BD 2 , BD 3 , BD 4 , ..., BD N 를 생성한다.

    N개의 데이터 블록 BD 1 , BD 2 , BD 3 , BD 4 , ..., BD N 에 대해 암호화 처리가 수행되면 암호화된 데이터 ED 1 ,ED 2 ,ED 3 ,..., ED N 을 생성한다. 그리고, N개의 데이터 블록 BD 1 , BD 2 , BD 3 , BD 4 , ..., BD N 에 대해 무결성 검증 데이터 처리가 수행되면 N개의 무결성 검증 데이터 IVD 1 , IVD 2 , IVD 3 , ..., IVD N 이 생성된다. 무결성 검증 데이터 형성과정에서, 데이터 블록 BD 1 , BD 2 , BD 3 , BD 4 , ..., BD N 은 순차적으로 삭제되어 데이터 저장 모듈 내에 존재하지 않기 때문에, 데이터 저장 모듈이 노출되더라도 원본 데이터의 값이 바로 노출되지 않게 된다. 따라서, 블랙박스 시스템에 저장된 데이터의 기밀성을 보장할 수 있다.

    그리고, 무결성 검증 데이터 IVD 1 , IVD 2 , IVD 3 , ..., IVD N 는 무결성 검증 데이터 업데이트 과정을 통해 무결성 검증 데이터 업데이트값 IVD' 1 , IVD' 2 , IVD' 3 , ..., IVD' N-1 으로 치환되어 데이터 저장 모듈 내에 무결성 검증 데이터값 IVD 1 , IVD 2 , IVD 3 , ..., IVD N-1 은 존재하지 않는다. 이와 같이, 본 발명에 의하면, 무결성 검증 데이터값이 아닌 무결성 검증 데이터를 업데이트한 값이 저장되기 때문에, 종래기술 1에 비해 보다 보안성을 더욱 강화할 수 있다. 이에 따라, 종래기술 1에서 탐지할 수 없었던 특정 시점 이후의 원본 데이터와 무결성 검증 데이터 쌍의 전부 삭제를 탐지할 수 있게 된다.

    도 4는 본 발명의 바람직한 일실시예에 의한 블랙박스 시스템(200) 내 데이터 암호화 처리 연산을 도시한 플로우챠트이고, 도 5는 블록 데이터와 난수에 의해 생성된 암호화 데이터의 관계를 나타내는 표이다.

    도 4를 참조하면, 블랙박스 시스템(200)의 입력 인터페이스(210)를 통해 입력 데이터 스트림들이 입력되면, 입력 데이터 스트림을 일정 크기의 블록으로 분할하여 복수의 입력 데이터 블록들을 형성한다(S400).

    그리고, 첫 번째 데이터 블록(BD 1 )에 대해 보안 저장 모듈에 저장되어 있는 시드값을 이용하여 첫번째 데이터 블록의 크기와 동일한 크기를 갖는 난수 수열을 생성한다(S420).

    도 5를 참조하면,

    는 XOR 연산의 논리 연산자 부호로서, 첫 번째 난수 수열(R

    1 )과 첫번째 데이터 블록(BD

    1 )을 XOR 연산하여 첫번째 데이터 블록의 암호화 데이터(ED

    1 )를 생성한다(S440). 이에 따라 생성된 생성된 암호화 데이터(ED

    1 )는 데이터 저장 모듈에 저장된다(S460).

    그리고, 암호화할 다음 블록이 존재하는지 여부를 판단하여(S480), 다음 블록이 존재한다면 난수 수열을 생성하는 단계인 S420으로 복귀한다. 그러나, 암호화할 블록이 존재하지 않으면 암호화 처리를 종료한다.

    도 6은 본 발명의 바람직한 일실시예에 의한 무결성 보장을 위한 데이터 처리를 도시한 플로우챠트이다.

    도 6을 참조하면, 데이터 블록 생성모듈(231)에서 생성된 복수의 데이터 블록들 중 첫번째 데이터 블록값(BD 1 )에 첫번째 블록의 타임스탬프 값(ts 1 )과 첫번째 블록을 나타내는 인덱스 값 1을 결합하고, 보안저장 모듈에 저장된 서명키(SK)로 서명을 하여, 결과값을 초기 인증 데이터(IAD)를 생성한다(S700). 그리고, IAD를 보안이 강화된 보안저장모듈에 저장한다(S710).

    그리고, 데이터 블록이 첫번째 블록 데이터, 즉 최초 데이터 블록인지 여부를 판별하여(S720), 데이터 블록이 최초 데이터 블록인 경우 IAD를 최초 데이터 블록에 관한 제1 해시값으로 저장한 후에 현재 블록 데이터값을 메모리에서 삭제한다(S735).

    그러나, 데이터 블록이 최초 데이터 블록이 아닌 경우에는, 현재 데이터 블록값, 현재 블록의 타임 스탬프값 및 현재 블록의 인덱스값을 직전 블록의 제1 해시값과 결합하여 해싱함으로써 현재 블록의 제1 해시값을 생성한다(S730).

    현재 데이터 블록의 제1 해시값이 생성되면, 데이터 저장 모듈에 저장되어 있는 현재 데이터 블록값과 직전 블록의 제1 해시값을 삭제한다(S740).

    그리고, 제2 해시모듈에 의해 현재 블록의 제1 해시값을 재해싱하여, 현재 블록의 제2 해시값을 생성한다(S750).

    그리고, 제2 해시값을 현재 블록의 타임 스탬프값을 연결한 값을 현재 블록에 관한 무결성 검증 데이터로서 데이터 저장 모듈에 저장한다(S760).

    현재 블록의 제1 해시값이 생성되면, 직전 블록에 관한 무결성 검증 데이터를 업데이트하기 위해, 제2 해시값 저장 모듈에 저장되어 있는 직전 블록의 제2 해시값과 현재 블록의 제1 해시값을 결합한 값을 해싱하고, 직전 블록의 타임 스탬프를 결합한 값으로 직전 블록에 관한 무결성 검증 데이터를 변환(업데이트)한다(S770). 상기 무결성 검증 데이터의 업데이트값은 데이터 저장 모듈에 저장된다. 이와 같은 무결성 검증 데이터 업데이트 연산 과정은 현재 블록의 제2 해시값을 구하기 전, 즉 S750단계 이전에 수행될 수도 있다.

    상기 연산을 수행한 후, 다음 블록이 있는지 여부를 판단하여(S780), 다음 블록이 있으면 상기 S730단계로 되돌아가서 S770까지의 단계를 반복 수행한다. 만약, 다음 블록이 없는 경우에는 상기 과정을 종료한다.

    도 7은 무결성 보장을 위한 연산처리에 사용된 데이터들간의 상관관계를 나타내는 표이다. 도 7에서, h()는 해시연산을 의미하고, ∥는 결합 연산을 의미한다.

    먼저, 첫번째 데이터 블록을 살펴보면, 첫번째 데이터 블록값, 첫번째 데이터 블록의 타임 스탬프(ts 1 ) 및 인덱스값(1)을 결합한 값에 대해 보안 저장 모듈에 미리 저장되어 있는 서명키(SK)로 서명한 값인 IAD를 첫번째 데이터 블록에 관한 제1 해시값으로 이용한다.

    그리고, 첫번째 블록의 제 2 해시값(h' 1 )은 첫번째 블록의 제1 해시값(h 1 )을 해싱한 값이다.

    한편, 첫번째 블록의 무결성 검증 데이터값(IVD 1 )은 첫번째 블록의 제2 해시값(h' 1 )과 첫번째 블록의 타임 스탬프(ts 1 )을 결합한 값이다.

    그 다음, 두번째 블록을 살펴보면, 두 번째 블록에 관한 제1 해시값(h 2 )는 직전 데이터 블록인 제1 블록의 제1 해시값(h 1 )에 두 번째 블록의 타임스탬프 값(ts 2 ) 및 두번째 블록의 인덱스 값(2)을 결합한 값을 해싱한 값이다. 그리고, 두번째 블록에 관한 제2 해시값(h' 2 )은 두번째 블록에 관한 제1 해시값(h 2 )을 해싱한 값이고, 두번째 블록에 관한 무결성 검증 데이터(IVD 2 )는 두번째 블록에 관한 제2 해시값(h' 2 )에 두번째 블록의 타임 스탬프값(ts 2 )을 결합한 값이다.

    두번째 블록에 관한 제1 해시값(h 2 )이 생성되면, 첫번째 블록에 관한 무결성 검증 데이터(IVD 1 )를 업데이트할 수 있게 된다. 업데이트는, 두번째 블록에 관한 제1 해시값(h 2 )와 첫번째 블록에 관한 제2 해시값(h' 1 )을 결합하여 해싱한 값에 첫번째 블록에 관한 타임 스탬프(ts 1 )를 결합한 값으로 첫번째 블록에 관한 무결성 검증 데이터(IVD 1 )를 변환하는 것으로 수행된다.

    세번째 이후의 데이터 블록 또한 상기 일련의 방법들로 연산과정을 거쳐 제1 해시값, 제2 해시값, 무결성 검증 데이터, 무결성 검증 데이터 업데이트값을 생성하고 생성된 값들은 데이터 저장 모듈에 저장된다.

    상기한 데이터 암호화 및 무결성 검증 데이터 처리는 각 블록에 대해 일체적으로 수행될 수 있다.

    한편, 본 발명의 의해 블랙박스에 저장된 데이터를 열람하는 과정은 이하와 같다.

    블랙박스 내 데이터를 열람하고자 할 경우, 사용자는 사용자 입력 장치(300)를 통해 블랙박스(200)에 패스워드를 입력해야 한다. 패스워드가 입력되면, 블랙박스(200)는 데이터 암호화 과정에서 사용된 동일한 알고리즘에 따라 패스워드로부터 시드값을 생성하고, 블랙박스 내에 저장된 시드값과 새로 생성된 시드값을 비교하여 양자가 일치하지 않으면 데이터 열람에 실패하게 된다.

    만약, 양자가 일치할 경우, 연산단계에서 사용한 동일한 방법으로 상기 시드값으로부터 난수 수열을 생성하여, 블랙박스 내 데이터 저장 모듈에 저장된 암호화 데이터와 난수 수열을 XOR 연산한다. XOR 연산에 의한 결과값은 블랙박스 시스템에서 생성된 원본 데이터값이 된다. 따라서, 정확한 패스워드를 알고 있는 사용자만이 블랙박스 시스템에 저장된 원본 데이터를 열람할 수 있다.

    또한, 사용자가 데이터의 위/변조, 삭제 여부 등을 확인하기 위한 데이터 무결성 검증은 다음과 같이 이루어진다.

    상기 데이터 열람 과정을 통해 얻어낸 원본 데이터 값은 데이터 저장 모듈에 저장된 무결성 검증 데이터 값들과 함께 무결성 검증 단계의 입력으로 사용된다.

    먼저, 사용자는 보안 저장 모듈에 저장되어 있는 초기 인증 데이터 값(IAD)에 대해 서명 검증키로 서명 검증을 한다. 이 때, 입력은 원본 데이터의 첫 번째 블록 값(BD1), 첫 번째 무결성 검증 데이터에 포함된 첫 번째 데이터 블록의 타임스탬프 값(ts1)과 인덱스 값(1)이고, 만약 서명검증을 통과하지 못하면 무결성 검증은 "실패"가 된다.

    만약, 서명검증이 통과되면, 초기 인증 데이터(IAD)를 첫 번째 블록의 제1해시값(h1)으로 사용하고, 첫 번째 블록의 제1해시값(h 1 )을 재해싱하여 연산된 결과값을 첫 번째 블록의 제2 해시값(h' 1 )으로 저장한다.

    첫 번째 블록의 제2 해시값(h' 1 )을 첫 번째 무결성 검증 데이터(IVD 1 )에 포함된 타임스탬프 값(ts 1 )과 결합한 값을 첫 번째 블록의 무결성 검증 데이터 비교값(IVD' 1 )으로서 메모리에 저장한다.

    한편, 원본 데이터의 두 번째 블록(BD 2 )은 첫번째 블록의 제1 해시값(h 1 ), 두 번째 무결성 검증 데이터(IVD 2 )에 포함된 타임스탬프 값(ts 2 ) 및 인덱스 값(2)과 결합되어 해싱한다. 연산된 결과 값은 두 번째 블록의 제1해시값(h 2 )으로 사용된다.

    두 번째 블록의 제1 해시값(h 2 )을 재해싱한 값을 두 번째 블록의 제2 해시값(h' 2 )으로서 사용하고, 두번째 블록의 제2 해시값을 두 번째 무결성 검증 데이터(IVD' 2 )에 포함된 타임스탬프 값(ts 2 )과 결합되어 두 번째 블록의 무결성 검증 데이터 비교값(IVD' 2 )으로 메모리에 저장된다.

    또한, 첫번째 블록의 무결성 검증 데이터 비교값(IVD' 1 )은 첫번째 블록의 제2 해시값(h' 1 )과 두번째 블록의 제1 해시값(h 2 )을 결합하여 해싱한 값에 첫번째 블록의 무결성 검증 데이터(IVD 1 )에 포함된 타임스탬프 값(ts 1 )을 결합하여 변환(업데이트)한다.

    두번째 블록 이후의 원본 데이터의 블록 값들은 두번째 블록에 관해 서술한 일련의 방법들로 연산과정을 거쳐 무결성 검증 데이터 프라임값들을 생성하고 생성된 값들은 메모리에 저장된다.

    이와 같이 생성된 무결성 검증 데이터 비교값들(IVD' 1 ,IVD' 2 ,IVD' 3 ,..,IVD' N )이 데이터 저장 모듈에 저장되어 있는 무결성 검증 데이터 업데이트값(IVD 1 , IVD 2 , IVD 3 , ..., IVD N )들과 일치하는지 비교하고, 비교 결과, 양자가 모두가 일치하면 데이터의 무결성이 보장되는 데 반해, 복수의 블록 중 하나라도 일치하지 않으면 일치하지 않는 부분의 데이터가 훼손이나 제거되었음을 사용자가 알 수 있게 된다.

    한편, 상기에서 구체적인 실시예에 의해 본 발명을 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이나 수정이 가능함은 물론이다. 따라서, 본 발명의 기술적 범위는 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 청구범위 뿐만 아니라, 이 청구의 범위와 균등한 것에 의해 정해져야 한다.

    100: 데이터 입력부 110: 영상촬영장치
    120: 음향검출장치 130: 가속감지장치
    140: 각속도감지장치 150: 충격감지장치
    200: 블랙박스 시스템 210: 입력 인터페이스
    220: 보안 저장모듈
    230: 무결성 및 기밀성 연산 처리 모듈 240: 데이터 저장 모듈
    250: 무결성 및 기밀성 보호 장치 300: 사용자 입력장치

    QQ群二维码
    意见反馈