KR20170081501A - 시간 인증이 가능한 스트리밍 데이터 전송 방법 - Google Patents

시간 인증이 가능한 스트리밍 데이터 전송 방법 Download PDF

Info

Publication number
KR20170081501A
KR20170081501A KR1020160000618A KR20160000618A KR20170081501A KR 20170081501 A KR20170081501 A KR 20170081501A KR 1020160000618 A KR1020160000618 A KR 1020160000618A KR 20160000618 A KR20160000618 A KR 20160000618A KR 20170081501 A KR20170081501 A KR 20170081501A
Authority
KR
South Korea
Prior art keywords
data
time
server
time authentication
streaming
Prior art date
Application number
KR1020160000618A
Other languages
English (en)
Inventor
조남수
김건우
윤택영
장구영
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020160000618A priority Critical patent/KR20170081501A/ko
Publication of KR20170081501A publication Critical patent/KR20170081501A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3297Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

서버에서의 스트리밍 데이터 전송 방법은, 스트리밍 데이터를 생성하는 단계, 상기 스트리밍 데이터에 포함된 각 데이터 블록에 대해, 대응하는 데이터 블록 및 상기 대응하는 데이터 블록의 생성 시간 정보를 포함하는 데이터 스트림을 생성하는 단계, 상기 각 데이터 블록에 대응하는 데이터 스트림을 시간 인증 서버로 전송하는 단계, 상기 각 데이터 블록의 상기 생성 시간 정보에 대해, 상기 카멜레온 해시 함수를 이용하여 생성된 시간 인증 정보를 상기 시간 인증 서버로부터 수신하는 단계, 그리고 상기 각 데이터 블록에 대응하는 데이터 스트림에 상기 시간 인증 정보를 포함시켜 사용자 단말로 전송하는 단계를 포함할 수 있다.

Description

시간 인증이 가능한 스트리밍 데이터 전송 방법{STREAMING DATA TRANSMISSION METHOD CAPABLE OF TIME AUTHENTICATION}
본 발명은 시간 인증이 가능한 스트리밍 데이터 전송 방법에 관한 것이다.
네트워크 환경이 발달하고 클라우드 컴퓨팅 서비스의 활용 분야가 넓어지면서, 데이터를 활용하는 방식에도 많은 변화가 이루어지고 있다. 스트리밍 방식은, 송신측에서 데이터를 연속적으로 전송하면, 수신측은 송신측으로부터 전송 받은 데이터를 실시간으로 처리하여 활용하는 방식으로, 다양한 응용 환경에 활용되고 있다.
네트워크 상에서 데이터를 안전하게 전송하고 활용하기 위해서는 데이터와 데이터 제공자(data provider)에 대한 인증 처리가 필요하다. 이에 따라, 네트워크 상에서 송수신되는 데이터와 이를 송신하는 데이터 제공자에 대한 다양한 인증 기법이 개발되어 활용되고 있다.
한편, 스트리밍 데이터의 경우, 기존의 데이터 인증 기법으로 데이터에 대한 정확한 인증을 제공하기 어려운 문제가 있다.
기존의 데이터 인증 기법의 경우, 송신측에서는 전체 데이터에 대해서 해시 함수 등을 적용하여 비교적 짧고 고정된 길이의 비트열을 생성하고, 생성된 비트열에 대해 서명 또는 메시지 인증 기법을 적용하는 방식으로 이루어진다. 수신측에서는 전체 데이터를 전송 받은 이후에, 전체 데이터로부터 동일한 방식으로 비트열을 생성하고, 이에 대한 서명 또는 인증을 검증하는 방식으로 데이터 인증이 이루어진다.
이러한 데이터 인증 기법을 스트리밍 방식에 적용하는 경우, 스트리밍 방식의 특성으로 인해 많은 제약이 발생한다. 스트리밍 전송 환경에서 데이터 크기에 비해 송신측의 데이터 저장/처리 능력이 매우 제한되거나, 수신측에서 전송받은 데이터를 실시간으로 활용해야 하는 경우, 스트리밍되는 전체 데이터를 동시에 처리하는 것이 불가능할 수 있다. 이에 따라, 데이터가 전송되는 중에 미리 전송된 일부 데이터를 우선 처리해야 하는 상황이 발생하게 되며, 이러한 경우에는 전체 데이터를 전송 받은 후 한꺼번에 처리하는 기존의 데이터 인증 기법의 적용이 제한될 수 밖에 없다. 또한, CCTV, 스포츠 중계와 같이 송신측에서 데이터를 실시간으로 생성하고 동시에 전송해야 하는 환경에서도 기존의 인증 기법을 적용하는 데에 많은 제약이 발생한다.
한편, 기존의 데이터 인증 기법은 전송되는 데이터에 대한 무결성 검증 및 데이터 제공자의 신원 인증을 주 목적으로 한다. 그러나, 일부 데이터 스트리밍 환경의 경우, 데이터의 무결성뿐만 아니라 실제 데이터가 생성된 시간에 대한 인증이 중요한 문제로 작용할 수 있다. CCTV 환경을 예로 들면, 데이터를 실시간으로 생성하고 소비하는 것도 중요하나, 향후 이전에 생성된 데이터의 생성 시간을 정확하게 확인하는 것이 요구되기도 한다.
그러나, 기존에는 데이터를 생성한 데이터 제공자가 정당한 비밀키를 사용하여 데이터를 재생성 하거나 기존의 데이터를 변조하는 과정에서 데이터 생성 시간에 대한 안전성을 보장할 수 없다는 문제가 있다.
본 발명이 해결하려는 과제는 스트리밍 데이터 전송 시 데이터에 대한 안전성 검증뿐만 아니라 스트리밍 데이터가 생성된 시간에 대한 검증이 가능한 스트리밍 데이터 전송 방법을 제공함에 있다.
상기 과제를 해결하기 위한 본 발명의 일 실시 예에 따른 스트리밍 데이터 전송 방법은, 스트리밍 데이터를 생성하는 단계, 상기 스트리밍 데이터에 포함된 각 데이터 블록에 대해, 대응하는 데이터 블록 및 상기 대응하는 데이터 블록의 생성 시간 정보를 포함하는 데이터 스트림을 생성하는 단계, 상기 각 데이터 블록에 대응하는 데이터 스트림을 시간 인증 서버로 전송하는 단계, 상기 각 데이터 블록의 상기 생성 시간 정보에 대해, 상기 카멜레온 해시 함수를 이용하여 생성된 시간 인증 정보를 상기 시간 인증 서버로부터 수신하는 단계, 그리고 상기 각 데이터 블록에 대응하는 데이터 스트림에 상기 시간 인증 정보를 포함시켜 사용자 단말로 전송하는 단계를 포함할 수 있다.
본 발명의 실시 예에 의하면, 스트리밍 데이터 전송 시 데이터에 대한 안전성 검증뿐만 아니라 스트리밍 데이터가 생성된 시간에 대한 검증이 가능한 스트리밍 데이터 전송 방법을 제공할 수 있다.
도 1은 본 발명의 실시 예에 따른 스트리밍 데이터 전송 환경을 개략적으로 도시한 것이다.
도 2는 본 발명의 실시 예에 따른 스트리밍 데이터 전송 방법을 개략적으로 도시한 흐름도이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시 예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 및 청구범위 전체에서, 어떤 부분이 어떤 구성 요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다.
본 발명의 실시 예에서는 스트리밍 데이터에 대한 시간 인증 정보(시간 인증 정보)를 생성하기 위해 카멜레온 해시(Chameleon hash) 함수가 사용된다.
이하, 카멜레온 해시 함수에 대해 상세히 설명하기로 한다.
카멜레온 해시 함수는 충돌저항(collision-resistant) 성질을 제공하지만 동시에 충돌 쌍을 계산할 수 있는 트랩도어(trapdoor)를 추가로 제공하는 해시 함수이다. 카멜레온 해시 함수는 Gen, Ch, Col의 세 가지 확률적 다항 시간(Probabilistic Polynomial Time, PPT) 함수로 구성된다.
Gen 함수는, 비밀키(csk)와 공개키(cpk) 쌍을 생성하기 위해 사용될 수 있다.
Ch 함수는, Gen 함수를 통해 생성된 공개키(cpk)와, 제1메시지(x), 제1랜던 값(r)을 입력으로 하여, 해시 값(h = Ch(cpk; x, r))을 계산하는 함수이다.
Col 함수는, 충돌 결과(collision-finding) 함수로 Gen 함수를 통해 생성된 비밀키(csk)와, Ch 함수의 입력으로 사용된 제1메시지(x) 및 제1랜덤 값(r), 그리고 새로운 제2메시지(x')에 대해서 아래의 수학식 1을 만족하는 제2랜덤 값(r' = Col(csk, x, r, x'))을 계산하는 함수이다.
[수학식 1]
Ch(cpk; x, r) = Ch(cpk; x', r')
즉, 카멜레온 해시 함수는, 비밀키(csk)가 주어지면 제1메시지(x) 및 제1렌던 값(r), 그리고 제2메시지(x')에 대해서 위 수학식 1을 만족하는 제2랜덤 값(r')을 쉽게 계산할 수 있도록 하는 해시 함수 이다.
카멜레온 해시 함수를 구성하는 Gen, Ch 및 Col 함수는 아래의 카멜레온 함수의 요구조건을 만족하는 한도에서 다양하게 변형되어 사용될 수 있다.
카멜레온 해시 함수는 그 출력이 균등 분포(uniform distributed)되어야 한다, 즉, 임의의 공개키(cpk), 제1메시지(x), 제1랜덤 값(r) 및 제2메시지(x')에 대한 Col 함수(Col(csk, x, r, x'))의 출력(제2렌덤 값(r')은, 제1랜덤 값(r)의 분포와 동일해야 한다. 또한, Ch 함수(Ch(cpk; x, r))의 출력 분포도 제1메시지(x)와 제1랜덤 값(r)의 분포에 동일하게 영향을 받아야 한다. 또한, 카멜레온 해시 함수는 일반적인 해시 함수와 동일하게 충돌 저항 성질을 만족해야 한다. 즉, 비밀키(csk)를 모르는 어떠한 공격자라 할 지라도 위 수학식 1을 만족하는 두 가지 값을 찾을 수 없어야 한다.
이하, 카멜레온 해시 함수를 구성하는 Gen, Ch 및 Col 함수의 일 예에 대해 설명한다.
Gen 함수를 이용하여 비밀키(csk) 및 공개키(cpk)를 생성하기 위해서는 우선 두 개의 서로 다른 RSA 안전소수(safe prime)인 p, q가 생성(선택)된다.
안전소수 p, q가 생성(선택)되면, 두 RSA 안전소수(p, q)를 이용하여 비밀키(csk) 및 공개키(cpk) 모두에 대한 계수로 사용되는 n(=pq)이 산출된다. 여기서, 계수 n은 k-bits이고, RSA 안전소수 p,q는 각각 k/2-bits라 가정한다.
이후, p, q, n은 이후 아래의 수학식 2에 대입되어 λ(n) 산출에 사용된다.
[수학식 2]
λ(n) = (p-1)(q-1)/2
λ(n)이 산출되면, 위수가 λ(n)인 임의의 원소(g)와 정수(s)가 선택된다.
전술한 Gen 함수 과정을 통해, RSA 안전소수 p, q, 계수 n, 임의의 원소 g, 정수 s가 획득되면, 이들을 이용하여 비밀키(csk = (p,q, s)) 및 공개키(cpk = (n, g, h=gs))가 생성될 수 있다.
Gen 함수를 통해 생성된 공개키(cpk)는 아래 수학식 3의 Ch 함수에 대입되어, 해시 값 산출에 사용될 수 있다.
[수학식 3]
Ch(cpk; m, r) = hm·gr = gm·s +r mod n
Gen 함수를 통해 생성된 비밀키(csk)는 아래 수학식 4의 Col 함수에 대입되어, 제2랜덤 값(r') 산출에 사용될 수 있다.
[수학식 4]
r' = s(m - m') + r mod λ(n)
위 수학식 3 및 4에서, m은 제1메시지, m'는 제2메시지, r은 제1렌덤 값을 나타낸다.
한편, 수학식 2 내지 수학식 4를 참조하여 설명한 Gen, Ch, Col 함수는 카멜레온 해시 함수의 일 예를 설명하기 위한 것으로서, 본 발명의 실시 예는 이에 한정되지는 않는다. 본 발명의 실시 예에 따르면, 시간 인증 정보(태그) 생성 시 카멜레온 해시 함수의 요구조건을 만족하는 어떠한 해시 함수라도 적용이 가능하다.
이하, 필요한 도면들을 참조해서 본 발명의 일 실시 예에 따른 스트리밍 데이터 전송 방법에 대해 설명하기로 한다.
도 1은 본 발명의 실시 예에 따른 스트리밍 데이터 전송 방법이 적용되는 스트리밍 데이터 전송 환경을 개략적으로 도시한 것이다.
도 1을 참고하면, 데이터 서버(10)는 데이터 제공자(data provider)로서, 데이터 스트림(data stream)을 생성하고, 이를 사용자 단말(20)로 전송할 수 있다.
데이터 서버(10)는 사용자 단말(20)로부터 스트리밍 데이터 전송이 요청되면, 요청된 스트리밍 데이터를 복수의 데이터 블록으로 분할하고, 데이터 블록 단위로 사용자 단말(20)로 전송할 수 있다. 즉, 데이터 서버(10)는 각 데이터 블록 단위로 사용자 단말(20)로 전송할 데이터 스트림을 생성하고, 생성된 데이터 스트림을 사용자 단말(20)로 전송한다.
데이터 서버(10)는 스트리밍 데이터 전송 시 데이터 블록 단위로 데이터 인증 정보를 생성하고, 이를 대응하는 데이터 스트림에 포함시켜 전송할 수 있다. 데이터 서버(10)는 각 데이터 블록에 대해서 해시 함수 등을 적용하여 고정된 길이의 비트열을 생성하고, 이를 토대로 데이터 인증 정보를 생성한다.
사용자 단말(20)은 데이터를 사용하는 클라이언트(client)로서, 데이터 서버(10)로부터 수신되는 스트리밍 데이터를 수신하고 활용할 수 있다.
사용자 단말(20)은 데이터 서버(10)로부터 스트리밍 데이터를 수신 시, 스트리밍 데이터를 구성하는 각 데이터 블록에 대응하는 데이터 스트림을 순차적으로 수신할 수 있다.
사용자 단말(20)은 각 데이터 스트림이 수신되면, 이로부터 데이터 블록과 데이터 인증 정보를 획득하고, 데이터 인증 정보를 토대로 수신된 데이터 블록에 대한 데이터 인증(검증) 과정을 수행한다. 즉, 사용자 단말(20)은 데이터 서버(10)에서 데이터 인증 정보를 생성한 방법과 동일한 방법으로 수신된 데이터 블록으로부터 고정된 비트열의 인증 정보를 생성하고, 이를 수신된 데이터 인증 정보와 비교함으로써 데이터 인증 과정을 수행한다.
사용자 단말(20)은 데이터 서버(10)로부터 수신되는 각 데이터 블록에 대해 데이터 인증이 성공하면, 해당 데이터 블록을 처리하여 사용자에게 제공한다.
시간 인증 서버(Time Authentication Server, 30)는 데이터 서버(10)로부터 스트리밍 데이터를 구성하는 각 데이터 블록을 수신하며 이에 대한 시간 인증 정보를 생성할 수 있다.
데이터 서버(10)는 사용자 단말(20)로 각 데이터 블록이 포함된 데이터 스트림 전송 시, 동일한 데이터 스트림을 시간 인증 서버(30)로도 전송한다. 이에 따라, 데이터 스트림을 수신한 시간 인증 서버(30)는 수신한 데이터 스트림에 대한 데이터 인증 처리를 수행하고, 데이터 인증에 성공하면 해당 데이터 스트림에 대해 시간 인증 정보를 생성한다.
시간 인증 서버(30)는 데이터 서버(10)로부터 수신되는 데이터 스트림으로부터 데이터 블록과 데이터 인증 정보를 검출하고, 검출된 데이터 인증 정보를 이용하여 대응하는 데이터 블록에 대한 인증(검증) 과정을 수행할 수 있다. 여기서, 시간 인증 서버(30)에서의 데이터 인증 과정은, 사용자 단말(20)에서의 데이터 인증 과정과 동일한 방법으로 수행될 수 있다.
시간 인증 서버(30)는 각 데이터 스트림에 대한 데이터 인증에 성공하면, 카멜레온 해시 함수를 이용하여 대응하는 데이터 블록(또는 데이터 스트림)의 생성 시간에 대한 시간 인증 정보를 생성할 수 있다.
데이터 서버(10)는 각 데이터 스트림 생성 시, 대응하는 데이터 블록(또는 데이터 스트림)의 생성 시간 정보를 포함하도록 각 데이터 스트림을 구성할 수 있다. 따라서, 시간 인증 서버(30)는 각 데이터 스트림으로부터 대응하는 데이터 블록(또는 데이터 스트림)의 생성 시간 정보를 검출하고, 이를 토대로 시간 인증 정보를 생성할 수 있다.
시간 인증 서버(30)는 데이터 서버(10)로부터 수신되는 각 데이터 블록(또는 데이터 스트림)의 생성 시간 정보에 대해 카멜레온 해시 함수를 적용하여 시간 인증 정보를 생성할 수 있다. 시간 인증 서버(30)에서 카멜레온 해시 함수를 이용하여 시간 인증 정보를 생성하는 방법에 대해서는 후술하는 도 2를 참고하여 상세히 설명하기로 한다.
시간 인증 서버(30)는 각 데이터 스트림에 대한 시간 인증 정보가 생성되면, 이를 데이터 서버(10)로 전송한다.
데이터 서버(10)는 시간 인증 서버(30)로부터 시간 인증 정보가 수신되면, 이를 대응하는 데이터 스트림에 포함시켜 메모리(미도시)저장한다. 즉, 사용자 단말(20)로 전송된 데이터 스트림(데이터 블록 및 데이터 인증 정보 포함)에 시간 인증 서버(30)로부터 수신한 시간 인증 정보를 더 포함시켜 메모리에 저장한다. 그리고, 이후 사용자 단말(20)로부터 해당 스트리밍 데이터의 재 전송 요청이 수신되면, 시간 인증 정보가 포함된 데이터 스트림을 사용자 단말(20)로 전송한다.
사용자 단말(20)은 데이터 서버(10)로부터 시간 인증 정보가 포함된 데이터 스트림이 수신되면, 시간 인증 정보를 이용하여 대응하는 데이터 블록(또는 데이터 스트림)의 생성 시간 정보에 대한 인증(검증) 과정을 수행함으로써, 생성 시간 정보의 유효성을 검증할 수 있다.
이하, 도 2를 참고하여 본 발명의 실시 예에 따른 스트리밍 데이터 인증 방법에 대해 상세하게 설명하기로 한다.
도 2를 참고하면, 시간 인증 서버(30)는 공개키 및 비밀키를 생성한다(S100).
상기 S100 단계에서, 시간 인증 서버(30)는 카멜레온 해시 함수를 구성하는 Gen 함수를 이용하여 공개키 및 비밀키를 생성할 수 있다. 시간 인증 서버(30)는 공개키(cpk) 및 비밀키(csk) 생성을 위해 우선 서로 다른 RSA 안전소수(safe prime)인 p, q를 선택하고, 두 RSA 안전소수(p, q)를 이용하여 계수 n(=pq)을 산출한다. 다음으로, 시간 인증 서버(30)는 전술한 수학식 2를 이용하여 λ(n)를 산출하고, 위수가 λ(n)인 임의의 원소(g)를 선택한다.
시간 인증 서버(30)는 RSA 안전소수(p, q)들을 이용하여 비밀키(csk = (p,q,s))를 생성하고, 전술한 바와 같이 계수 n과 임의로 선택된 원소 g를 이용하여 공개키(cpk = (n, g, h))를 생성한다.
시간 인증 서버(30)는 공개키(cpk)가 생성되면, 공개키(cpk)를 어느 사용자 단말에서나 사용 가능하도록 공개 상태로 설정한다(S101). 이에 따라, 시간 인증 과정을 수행하고자 하는 사용자 단말은, 시간 인증 서버(30)에 의해 공개된 공개키(cpk)를 수신하여 시간 인증 과정에 사용할 수 있다.
다시, 도 2를 보면, 데이터 서버(10)는 사용자 단말(20)로부터 스트리밍 데이터의 전송 요청이 수신됨에 따라(S102), 사용자 단말(20)로부터 요청 받은 스트리밍 데이터를 생성한다(S103). 그리고, 생성된 스트리밍 데이터에 대한 데이터 인증 처리를 수행하여 데이터 인증 정보를 생성한다(S104).
상기 S103 단계에서, 데이터 서버(10)는 사용자 단말(20)이 요청한 스트리밍 데이터 생성 시, 스트리밍 데이터의 전체 데이터를 복수의 데이터 블록 단위로 분할 할 수 있다.
상기 S104 단계에서, 데이터 서버(10)는 데이터 블록 단위로 데이터 인증 과정을 수행하여 데이터 인증 정보를 생성할 수 있다. 예를 들어, 데이터 서버(10)는 각 데이터 블록 에 대해 해시 함수 등을 적용하여 획득되는 비트열을 토대로, 각 데이터 블록에 대응하는 데이터 인증 정보를 생성할 수 있다.
데이터 서버(10)는 데이터 인증 정보가 생성되면, 생성된 데이터 인증 정보를 대응하는 데이터 블록 뒤에 배치하여 사용자 단말(20)로 전송할 데이터 스트림을 생성한다(S105). 그리고, 생성된 데이터 스트림을 사용자 단말(20)과 시간 인증 서버(30)로 각각 전송한다(S106, S107).
데이터 서버(10)는 스트리밍 데이터 전송 시, 각 데이터 블록 단위로 데이터를 나누어 전송할 수 있다. 따라서, 상기 S105 단계에서 데이터 서버(10)는 데이터 블록 단위로 데이터 스트림을 생성할 수 있다.
상기 S105 단계에서, 각 데이터 스트림은 해당 데이터 스트림(또는 데이터 블록)의 생성 시간 정보를 더 포함할 수 있다.
사용자 단말(20) 및 시간 인증 서버(30)는 데이터 서버(10)로부터 데이터 스트림이 수신되면, 이에 대한 데이터 인증 처리를 수행한다(S108, S109).
상기 S108 단계 및 S109 단계에서, 사용자 단말(20) 또는 시간 인증 서버(30)는 데이터 서버(10)로부터 수신되는 데이터 스트림으로부터 데이터 블록 및 데이터 인증 정보를 획득한다. 그리고, 획득한 데이터 블록에 대해 해시 함수 등을 적용하여 비트열을 생성하고, 이를 데이터 인증 정보와 비교함으로써 데이터 인증 처리를 수행할 수 있다.
사용자 단말(20)은 수신된 데이터 블록에 대한 데이터 인증이 성공하면, 해당 데이터 블록을 데이터 처리하여 사용자에게 제공한다.
시간 인증 서버(30)는 수신된 데이터 블록에 대한 데이터 인증이 성공하면, 수신한 데이터 스트림에 대한 시간 인증 정보를 생성한다(S110).
상기 S110 단계에서, 시간 인증 서버(30)는 수신된 데이터 스트림으로부터 대응하는 데이터 블록(또는 데이터 스트림)의 생성 시간 정보를 획득하고, 이에 대해 카멜레온 해시 함수를 적용하여 시간 인증 정보를 생성할 수 있다.
이하, 시간 인증 서버(30)에서 카멜레온 해시 함수를 이용하여 시간 인증 정보를 생성하는 방법에 대해 설명하기로 한다.
상기 110 단계에서, 시간 인증 서버(30)는 아래의 수학식 5를 이용하여 시간 인증 정보(Tr)를 생성할 수 있다.
[수학식 5]
Tr = T - sm mod λ(n)
여기서, m은 시간 인증 서버(30)에서 수신한 데이터 블록이고, T는 대응하는 데이터 블록(m) 또는 데이터 스트림의 생성 시간에 대응하는 시간 태그이다. 또한, λ(n)은 비밀키(csk=(p,q, s))를 전술한 수학식 2에 대입하여 산출될 수 있다.
다시, 도 2를 보면, 시간 인증 서버(30)는 시간 인증 정보(Tr)가 생성되면, 이를 데이터 서버(10)로 전송한다(S111). 데이터 서버(10)는 시간 인증 서버(30)로부터 시간 인증 정보(Tr)가 수신되면, 이를 메모리(미도시)에 저장한다(S112).
상기 S112 단계에서, 시간 인증 서버(30)는 시간 인증 정보(Tr)를 저장 시, 대응하는 데이터 스트림에 포함시켜 저장할 수 있다.
이후, 데이터 서버(10)는 사용자 단말(20)이 요청한 전체 데이터 전송이 완료될 때까지(S113), 각 데이터 블록에 대응하는 데이터 스트림을 순차적으로 사용자 단말(20)과 시간 인증 서버(30)로 전송하고(S103 내지 S107), 각 데이터 스트림에 대응하는 시간 인증 정보(Tr)를 시간 인증 서버(30)로부터 수신하는 과정을 연속적으로 수행한다(S111). 그리고, 각 데이터 스트림에 대응하여 수신한 시간 인증 정보(Tr)를, 대응하는 데이터 스트림에 포함시켜 메모리에 순차적으로 저장된다.
데이터 서버(10)는 스트리밍 데이터의 전송이 완료된 이후에, 사용자 단말(20)로부터 스트리밍 데이터의 재 전송 요청을 수신할 수 있다(S114).
이 경우, 데이터 서버(10)는 대응하는 스트리밍 데이터를 데이터 스트림 단위로 메모리로부터 읽어오고, 읽어온 데이터 스트림들을 순차적으로 사용자 단말(20)로 전송한다(S115, S117). 상기 S115 단계에서, 각 데이터 스트림은 대응하는 데이터 인증 정보 및 시간 인증 정보를 포함할 수 있다.
이에 따라, 데이터 인증 정보 및 시간 인증 정보가 포함된 데이터 스트림을 수신한 사용자 단말(20)은, 데이터 인증 처리 및 시간 인증 처리를 수행하여 수신된 데이터 스트림에 대한 데이터 인증 및 시간 인증을 수행한다(S116).
상기 S116 단계에서, 사용자 단말(20)은 시간 인증 서버(30)에 의해 공개된 공개키(cpk)와, 데이터 스트림으로부터 획득한 시간 인증 정보를 이용하여 데이터 스트림에 대한 시간 인증 처리를 수행할 수 있다.
아래 수학식 6은 사용자 단말(20)에서의 시간 인증 처리를 위한 검증식의 일 예이다.
[수학식 6]
hmgTr = gT mod n
여기서, n, g, h는 시간 인증 서버(30)의 공개키(cpk=(n, g, h))로부터 획득할 수 있으며, Tr은 데이터 서버(10)로부터 수신한 시간 인증 정보를 나타낸다. 또한, T는 데이터 서버(10)로부터 수신한 데이터 스트림에 포함된 생성 시간 정보에 대응하는 시간 태그이다.
사용자 단말(20)은 데이터 서버(10)로부터 수신한 데이터 블록과 이에 대응하는 생성 시간 정보, 그리고 시간 인증 정보를, 공개키(cpk=(n, g, h))와 함께 위 수학식 6의 검증식에 대입하고, 수학식 6의 조건이 성립할 경우 데이터 스트림에 포함된 생성 시간 정보가 유효한 것으로 판단한다.
사용자 단말(20)은 위 수학식 6을 토대로 데이터 스트림에 대한 시간 인증이 성공하면, 대응하는 데이터 블록(또는 데이터 스트림)의 생성 시간 정보 또는 시간 인증 결과를 출력하여 사용자에게 제공할 수 있다.
한편, 도 2에서는 데이터 서버(10)에서 사용자 단말(20)로 스트리밍 데이터를 전송 시, 시간 인증 서버(30)로도 데이터 스트림을 전송하여 시간 인증 처리를 수행하는 경우를 예로 들어 도시하였으나, 본 발명의 실시 예는 이에 한정되지 않는다. 데이터 서버(10)는 스트리밍 데이터의 최초 생성 시, 사용자 단말(20)의 전송 요청과는 상관 없이 스트리밍 데이터를 데이터 블록 단위로 시간 인증 서버(30)로 전송함으로써, 시간 인증 서버(30)로부터 시간 인증 정보를 획득할 수도 있다.
또한, 도 2에서는 사용자 단말(20)로부터 스트리밍 데이터의 재전송이 요청되면, 시간 인증 정보를 포함시켜 사용자 단말(20)로 전송하는 경우를 예로 들어 도시하였으나, 데이터 서버(10)는 사용자 단말(20)이 시간 인증 정보를 요청하는 경우에만 스트리밍 데이터에 시간 인증 정보를 포함시켜 전송할 수도 있다.
전술한 바에 따르면, 데이터 서버(10)는 별도의 시간 인증 서버(30)를 통해 스트리밍 데이터의 생성 시간에 대응하는 시간 인증 정보를 획득하고, 이를 이용하여 스트리밍 데이터의 생성 시간에 대한 검증이 가능하도록 시간 인증 정보를 스트리밍 데이터에 포함시켜 전송한다. 이에 따라, 실시간으로 생성되고 소비되는 주식, 환율 정보 및 CCTV 데이터 등의 스트리밍 데이터 전송 환경에서, 이를 소비하는 사용자는 데이터의 무결성뿐만 아니라 데이터가 생성된 시점에 대한 검증을 수행할 수 있어 데이터 전송 환경에 대한 신뢰성이 더욱 향상될 수 있다.
본 발명의 실시 예는 이상에서 설명한 장치 및/또는 방법을 통해서만 구현되는 것은 아니며, 본 발명의 실시 예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체를 통해 구현될 수도 있으며, 이러한 구현은 앞서 설명한 실시 예의 기재로부터 본 발명이 속하는 기술 분야의 전문가라면 쉽게 구현할 수 있는 것이다.
이상에서 본 발명의 실시 예에 대하여 상세하게 설명하였지만 본 발명의 권리 범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리 범위에 속하는 것이다.

Claims (1)

  1. 서버에서의 스트리밍 데이터 전송 방법에 있어서,
    스트리밍 데이터를 생성하는 단계,
    상기 스트리밍 데이터에 포함된 각 데이터 블록에 대해, 대응하는 데이터 블록 및 상기 대응하는 데이터 블록의 생성 시간 정보를 포함하는 데이터 스트림을 생성하는 단계,
    상기 각 데이터 블록에 대응하는 데이터 스트림을 시간 인증 서버로 전송하는 단계,
    상기 각 데이터 블록의 상기 생성 시간 정보에 대해, 상기 카멜레온 해시 함수를 이용하여 생성된 시간 인증 정보를 상기 시간 인증 서버로부터 수신하는 단계, 그리고
    상기 각 데이터 블록에 대응하는 데이터 스트림에 상기 시간 인증 정보를 포함시켜 사용자 단말로 전송하는 단계를 포함하는 데이터 전송 방법.
KR1020160000618A 2016-01-04 2016-01-04 시간 인증이 가능한 스트리밍 데이터 전송 방법 KR20170081501A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160000618A KR20170081501A (ko) 2016-01-04 2016-01-04 시간 인증이 가능한 스트리밍 데이터 전송 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160000618A KR20170081501A (ko) 2016-01-04 2016-01-04 시간 인증이 가능한 스트리밍 데이터 전송 방법

Publications (1)

Publication Number Publication Date
KR20170081501A true KR20170081501A (ko) 2017-07-12

Family

ID=59353079

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160000618A KR20170081501A (ko) 2016-01-04 2016-01-04 시간 인증이 가능한 스트리밍 데이터 전송 방법

Country Status (1)

Country Link
KR (1) KR20170081501A (ko)

Similar Documents

Publication Publication Date Title
US20200252215A1 (en) Streaming authentication and multi-level security for communications networks using quantum cryptography
US10958428B2 (en) Apparatus for quantum key distribution on a quantum network and method using the same
CN106411521B (zh) 用于量子密钥分发过程的身份认证方法、装置及系统
US10511440B2 (en) Methods of proving validity and determining validity, electronic device, server and computer programs
EP2737656B1 (en) Credential validation
KR102238681B1 (ko) 데이터 인증을 위한 서명 정보 생성 및 검증 방법과 이를 위한 시스템
RU2019111926A (ru) Система и способ для защиты информации
CN106470101B (zh) 用于量子密钥分发过程的身份认证方法、装置及系统
CN106130716B (zh) 基于认证信息的密钥交换系统及方法
US10326602B2 (en) Group signatures with probabilistic revocation
JP2019510444A5 (ko)
KR20110070694A (ko) 다자간 양자 통신에서의 사용자 인증 방법 및 장치
US20160182230A1 (en) Secure token-based signature schemes using look-up tables
US11496290B2 (en) Blockchain network and finalization method therefor
EP3496331A1 (en) Two-party signature device and method
US10498819B2 (en) Method for storing data in a cloud and network for carrying out the method
KR101404642B1 (ko) 래티스 기반 인증서 비사용 서명 시스템 및 방법
CN106034122A (zh) 一种信息处理方法、电子设备及服务器
US8954728B1 (en) Generation of exfiltration-resilient cryptographic keys
CN110808953A (zh) 一种具备位置感知的云数据可验证备份方法
CN109766716A (zh) 一种基于可信计算的匿名双向认证方法
JP2016220062A (ja) 通信装置、サーバ、署名検証委託システム及び署名検証委託方法
KR101238846B1 (ko) 인증서 검증 시스템 및 그 방법
KR20170081501A (ko) 시간 인증이 가능한 스트리밍 데이터 전송 방법
KR20150109202A (ko) 차량용 통신 데이터 인증 방법 및 시스템