KR101833141B1 - 경량 암호 알고리즘 기반의 저작권 보호를 위한 콘텐츠 송수신 장치, 이를 위한 방법 및 이 방법이 기록된 컴퓨터 판독 가능한 기록매체 - Google Patents

경량 암호 알고리즘 기반의 저작권 보호를 위한 콘텐츠 송수신 장치, 이를 위한 방법 및 이 방법이 기록된 컴퓨터 판독 가능한 기록매체 Download PDF

Info

Publication number
KR101833141B1
KR101833141B1 KR1020160133728A KR20160133728A KR101833141B1 KR 101833141 B1 KR101833141 B1 KR 101833141B1 KR 1020160133728 A KR1020160133728 A KR 1020160133728A KR 20160133728 A KR20160133728 A KR 20160133728A KR 101833141 B1 KR101833141 B1 KR 101833141B1
Authority
KR
South Korea
Prior art keywords
content
user
user device
unit
key
Prior art date
Application number
KR1020160133728A
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 KR1020160133728A priority Critical patent/KR101833141B1/ko
Application granted granted Critical
Publication of KR101833141B1 publication Critical patent/KR101833141B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2347Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving video stream encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/26613Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel for generating or managing keys in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • H04N21/4405Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving video stream decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8547Content authoring involving timestamps for synchronizing content

Abstract

본 발명은 경량 암호 알고리즘 기반의 저작권 보호를 위한 콘텐츠 송수신 장치, 이를 위한 방법 및 이 방법이 기록된 컴퓨터 판독 가능한 기록매체에 관한 것으로, 이러한 본 발명은 제2 사용자장치와 통신을 위한 통신모듈과, 상기 제2 사용자장치와 동일한 암호 알고리즘, 복호 알고리즘, 해시함수 및 공유 비밀키를 저장하는 저장모듈과, 타임스탬프를 선택하고, 제1 콘텐츠를 세션키 및 상기 암호 알고리즘을 이용하여 암호화하여 암호화된 제1 콘텐츠를 도출하며, 상기 제1 콘텐츠 및 세션키를 해시함수에 입력하여 무결성 검증을 위한 인증 코드를 산출하고, 상기 타임스탬프, 상기 암호화된 제1 콘텐츠 및 상기 인증 코드를 포함하는 암호문을 생성하며, 생성된 암호문을 상기 통신모듈을 통해 상기 제2 사용자장치로 전송하는 제어모듈을 포함하는 콘텐츠 송신 장치와, 이에 대응하는 콘텐츠 수신 장치, 이를 위한 방법 및 이 방법이 기록된 컴퓨터 판독 가능한 기록매체를 제공한다.

Description

경량 암호 알고리즘 기반의 저작권 보호를 위한 콘텐츠 송수신 장치, 이를 위한 방법 및 이 방법이 기록된 컴퓨터 판독 가능한 기록매체{Apparatus of transmitting and receiving contents for protecting copyright based on Lightweight Encryption Algorithm, method thereof and computer recordable medium storing program to perform the method}
본 발명은 콘텐츠 저작권 보호를 위한 기술에 관한 것으로, 보다 상세하게는, 경량 암호 알고리즘 기반의 저작권 보호를 위한 콘텐츠 송수신 장치, 이를 위한 방법 및 이 방법이 기록된 컴퓨터 판독 가능한 기록매체에 관한 것이다.
종래의 네트워크로 연결된 시스템에서는 디지털 콘텐츠를 전송하는 서버 측에서 사용자를 인증하고 전송에 제한을 두는 방식으로 인증(Authorization)된 사용자에게 디지털 콘텐츠를 전송하는 방식을 사용한다.
한국공개특허 제2007-0060955호 2007년 06월 13일 공개 (명칭: 저작권 보호를 위한 디지털 콘텐츠 송수신 장치 및 그 방법)
본 발명의 목적은 경량 암호 알고리즘 기반으로 저작권 보호를 위한 콘텐츠를 송수신할 수 있는 장치, 이를 위한 방법 및 이 방법이 기록된 컴퓨터 판독 가능한 기록매체를 제공함에 있다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 제1 사용자장치의 콘텐츠 송신 장치는 제2 사용자장치와 통신을 위한 통신모듈과, 상기 제2 사용자장치와 동일한 암호 알고리즘, 복호 알고리즘, 해시함수 및 공유 비밀키를 저장하는 저장모듈과, 타임스탬프를 선택하고, 제1 콘텐츠를 세션키 및 상기 암호 알고리즘을 이용하여 암호화하여 암호화된 제1 콘텐츠를 도출하며, 상기 제1 콘텐츠 및 세션키를 해시함수에 입력하여 무결성 검증을 위한 인증 코드를 산출하고, 상기 타임스탬프, 상기 암호화된 제1 콘텐츠 및 상기 인증 코드를 포함하는 암호문을 생성하며, 생성된 암호문을 상기 통신모듈을 통해 상기 제2 사용자장치로 전송하는 제어모듈을 포함한다.
상기 제어모듈은 상기 암호 알고리즘을 실행하는 암복호처리부를 포함하며, 상기 암복호처리부는 상기 세션키가 입력되면, 중간키를 생성하는 중간키생성부와, 상기 중간키를 이용하여 상기 제1 콘텐츠를 암호화하여 상기 암호화된 제1 콘텐츠를 도출하는 암복호처리부를 포함한다.
상기 암복호처리부는 복수의 스테이지에 걸쳐 암호화를 수행하되, 각 스테이지에서 하나의 함수를 사용하며, 상기 함수 F는 16 비트 혹은 32 비트 단위의 XOR 연산 및 시프트 연산만으로 구성되고, 상기 중간키를 복수개의 단위 중간키로 구분하고, 복수개의 단위 중간키를 서로 다른 스테이지의 함수에 입력하여 상기 제1 콘텐츠를 암호화하는 것을 특징으로 한다.
상기 복수의 스테이지 각각에서, 상기 암복호처리부는 상기 제1 콘텐츠가 입력되면, 상기 제1 콘텐츠를 동일한 길이로 좌비트열 및 우비트열로 구분하고, 현 스테이지의 우비트열을 다음 스테이지의 좌비트열로 생성하며, 현 스테이지의 우비트열 R과 단위 중간키 m을 함수 F에 입력하여 함수 F의 연산에 의해 출력되는 해를 얻은 후, 얻은 해와 현 스테이지의 좌비트열을 XOR 연산하여 다음 스테이지의 우비트열을 생성하는 것을 특징으로 한다.
상기 제어모듈은 상기 공유 비밀키 및 상기 타임스탬프를 상기 해시 함수에 입력하여 상기 세션키를 산출하는 것을 특징으로 한다.
상기 제어모듈은 상기 제1 콘텐츠의 원본인 원본 제1 콘텐츠와 원본 제1 컨텐츠의 예측 픽셀의 차이를 나타내는 제1 예측 오차에 따라 상기 원본 제1 콘텐츠에 상기 저작권 증명 정보를 은닉하여 상기 제1 콘텐츠를 생성하는 것을 특징으로 한다.
상기 예측 픽셀은 다음의 수학식 1을 통해 산출된다.
[수학식 1]
Figure 112016099866425-pat00001
상기 예측 오차는 다음의 수학식 2를 통해 산출된다.
[수학식 2]
Figure 112016099866425-pat00002
상기 저작권 증명 정보를 은닉하여 상기 제1 콘텐츠를 생성하는 것은 상기 제1 예측 오차가 기 설정된 임계치 보다 작거나 같을 때, 다음의 수학식 3을 통해 이루어진다.
[수학식 3]
Figure 112016099866425-pat00003
상기 I는 원본 제1 콘텐츠이며, 상기 G는 제1 콘텐츠이며, 상기 P는 예측 픽셀이며, 상기 e는 제1 예측 오차이며, 상기 x, y는 픽셀의 좌표를 의미한다.
상기 제어모듈은 상기 제1 콘텐츠로부터 상기 제1 콘텐츠와 상기 제1 콘텐츠의 예측 픽셀의 차이인 제2 예측 오차에 따라 상기 제1 콘텐츠로부터 상기 저작권 증명 정보를 추출하고, 상기 원본 제1 콘텐츠를 복원하는 것을 특징으로 한다.
상기 예측 픽셀은 다음의 수학식 6을 통해 산출된다.
[수학식 6]
Figure 112016099866425-pat00004
상기 제2 예측 오차는 픽셀을 이용하여 다음의 수학식 7을 통해 산출된다.
[수학식 7]
Figure 112016099866425-pat00005
상기 제1 콘텐츠로부터 상기 저작권 증명 정보를 추출하는 것은 다음의 수학식 8을 통해 상기 저작권 증명 정보 비트를 추출하여 이루어진다.
[수학식 8]
Figure 112016099866425-pat00006
상기 원본 제1 콘텐츠를 복원하는 것은 상기 제2 예측 오차가 기 설정된 임계치 보다 작거나 같을 때, 다음의 수학식 9를 통해 이루어지며,
[수학식 9]
Figure 112016099866425-pat00007
상기 I는 원본 제1 콘텐츠이며, 상기 G는 제1 콘텐츠이며, 상기 P는 예측 픽셀이며, 상기 e'는 제2 예측 오차이며, 상기 x, y는 픽셀의 좌표이며, 상기 s(k)는 상기 저작권 증명 정보 비트인 것을 특징으로 한다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 제2 사용자장치의 콘텐츠 수신 장치는 제1 사용자장치 및 상기 제2 사용자장치의 사용자가 착용하는 웨어러블장치와 통신을 위한 통신부와, 상기 제1 사용자장치와 동일한 암호 알고리즘, 복호 알고리즘 및 해시함수를 저장하는 저장부와, 상기 저장부가 제1 사용자장치와 동일한 공유 비밀키를 저장할 때, 상기 통신부를 통해 상기 제1 사용자장치로부터 타임스탬프, 암호화된 제1 콘텐츠 및 인증 코드를 포함하는 암호문을 수신하면, 상기 타임스탬프 및 상기 공유 비밀키를 상기 해시함수에 입력하여 세션키를 산출하며, 상기 암호화된 제1 콘텐츠를 상기 세션키 및 상기 복호 알고리즘을 통해 복호화하여 제1 콘텐츠를 복원하는 제어부를 포함한다.
상기 제어부는 상기 복호 알고리즘을 실행하는 암복호처리부;를 포함하며, 상기 암복호처리부는 상기 세션키가 입력되면, 중간키를 생성하는 중간키생성부와, 상기 중간키를 이용하여 상기 암호화된 제1 콘텐츠를 복호화하여 상기 제1 콘텐츠를 도출하는 암복호처리부를 포함하는 것을 특징으로 한다.
상기 암복호처리부는 복수의 스테이지에 걸쳐 암호화를 수행하되, 각 스테이지에서 하나의 함수를 사용하며, 상기 함수 F는 16 비트 혹은 32 비트 단위의 XOR 연산 및 시프트 연산만으로 구성되고, 상기 중간키를 복수개의 단위 중간키로 구분하고, 복수개의 단위 중간키를 서로 다른 스테이지의 함수에 입력하여 상기 암호화된 제1 콘텐츠를 복호화하는 것을 특징으로 한다.
상기 복수의 스테이지 각각에서, 상기 암복호처리부는 상기 암호화된 제1 콘텐츠가 입력되면, 상기 암호화된 제1 콘텐츠를 동일한 길이로 좌비트열 및 우비트열로 구분하고, 현 스테이지의 우비트열을 다음 스테이지의 좌비트열로 생성하며, 현 스테이지의 우비트열 R과 단위 중간키 m을 함수 F에 입력하여 함수 F의 연산에 의해 출력되는 해를 얻은 후, 얻은 해와 현 스테이지의 좌비트열을 XOR 연산하여 다음 스테이지의 우비트열을 생성하는 것을 특징으로 한다.
상기 웨어러블장치가 상기 제1 사용자장치와 동일한 공유 비밀키를 저장하는 경우, 상기 저장부는 제2 사용자의 생체신호 정보를 저장하며, 상기 제어부는 상기 통신부를 통해 상기 웨어러블장치가 통신 범위 내에 있으면, 상기 웨어러블장치로부터 생체신호 정보를 수신하면, 수신된 생체신호 정보와 상기 저장된 생체신호 정보를 비교하여 인증을 수행하여, 인증에 성공한 경우, 상기 통신부를 통해 상기 웨어러블장치로부터 공유 비밀키를 수신하며, 상기 통신부를 통해 타임스탬프, 암호화된 제1 콘텐츠 및 인증 코드를 포함하는 암호문을 수신하면, 상기 타임스탬프 및 상기 웨어러블장치로부터 수신된 공유 비밀키를 상기 해시함수에 입력하여 세션키를 산출하며, 상기 암호화된 제1 콘텐츠를 상기 세션키 및 상기 복호 알고리즘을 통해 복호화하여 제1 콘텐츠를 복원하는 것을 특징으로 한다.
상기 제어부는 상기 복원된 제1 콘텐츠와 상기 세션키를 해시함수에 입력하여 인증 코드를 산출한 후, 산출된 인증 코드와 상기 수신된 암호문의 인증 코드가 일치하는지 여부를 검증하고, 상기 검증 결과 일치하는 경우, 상기 복원된 제1 콘텐츠를 출력하는 것을 특징으로 한다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 제1 사용자장치의 콘텐츠 송신 방법은 제2 사용자장치와 동일한 암호 알고리즘, 복호 알고리즘, 해시함수 및 공유 비밀키를 저장한 상태에서, 타임스탬프를 선택하는 단계와, 제1 콘텐츠를 세션키 및 상기 암호 알고리즘을 이용하여 암호화하여 암호화된 제1 콘텐츠를 도출하는 단계와, 상기 제1 콘텐츠 및 세션키를 해시함수에 입력하여 무결성 검증을 위한 인증 코드를 산출하는 단계와, 상기 타임스탬프, 상기 암호화된 제1 콘텐츠 및 상기 인증 코드를 포함하는 암호문을 생성하는 단계와, 상기 생성된 암호문을 상기 통신부를 통해 상기 제2 사용자장치로 전송하는 단계를 포함한다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 제2 사용자장치의 콘텐츠 수신 방법은 제1 사용자장치와 동일한 암호 알고리즘, 복호 알고리즘 및 해시함수를 저장하는 단계와, 사기 제2 사용자장치가 상기 제1 사용자장치와 동일한 공유 비밀키를 저장하는 경우, 상기 제1 사용자장치로부터 타임스탬프, 암호화된 제1 콘텐츠 및 인증 코드를 포함하는 암호문을 수신하면, 상기 타임스탬프 및 상기 공유 비밀키를 상기 해시함수에 입력하여 세션키를 산출하는 단계와, 상기 암호화된 제1 콘텐츠를 상기 세션키 및 상기 복호 알고리즘을 통해 복호화하여 제1 콘텐츠를 복원하는 단계를 포함한다.
본 발명의 다른 견지에 따르면, 전술한 제1 사용자장치의 콘텐츠 송신 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체를 제공한다.
본 발명의 또 다른 견지에 따르면, 전술한 제2 사용자장치의 콘텐츠 수신 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체를 제공한다.
본 발명의 실시예에 따른 콘텐츠 송수신 장치는 안전성 측면에 있어서, 경량 상호인증 프로토콜 기반으로 하여 다양한 암호학적 공격을 방지할 수 있고, 콘텐츠에 대한 강인한 인증과 보안성(secrecy) 보장 등을 제공할 수 있다. 효율성 측면에 있어서, 일방향 해시 함수와 경량 암호알고리즘 기반을 통해 안전하고 효율적인 상호인증 프로토콜을 적용하여 컴퓨팅 연산 속도가 빠른 암호학적 연산을 기반으로 콘텐츠를 암복호화할 수 있어 콘텐츠를 송수신하거나 상호 인증하는 데에 드는 시간을 단축할 수 있다.
도 1은 본 발명의 실시예에 따른 콘텐츠 송수신 시스템의 구성을 설명하기 위한 도면이다.
도 2는 본 발명의 실시예에 따른 제1 사용자장치의 구성을 설명하기 위한 블록도이다.
도 3은 본 발명의 실시예에 따른 제2 사용자장치의 구성을 설명하기 위한 블록도이다.
도 4는 본 발명의 실시예에 따른 웨어러블장치의 구성을 설명하기 위한 블록도이다.
도 5는 본 발명의 제1 실시예에 따른 콘텐츠를 송수신하기 위한 방법을 설명하기 위한 흐름도이다.
도 6은 본 발명의 제2 실시예에 따른 콘텐츠를 송수신하기 위한 방법을 설명하기 위한 흐름도이다.
도 7은 본 발명의 실시예에 따른 제1 사용자장치의 저작권 증명 정보를 은닉하는 방법을 설명하기 위한 도면이다.
도 8은 도 7의 S320 단계의 저작권 증명 정보를 은닉하는 방법을 설명하기 위한 흐름도이다.
도 9 내지 도 11은 본 발명의 실시예에 따른 제1 사용자장치의 저작권 증명 정보를 은닉하는 방법을 설명하기 위한 화면 예이다.
도 12는 본 발명의 실시예에 따른 제1 사용자장치의 저작권 증명 정보를 추출하는 방법을 설명하기 위한 도면이다.
도 13은 도 12의 S510 단계의 저작권 증명 정보를 추출하는 방법을 설명하기 위한 흐름도이다.
도 14는 본 발명의 실시예에 따른 제1 사용자장치의 저작권 증명 정보를 추출하는 방법을 설명하기 위한 화면 예이다.
본 발명의 상세한 설명에 앞서, 이하에서 설명되는 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념으로 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 실시예에 불과할 뿐, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 예들이 있을 수 있음을 이해하여야 한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 이때, 첨부된 도면에서 동일한 구성 요소는 가능한 동일한 부호로 나타내고 있음을 유의해야 한다. 또한, 본 발명의 요지를 흐리게 할 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략할 것이다. 마찬가지의 이유로 첨부 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 또는 개략적으로 도시되었으며, 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것이 아니다.
먼저, 본 발명의 실시예에 따른 콘텐츠 송수신 시스템의 구성에 대해서 설명하기로 한다. 도 1은 본 발명의 실시예에 따른 콘텐츠 송수신 시스템의 구성을 설명하기 위한 도면이다. 도 1을 참조하면, 본 발명의 실시예에 따른 콘텐츠 송수신 시스템(10)은 제1 사용자가 사용하는 제1 사용자장치(100)와 제2 사용자가 사용하는 장치인 제2 사용자장치(200)를 포함한다. 또한, 콘텐츠 송수신 시스템(10)은 선택적으로, 제2 사용자가 착용하는 웨어러블장치(300)를 더 포함한다.
다음으로, 본 발명의 실시예에 따른 제1 사용자장치(100)의 구성에 대해서 설명하기로 한다. 도 2는 본 발명의 실시예에 따른 제1 사용자장치의 구성을 설명하기 위한 블록도이다. 도 2을 참조하면, 본 발명의 실시예에 따른 제1 사용자장치(100)는 통신모듈(110), 입력모듈(120), 표시모듈(130), 저장모듈(140) 및 제어모듈(150)를 포함한다.
통신모듈(110)은 네트워크를 통해 다른 엔티티와 통신하거나, 제2 사용자가 사용하는 제2 사용자장치(200)와 통신하기 위한 것이다. 이러한 통신을 통해 데이터 등을 전달할 수 있다. 통신모듈(110)는 송신되는 신호의 주파수를 상승 변환 및 증폭하는 RF 송신기와, 수신되는 신호를 저 잡음 증폭하고 주파수를 하강 변환하는 RF 수신기 등으로 구성될 수 있다. 이러한 통신모듈(110)은 BS(Base Station), NodeB, eNodeB 등과 같은 기지국, AP 등을 포함하는 네트워크를 통해 통신할 수 있다.
입력모듈(120)는 사용자의 명령, 선택, 데이터, 정보 중에서 적어도 하나를 입력 받기 위한 수단으로서, 숫자 또는 문자 정보를 입력 받고 다양한 기능을 설정하기 위한 다수의 입력키 및 기능키를 포함할 수 있다. 그리고 입력모듈(120)는 사용자의 키 입력을 감지하여, 감지된 키 입력에 따른 입력 신호를 제어모듈(150)로 전달할 수 있다.
표시모듈(130)은 제어모듈(150)로부터 화면 표시를 위한 데이터를 수신하여 수신된 데이터를 화면으로 표시할 수 있다. 또한, 표시모듈(130)은 제1 사용자장치(100)의 메뉴, 데이터, 기능 설정 정보 및 기타 다양한 정보를 사용자에게 시각적으로 제공할 수 있다. 표시모듈(130)이 터치스크린으로 형성되는 경우, 입력모듈(120)의 기능의 일부 또는 전부를 대신 수행할 수 있다. 표시모듈(130)은 액정표시장치(LCD, Liquid Crystal Display), 유기 발광 다이오드(OLED, Organic Light Emitting Diodes), 능동형 유기 발광 다이오드(AMOLED, Active Matrix Organic Light Emitting Diodes) 등으로 형성될 수 있다.
저장모듈(140)은 제1 사용자장치(100)의 동작에 필요한 프로그램 및 데이터를 저장하는 역할을 수행하며, 프로그램 영역과 데이터 영역으로 구분될 수 있다. 프로그램 영역은 제1 사용자장치(100)의 전반적인 동작을 제어하는 프로그램 및 제1 사용자장치(100)를 부팅시키는 운영체제(OS, Operating System), 응용 프로그램 등을 저장할 수 있다. 데이터 영역은 제1 사용자장치(100)의 사용에 따라 발생하는 사용자 데이터가 저장되는 영역이다. 또한, 저장모듈(140)은 제1 사용자장치(100) 사용에 따라 발생되는 각 종 데이터를 저장할 수 있다. 저장모듈(140)에 저장되는 각 종 데이터는 사용자의 조작에 따라, 삭제, 변경, 추가될 수 있다.
제어모듈(150)은 제1 사용자장치(100)의 전반적인 동작 및 제1 사용자장치(100)의 내부 블록들 간 신호 흐름을 제어하고, 데이터를 처리하는 데이터 처리 기능을 수행할 수 있다. 이러한 제어모듈(150)은 중앙 처리 장치(Central Processing Unit : CPU), 어플리케이션 프로세서(Application Processor) 등이 될 수 있다. 제어모듈(150)은 저장모듈(140)에 저장된 어플리케이션을 로드시켜 실행시키고, 필요한 경우, 임시 저장 공간으로 버퍼를 할당할 수 있다. 특히, 제어모듈(150)은 경량 암복호부(151)를 포함한다. 이러한 경량 암복호부는 경량 암호 알고리즘(LEA: Lightweight Encryption Algorithm)에 따라 암호화 혹은 복호화를 수행한다. 이러한 경량 암복호부(151)를 포함하는 제어모듈(150)의 동작은 아래에서 보다 상세하게 설명될 것이다.
또한, 도시되진 않았으나, 본 발명의 실시예에 따른 제1 사용자장치(00)는 메모리 카드와 같은 외부 저장 매체를 삽입하여 데이터 저장을 가능토록 하는 저장매체 삽입모듈, 외부 디지털 기기와의 데이터 교환을 위한 연결 단자, 충전용 단자를 구비할 수 있다. 또한, 제1 사용자장치(100)는 마이크 및 스피커를 통해 오디오 신호, 음성 신호 등을 입력 혹은 출력하는 오디오 처리모듈, 디지털 음원 재생을 위한 MP3 모듈 등의 부가 기능을 갖는 기능 모듈들을 선택적으로 더 포함하여 구성될 수 있다. 디지털 기기의 컨버전스(convergence) 추세에 따라 휴대 기기의 변형이 매우 다양하여 모두 열거할 수는 없으나, 상기 언급된 모듈들과 동등한 수준의 모듈들이 본 발명에 따른 제1 사용자장치(200)에 추가로 더 포함되어 구성될 수 있다는 것은 이 기술 분야의 통상의 지식을 가진 자라면 쉽게 이해할 수 있을 것이다.
다음으로, 본 발명의 실시예에 따른 제2 사용자장치(200)에 대해서 설명하기로 한다. 도 3은 본 발명의 실시예에 따른 제2 사용자장치의 구성을 설명하기 위한 블록도이다. 도 3을 참조하면, 본 발명의 실시예에 따른 제2 사용자장치(200)는 통신부(210), 입력부(220), 표시부(230), 저장부(240) 및 제어부(250)를 포함한다.
통신부(210)는 네트워크를 통해 제1 사용자장치(100)와 통신하거나, 웨어러블장치(300)와 직접 통신을 위한 것이다. 이러한 통신부(210)는 BS(Base Station), NodeB, eNodeB 등과 같은 기지국, AP 등을 포함하는 네트워크를 통해 제1 사용자장치(200)와 통신할 수 있다. 또한, 통신부(210)는 예컨대, NFC(Near Field Communication), 블루투스(Bluetooth), 지그비(ZigBee), IrDA(Infrared Data Association) 등의 통신 방식을 이용하여 웨어러블장치(300)와 통신할 수 있다. 이러한 통신부(210)는 송신되는 신호의 주파수를 상승 변환 및 증폭하는 RF 송신기와, 수신되는 신호를 저 잡음 증폭하고 주파수를 하강 변환하는 RF 수신기 등으로 구성될 수 있다. 통신부(210)는 제어부(250)로부터 각종 메시지, 정보, 데이터 등을 수신하여, 제1 사용자장치(100) 혹은 웨어러블장치(300)로 전송할 수 있다. 또한, 통신부(210)는 제1 사용자장치(100)로부터 각종 메시지, 정보, 데이터 등을 수신하여, 제어부(250)에 전달할 수 있다.
입력부(220)는 제2 사용자장치(200)의 각 종 기능, 동작 등을 제어하기 위한 사용자의 키 조작을 입력받고 입력 신호를 생성하여 제어부(250)에 전달한다. 입력부(220)는 키보드, 마우스 등을 예시할 수 있다. 입력부(220)는 전원 on/off를 위한 전원 키, 문자 키, 숫자 키, 방향키 중 적어도 하나를 포함할 수 있다. 입력부(220)의 기능은 표시부(230)가 터치스크린으로 구현된 경우, 표시부(230)에서 이루어질 수 있으며, 표시부(230)만으로 모든 기능을 수행할 수 있는 경우, 입력부(220)는 생략될 수도 있다.
표시부(230)는 제어부(250)로부터 화면 표시를 위한 데이터를 수신하여 수신된 데이터를 화면으로 표시할 수 있다. 또한, 표시부(230)는 제2 사용자장치(200)의 메뉴, 데이터, 기능 설정 정보 및 기타 다양한 정보를 사용자에게 시각적으로 제공할 수 있다. 표시부(230)가 터치스크린으로 형성되는 경우, 입력부(220)의 기능의 일부 또는 전부를 대신 수행할 수 있다. 표시부(230)는 액정표시장치(LCD, Liquid Crystal Display), 유기 발광 다이오드(OLED, Organic Light Emitting Diodes), 능동형 유기 발광 다이오드(AMOLED, Active Matrix Organic Light Emitting Diodes) 등으로 형성될 수 있다.
저장부(240)는 제2 사용자장치(200)의 동작에 필요한 각 종 데이터, 어플리케이션, 제2 사용자장치(200)의 동작에 따라 발생된 각 종 데이터를 저장하는 역할을 수행한다. 이러한 저장부(240)는 스토리지, 메모리 등이 될 수 있다. 이러한 저장부(240)는 제2 사용자장치(200)의 부팅(booting) 및 운영(operation)을 위한 운영체제(OS, Operating System), 본 발명의 실시예에 따른 게임을 제공하기 위한 애플리케이션을 저장할 수 있다. 저장부(240)에 저장되는 각 종 데이터는 사용자의 조작에 따라, 삭제, 변경, 추가될 수 있다.
제어부(250)는 제2 사용자장치(200)의 전반적인 동작 및 제2 사용자장치(200)의 내부 블록들 간 신호 흐름을 제어하고, 데이터를 처리하는 데이터 처리 기능을 수행할 수 있다. 이러한 제어부(250)는 중앙 처리 장치(Central Processing Unit : CPU), 어플리케이션 프로세서(Application Processor), GPU(Graphic Processing Unit) 등이 될 수 있다. 특히, 제어부(250)는 경량 암복호부(151)를 포함한다. 이러한 경량 암복호부는 경량 암호 알고리즘(LEA: Lightweight Encryption Algorithm)에 따라 암호화 혹은 복호화를 수행한다. 이러한 경량 암복호부(151)를 포함하는 제어부(250)의 동작은 아래에서 보다 상세하게 설명될 것이다.
또한, 도시되진 않았으나, 본 발명의 실시예에 따른 제2 사용자장치(200)는 메모리 카드와 같은 외부 저장 매체를 삽입하여 데이터 저장을 가능토록 하는 저장매체 삽입부, 외부 디지털 기기와의 데이터 교환을 위한 연결 단자, 충전용 단자를 구비할 수 있다. 또한, 제2 사용자장치(200)는 마이크 및 스피커를 통해 오디오 신호, 음성 신호 등을 입력 혹은 출력하는 오디오 처리부, 디지털 음원 재생을 위한 MP3 모듈 등의 부가 기능을 갖는 기능 부속들을 선택적으로 더 포함하여 구성될 수 있다. 디지털 기기의 컨버전스(convergence) 추세에 따라 휴대 기기의 변형이 매우 다양하여 모두 열거할 수는 없으나, 상기 언급된 유닛들과 동등한 수준의 유닛이 본 발명에 따른 제2 사용자장치(200)에 추가로 더 포함되어 구성될 수 있다는 것은 본 기술분야의 통상의 지식을 가진 자라면 쉽게 이해할 수 있을 것이다.
전술한 바와 같이, 제1 사용자장치(100)는 경량 암복호부(151)를 포함하며, 제2 사용자장치(200)는 경량 암복호부(251)를 포함한다. 경량 암복호부(251)는 본 발명의 실시예에 따른 암호화 알고리즘 및 복호화 알고리즘을 실행하도록 구현된다. 그러면, 이러한 경량 암복호부(151, 251)에 대해서 상세하게 설명하기로 한다. 도 4는 본 발명의 실시예에 따른 경량 암복호부를 설명하기 위한 블록도이다. 도 5는 도 4의 경량 암복호부의 암복호처리부를 설명하기 위한 블록도이다. 본 발명의 실시예에 따른 경량 암복호부(151, 251)는 하드웨어로 구현되거나, 소프트웨어로 구현될 수 있다.
도 4를 참조하면, 경량 암복호부(151, 251)는 중간키생성부(510) 및 암복호처리부(520)를 포함한다. 중간키생성부(510)는 세션키가 입력되면, 제1 길이(예컨대, 128 비트)의 중간키 m을 생성하여 암복호처리부(520)에 입력한다. 그러면, 암복호처리부(520)는 제2 길이(예컨대, 64 비트)의 평문이 입력되면, 제1 길이(예컨대, 128 비트)의 중간키 m을 이용하여 평문을 암호화하여 제2 길이(예컨대, 64 비트)의 암호문을 출력한다. 또한, 암복호처리부(520)는 제2 길이(예컨대, 64 비트)의 암호문이 입력되면, 암호문의 암호화에 사용된 제1 길이(예컨대, 128 비트)의 중간키 m을 이용하여 암호문을 복호화여 제2 길이(예컨대, 64 비트)의 평문을 출력한다.
도 5를 참조하면, 암복호처리부(520)는 복수의 스테이지에 걸쳐 암호화를 수행한다. 암호처리부(520)는 각 스테이지에서 하나의 함수 F를 사용한다. 함수 F는 16 비트 혹은 32 비트 단위의 XOR 연산 및 시프트(SHIFT) 연산만으로 구성된다. 암복호처리부(520)는 제1 길이(예컨대, 128 비트)의 중간키 m을 복수개(예컨대, k = 8 개)의 제3 길이(예컨대, 16 비트)의 단위 중간키 m으로 구분하고, 복수개의 단위 중간키 m을 서로 다른 스테이지의 함수 F에 입력한다. 이에 따라, 복호화를 수행할 때, 추가로 키를 스케줄링 할 필요가 없는 이점이 있다.
각 스테이지에서 암복호처리부(520)는 다음과 같은 동작을 수행한다. 암복호처리부(520)는 제2 길이(예컨대, 64 비트)의 평문이 입력되면, 제2 길이의 평문을 동일한 길이(예컨대, 32 비트)로 좌비트열 L 우비트열 R 2개로 구분한다. 암복호처리부(520)는 현 스테이지의 우비트열 R을 다음 스테이지의 좌비트열 L을 생성한다. 또한, 암복호처리부(520)는 현 스테이지의 우비트열 R과 단위 중간키 m을 함수 F에 입력하여 함수 F의 연산에 의해 출력되는 해를 얻은 후, 그 해와 현 스테이지의 좌비트열 L을 XOR 연산하여 다음 스테이지의 우비트열 R을 생성한다.
본 발명의 실시예서 평문은 제1 또는 제2 콘텐츠가 될 수 있고, 암호문은 암호화된 제1 콘텐츠 혹은 암호화된 제2 콘텐츠가 될 수 있다. 즉, 암복호처리부(520)는 중간키 m을 이용하여 제2 길이(예컨대, 64 비트) 데이터인 제1 콘텐츠를 암호화하여 제2 길이(예컨대, 64 비트)의 암호화된 제1 콘텐츠를 출력하거나, 암호화에 사용된 동일한 중간키 m을 이용하여 제1 길이(예컨대, 64 비트) 데이터인 제1 암호화 콘텐츠를 복호화하여 제1 콘텐츠를 출력할 수 있다. 제2 콘텐츠에 대해서도 마찬가지로, 암복호처리부(520)는 중간키를 이용하여 제2 길이(예컨대, 64 비트) 데이터인 제2 콘텐츠를 암호화하여 제2 길이(예컨대, 64 비트)의 암호화된 제2 콘텐츠를 출력하거나, 암호화에 사용된 동일한 중간키를 이용하여 제1 길이(예컨대, 64 비트) 데이터인 제2 암호화 콘텐츠를 복호화하여 제2 콘텐츠를 출력할 수 있다. 전술한 바와 같이, 함수 F는 16 비트 혹은 64 비트 단위의 XOR 연산 및 시프트 연산만으로 구성된다. 이러한 이유로, 범용 32 비트 및 64 비트 플랫폼에서 고속으로 동작할 수 있다.
다음으로, 본 발명의 실시예에 따른 웨어러블장치(300)에 대해서 설명하기로 한다. 도 6은 본 발명의 실시예에 따른 웨어러블장치의 구성을 설명하기 위한 블록도이다. 도 6을 참조하면, 본 발명의 실시예에 따른 웨어러블장치(300)는 신체의 다양한 부위에 착용되는 장치가 될 수 있다. 예컨대, 웨어러블장치(300)는 소위, 스마트밴드, 스마트링, 스마트글라스 등이 될 수 있다. 이러한 웨어러블장치(300)는 통신유닛(310), 입력유닛(320), 생체신호수집유닛(330), 저장유닛(340) 및 제어유닛(350)을 포함한다.
통신유닛(310)은 제2 사용자장치(200)와 통신하기 위한 것이다. 통신유닛(310)은 예컨대, NFC(Near Field Communication), 블루투스(Bluetooth), 지그비(ZigBee), IrDA(Infrared Data Association) 등의 통신 방식을 이용하여 사용자장치(200)와 통신할 수 있다. 통신유닛(310)은 송신되는 신호의 주파수를 상승 변환 및 증폭하는 RF(Radio Frequency) 송신기(Tx) 및 수신되는 신호를 저 잡음 증폭하고 주파수를 하강 변환하는 RF 수신기(Rx)를 포함할 수 있다. 그리고 통신유닛(310)은 송신되는 신호를 변조하고, 수신되는 신호를 복조하는 모뎀(Modem)을 포함할 수 있다.
입력유닛(320)은 웨어러블장치(300)의 각 종 기능을 제어하기 위한 사용자의 키 조작을 입력받고 입력 신호를 생성하여 제어유닛(350)에 전달한다.
생체신호수집유닛(330)은 사용자의 생체 신호를 수집하기 위한 것이다. 일례로, 웨어러블장치(300)가 스마트밴드인 경우, 생체신호수집유닛(330)은 사용자의 속목 부분의 혈관에서 관찰되는 혈류량을 통해 사용자의 심박수를 측정할 수 있다. 다른 예로, 웨어러블장치(300)가 스마트글라스인 경우, 생체신호수집유닛(330)은 사용자의 홍체를 촬영하여 홍체 이미지를 획득하는 카메라모듈이 될 수 있다. 그 밖에 생체신호수집유닛(330)은 웨어러블장치(300)가 착용되는 부위에 따라 다양한 생체 신호를 측정할 수 있다. 생체신호수집유닛(330)은 수집된 생체 신호를 제어유닛(350)으로 전달한다.
저장유닛(340)은 웨어러블장치(300)의 동작에 필요한 각 종 데이터를 저장할 수 있다. 예컨대, 저장유닛(340)은 사용자장치(300) 및 스마트키(300)의 장치 식별자를 저장할 수 있다. 이러한 저장유닛(340)은 메모리인 것이 바람직하다. 저장유닛(340)에 저장되는 각 종 데이터는 사용자의 조작에 따라, 삭제, 변경, 추가될 수 있다.
제어유닛(350)은 웨어러블장치(300)의 전반적인 동작 및 웨어러블장치(300)의 내부 블록들 간 신호 흐름을 제어하고, 데이터를 처리하는 데이터 처리 기능을 수행할 수 있다. 이러한 제어유닛(350)은 중앙 처리 장치(Central Processing Unit : CPU), 애플리케이션 프로세서(Application Processor), 디지털신호처리장치(DSP: Digital Signal Processor) 등이 될 수 있다. 이러한 제어유닛(350)의 동작은 아래에서 보다 상세하게 설명될 것이다.
다음으로, 본 발명의 제1 실시예에 따른 콘텐츠를 송수신하기 위한 방법에 대해 설명하기로 한다. 도 7은 본 발명의 제1 실시예에 따른 콘텐츠를 송수신하기 위한 방법을 설명하기 위한 흐름도이다. 도 7에서는 제1 사용자가 제2 사용자에게 제1 콘텐츠를 전송하면, 제2 사용자가 제1 콘텐츠를 열람한 후, 제1 콘텐츠에 대한 응답으로 제2 콘텐츠를 전송하는 상황을 가정한다. 다음의 표 1은 암호화 및 복호화를 위해 사용되는 파라미터에 대한 정의를 나타낸다.
기호 정의
A, B A: 제1 사용자 B: 제2 사용자
P 타원곡선암호시스템 기반 베이스 포인트
kAB 제1 사용자와 제2 사용자 간에 공유된 비밀키
즉, 컴퓨팅 장치(100)와 제2 사용자장치(200) 혹은 웨어러블장치(300)가 공유한 비밀키
G 제1 콘텐츠(일반/가역/제로스테가노그레피 등 정보은닉 기법이 적용된 컨텐츠)
R 제2 콘텐츠(일반/가역/제로스테가노그레피 등 정보은닉 기법이 적용된 컨텐츠)
tA, tB 타임스탬프
E(), D() 경량 암복호화 알고리즘(LEA)
h() 안전한 일방향 해시함수
M1|M2 데이터 M1과 M2의 연접 연산
sk 공유 비밀 세션키(session key)
S110 단계에서 해당 제1 사용자의 강의에 대한 정당한 제2 사용자는 인증 절차를 거쳐 자신의 제2 사용자장치(200) 혹은 웨어러블장치(300)에 제1 사용자장치(100)에 저장된 것과 동일한 암호 알고리즘 E(), 복호 알고리즘 D(), 해시함수 h() 및 공유 비밀키 kAB를 저장할 수 있다. 일 실시예에 따르면, 제1 사용자장치(100)와 제2 사용자장치(200)는 암호 알고리즘 E(), 복호 알고리즘 D(), 해시함수 h() 및 공유 비밀키 kAB를 공유한다. 예컨대, 제2 사용자장치(200)의 저장부(240)에는 제1 사용자장치(100)의 저장모듈(140)에 저장된 암호 알고리즘 E(), 복호 알고리즘 D(), 해시함수 h() 및 공유 비밀키 kAB와 동일한 E(), D(), h() 및 kAB가 저장된다. S110 단계의 다른 실시예에 따르면, 제2 사용자장치(200) 대신 웨어러블장치(300)는 공유 비밀키 kAB를 제1 사용자장치(100)와 공유할 수 있다. 일례로, 웨어러블장치(300)의 저장유닛(340)에는 공유 비밀키 kAB가 저장되고, 제2 사용자장치(200)의 저장부(240)에는 암호 알고리즘 E(), 복호 알고리즘 D(), 해시함수 h()가 저장될 수 있다. 이에 따라, 제2 사용자장치(200)의 저장부(240) 혹은 웨어러블장치(300)의 저장유닛(340)에는 제1 사용자장치(100)의 저장모듈(140)에 저장된 암호 알고리즘 E(), 복호 알고리즘 D(), 해시함수 h() 및 공유 비밀키 kAB와 동일한 E(), D(), h() 및 kAB가 저장된다.
이러한 상태에서, 제1 사용자가 제1 콘텐츠 G를 전송하도록 하는 입력을 하면, 제1 사용자장치(100)의 제어모듈(150)은 입력모듈(120)을 통해 이를 감지하고, S120 단계에서 제1 콘텐츠 G를 암호화하여 암호문을 생성한다. 이러한 암호화 과정은 다음과 같다.
(1-1) 제어모듈(150)은 제1 콘텐츠 G를 저장모듈(140)로부터 로드한다.
(1-2) 그런 다음, 제어모듈(150)은 재전송 공격 방어를 위해 타임스탬프 tA를 선택한다.
(1-3) 이어서, 제어모듈(150)은 타임스탬프 tA를 및 공유 비밀키 kAB 해시함수 h()에 입력하여 세션키 skA = h(tA|kAB)를 산출한다.
(1-4) 그런 다음, 제어모듈(150)은 제1 콘텐츠 G를 세션키 skA를 적용하여 암호 알고리즘 E()으로 암호화하여 암호화된 제1 콘텐츠 CA = EskA(G)를 생성한다. 도 4 및 도 5에서 설명된 바와 같이, 암호 알고리즘 E()는 경량 암복호부(151)를 통해 구현될 수 있다. 경량 암복호부(151)는 세션키 skA 및 제1 콘텐츠 G가 입력되면, 센션키 skA로부터 중간키 m를 도출하고, 중간키 m을 이용하여 평문인 제1 콘텐츠 G를 암호화하여 암호문인 암호화된 제1 콘텐츠 CA를 출력한다.
(1-5) 이어서, 제어모듈(150)은 제1 콘텐츠 G에 대해 세션키 skA 및 해시함수 h()를 이용하여 무결성 검증을 위한 메시지 인증 코드(MAC) MA = h(skA|G)를 산출한다.
(1-6) 그런 다음, 제어모듈(150)은 암호화된 제1 콘텐츠 CA와 타임스탬프 tA 및 인증코드(MAC) MA으로 구성된 암호문 (CA|MA|tA)을 생성한다.
전술한 바와 같이, 암호문 (CA|MA|tA)이 생성되면, 제어모듈(150)은 S130 단계에서 암호문 (CA|MA|tA)을 통신모듈(110)을 통해 제2 사용자장치(200)로 전송한다.
암호문 (CA|MA|tA)을 수신했을 때, 웨어러블장치(300)가 콘텐츠의 암복화를 위해 필요한 파라미터 중 일부를 저장하고 있다고 가정한다. 이때, 제2 사용자가 웨어러블장치(300)를 착용하고 있거나, 제2 사용자장치(200)의 통신 가능한 범위 내에 있다면, 제2 사용자장치(200)의 제어부(250)는 S140 단계에서 웨어러블장치(300)로부터 필요한 파라미터, 예컨대, E(), D(), h() 및 kAB 중 적어도 하나를 가져올 수 있다. 이러한 S140 단계에 대하여 보다 상세히 설명한다. 여기서, 제2 사용자장치(200)는 E(), D(), h()를 저장하며, 웨어러블장치(300)는 비밀키 kAB를 저장한다고 가정한다. 먼저, 제2 사용자장치(200)의 제어부(250)는 통신부(210)를 통해 근거리 통신 방식에 따라 웨어러블장치(300)를 검색한다. 유의할 것은, 이러한 검색이 가능한 범위는 기기간 직접 통신에 사용되는 통신 범위(10~20m)를 따른다. 이때, 만약, 웨어러블장치(300)가 제2 사용자장치(200)의 통신부(210)와 통신 가능 범위 내에 있다면, 제어부(250)는 통신부(210)를 통해 웨어러블장치(300)와 통신 연결에 필요한 메시지를 교환하며, 이에 따라, 제2 사용자장치(200) 및 웨어러블장치(300)는 상호간에 페어링된다. 그러면, 웨어러블장치(300)는 생체신호수집유닛(330)을 통해 제2 사용자의 생체신호 정보를 수집하고, 수집된 생체신호 정보를 통신유닛(310)을 통해 제2 사용자장치(200)로 전송한다. 이에 따라, 제어부(250)는 웨어러블장치(300)로부터 생체신호 정보를 수신한다. 제2 사용자장치(200)의 저장부(240)는 사용자의 생체신호 정보를 미리 저장하며, 제어부(250)는 통신부(210)를 통해 웨어러블장치(300)로부터 생체신호 정보를 새로 수신하면, 수신된 생체신호 정보를 저장부(240)에 기 저장된 정보와 비교하여 인증을 수행한다. 만약, 인증에 성공하면, 제어부(250)는 통신부(210)를 통해 웨어러블장치(300)의 저장유닛(340)에 저장된 파라미터(이 예에서는 비밀키 kAB)를 요청한다. 이에 따라, 제어부(250)는 통신부(210)를 통해 웨어러블장치(300)로부터 수신할 수 있다. 전술한 파라미터 E(), D(), h() 및 kAB는 모두 암호화 및 복호화에 이용되기 때문에 어느 하나라도 없다면 암호화된 제1 콘텐츠를 복호화할 수 없다. 따라서 파라미터 E(), D(), h()를 가지는 제2 사용자장치(200)가 웨어러블장치(300)로부터 kAB를 수신하는 것은 생체신호 정보를 통해 현재 제2 사용자장치(200)를 사용하고 있는 사용자가 제2 사용자 본인이 맞음을 인증하는 것이다. 한편, 전술한 S140 단계는 선택적으로 수행하거나, 수행하지 않을 수 있다. 즉, 제2 사용자장치(200)에 파라미터 E(), D(), h(), kAB가 모두 저장된 경우, S140 단계는 생략될 수 있다.
전술한 바와 같이, 제2 사용자장치(200)가 제1 사용자장치(100)로부터 암호문 (CA|MA|tA)을 수신한 후, 웨어러블장치(300)로부터 파라미터 E(), D(), h(), kAB를 수신하거나, 혹은, 처음부터 파라미터 E(), D(), h(), kAB를 저장부(240)에 모두 저장한 상태라고 가정한다. 이러한 상태에서, 제2 사용자장치(200)의 제어부(250)는 S150 단계에서 암호문을 복호화하여 제1 콘텐츠 G를 추출한다.
(2-1) 먼저, 제2 사용자장치(200)의 제어부(250)는 재전송 공격 방어를 위해 타임스탬프 tA의 유효성을 검증한다. 만약 유효하지 않은 tA인 경우 복호화 절차를 종료한다.
(2-2) 만약, 타임스탬프 tA가 유효하면, 제2 사용자장치(200)의 제어부(250)는 타임스탬프 tA 및 공유 비밀키 kAB를 해시함수 h()에 입력하여 세션키 skA= h(tA|kAB)를 산출한다. 여기서, 해시함수 h()는 앞서 S110 단계에서 제1 사용자장치(100)와 공유한 것이다.
(2-3) 그런 다음, 제2 사용자장치(200)의 제어부(250)는 암호화된 제1 콘텐츠 CA를 세션키 skA가 적용된 복호 알고리즘 D()로 복호화하여 제1 콘텐츠 G = DskA(CA)를 복원한다. 여기서, 복호 알고리즘 D()는 앞서 S110 단계에서 제1 사용자장치(100)와 공유한 것이다. 도 4 및 도 5에서 설명된 바와 같이, 복호 알고리즘 D()는 경량 암복호부(251)를 통해 구현될 수 있다. 경량 암복호부(251)는 세션키 skA 및 암호화된 제1 콘텐츠 CA가 입력되면, 센션키 skA로부터 중간키 m를 도출하고, 중간키 m을 이용하여 암호문인 암호화된 제1 콘텐츠 CA를 복호화하여 평문인 제1 콘텐츠 G를 출력한다.
(2-4) 제2 사용자장치(200)의 제어부(250)는 복원된 제1 콘텐츠 G와 세션키 skA를 해시함수 h()에 입력하여 메시지 인증 코드(MAC) MA = h(skA|G)를 산출한 후, 수신된 암호문의 인증 코드 MA와 일치하는지 여부를 검증한다.
(2-5) 제2 사용자장치(200)의 제어부(250)는 검증 결과, 인증 코드가 일치하면(MAC = MA), 제1 콘텐츠 G를 인증한다. 만약, 제어부(250)는 두 MAC 값이 동일하지 않으면 해당 콘텐츠가 위조 또는 조작 된 것으로 판단하여 활용하지 않고, 에러를 출력한다.
여기서, 인증 코드가 일치하였다고 가정한다(MAC = MA). 그러면, 제2 사용자장치(200)의 제어부(250)는 S160 단계에서 추출된 제1 콘텐츠 G를 표시부(230)를 통해 출력한다. 이때, 제1 콘텐츠가 음성을 포함하는 경우, 도시되지는 않았지만, 오디오 신호, 음성 신호 등을 입력 혹은 출력하는 오디오 처리모듈(미도시)을 통해 출력할 수 있다.
한편, 제2 사용자는 제1 콘텐츠 G에 대한 응답을 할 수 있다. 이러한 제2 콘텐츠 R라고 칭하기로 한다. 즉, 제2 사용자가 제2 콘텐츠 R을 입력하면, 제2 사용자장치(200)의 제어부(250)는 S170 단계에서 입력부(220)를 통해 제2 콘텐츠 R를 입력 받고, 제2 콘텐츠 R을 암호화하여 암호문을 생성한다. 이러한 S170 단계의 암호화 과정은 다음과 같다.
(3-1) 제어부(250)는 제2 콘텐츠 R을 입력부(220)를 통해 입력받는다.
(3-2) 그런 다음, 제어부(250)는 재전송 공격 방어를 위해 타임스탬프 tB를 선택한다.
(3-3) 이어서, 제어부(250)는 선택된 타임스탬프 tB 및 공유 비밀키 kAB를 해시함수 h()에 입력하여 세션키 skB = h(tB|kAB)를 산출한다.
(3-4) 그런 다음, 제어부(250)는 제2 콘텐츠 R을 세션키 skB 및 암호 알고리즘 E()를 활용하여 암호화한 후, 암호화된 제2 콘텐츠 CB = EskB(R)를 생성한다. 도 4 및 도 5에서 설명된 바와 같이, 암호 알고리즘 E()는 경량 암복호부(251)를 통해 구현될 수 있다. 경량 암복호부(251)는 세션키 skB 및 제2 콘텐츠 R가 입력되면, 센션키 skB로부터 중간키 m를 도출하고, 중간키 m을 이용하여 평문인 제2 콘텐츠 R를 암호화하여 암호문인 암호화된 제2 콘텐츠 CB를 출력한다.
(3-5) 이어서, 제어부(250)는 세션키 skB 및 해시함수 h()를 이용하여 무결성 검증을 위한 메시지 인증 코드(MAC) MB = h(skB|R)를 산출한다.
(3-6) 그런 다음, 제어부(250)는 암호화된 제1 콘텐츠 CB과 타임스탬프 tB 및 인증 코드(MAC) MB으로 구성된 암호문 (CB|MB|tB)을 생성한다.
전술한 바와 같이, 암호문이 생성되면, 제어부(250)는 S180 단계에서 암호문 (CB|MB|tB)을 통신부(210)를 통해 제1 사용자장치(100)로 전송한다.
제1 사용자장치(100)의 제어모듈(150)은 암호문 (CB|MB|tB)을 수신하면, S190 단계에서 암호문을 복호화하여 제2 콘텐츠 R을 추출한다. S190 단계를 보다 상세하게 설명한다.
(4-1) 먼저, 제어모듈(150)은 재전송 공격 방어를 위해 타임스탬프 tB의 유효성을 검증한다. 만약 유효하지 않은 tB인 경우 복호화 절차를 종료한다.
(4-2) 만약, 타임스탬프 tB가 유효하면, 제어모듈(150)은 타임스탬프 tB 및 공유 비밀키 kAB를 해시함수 h()에 입력하여 세션키 skB= h(tB|kAB)를 산출한다.
(4-3) 그런 다음, 제어모듈(150)은 암호화된 제2 콘텐츠 CB를 세션키 skB 및 공유한 복호 알고리즘 D()로 복호화하여 제2 콘텐츠 R = DskB(CB)를 복원한다. 도 4 및 도 5에서 설명된 바와 같이, 복호 알고리즘 D()는 경량 암복호부(151)를 통해 구현될 수 있다. 경량 암복호부(151)는 세션키 skB 및 암호화된 제2 콘텐츠 CB가 입력되면, 센션키 skB로부터 중간키 m을 도출하고, 중간키 m을 이용하여 암호화된 제2 콘텐츠 CB를 복호화하여 제2 콘텐츠 R을 출력한다.
(4-4) 제어모듈(150)은 복원된 제2 콘텐츠 R과 세션키 skB를 이용하여 해시함수 h()를 통해 메시지 인증 코드(MAC) h(skB|R)을 산출한 후, 수신된 암호문의 MB와 일치하는지 여부를 검증한다.
(4-5) 제어모듈(150)은 검증 결과, 인증 코드가 일치하면(MAC = MB), 해당 제2 콘텐츠 R을 인증한다. 만약, 제어모듈(150)은 두 MAC 값이 동일하지 않으면 해당 콘텐츠가 위조 또는 조작 된 것으로 판단하여 활용하지 않고, 에러를 출력한다.
여기서, 인증 코드가 일치하였다고 가정한다(MAC = MA). 그러면, 제어모듈(150)은 S200 단계에서 추출된 제2 콘텐츠 R을 표시모듈(130)을 통해 출력한다. 이때, 제2 콘텐츠가 음성을 포함하는 경우, 도시되지는 않았지만, 해당하는 음성 처리 장치를 통해 출력할 수 있다.
전술한 바와 같이, 제1 사용자장치(100)가 제1 콘텐츠를 암호화하여 전송하면, 제2 사용자장치(200)는 해당 제1 콘텐츠를 복호화하여 출력할 수 있다. 마찬가지로, 제2 사용자장치(200)가 제2 콘텐츠를 암호화하여 전송하면, 제1 사용자장치(100)는 해당 제2 콘텐츠를 복호화하여 출력할 수 있다.
다음으로, 본 발명의 본 발명의 제2 실시예에 따른 콘텐츠를 송수신하기 위한 방법에 대해 설명하기로 한다. 도 8은 본 발명의 제2 실시예에 따른 콘텐츠를 송수신하기 위한 방법을 설명하기 위한 흐름도이다. 도 8에서 도 7과 마찬가지로, 제1 사용자가 제2 사용자에게 제1 콘텐츠 G를 전송하면, 제2 사용자가 해당 제1 콘텐츠를 보고난 후, 해당 제1 콘텐츠에 대한 응답으로 제2 콘텐츠 R을 전송하는 상황을 가정한다. 다음의 표 2는 암호화 및 복호화를 위해 사용되는 파라미터에 대한 정의를 나타낸다.
기호 정의
A, B A: 제1 사용자 B: 제2 사용자
P 타원곡선암호시스템 기반 베이스 포인트
xA, PA 제1 사용자 A, 즉, 컴퓨팅 장치(100)의 개인키와 공개키(PA=xAP)
xB, PB 제2 사용자 B, 즉, 제2 사용자장치(200) 혹은 웨어러블장치(300)의 개인키와 공개키(PB=xBP)
G 제1 콘텐츠(일반/가역/제로스테가노그레피 등 정보은닉 기법이 적용된 컨텐츠)
R 제2 콘텐츠(일반/가역/제로스테가노그레피 등 정보은닉 기법이 적용된 컨텐츠)
tA 제1 사용자 A가 생성한 타임스탬프
tB 제2 사용자 B가 생성한 타임스탬프
E(), D() 경량 암복호화 알고리즘(LEA)
h() 안전한 일방향 해시함수
(secure One-Way Hash Function)
M1|M2 데이터 M1과 M2의 연접 연산
먼저, 키 생성 센터(key generation center, 미도시)는 먼저 ECC(Elliptic Curve Cryptography) 기반 베이스 포인트(base point)인 P를 선택한 후, 표 2에 보인 바와 같이, 각 통신 참가자 i(제1 사용자장치(100)와 제2 사용자장치(200)(혹은 웨어러블장치(300)))를 위한 개인키 및 공개키 쌍인 xi와 Pi =xiP를 산출하여 발급한다(xi, Pi: xA, PA, xB, PB).
S210 단계에서 제2 사용자장치(200) 혹은 웨어러블장치(300)는 제1 사용자장치(100)에 저장된 것과 동일한 암호 알고리즘 E(), 복호 알고리즘 D(), 해시함수 h(), 베이스 포인트 P, 제1 사용자 공개키 PA, 제2 사용자 공개키 PB를 저장할 수 있다. 또한, 제1 사용자장치(100)는 제1 사용자 개인키 xA를 저장하며, 제2 사용자장치(200) 혹은 웨어러블장치(300) 중 어느 하나는 제2 사용자 개인키 xB를 저장한다.
이러한 상태에서, 제1 사용자가 제1 콘텐츠 G를 전송하도록 하는 입력을 하면, 제1 사용자장치(100)의 제어모듈(150)은 입력모듈(120)을 통해 이를 감지하고, S220 단계에서 제1 콘텐츠 G를 암호화하여 암호문을 생성한다. 이러한 암호화 과정은 다음과 같다.
(1-1) 제어모듈(150)은 제1 콘텐츠 G를 저장모듈(140)로부터 로드한다.
(1-2) 그런 다음, 제어모듈(150)은 재전송 공격 방어를 위해 타임스탬프 tA를 선택한다.
(1-3) 이어서, 제어모듈(150)은 선택된 타임스탬프 tA, 제1 사용자 개인키 xA 및 제2 사용자 공유키 PB를 해시함수 h()에 입력하여 세션키 skA = h(tA|xAPB)를 산출한다.
(1-4) 그런 다음, 제어모듈(150)은 제1 콘텐츠 G를 세션키 skA 및 암호 알고리즘 E()를 통해 암호화하여 암호화된 제1 콘텐츠 CA = EskA(G)를 생성한다. 도 4 및 도 5에서 설명된 바와 같이, 암호 알고리즘 E()는 경량 암복호부(151)를 통해 구현될 수 있다. 경량 암복호부(151)는 세션키 skA 및 제1 콘텐츠 G가 입력되면, 센션키 skA로부터 중간키 m를 도출하고, 중간키 m을 이용하여 평문인 제1 콘텐츠 G를 암호화하여 암호문인 암호화된 제1 콘텐츠 CA를 출력한다.
(1-5) 이어서, 제어모듈(150)은 제1 콘텐츠 G에 대해 세션키 skA 및 해시함수 h()를 이용하여 무결성 검증을 위한 메시지 인증 코드(MAC) MA = h(skA|G)를 산출한다.
(1-6) 그런 다음, 제어모듈(150)은 암호화된 제1 콘텐츠 CA와 타임스탬프 tA 및 인증코드(MAC) MA으로 구성된 암호문 (CA|MA|tA)를 생성한다.
전술한 바와 같이, 암호문이 생성되면, 제어모듈(150)은 S230 단계에서 암호문 (CA|MA|tA)을 통신모듈(110)을 통해 제2 사용자장치(200)로 전송한다.
일 실시예에 따르면, 암호문 (CA|MA|tA)을 수신했을 때, 제2 사용자장치(200)는 제1 사용자장치(100)에 저장된 것과 동일한 암호 알고리즘 E(), 복호 알고리즘 D(), 해시함수 h(), 베이스 포인트 P, 제1 사용자 공개키 PA, 제2 사용자 공개키 PB를 저장하며, 웨어러블장치(300)는 제2 사용자 개인키 xB를 저장한다고 가정한다.
이때, 제2 사용자가 웨어러블장치(300)를 착용하고 있거나, 제2 사용자장치(200)의 통신 가능한 범위 내에 있다면, 제2 사용자장치(200)의 제어부(250)는 S140 단계와 마찬가지로, S240 단계에서 웨어러블장치(300)로부터 수신되는 생체신호 정보를 통해 웨어러블장치(300)를 인증하고, 인증에 성공하면, 웨어러블장치(300)와 페어링을 수행한다. 그런 다음, 제어부(250)는 웨어러블장치(300)로부터 필요한 파라미터, 즉, 제2 사용자 개인키 xB를 가져올 수 있다. 전술한 파라미터는 모두 암호화 및 복호화에 이용되기 때문에 어느 하나라도 없다면 암호화된 제1 콘텐츠를 복호화할 수 없다. 웨어러블장치(300)로부터 xB를 수신하기 위해서는 제2 사용자장치(200)와 웨어러블장치(300)가 상호간에 통신 가능한 범위 내에 있어야 하며, 웨어러블장치(300)를 통해 수집되는 생체신호 정보를 통한 인증 절차가 필요하다. 따라서 파라미터 E(), D(), h(), P, PA, PB를 저장하는 제2 사용자장치(200)가 웨어러블장치(300)로부터 xB를 수신하는 것은 제2 사용자장치(200)를 직접 사용하는 사용자가 제2 사용자 본인이 맞음을 인증하는 것이다. 즉, 생체신호 정보를 통해 제2 사용자임을 인증하며, 통신 가능 범위를 통해 제2 사용자가 손수 제2 사용자장치(200)를 사용하고 있음을 인증하는 것이다. 한편, 전술한 S240 단계는 선택적으로 수행하거나, 수행하지 않을 수 있다. 즉, 제2 사용자장치(200)에 모든 파라미터 즉, 암호 알고리즘 E(), 복호 알고리즘 D(), 해시함수 h(), 베이스 포인트 P, 제1 사용자 공개키 PA, 제2 사용자 공개키 PB 및 제2 사용자 개인키 xB가 모두 저장된 경우, S240 단계는 생략될 수 있다.
전술한 바와 같이, 제2 사용자장치(200)가 제1 사용자장치(100)로부터 암호문 (CA|MA|tA)을 수신한 후, 웨어러블장치(300)로부터 필요한 파라미터 즉, 제2 사용자 개인키 xB를 수신하거나, 혹은, 제2 사용자장치(200)가 처음부터 파라미터 암호 알고리즘 E(), 복호 알고리즘 D(), 해시함수 h(), 베이스 포인트 P, 제1 사용자 공개키 PA, 제2 사용자 공개키 PB 및 제2 사용자 개인키 xB를 저장부(240)에 모두 저장한 상태라고 가정한다. 이러한 상태에서, 제2 사용자장치(200)의 제어부(250)는 S250 단계에서 암호문을 복호화하여 제1 콘텐츠 G를 추출한다.
(2-1) 먼저, 제2 사용자장치(200)의 제어부(250)는 재전송 공격 방어를 위해 타임스탬프 tA의 유효성을 검증한다. 만약 유효하지 않은 tA인 경우 복호화 절차를 종료한다.
(2-2) 만약, 타임스탬프 tA가 유효하면, 제2 사용자장치(200)의 제어부(250)는 타임스탬프 tA, 제1 사용자 공개키 PA 및 제2 사용자 개인키 xB를 공유한 해시함수 h()에 입력하여 세션키 skA= h(tA|xBPA)를 산출한다.
(2-3) 그런 다음, 제2 사용자장치(200)의 제어부(250)는 암호화된 제1 콘텐츠 CA를 세션키 skA 및 공유한 복호 알고리즘 D()로 복호화하여 제1 콘텐츠 G = DskA(CA)를 복원한다. 도 4 및 도 5에서 설명된 바와 같이, 복호 알고리즘 D()는 경량 암복호부(251)를 통해 구현될 수 있다. 경량 암복호부(251)는 세션키 skA 및 암호화된 제1 콘텐츠 CA가 입력되면, 센션키 skA로부터 중간키 m를 도출하고, 중간키 m을 이용하여 암호문인 암호화된 제1 콘텐츠 CA를 복호화하여 평문인 제1 콘텐츠 G를 출력한다.
(2-4) 제2 사용자장치(200)의 제어부(250)는 복원된 제1 콘텐츠 G와 세션키 skA를 해시함수 h()에 입력하여 메시지 인증 코드(MAC) MA = h(skA|G)를 산출한 후, 수신된 암호문의 MA와 일치하는지 여부를 검증한다.
(2-5) 제2 사용자장치(200)의 제어부(250)는 검증 결과, 인증 코드가 일치하면(MAC = MA), 해당 제1 콘텐츠 G를 인증한다. 만약, 제어부(250)는 두 MAC 값이 동일하지 않으면 해당 콘텐츠가 위조 또는 조작 된 것으로 판단하여 활용하지 않고, 에러를 출력한다.
여기서, 인증 코드가 일치하였다고 가정한다(MAC = MA). 그러면, 제2 사용자장치(200)의 제어부(250)는 S260 단계에서 추출된 제1 콘텐츠 G를 표시부(230)를 통해 출력한다. 이때, 제1 콘텐츠 G가 음성을 포함하는 경우, 도시되지는 않았지만, 해당하는 오디오 처리부를 통해 출력할 수 있다.
한편, 제2 사용자는 제1 콘텐츠 G에 대한 응답을 할 수 있다. 이러한 응답을 제2 콘텐츠 R이라고 칭하기로 한다. 즉, 제2 사용자가 제2 콘텐츠 R을 입력하면, 제2 사용자장치(200)의 제어부(250)는 S270 단계에서 입력부(220)를 통해 제2 콘텐츠 R을 입력 받고, 제2 콘텐츠 R을 암호화하여 암호문을 생성한다. 이러한 S270 단계의 암호화 과정은 다음과 같다.
(3-1) 제어부(250)는 제2 콘텐츠 R을 입력부(220)를 통해 입력받는다.
(3-2) 그런 다음, 제어부(250)는 재전송 공격 방어를 위해 타임스탬프 tB를 선택한다.
(3-3) 이어서, 제어부(250)는 선택된 타임스탬프 tB, 제2 사용자 개인키 xB 및 제1 사용자 공개키 PA를 이용하여 해시함수 h()를 통해 세션키 skB = h(tB|xBPA)를 산출한다.
(3-4) 그런 다음, 제어부(250)는 제2 콘텐츠 R을 세션키 skB 및 암호 알고리즘 E()를 활용하여 암호화한 후, 암호화된 제2 콘텐츠 CB = EskB(R)를 생성한다. 도 4 및 도 5에서 설명된 바와 같이, 암호 알고리즘 E()는 경량 암복호부(251)를 통해 구현될 수 있다. 경량 암복호부(251)는 세션키 skB 및 제2 콘텐츠 R가 입력되면, 센션키 skB로부터 중간키 m를 도출하고, 중간키 m을 이용하여 평문인 제2 콘텐츠 R를 암호화하여 암호문인 암호화된 제2 콘텐츠 CB를 출력한다.
(3-5) 이어서, 제어부(250)는 제2 콘텐츠 R에 대해 세션키 skB 및 해시함수 h()를 이용하여 무결성 검증을 위한 메시지 인증 코드(MAC) MB = h(skB|R)를 산출한다.
(3-6) 그런 다음, 제어부(250)는 암호화된 제1 콘텐츠 CB와 타임스탬프 tB 및 인증코드(MAC) MB로 구성된 암호문 (CB|MB|tB)을 생성한다.
전술한 바와 같이, 암호문이 생성되면, 제어부(250)는 S280 단계에서 암호문 (CB|MB|tB)을 통신부(210)를 통해 제1 사용자장치(100)로 전송한다.
제1 사용자장치(100)의 제어모듈(150)은 암호문 (CB|MB|tB)을 수신하면, S290 단계에서 암호문을 복호화하여 제2 콘텐츠 R을 추출한다. S190 단계를 보다 상세하게 설명한다.
(4-1) 먼저, 제어모듈(150)은 재전송 공격 방어를 위해 타임스탬프 tB의 유효성을 검증한다. 만약 유효하지 않은 tB인 경우 복호화 절차를 종료한다.
(4-2) 만약, 타임스탬프 tB가 유효하면, 제어모듈(150)은 타임스탬프 tB, 제1 사용자 개인키 xA 및 제2 사용자 공개키 PB를 공유한 해시함수 h()에 입력하여 세션키 skB= h(tB|kAB)를 산출한다.
(4-3) 그런 다음, 제어모듈(150)은 암호화된 제2 콘텐츠 CB를 세션키 skB 및 공유한 복호 알고리즘 D()로 복호화하여 제2 콘텐츠 R = DskB(CB)를 복원한다. 도 4 및 도 5에서 설명된 바와 같이, 복호 알고리즘 D()는 경량 암복호부(151)를 통해 구현될 수 있다. 경량 암복호부(151)는 세션키 skB 및 암호화된 제2 콘텐츠 CB가 입력되면, 센션키 skB로부터 중간키 m을 도출하고, 중간키 m을 이용하여 암호화된 제2 콘텐츠 CB를 복호화하여 제2 콘텐츠 R을 출력한다.
(4-4) 이어서, 제어모듈(150)은 복원된 제2 콘텐츠 R과 세션키 skB를 이용하여 해시함수 h()를 통해 메시지 인증 코드(MAC) MB = h(skB|R)을 산출한 후, 수신된 암호문의 MB와 일치하는지 여부를 검증한다.
(4-5) 제어모듈(150)은 검증 결과, 인증 코드가 일치하면(MAC = MB), 제2 콘텐츠 R을 인증한다. 만약, 제어모듈(150)은 두 인증 코드(MAC) 값이 동일하지 않으면 해당 콘텐츠가 위조 또는 조작 된 것으로 판단하여 활용하지 않고, 에러를 출력한다.
여기서, 인증 코드가 일치하였다고 가정한다(MAC = MA). 그러면, 제어모듈(150)은 S300 단계에서 추출된 제2 콘텐츠 R을 표시모듈(130)을 통해 출력한다. 이때, 제2 콘텐츠가 음성을 포함하는 경우, 도시되지는 않았지만, 해당하는 음성 처리 장치를 통해 출력할 수 있다.
전술한 바와 같은 본 발명의 실시예에 따르면, 공격자가 제1 사용자 A로 위장하기 위해서는 합법적인 암호문 (CA|MA|tB)를 생성할 수 있어야 한다. 하지만, 제1 사용자 A 혹은 제2 사용자 B의 개인키 xA 또는 xB를 알 수 없는 공격자는 세션키 skA를 구할 수 없음으로 합법적인 암호문 (CA|MA|tB)을 생성할 수 없다. 결론적으로 본 발명의 실시예에 따른 방법은 위장, 위조, 중간자 공격 등에 안전하다.
또한, 본 발명에 따르면, 제1 사용자 A는 재전송 공격 방어를 위해 타임스탬프 tA를 생성하여 전송할 뿐만 아니라 세션키 생성에도 활용한다. 제2 사용자 B는 복호화 과정을 수행하기 전에 먼저 타임스탬프 tA의 유효성 검증을 수행하여 재전송 공격 여부를 판단한다. 이에 따라, 본 발명의 실시예에 따르면, 재전송 공격에 안전하다.
그리고 본 발명의 실시예에 따르면, 제1 사용자 A와 제2 사용자 B는 각각 1번의 ECC 곱셈 연산과 2번의 해시 연산을 수행하며, 이에 따라, ECC의 연산 효율성을 기반으로 안전성과 효율성 모두 제공할 수 있다.
더욱이, 본 발명의 실시예에서, 웨어러블장치(300)는 예컨대, 사용자의 건강을 위하여 심박수, 혈압 등의 사용자의 생체정보 신호를 측정하기 위한 용도로 사용하기 위해 사용자가 항상 착용하는 장치가 될 수 있다. 본 발명의 실시예에 따르면, 이러한 웨어러블장치(300)에 수시되는 콘텐츠를 복호화하기 위해 필요한 파라미터, 예컨대, 비밀키, 개인키, 공유키 등을 저장하고, 웨어러블장치(300)가 측정하는 사용자의 생체정보 신호를 이용하여 2개의 기기 간 직접 무선 연결, 즉, 페어링을 수행하기 위해 생체정보 신호를 이용하여 인증하며, 인증에 성공한 경우에만 파라미터를 제2 사용자장치(200)에 제공한다. 이로써, 실질적으로 본인이 아닌 경우에는 비밀키, 개인키, 공유키 등을 얻을 수 없다. 특히, 이러한 비밀키, 개인키, 공유키 등을 획득하기 위한 프로세스는 콘텐츠가 송수신되는 주파수 광대역이동통신 네트워크와 다른 주파수 대역인, ISM(Industrial Scientic and Medical) 대역을 사용하는 네트워크를 이용하기 때문에 병렬적으로 수행할 수 있어, 콘텐츠의 송수신 처리 속도에 영향을 미치지 않는다. 이에 따라, 경량 암호화 알고리즘의 이점을 저하시키지 않으면서도 보안 성능을 강화할 수 있다.
다음으로, 본 발명의 실시예에 따른 저작권 증명 정보를 은닉하고 복원하는 방법에 대해서 설명할 것이다. 이하의 실시예에서, 영문 대문자에 붙은 괄호 안의 첨자(x, y)는 픽셀 좌표를 의미하며, 영문 대문자에 붙은 괄호 안의 첨자(x) 혹은 (2)는 이진수임을 의미한다.
본 발명의 실시예에 따르면, 앞서 도 7 및 도 8에서 설명된 제1 콘텐츠 G는 원본 제1 콘텐츠 I의 저작권 보호를 위해 스테가노그라피 기법에 따라 저작권 증명 정보 s가 삽입된 것이다. 본 발명의 스테가노그라피 기법을 통해 원본 제1 콘텐츠 I에 저작권 증명 정보 s를 삽입하여 제1 콘텐츠 G를 생성할 때, 사람의 시각으로 느낄 수 없는 수준의 가공만 이루어지기 때문에 앞서 앞서 도 7 및 도 8의 절차에 따라 컴퓨팅 장치(100)가 제1 콘텐츠 G를 전송하고, 제2 사용자장치(200)가 이를 수신하여 재생하는 경우에도 제2 사용자는 제1 콘텐츠 G를 통해서 원본 제1 콘텐츠 I와 동일한 정보를 얻을 수 있다. 이에 따라, 제1 사용자장치(100)는 저작권 증명을 위해 이러한 저작권 증명 정보 s를 삽입하거나, 저작권 증명을 위해 필요한 경우, 저작권 증명 정보 s를 추출할 수 있다.
그러면, 본 발명의 실시예에 따른 제1 콘텐츠 훼손이 없는 가역 스테가노그래피 정보 은닉 기법 기반의 저작권 보호 기술에 대해서 설명하기로 한다. 도 9는 본 발명의 실시예에 따른 제1 사용자장치의 저작권 증명 정보를 은닉하는 방법을 설명하기 위한 도면이다. 도 10은 도 9의 S320 단계의 저작권 증명 정보를 은닉하는 방법을 설명하기 위한 흐름도이다. 도 11 내지 도 13은 본 발명의 실시예에 따른 제1 사용자장치의 저작권 증명 정보를 은닉하는 방법을 설명하기 위한 화면 예이다.
도 9를 참조하면, 제1 사용자는 입력모듈(120)을 조작하여 원본 제1 콘텐츠 I와 원본 제1 콘텐츠 I의 저작권 증명을 위한 이미지 SS를 선택하여 입력할 수 있다. 그러면, 제어모듈(150)은 입력부(120)를 통해 이를 감지하고, S310 단계에서 이미지 SS를 저작권 증명 정보 s인 바이너리 이미지로 변환시킨다.
그런 다음, 제어모듈(150)은 S320 단계에서 원본 제1 콘텐츠 I에 저작권 증명 정보 s를 은닉하여 제1 콘텐츠 G를 생성한다. 여기서, 저작권 보호 정보 s를 은닉한다는 것은 바이너리 이미지인 저작권 보호 정보 s를 원본의 훼손이 없는 가역 스테가노그래피 정보 은닉 기법에 따라 원본 제1 콘텐츠 I에 삽입한다는 것을 의미한다. S320 단계의 은닉과 함께 제어모듈(150)은 제1 콘텐츠 G로부터 저작권 증명 정보 s를 추출하기 위한 정보인 복원키를 생성한다.
그러면, 도 10 내지 도 13을 참조로, S320 단계의 저작권 증명 정보 은닉(Embedding) 절차에 대해서 보다 상세하게 설명하기로 한다. 이 실시예에서 제어모듈(150)에 입력되는 값은 원본 제1 콘텐츠 I, 저작권 증명 정보 s, 임계치 T, 블록 크기 M 등을 포함한다. 여기서, 임계치 T 및 블록 크기 M은 미리 설정되거나, 제1 사용자에 의해 입력될 수 있다. 또한, 이 실시예에서 제어모듈(150)로부터 출력되는 값은 제1 콘텐츠 G, 블록 크기 M, 임계치 T, 로케이션 맵 1, 로케이션 맵 2 등을 포함한다.
본 발명의 실시예에 따른 저작권 증명 정보 은닉 절차에서 제1 사용자장치(100)의 제어모듈(150)은 원본 제1 콘텐츠 I의 픽셀 변경이 최소화되도록, 즉, 사람이 인지할 수 없도록 원본 제1 콘텐츠 I에 저작권 증명 정보 s를 은닉한다. 이러한 저작권 증명 정보 은닉을 위하여, 제어모듈(150)은 다음과 같은 프로세스를 수행한다.
(1) S410 단계: 제어모듈(150)은 원본 제1 콘텐츠 I로부터 은닉을 위한 예측 오차 e(x, y)를 산출한다.
먼저, 제어모듈(150)은 다음의 수학식 1을 이용하여 원본 제1 콘텐츠 I의 첫 번째 픽셀[(x, y) = (1, 1)]을 제외한 모든 픽셀의 예측 픽셀 P(x, y)를 산출한다.
Figure 112016099866425-pat00008
그런 다음, 제어모듈(150)은 다음의 수학식 2를 이용하여 첫 번째 픽셀을 제외한 모든 픽셀에 대해 원본 제1 콘텐츠 I와 예측 픽셀 P의 차이를 나타내는 예측 오차 e(x, y)를 산출한다.
Figure 112016099866425-pat00009
S410 단계의 예를 도 11에 도시하였다. 도 11에 보인 바와 같이, 원본 제1 콘텐츠(Cover image) I의 첫 번째 픽셀을 제외한 각 픽셀 I(x, y)에 대해 수학식 1을 적용하여 예측 픽셀(Prediction value) P(x, y)를 산출하고, 수학식 2를 적용하여 예측 오차(Prediction error) e(x, y)를 산출한다.
(2) S420 단계: 제어모듈(150)은 예측 오차 e(x, y)를 복수의 픽셀이 포함되는 블록으로 구분한다. 여기서, 제어모듈(150)은 원본 제1 콘텐츠 I의 예측 오차 e(x, y)를 크기가 M × M 인 블록들로 나눈다. 여기서, M은 미리 설정된 값이 될 수 있다. 예컨대, 도 12에 도시된 바와 같이, M = 3인 경우, 크기가 3 × 3인 제1 블록 및 제2 블록으로 구분할 수 있다. 만약 한 블록을 완성하지 못하는 픽셀들이 존재하면, 해당 픽셀들은 변경하지 않는다.
(3) S430 단계: 제어모듈(150)은 예측 오차의 블록 별로 저작권 증명 정보 s를 삽입할 수 있는지 확인한다. 만약, 제어모듈(150)은 블록 내의 모든 예측 오차 픽셀 각각의 예측 오차가 임계치 T 보다 크면 해당 블록을 저작권 증명 정보 s의 삽입에 사용되지 않고, 해당 블록의 위치를 로케이션 맵 1에 표시한다. 하지만 제어모듈(150)은 하나의 예측 오차라도 T보다 작으면 해당 블록은 다음 저작권 증명 정보 s의 삽입에 사용된다. 도 12를 살펴보면, 임계치 T = 2일 경우, 블록에 대한 삽입 유효성 판별 과정을 보인다. 보인 바와 같이, 제1 블록은 4개의 픽셀의 예측 오차 값이 2 보다 작은 값을 가지기 때문에 유효하다. 즉, 제1 블록은 저작권 증명 정보 s를 삽입할 수 있는 블록이다. 반면, 제2 블록은 모든 픽셀의 예측 오차 값이 2를 초과하기 때문에 유효하지 않다. 즉, 제2 블록에는 저작권 증명 정보 s를 삽입하지 않는다.
(4) S440 단계: 제어모듈(150)은 원본 제1 콘텐츠 I에 저작권 증명 정보 s를 삽입하고, 저작권 보호 제1 콘텐츠 G를 생성한다. 만약 예측 오차 e(x, y) = | I(x, y) - P(x, y)| 또는 픽셀 I(x, y)가 저작권 증명 정보 s를 삽입하지 않는 블록에 포함될 경우, 다음 블록의 첫 번째 픽셀로 이동하여, (3) S430 단계부터 다시 시작한다.
여기서, 저작권 증명 정보 s를 삽입하기 위하여, 제어모듈(150)은 블록 내의 하나 이상의 예측 오차가 임계치 T 보다 작거나 같으면, 임계치 T를 이용하여 예측 오차를 다음의 두 경우(Case 1, Case 2)로 분류한다.
Case 1: 만약, 예측 오차 e(x, y)가 임계치 T 보다 작거나 같으면(e(x, y) ≤ T), 다음의 수학식 3과 같이, 저작권 증명 정보 비트 s(k)를 삽입한다.
Figure 112016099866425-pat00010
Case 2: 만약, 예측 오차 e(x, y)가 임계치 T 보다 크면(e(x, y) > T), 다음의 수학식 4로 픽셀을 변경한다.
Figure 112016099866425-pat00011
도 13에 예컨대, 임계치 T = 2이고, 저작권 증명 정보 s = 0100(2)일 때, 앞서 산출된 예측 픽셀(Prediction value) P(x, y) 및 예측 오차(Prediction error) e(x, y)를 이용하여 저작권 증명 정보 s를 원본 제1 콘텐츠(Cover image) I에 삽입하여 저작권 보호 제1 콘텐츠(Stego image) G를 생성하는 예를 도시하였다.
(5) 만약, S440 단계에서 저작권 증명 정보 비트 s(k)를 삽입한 후, 생성된 제1 콘텐츠 G(x, y)의 해당 픽셀이 0 이상 255 이하(0 ≤ G(x, y) ≤ 255)를 만족하지 않으면, 즉, 해당 픽셀값이 0 미만이거나, 255를 초과하는 경우, 언더플로우 또는 오버플로우가 발생한다. 이런 경우, 언더플로우와 오버플로우를 표시해주는 로케이션 맵 2에 위치(픽셀 좌표)를 표시를 한 후, 원본 제1 콘텐츠 I(x, y)의 픽셀을 변경 없이 저작권 보호 콘텐츠 G(x, y)의 픽셀로 사용한다. 제어모듈(150)은 전술한 바와 같은 은닉 절차의 완료와 함께 복원키를 생성하며, 복원키는 블록 크기 M, 임계치 T, 로케이션 맵 1, 로케이션 맵 2가 될 수 있다.
한편, 제1 사용자는 저작권 보호 제1 콘텐츠 G에 대한 저작권을 증명하고자 할 수 있다. 혹은, 저작권 보호 제1 콘텐츠 G에 대해 위조 혹은 변조 여부를 확인할 필요가 있을 수 있다. 이러한 경우, 제1 사용자는 제1 사용자장치(100)를 통해 저작권 증명 정보 s를 추출하고, 이에 따라, 제1 콘텐츠 G를 원본 제1 콘텐츠 I로 복원할 수 있다. 이러한 절차에 대해서 설명하기로 한다. 도 14는 본 발명의 실시예에 따른 제1 사용자장치의 저작권 증명 정보를 추출하는 방법을 설명하기 위한 도면이다. 도 15는 도 12의 S510 단계의 저작권 증명 정보를 추출하는 방법을 설명하기 위한 흐름도이다. 도 16은 본 발명의 실시예에 따른 제1 사용자장치의 저작권 증명 정보를 추출하는 방법을 설명하기 위한 화면 예이다.
도 14를 참조하면, 제1 사용자가 저작권 증명 정보를 추출하도록 하는 입력을 하면, 제어모듈(150)은 입력모듈(120)을 통해 이를 감지하고, S510 단계에서 저작권이 보호되는 제1 콘텐츠 G로부터 저작권 증명 정보 s를 추출하여, 원본 제1 콘텐츠 I를 복원한다. 그러면, 도 15 및 도 16을 참조로, S510 단계의 제1 컨텐츠 G로부터 저작권 증명 정보 추출하여 원본 제1 콘텐츠 I를 복원하는 절차에 대해서 보다 상세하게 설명하기로 한다. 추출 및 복원 과정은 은닉 과정에서 저작권 보호 콘텐츠 G내에 은닉된 저작권 증명 정보 s를 추출하고, 저작권 증명 정보 s의 은닉으로 변경된 원본 제1 콘텐츠 I를 완벽하게 복원하는 절차이다. 추출 및 복원 과정은 한 픽셀 단위로 모든 과정이 마지막 픽셀까지 반복되어 진행된다.
이 실시예에서 제어모듈(150)에 입력되는 값은 원본 제1 콘텐츠 I, 저작권 보호 제1 콘텐츠 G, 블록 크기 M, 임계치 T, 로케이션 맵 1, 로케이션 맵 2 등을 포함한다. 여기서, 입력되는 값의 일부는 앞서 생성된 복원키로부터 얻을 수 있다. 또한, 이 실시예에서 제어모듈(150)로부터 출력되는 값은 복원된 원본 제1 콘텐츠 I, 저작권 증명 정보 s를 포함한다.
(1) S610 단계: 제어모듈(150)은 예측 기법을 이용하여 현재 픽셀의 예측 픽셀을 산출한다. 이때, 제어모듈(150)은 로케이션 맵 1을 참조로, 현재 픽셀이 변경되지 않은 블록에 해당된다면 다음 블록의 픽셀부터 현재 과정을 다시 시작한다. 여기서, 블록의 좌표는 다음의 수학식 5로 계산한다.
Figure 112016099866425-pat00012
수학식 5에서 (i, j)는 블록의 좌표를 나타낸다. x와 y는 현재 픽셀의 좌표를 나타낸다. 다음으로 제어모듈(150)은 로케이션 맵 2를 참조하여 현재 픽셀이 변경되지 않은 픽셀인지 여부를 확인한다(앞서 S440 단계에서 설명된 바와 같이, 변경했을 때 언더플로우 또는 오버플로우가 발생하는 픽셀인 경우 변경하지 않았다.). 만약 변경되지 않은 픽셀이면, 제어모듈(150)은 다음 픽셀부터 현재 단계를 다시 시작한다. 예측 픽셀은 다음의 수학식 6을 통해 산출한다.
Figure 112016099866425-pat00013
예측 픽셀은 원본 제1 콘텐츠 I와 동일하거나, 복원된 픽셀을 이용하여 계산한다.
(2) S420 단계: 제어모듈(150)은 예측 픽셀을 이용하여 다음의 수학식 7을 통해 추출 및 복원을 위한 예측 오차 e'(x, y)를 산출한다.
Figure 112016099866425-pat00014
즉, 제어모듈(150)은 제1 콘텐츠 G(x, y)의 픽셀을 이용하여 제1 콘텐츠 G와 예측 픽셀 P와의 차이를 의미하는 예측 오차 e'(x, y)를 산출한다.
(3) S430 단계: 제어모듈(150)은 저작권 증명 정보 비트 s(k)를 추출한다. 만약 e'(x, y) ≤ T×2+1이면, 저작권 증명 정보 비트 s(k)는 다음의 수학식 8을 통해 추출한다.
Figure 112016099866425-pat00015
(4) S440 단계: 제어모듈(150)은 원본 제1 콘텐츠 I를 복원한다. 원본 제1 콘텐츠를 복원하기 위해 우선 제어모듈(150)은 예측 오차를 다음의 두 가지 경우(Case 1, Case 2)로 분류한다.
Case 1: 제어모듈(150)은 예측 오차 e'(x, y)가 임계치 T 보다 작거나 같으면(e'(x, y) ≤ T), 다음의 수학식 9를 이용하여 원본 제1 콘텐츠 I의 픽셀을 복원한다.
Figure 112016099866425-pat00016
Case 2: 제어모듈(150)은 예측 오차 e'(x, y)가 임계치 T 보다 크면(e'(x, y) > T)이면, 다음의 수학식 10을 통해 픽셀을 복원한다.
Figure 112016099866425-pat00017
(5) 제어모듈(150)은 만약, S440 단계의 수행 중 0≤I(x, y)≤255를 만족하지 않으면, 언더플로우 또는 오버플로우가 발생한다. 이런 경우, 언더플로우와 오버플로우를 표시해주는 로케이션 맵 2에 위치를 표시를 한 후, 변경 없이 원본 제1 콘텐츠 I의 픽셀을 저작권 보호 콘텐츠 G의 픽셀로 사용한다.
전술한 바와 같이, 제1 콘텐츠 G(x, y) 및 예측 픽셀 P(x, y)을 통해 얻어진 예측 오차 e(x, y)를 이용하여 원본 제1 콘텐츠 I(x, y)를 복원할 수 있다. 이와 같이, 본 발명의 실시예에 따르면 원본 제1 콘텐츠 I에 저작권 증명 정보 s를 은닉하여 제1 콘텐츠 G를 생성하는 경우, 일반적인 사람은 제1 콘텐츠 G를 보고 저작권 증명 정보 s 은닉 여부를 인지할 수 없다. 따라서 필요한 경우, 저작권 증명 정보 s를 추출하는 절차를 통해 저작권을 증명할 수 있어 저작권을 보호할 수 있다. 또한, 본 발명은 제1 콘텐츠 G가 위조 혹은 변조된 경우, 저작권 증명 정보 s가 훼손되기 때문에 필요에 따라 저작권 증명 정보 s를 추출하여 위조 혹은 변조 여부도 확인할 수 있다.
한편, 앞서 설명된 본 발명의 실시예로 설명된 방법들은 다양한 컴퓨터수단을 통하여 판독 가능한 프로그램 형태로 구현되어 컴퓨터로 판독 가능한 기록매체에 기록될 수 있다. 여기서, 기록매체는 프로그램 명령, 데이터 파일, 데이터구조 등을 단독으로 또는 조합하여 포함할 수 있다. 기록매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 예컨대 기록매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광 기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함한다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 와이어뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 와이어를 포함할 수 있다. 이러한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상 본 발명을 몇 가지 바람직한 실시예를 사용하여 설명하였으나, 이들 실시예는 예시적인 것이며 한정적인 것이 아니다. 이와 같이, 본 발명이 속하는 기술분야에서 통상의 지식을 지닌 자라면 본 발명의 사상과 첨부된 특허청구범위에 제시된 권리범위에서 벗어나지 않으면서 균등론에 따라 다양한 변화와 수정을 가할 수 있음을 이해할 것이다.
100: 제1 사용자장치 110: 통신모듈
120: 입력모듈 130: 표시모듈
140: 저장모듈 150: 제어모듈
200: 제2 사용자장치 210: 통신부
220: 입력부 230: 표시부
240: 저장부 250: 제어부
300: 웨어러블장치 310: 통신유닛
320: 입력유닛 330: 생체신호수집유닛
340: 저장유닛 350: 제어유닛
151, 251: 경량 암복호부 510: 중간키생성부
520: 암복호처리부

Claims (15)

  1. 삭제
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 제2 사용자장치의 콘텐츠 수신 장치에 있어서,
    제1 사용자장치가 전송하는 콘텐츠를 수신하는 제2 사용자장치의 콘텐츠 수신 장치에 있어서,
    상기 제1 사용자장치와 통신하며,
    상기 제2 사용자장치의 사용자가 착용하면 상기 사용자의 생체신호 정보를 측정하고 상기 제1 사용자장치와 동일한 공유 비밀키를 저장하는 웨어러블장치와 통신을 위한 통신부;
    상기 사용자의 생체신호 정보를 저장하며,
    상기 제1 사용자장치와 동일한 암호 알고리즘, 복호 알고리즘 및 해시함수를 저장하는 저장부; 및
    상기 통신부를 통해 타임스탬프, 암호화된 제1 콘텐츠 및 인증 코드를 포함하는 암호문을 수신하면, 상기 통신부를 통해 상기 웨어러블장치가 통신 범위 내에 있는지 여부를 판단하고, 상기 웨어러블장치가 통신 범위 내에 있으면, 상기 웨어러블장치가 측정한 상기 사용자의 생체신호 정보를 수신하고, 수신된 생체신호 정보와 상기 저장된 생체신호 정보를 비교하여 인증을 수행하여, 인증에 성공한 경우, 상기 통신부를 통해 상기 웨어러블장치로부터 공유 비밀키를 수신하며,
    상기 타임스탬프 및 상기 웨어러블장치로부터 수신된 공유 비밀키를 상기 해시함수에 입력하여 세션키를 산출하며, 상기 암호화된 제1 콘텐츠를 상기 세션키 및 상기 복호 알고리즘을 통해 복호화하여 제1 콘텐츠를 복원하는 제어부;를 포함하는 것을 특징으로 하는 콘텐츠 수신 장치.
  7. 제6항에 있어서,
    상기 제어부는
    상기 복호 알고리즘을 실행하는 암복호처리부;를 포함하며,
    상기 암복호처리부는 상기 세션키가 입력되면, 중간키를 생성하는 중간키생성부와, 상기 중간키를 이용하여 상기 암호화된 제1 콘텐츠를 복호화하여 상기 제1 콘텐츠를 도출하는 암복호처리부를 포함하는 것을 특징으로 하는 콘텐츠 수신 장치.
  8. 제7항에 있어서,
    상기 암복호처리부는 복수의 스테이지에 걸쳐 암호화를 수행하되, 각 스테이지에서 하나의 함수를 사용하며,
    상기 함수는 16 비트 혹은 32 비트 단위의 XOR 연산 및 시프트 연산만으로 구성되고,
    상기 중간키를 복수개의 단위 중간키로 구분하고, 복수개의 단위 중간키를 서로 다른 스테이지의 함수에 입력하여 상기 암호화된 제1 콘텐츠를 복호화하는 것을 특징으로 하는 콘텐츠 수신 장치.
  9. 제8항에 있어서,
    상기 복수의 스테이지 각각에서, 상기 암복호처리부는
    상기 암호화된 제1 콘텐츠가 입력되면, 상기 암호화된 제1 콘텐츠를 동일한 길이로 좌비트열 및 우비트열로 구분하고,
    현 스테이지의 우비트열을 다음 스테이지의 좌비트열로 생성하며,
    현 스테이지의 우비트열 R과 단위 중간키 m을 함수 F에 입력하여 함수 F의 연산에 의해 출력되는 해를 얻은 후, 얻은 해와 현 스테이지의 좌비트열을 XOR 연산하여 다음 스테이지의 우비트열을 생성하는 것을 특징으로 하는 콘텐츠 수신 장치.
  10. 삭제
  11. 제6항에 있어서,
    상기 제어부는
    상기 복원된 제1 콘텐츠와 상기 세션키를 해시함수에 입력하여 인증 코드를 산출한 후, 산출된 인증 코드와 상기 수신된 암호문의 인증 코드가 일치하는지 여부를 검증하고, 상기 검증 결과 일치하는 경우, 상기 복원된 제1 콘텐츠를 출력하는 것을 특징으로 하는 콘텐츠 수신 장치.
  12. 삭제
  13. 제1 사용자장치가 전송하는 콘텐츠를 수신하는 제2 사용자장치의 콘텐츠 수신 방법에 있어서,
    상기 제1 사용자장치와 동일한 암호 알고리즘, 복호 알고리즘 및 해시함수를 저장하는 단계;
    상기 제1 사용자장치로부터 타임스탬프, 암호화된 제1 콘텐츠 및 인증 코드를 포함하는 암호문이 수신되면,
    상기 제2 사용자장치의 사용자가 착용할 때, 상기 사용자의 생체신호 정보를 측정하고 상기 제1 사용자장치와 동일한 공유 비밀키를 저장하는 웨어러블장치가 통신 범위 내에 있는지 여부를 판단하는 단계;
    상기 웨어러블장치가 통신 범위 내에 있으면, 상기 웨어러블장치가 측정한 상기 사용자의 생체신호 정보를 수신하는 단계;
    상기 수신된 생체신호 정보와 상기 저장된 생체신호 정보를 비교하여 인증을 수행하는 단계;
    상기 인증에 성공한 경우, 상기 웨어러블장치로부터 공유 비밀키를 수신하는 단계;
    상기 타임스탬프 및 상기 웨어러블장치로부터 수신된 공유 비밀키를 상기 해시함수에 입력하여 세션키를 산출하는 단계; 및
    상기 암호화된 제1 콘텐츠를 상기 세션키 및 상기 복호 알고리즘을 통해 복호화하여 제1 콘텐츠를 복원하는 단계;를 포함하는 것을 특징으로 하는 콘텐츠 수신 방법.
  14. 삭제
  15. 제13항에 따른 제2 사용자장치의 콘텐츠 수신 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체.
KR1020160133728A 2016-10-14 2016-10-14 경량 암호 알고리즘 기반의 저작권 보호를 위한 콘텐츠 송수신 장치, 이를 위한 방법 및 이 방법이 기록된 컴퓨터 판독 가능한 기록매체 KR101833141B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160133728A KR101833141B1 (ko) 2016-10-14 2016-10-14 경량 암호 알고리즘 기반의 저작권 보호를 위한 콘텐츠 송수신 장치, 이를 위한 방법 및 이 방법이 기록된 컴퓨터 판독 가능한 기록매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160133728A KR101833141B1 (ko) 2016-10-14 2016-10-14 경량 암호 알고리즘 기반의 저작권 보호를 위한 콘텐츠 송수신 장치, 이를 위한 방법 및 이 방법이 기록된 컴퓨터 판독 가능한 기록매체

Publications (1)

Publication Number Publication Date
KR101833141B1 true KR101833141B1 (ko) 2018-02-28

Family

ID=61400951

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160133728A KR101833141B1 (ko) 2016-10-14 2016-10-14 경량 암호 알고리즘 기반의 저작권 보호를 위한 콘텐츠 송수신 장치, 이를 위한 방법 및 이 방법이 기록된 컴퓨터 판독 가능한 기록매체

Country Status (1)

Country Link
KR (1) KR101833141B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101026439B1 (ko) * 2009-07-20 2011-04-07 한국전자통신연구원 Seed 암호화에서 차분 전력 분석 공격을 방어하기 위한 마스킹 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101026439B1 (ko) * 2009-07-20 2011-04-07 한국전자통신연구원 Seed 암호화에서 차분 전력 분석 공격을 방어하기 위한 마스킹 방법

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
윤은준, and 유기영. "타원곡선 암호시스템을 이용한 안전한 의료영상 암호화 및 인증 스킴." 대한전자공학회 학술대회 (2012): 1946-1949.(2012.12.31.)*
최장희, 윤은준, and 유기영. "DE 기반의 적응적인 가역정보은닉기법." 전자공학회논문지 49 (2012): 103-114.(2012.03.31.)*

Similar Documents

Publication Publication Date Title
US10681025B2 (en) Systems and methods for securely managing biometric data
JP6736285B2 (ja) 通信保護を備えた聴覚装置および関連する方法
US6948066B2 (en) Technique for establishing provable chain of evidence
US7028184B2 (en) Technique for digitally notarizing a collection of data streams
KR102079626B1 (ko) 모바일 환경에서 생체 인증 기반 경량 상호 인증 프로토콜을 이용한 정보 은닉 시스템, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체
JP5810137B2 (ja) 物理的複製防止機能に基づく認証要請装置、認証処理装置および認証遂行方法
CN110969431B (zh) 区块链数字币私钥的安全托管方法、设备和系统
KR20160035999A (ko) 데이터 통신 보안을 위한 방법, 장치 및 시스템
CN104125210A (zh) 增强保密性的头戴式显示装置及用其访问加密信息的方法
JP2015139014A (ja) 情報処理プログラム、情報処理装置および情報処理方法
US20220239509A1 (en) Method for storing and recovering key for blockchain-based system, and device therefor
Gaebel et al. Looks good to me: Authentication for augmented reality
JP7323004B2 (ja) データ抽出システム、データ抽出方法、登録装置及びプログラム
CN112182624A (zh) 加密方法、加密装置、存储介质与电子设备
KR102625879B1 (ko) 생체 정보를 이용한 키를 발생하는 암호 시스템의 방법
KR101833141B1 (ko) 경량 암호 알고리즘 기반의 저작권 보호를 위한 콘텐츠 송수신 장치, 이를 위한 방법 및 이 방법이 기록된 컴퓨터 판독 가능한 기록매체
JP2003333031A (ja) 通信装置、通信システム、通信方法、記憶媒体、及びプログラム
KR101913468B1 (ko) 스마트 교육 시스템에서 교육 콘텐츠 저작권을 보호하기 위한 보안 및 인증 장치, 이를 위한 방법 및 이 방법이 기록된 컴퓨터 판독 가능한 기록매체
US9386017B2 (en) Authentication device, system and method
Jin et al. MagPairing: Exploiting magnetometers for pairing smartphones in close proximity
CN111050316B (zh) 锁卡方法及装置、计算机可读存储介质及终端设备
KR20190048422A (ko) 인증 시스템 및 방법
US11909892B2 (en) Authentication system, client, and server
KR101976583B1 (ko) 서로 다른 안전도와 서로 다른 대역외 채널을 사용하는 사물인터넷 경량 기기 사이의 비밀키 설정 방법
KR101268289B1 (ko) 음성을 이용한 otp 키 생성모듈과 생성방법 및 이를 이용한 통신기기

Legal Events

Date Code Title Description
GRNT Written decision to grant