KR101906225B1 - 복호장치와, 복호장치의 암호문 복호화 방법 - Google Patents
복호장치와, 복호장치의 암호문 복호화 방법 Download PDFInfo
- Publication number
- KR101906225B1 KR101906225B1 KR1020110126798A KR20110126798A KR101906225B1 KR 101906225 B1 KR101906225 B1 KR 101906225B1 KR 1020110126798 A KR1020110126798 A KR 1020110126798A KR 20110126798 A KR20110126798 A KR 20110126798A KR 101906225 B1 KR101906225 B1 KR 101906225B1
- Authority
- KR
- South Korea
- Prior art keywords
- polynomial functions
- cipher text
- decrypting
- polynomial
- server
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/302—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/16—Obfuscation or hiding, e.g. involving white box
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
본 발명의 실시예에 따른 복호장치의 암호문 복호화 방법은, 기 설정된 공개키 암호 알고리즘에 따라서 암호문을 평문으로 복호화하는 비밀키가 분해된 기 설정된 복수의 다항함수를 기 저장하는 단계와; 암호문 생성장치로부터 복수의 다항함수로 분해된 비밀키에 기초하여 생성된 암호문을 수신하는 단계와; 수신된 암호문을 기 저장된 복수의 다항함수에 기초하여 평문으로 복호화하는 단계를 포함하는 것을 특징으로 한다.
Description
본 발명은 암호문 생성장치로부터 생성된 암호문을 평문으로 복호화하는 복호장치와, 복호장치의 암호문 복호화 방법에 관한 것으로서, 상세하게는 기 설정된 공개키 암호 알고리즘에 따라서 평문의 암호화 및 복호화를 수행할 때에 비밀키에 대한 보안을 향상시키는 구조의 복호장치와, 복호장치의 암호문 복호화 방법에 관한 것이다.
상호 통신하는 적어도 두 개의 장치, 예를 들면 서버 및 클라이언트를 포함하는 시스템은 전자/통신 기술의 발전에 따라서 다양한 분야에 적용되고 있다. 간단한 영상처리 시스템의 일반적인 예를 들면, 서버인 컨텐츠 제공장치는 영상컨텐츠 데이터를 유선/무선 네트워크를 통해 클라이언트인 컨텐츠 재생장치로 전달하며, 컨텐츠 재생장치는 이 영상데이터를 처리하여 영상으로 표시한다.
그런데, 컨텐츠를 제공하는 다양한 서비스 모델이 개발됨에 따라서, 데이터의 전달 과정에서 인가되지 않은 제3자에게로 데이터를 유출시키기 위한 공격이 시도되고 있다. 이러한 공격의 예시로서, 실제 통신 환경에서는 데이터가 서버로부터 클라이언트로 전달되는 과정에서 데이터의 인터셉트(intercept)가 시도되거나, 또는 클라이언트에 심어져 데이터 코드를 해독하는 악성 프로그램 등이 있다.
따라서, 이러한 컨텐츠의 불법유출을 방지하고 컨텐츠의 저작권을 보호하기 위한 데이터의 암호화 기술이 제안되고 있다. 예를 들면, 공격자가 내부를 확인할 수 없는 별도의 하드웨어 내에 구현된 암호 알고리즘을 통한 블랙박스(blackbox) 암호 기술이 있다. 그런데, 블랙박스 암호 기술은 하드웨어 사용에 대한 비용문제, 설치문제, 내부결함 발생 시 업데이트/패치의 어려움 등의 문제가 발생할 수 있다. 이에 비해, 화이트박스(whitebox) 암호 기술은 소프트웨어만으로 암호 키를 보호한다.
그런데, 이러한 화이트박스 암호 기술은 클라이언트에 대해 메모리 덤프(memory dump) 등의 방법을 통한 공격이 수행될 경우, 메모리 상의 코드 분석을 통해 데이터가 해독될 수 있는 위험이 있다. 따라서, 화이트박스 암호 기술에서, 이러한 화이트박스 공격에 대해 데이터가 해독되지 않도록 암호화하는 방법은 데이터를 전송함에 있에서 매우 중요한 측면이다.
본 발명의 실시예에 따른 복호장치의 암호문 복호화 방법은, 기 설정된 공개키 암호 알고리즘에 따라서 암호문을 평문으로 복호화하는 비밀키가 분해된 기 설정된 복수의 다항함수를 기 저장하는 단계와; 암호문 생성장치로부터 상기 복수의 다항함수로 분해된 상기 비밀키에 기초하여 생성된 상기 암호문을 수신하는 단계와; 상기 수신된 암호문을 상기 기 저장된 복수의 다항함수에 기초하여 상기 평문으로 복호화하는 단계를 포함하는 것을 특징으로 한다.
여기서, 상기 수신된 암호문을 상기 기 저장된 복수의 다항함수에 기초하여 상기 평문으로 복호화하는 단계는, 상기 복수의 다항함수를 곱셈연산하고, 상기 곱셈연산된 다항함수에 기초하여 상기 암호문을 상기 평문으로 복호화하는 단계를 포함할 수 있다.
여기서, 상기 암호문 생성장치에서 분해된 상기 복수의 다항함수는, 상기 암호문 생성장치에서 상기 복수의 다항함수 각각에 대해 랜덤하게 결정된 성분이 부가되며, 상기 복수의 다항함수 각각에 대해 부가된 성분은, 상기 복호장치에서 상기 분해된 복수의 다항함수의 곱셈연산 시, 상기 곱셈연산에 의해 복수의 상기 성분이 상쇄되어 항등원이 산출되도록 결정될 수 있다.
또한, 상기 암호문 생성장치에서 분해된 상기 복수의 다항함수는, 기 설정된 상수의 상기 다항함수로 분해될 수 있다.
또한, 상기 공개키 암호 알고리즘은 RSA(Rivest-Shamir-Adleman) 또는 ECC(Elliptic Curve Cryptosystem) 시스템에 따를 수 있다.
또한, 본 발명의 실시예에 따른 암호문을 복호화하는 복호장치는, 암호문 생성장치와 통신하는 통신부와; 기 설정된 공개키 암호 알고리즘에 따라서 암호문을 평문으로 복호화하는 비밀키가 분해된 기 설정된 복수의 다항함수를 기 저장하며, 상기 통신부를 통해 상기 암호문 생성장치에서 상기 복수의 다항함수로 분해된 상기 비밀키에 기초하여 생성된 상기 암호문을 수신하면, 상기 수신된 암호문을 상기 기 저장된 복수의 다항함수에 기초하여 상기 평문으로 복호화하는 처리부를 포함하는 것을 특징으로 한다.
여기서, 상기 처리부는, 상기 복수의 다항함수를 곱셈연산하고, 상기 곱셈연산된 다항함수에 기초하여 상기 암호문을 상기 평문으로 복호화할 수 있다.
여기서, 상기 암호문 생성장치에서 분해된 상기 복수의 다항함수는, 상기 암호문 생성장치에서 상기 복수의 다항함수 각각에 대해 랜덤하게 결정된 성분이 부가되며, 상기 복수의 다항함수 각각에 대해 부가된 성분은, 상기 복호장치에서 상기 분해된 복수의 다항함수의 곱셈연산 시, 상기 곱셈연산에 의해 복수의 상기 성분이 상쇄되어 항등원이 산출되도록 결정될 수 있다.
또한, 상기 암호문 생성장치에서 분해된 상기 복수의 다항함수는, 기 설정된 상수의 상기 다항함수로 분해될 수 있다.
또한, 상기 공개키 암호 알고리즘은 RSA 또는 ECC 시스템에 따를 수 있다.
또한, 상기 암호문 생성장치는 서버를 포함하며, 상기 복호장치는 상기 서버와 통신하는 영상처리장치를 포함할 수 있다.
도 1은 본 발명의 실시예에 따른 암호화 및 복호화 시스템에 관한 구성 블록도,
도 2는 RSA 알고리즘에 따른 데이터의 개략적인 암호화 복호화 과정을 나타내는 순서도,
도 3은 ECC 알고리즘에 따른 데이터의 개략적인 암호화 복호화 과정을 나타내는 순서도,
도 4는 도 1의 서버 및 디스플레이장치 각각에서 수행되는 암호화 및 복호화 방법을 나타내는 순서도,
도 5는 본 발명의 실시예에 따른 암호화 및 복호화 방법의 순서도이다.
도 2는 RSA 알고리즘에 따른 데이터의 개략적인 암호화 복호화 과정을 나타내는 순서도,
도 3은 ECC 알고리즘에 따른 데이터의 개략적인 암호화 복호화 과정을 나타내는 순서도,
도 4는 도 1의 서버 및 디스플레이장치 각각에서 수행되는 암호화 및 복호화 방법을 나타내는 순서도,
도 5는 본 발명의 실시예에 따른 암호화 및 복호화 방법의 순서도이다.
이하에서는 첨부도면을 참조하여 본 발명에 대해 상세히 설명한다. 이하 실시예에서는 본 발명의 사상과 직접적인 관련이 있는 구성들에 관해서만 설명하며, 그 외의 구성에 관해서는 설명을 생략한다. 그러나, 본 발명의 사상이 적용된 장치 또는 시스템을 구현함에 있어서, 이와 같이 설명이 생략된 구성이 불필요함을 의미하는 것이 아님을 밝힌다.
도 1은 본 발명의 실시예에 따른 암호화 및 복호화 시스템에 관한 구성 블록도이다.
본 실시예에 따른 시스템은, 평문을 암호문으로 암호화하는 암호문 생성장치로서의 서버(200)와, 암호문 생성장치(200)로부터 생성된 암호문을 수신하여 다시 평문으로 복호화하는 복호장치로서의 클라이언트(100)를 포함한다.
또한, 본 실시예에 따른 클라이언트(100)는 컴퓨터본체, 셋탑박스(set-top box)와 같이 영상신호 또는 영상데이터를 처리하는 영상처리장치나, 또는 TV, 휴대용 멀티미디어 플레이어(portable multimedia player), 모바일 폰(mobile-phone) 등과 같이 영상을 표시 가능한 디스플레이장치로 구현된다.
그러나, 이상은 하나의 구현 예시일 뿐이며, 서버(200) 또는 클라이언트(100)는 평문의 암호화 및 복호화가 가능한 다양한 형식의 전자장치로 구현될 수 있다.
도 1에 도시된 바와 같이, 본 실시예에 따른 디스플레이장치(1)는 영상신호/영상데이터에 기초한 영상을 표시하며 또한 외부로부터 데이터를 수신 가능한 장치로 구현된다. 디스플레이장치(1)는 외부의 영상공급원(미도시)으로부터 영상신호를 수신하는 영상수신부(110)와, 영상수신부(110)에 수신되는 영상신호를 영상처리 프로세스에 따라서 처리하는 영상처리부(120)와, 영상처리부(120)에 의해 처리되는 영상신호를 영상으로 표시하는 디스플레이부(130)와, 서버(200)와 통신하며 서버(200)와의 사이에 한정되지 않은 신호/데이터/정보를 송수신하는 통신부(140)를 포함한다.
한편, 서버(200)는 디스플레이장치(1)와 통신하는 서버통신부(210)와, 서버(200)의 다양한 동작을 제어하는 서버처리부(220)를 포함한다.
이하, 디스플레이장치(1)에 포함된 각 구성에 관해 설명한다.
영상수신부(110)는 외부 영상공급원(미도시)으로부터 유선/무선으로 영상신호를 수신하여 영상처리부(120)에 전달하며, 수신하는 영상신호의 규격 및 디스플레이장치(100)의 구현방식에 대응하여 다양한 방식을 가진다. 예를 들면, 영상수신부(110)는 디스플레이장치(100)가 TV로 구현되는 경우에, 방송국(미도시)으로부터 송출되는 RF(radio frequency)신호, 컴포지트(composite)/컴포넌트(component) 비디오, 슈퍼 비디오(super video), SCART, HDMI(high definition multimedia interface), 디스플레이포트(DisplayPort), UDI(unified display interface), 또는 와이어리스(wireless) HD 규격 등에 의한 영상신호를 수신할 수 있다. 영상수신부(110)는 영상신호가 방송신호인 경우에 이 방송신호를 채널 별로 튜닝하는 튜너(tuner)를 포함한다.
또는, 디스플레이장치(100)가 휴대용 멀티미디어 플레이어 또는 모바일 폰인 경우, 디스플레이장치(100)는 영상신호를 수신하는 별도의 영상수신부(110)의 구성 대신에 통신부(140)를 통한 영상데이터 패킷이 영상처리부(120)에 전달되도록 구현될 수도 있다.
영상처리부(120)는 영상수신부(110)로부터 수신되는 영상신호에 대해, 기 설정된 다양한 영상처리 프로세스(process)를 수행한다. 영상처리부(120)는 이러한 프로세스를 수행한 영상신호를 디스플레이부(130)에 출력함으로써, 디스플레이부(130)에 해당 영상신호에 기초하는 영상이 표시되게 한다.
영상처리부(120)가 수행하는 영상처리 프로세스의 종류는 한정되지 않는 바, 예를 들면 영상신호의 영상 포맷에 대응하는 디코딩(decoding), 인터레이스(interlace) 방식의 영상신호를 프로그레시브(progressive) 방식으로 변환하는 디인터레이싱(de-interlacing), 영상신호를 기 설정된 해상도로 조정하는 스케일링(scaling), 영상 화질 개선을 위한 노이즈 감소(noise reduction), 디테일 강화(detail enhancement), 프레임 리프레시 레이트(frame refresh rate) 변환 등을 포함할 수 있다.
영상처리부(120)는 이러한 영상처리 프로세스 이외에도, 서버(200)로부터 수신되는 데이터의 특성에 따라서 해당 데이터를 처리할 수 있다. 예를 들면, 영상처리부(120)는 서버(200)로부터 특정 어플리케이션을 다운로드하여 실행시키거나 또는 서버(200)가 제공하는 웹 페이지를 표시할 수 있다.
영상처리부(120)는 여러 기능을 통합시킨 SOC(system-on-chip), 또는 이러한 각 프로세스를 독자적으로 수행할 수 있는 개별적인 구성들이 인쇄회로기판 상에 장착됨으로써 영상처리보드(미도시)로 구현된다.
디스플레이부(130)는 영상처리부(120)로부터 출력되는 영상신호에 기초하여 영상을 표시한다. 디스플레이부(130)의 구현 방식은 한정되지 않는 바, 액정(liquid crystal), 플라즈마(plasma), 발광 다이오드(light-emitting diode), 유기발광 다이오드(organic light-emitting diode), 면전도 전자총(surface-conduction electron-emitter), 탄소 나노 튜브(carbon nano-tube), 나노 크리스탈(nano-crystal) 등의 다양한 디스플레이 방식으로 구현될 수 있다.
디스플레이부(130)는 그 구현 방식에 따라서 부가적인 구성을 추가적으로 포함할 수 있다. 예를 들면, 디스플레이부(130)가 액정 방식인 경우, 디스플레이부(130)는 액정 디스플레이 패널(미도시)과, 이에 광을 공급하는 백라이트유닛(미도시)과, 패널(미도시)을 구동시키는 패널구동기판(미도시)을 포함한다.
통신부(140)는 기 설정된 유선/무선 통신 프로토콜(protocol)에 따라서 외부 네트워크에 접속되며, 디스플레이장치(100)가 동일 네트워크에 접속된 서버(200)와의 사이에 통신을 수행하도록 한다. 통신부(140)는 영상처리부(120)가 서버(200)와의 사이에 소정의 데이터를 송신할 수 있도록 양방향 통신을 수행한다. 즉, 통신부(140)는 영상처리부(120)의 제어에 의해 저장부(160)에 저장된 데이터를 서버(200)로 전송하거나, 또는 서버(200)로부터 수신되는 데이터를 영상처리부(120)에 전달할 수 있다.
이하, 서버(200)에 포함된 각 구성에 관해 설명한다.
서버통신부(210)는 디스플레이장치(100)와의 사이에 다양한 데이터를 송수신한다. 서버통신부(210)는 디스플레이장치(100)로부터 수신되는 데이터를 서버처리부(220)에 전달하며, 또는 서버처리부(220)로부터 전달되는 데이터를 디스플레이장치(100)로 전달한다. 이를 위하여, 서버통신부(210)는 통신부(140)에 대응하도록 기 설정된 프로토콜에 따르는 네트워크 상에 접속된다.
서버처리부(220)는 서버통신부(210)에 수신되는 데이터에 대응하여 기 설정된 동작을 수행한다. 예를 들면, 서버처리부(220)는 서버(200)에 구비된 특정 데이터에 대한 요청을 디스플레이장치(1)로부터 서버통신부(210)를 통해 수신하면, 해당 데이터를 서버통신부(210)를 통해 디스플레이장치(1)로 전송한다.
여기서, 서버처리부(220)는 기 설정된 암호 알고리즘에 따라서 평문인 데이터를 암호화시킨 암호문을 생성하고, 이 생성한 암호문을 디스플레이장치(1)에 전송한다. 디스플레이장치(1)는 수신한 암호문을 다시 평문으로 복호화시킴으로써, 해당 평문이 서버(200)로부터 디스플레이장치(1)로의 전달 과정에서 인가되지 않은 제3자에 의해 해독되어 인터셉트되는 것을 방지한다.
이러한 암호 알고리즘은 RSA(Rivest-Shamir-Adleman) 또는 ECC(Elliptic Curve Cryptosystem) 시스템과 같은 공개키 암호(Public Key Cryptosystem) 알고리즘이 적용될 수 있다.
이하, RSA 시스템을 적용한 데이터의 개략적인 암호화 복호화 과정에 관해 도 2를 참조하여 설명한다. 도 2는 이러한 과정을 나타내는 순서도이다.
도 2에 도시된 바와 같이, RSA 공개키 암호 알고리즘에 기초하여, 서버(200)가 평문 M을 암호문 C로 암호화하고, 디스플레이장치(1)가 암호문 C를 다시 평문 M으로 복호화한다고 한다.
두 개의 소수를 곱한 결과값이 있을 때, 두 소수를 곱하여 결과값을 구하는 건 쉽지만, 반대로 이 결과값으로부터 해당 결과값이 산출되기 위한 두 소수를 구하는 것은 매우 어렵다. 이는, 수학적으로 역방향 계산이 어렵다는 것을 의미한다.
RSA 알고리즘은 이와 같이 소인수분해의 해결이 곤란하다는 점에 착안하여 암호화에 소인수분해 개념을 적용시킨 것이다. 이에 따르면, 평문의 암호화에는 공개키가 필요하며, 암호문의 복호화에는 개인키가 필요하다.
공개키 및 개인키의 생성은 다음과 같은 과정에 따라서 이루어진다.
우선 충분히 큰 소수 p와 q가 결정된다(S100). p와 q는 클수록 암호화의 안정성이 높아진다.
p와 q가 결정되면 이에 따라서 RSA 모듈러스(modulus) n과, 오일러 파이 함수 Φ(n)이 산출된다(S110). 여기서, n은 n=p*q, Φ(n)은 Φ(n)=(p-1)(q-1)로 산출된다.
임의의 값인 e가 결정된다(S120). 여기서, e는 1<e<Φ(n)을 만족하고 Φ(n)과 서로 소 관계이어야 한다.
e의 결정에 따라서 d가 산출된다(S130). 여기서, d는 e*d≡1 (mod Φ(n))을 만족하는 수이다. 여기서, mod는 모듈러스 연산자이다.
이와 같은 방법에 따라서 n, e, d가 결정되면, 이 중에서 e 및 n이 공개키로, d가 개인키/비밀키로 설정된다(S140). 서버(200)는 이러한 공개키를 가지고 C=Me mod n의 방법에 의해 암호문 C를 산출하여 디스플레이장치(1)에 전달한다(S150). 디스플레이장치(1)는 암호문 C를 수신하면 개인키를 가지고 M=Cd mod n의 방법에 의해 암호문 C를 평문 M으로 복호화한다(S160).
즉, 개인키 d만 가지고 있으면, 공개키는 공개되어 있는 상태이므로 암호문 C의 해독이 가능하다. 따라서, 평문 M을 보호하기 위해서는 개인키 d를 드러나지 않게 하는 것이 매우 중요하다.
이는, ECC 알고리즘의 경우에도 유사하게 적용할 수 있다. ECC 알고리즘은 유한체(finite fields) 상에서 정의된 타원곡선 군에서의 이산대수 문제에 기초하여 제안된 알고리즘이다. 이하, ECC 시스템을 적용한 데이터의 개략적인 암호화 복호화 과정에 관해 도 3을 참조하여 설명한다. 도 3은 이러한 과정을 나타내는 순서도이다.
도 3에 도시된 바와 같이, 개인키 x와, 공개키 P 및 Q가 결정된다(S200). 여기서, P는 기 설정된 유한체 F 상의 타원곡선군 E(F)에서 큰 위수를 가지는 좌표로 결정되며, Q는 Q=x*P로 결정된다. x는 임의로 선택된 상수이다.
서버(200)는 두 개의 암호문인 C1 및 C2를 생성하여 디스플레이장치(1)에 전달한다(S210). 여기서, C1 및 C2는 각각 C1=r*P, C2=M+r*Q로 산출되며, r은 임의로 랜덤하게 선택된 정수이다.
디스플레이장치(1)는 암호문인 C1 및 C2를 수신하면, M=C2-x*C1의 방법에 의해 평문 M을 해독한다(S220). 즉, 앞서 RSA 알고리즘의 경우와 마찬가지로, ECC 알고리즘 또한 평문의 해독에 있어서 개인키 x가 필요한 바, 이 개인키 x를 드러나지 않게 보호하는 것이 평문 M의 보안에서 결정적인 역할을 담당한다.
그런데, 소프트웨어만으로 암호를 보호하는 공개키 암호 알고리즘의 특성 상, 만일 디스플레이장치(1)에 대해 메모리 상의 코드 분석을 통한 화이트박스 공격이 시도된다면, 디스플레이장치(1)에서 암호문의 복호화가 수행되는 동안에 상기한 개인키가 공격자에게 노출될 수 있다.
따라서, 본 발명의 실시예에 따르면, 암호문의 전달과정 및 암호문의 해독과정에서 화이트박스 공격에 대한 비밀키의 노출을 방지하기 위해 다음과 같은 방법을 적용한다. 서버(200)는 비밀키를 기 설정된 복수의 다항함수로 분해하고, 분해된 복수의 다항함수에 기초하여 생성한 암호문을 디스플레이장치(1)에 전달한다. 이러한 복수의 다항함수는 디스플레이장치(1)에 기 저장되어 있으며, 디스플레이장치(1)는 암호문의 복호화 시에 이러한 복수의 다항함수를 곱셈연산하여 적용함으로써, 복호화 과정에서 코드 상에 비밀키를 노출시키지 않고도 평문을 도출한다.
이에 의하여, 암호문의 전달 및 복호화 과정에서 화이트박스 공격이 수행되더라도, 이러한 공격으로부터 비밀키를 보호하고 평문을 도출할 수 있다.
이하, RSA 알고리즘 상에서 본 발명의 사상을 구현하는 실시예에 관해 설명한다. ECC 알고리즘의 경우 또한 본 발명의 사상을 응용하여 적용할 수 있다.
RSA 알고리즘 상에서 복호화는, 암호문을 x, RSA 모듈러스를 n이라고 할 때, [xa mod n]을 구현하는 과정이다. 본 실시예에 따르면, 디스플레이장치(1)가 복호화를 수행할 때에 [xa mod n=∏(xa_i+fi(x)) mod n]이 되도록, 서버(200)는 비밀키 a를 복수의 다항함수로 분해하여 비밀키가 노출되지 않도록 구성한다.
여기서, a_i=ai이고, ∏는 곱셈(multiplication) 연산자이다. 따라서, [∏(xa_i+fi(x))=(x^a1+f1(x))+(x^a2+f2(x))+...+(x^ai+fi(x))]이 된다.
또한, 비밀키 노출 방지에 대한 안정성을 높이기 위해, 서버(200)는 분해된 복수의 다항함수 각각에 대해 랜덤하게 결정된 성분을 부가한다. 이들 성분은 디스플레이장치(1)의 복호화 과정에서 각 다항함수들의 곱셈연산에 의해 서로 상쇄되어 항등원이 산출되도록 결정된다. 이 때, 이들 성분은 복호화 시 디스플레이장치(1)에 입력되는 암호문에 기초하도록 설정되는 바, 예를 들면 암호문의 해쉬(hash) 함수 연산이 이에 적용될 수도 있다.
예를 들면, [xa mod n]에서, ∏xa를 ∏((ri^x')*xa_i)가 되도록 랜덤한 값인 ri를 다항함수에 부가시킨다. x'는 x를 기 설정된 해쉬 함수로 변환한 결과값이다. 디스플레이장치(1)이 [xa mod n]을 연산하여 평문을 도출하는 과정에서, 이들 ri은 곱셈연산에 의해 최종적으로 항등원, 이 경우에는 1이 되어 상쇄됨으로써, 최종결과인 평문에 영향을 미치지 않도록 한다.
이하, 서버(200) 및 디스플레이장치(1) 각각에서 수행되는 암호화 및 복호화 방법에 관해, 이하 도 4를 참조하여 보다 구체적으로 설명한다. 도 4는 이러한 과정을 나타내는 순서도이다.
도면에 도시된 각 단계의 명칭은 편의상 지칭한 것이므로 그 용어가 본 발명의 사상을 한정하지 않는다. 또한, 적용되는 함수 또는 다항식은 설계 단계에서 다양한 수학적 형태를 가질 수 있으므로 그 내용을 한정할 수 없는 바, 본 예시에서는 구체적인 수학식의 내용에 관해서는 그 설명을 생략한다.
도 4에 도시된 바와 같이, 패러미터 구성(Parameter Construction) 단계(S300)에서, 서버(200)는 비밀키 d, RSA 모듈러스 n, n을 구성하는 소수인 p와 q, 비밀키의 분해를 위하여 임의로 지정된 수 k를 입력받는다. 이러한 입력값에 기초하여, 서버(200)는 랜덤하게 결정된 부가 성분인 Qi를 도출하고, 비밀키 d에 대해 Qi를 적용한 di를 산출한다.
즉, di는 비밀키 d가 다항함수로 분해되고 랜덤한 부가 성분이 적용된 형태를 가진다.
키 분할(Key Devision) 단계(S310)에서, 서버(200)는 앞선 패러미터 구성 단계(S300)에서 구성된 비밀키를 변형시킨다. 서버(200)는 새로이 상수 w를 입력받아, Qi에 적용하여 sij를 산출한다. sij는 i 및 j에 의한 함수로서, j는 w 및 Qi의 연산에 의해 결정된다. 이에 의하여, 본 단계(S310)에서는 앞서 산출된 di를 해독하기 위한 Qi의 형태가 변형됨으로써, 해독을 곤란하게 한다.
다항식 구성(Polynomial Construction) 단계(S320)에서, 서버(200)는 다항식 보간법을 이용할 수 있는 환경을 구성하여, 입력값에 대응하는 다항식을 출력한다. 서버(200)는 분해된 다항함수의 곱셈연산 시에 코드분석에 의해서 각 다항함수가 노출되는 것을 방지하고 비밀키의 안전성을 확보하기 위해, x, Qi, sij, n, x의 해쉬함수인 x' 등의 값을 적용하여 gijn(x)를 산출한다.
한편, 디스플레이장치(1)는 암호문 변환(Cipertext Transformation) 단계(S330)에서, 서버(200)로부터 수신한 암호문을 기 설정된 해쉬함수에 적용하여 x'를 산출한다. 이는 이후 단계에서 곱셈연산이 수행될 때에 연산량이 줄도록 할 수 있다.
숨김펑션(Hiding Function) 단계(S340)에서, 디스플레이장치(1)는 다항식의 노출을 방지하기 위해, 앞서 다항식 구성 단계(S320) 출력된 함수를 이용하여 다항식 보간법으로 지수승에 필요한 다항식을 출력한다. 예를 들면, 디스플레이장치(1)는 gijn(x)를 패러미터 n이 제외된 함수 fij(x)로 변환한다. 이로써, 화이트박스 공격에 의해서도 다항함수가 노출되는 것을 방지할 수 있다.
서브펑션(SubFunction) 단계(S350)에서, 디스플레이장치(1)는 복수의 다항함수로 분할된 비밀키에 대한 지수승을 위한 다항식을 구성한다. 예를 들면, 디스플레이장치(1)는 n, w, fij(x) 등을 입력받아 패러미터 j가 제외된 함수 fi(x)로 변환한다.
메인펑션(MainFunction) 단계(S360)에서, 디스플레이장치(1)는 n, di, fi(x)를 입력받아 최종적으로 f(x)를 출력한다. [f(x)≡xd mod n]이므로, 디스플레이장치(1)는 본 단계에서 평문 f(x)를 도출할 수 있다.
이와 같은 프로세스에 따라서 평문의 복호화에 사용되는 비밀키에 대한 보안을 향상시킬 수 있다.
이상 실시예에서는 RSA 알고리즘의 경우에 관하여 설명하였으나, ECC 알고리즘의 경우 또한 본 발명의 사상이 적용될 수 있다.
즉, ECC 알고리즘의 경우, 서버(200)가 C1=r*P, C2=M+r*Q에 의해 암호문을 생성하고, 디스플레이장치(1)가 M=C2-x*C1에 의해 평문으로 복호화한다고 할 때(도 3 참조), 비밀키 x를 복수의 다항함수로 분해하고, 분해된 각 다항함수에 랜덤한 부가 성분을 추가함으로써 비밀키의 보안을 향상시킬 수 있다.
여기서, 랜덤한 부가 성분을 추가할 때에는, 타원곡선 상에서 랜덤한 좌표가 부가 성분으로 선택되는데, 이 때 복호화 단계에서 각 부가 성분이 항등원으로 상쇄되도록 마련된다.
이하, 본 발명의 실시예에 따른 암호화 및 복호화 방법에 관해 도 5를 참조하여 설명한다. 도 5는 이러한 과정을 나타내는 제어 흐름도이다.
도 5에 도시된 바와 같이, 서버(200)는 평문을 비밀키에 기초하여 암호문으로 변환시킨다(S400). 서버(200)는 비밀키를 기 설정된 복수의 다항함수로 분해하고(S410), 분해된 다항함수 각각에 대해 랜덤하게 결정된 성분을 부가한다(S420). 그리고, 서버(200)는 암호문을 디스플레이장치(1)에 전달한다(S430).
디스플레이장치(1)는 서버(200)에서 암호문의 생성 시 적용된 복수의 다항함수가 기 저장되어 있으며, 이 복수의 다항함수에 기초하여 암호문을 평문으로 복호화한다(S440). 본 실시예에 따르면, 복호화 과정에서 화이트박스 공격으로부터 비밀키가 노출되는 것을 방지할 수 있다.
상기한 실시예는 예시적인 것에 불과한 것으로, 당해 기술 분야의 통상의 지식을 가진 자라면 다양한 변형 및 균등한 타 실시예가 가능하다. 따라서, 본 발명의 진정한 기술적 보호범위는 하기의 특허청구범위에 기재된 발명의 기술적 사상에 의해 정해져야 할 것이다.
1 : 디스플레이장치
110 : 영상수신부
120 : 영상처리부
130 : 디스플레이부
140 : 통신부
200 : 서버
210 : 서버통신부
220 : 서버처리부
110 : 영상수신부
120 : 영상처리부
130 : 디스플레이부
140 : 통신부
200 : 서버
210 : 서버통신부
220 : 서버처리부
Claims (11)
- 복호장치의 암호문 복호화 방법에 있어서,
기 설정된 공개키 암호 알고리즘에 따라서 암호문을 평문으로 복호화하는 비밀키를 복수의 다항함수 형태로 분해하는 단계와;
암호문 생성장치로부터 암호문을 수신하는 단계와;
상기 수신된 암호문을 상기 복수의 다항함수에 기초하여 상기 평문으로 복호화하는 단계를 포함하고,
상기 복수의 다항함수는, 상기 암호문 생성장치에서 상기 복수의 다항함수 각각에 대해 랜덤하게 결정된 성분이 부가되며,
상기 복수의 다항함수 각각에 대해 부가된 성분은, 상기 복호장치에서 상기 분해된 복수의 다항함수의 곱셈연산 시, 상기 곱셈연산에 의해 복수의 상기 성분이 상쇄되어 항등원이 산출되도록 결정되는 것을 특징으로 하는 복호장치의 암호문 복호화 방법. - 제1항에 있어서,
상기 수신된 암호문을 상기 복수의 다항함수에 기초하여 상기 평문으로 복호화하는 단계는, 상기 복수의 다항함수를 곱셈연산하고, 상기 곱셈연산된 다항함수에 기초하여 상기 암호문을 상기 평문으로 복호화하는 단계를 포함하는 것을 특징으로 하는 복호장치의 암호문 복호화 방법. - 삭제
- 제1항에 있어서,
상기 암호문 생성장치에서 분해된 상기 복수의 다항함수는, 기 설정된 상수의 상기 다항함수로 분해되는 것을 특징으로 하는 복호장치의 암호문 복호화 방법. - 제1항에 있어서,
상기 공개키 암호 알고리즘은 RSA(Rivest-Shamir-Adleman) 또는 ECC(Elliptic Curve Cryptosystem) 시스템에 따르는 것을 특징으로 하는 복호장치의 암호문 복호화 방법. - 암호문을 복호화하는 복호장치에 있어서,
암호문 생성장치와 통신하는 통신부와;
기 설정된 공개키 암호 알고리즘에 따라서 암호문을 평문으로 복호화하는 비밀키를 복수의 다항함수 형태로 분해하며, 상기 통신부를 통해 상기 암호문 생성장치로부터 암호문을 수신하면, 상기 수신된 암호문을 상기 복수의 다항함수에 기초하여 상기 평문으로 복호화하는 처리부를 포함하고,
상기 복수의 다항함수는, 상기 암호문 생성장치에서 상기 복수의 다항함수 각각에 대해 랜덤하게 결정된 성분이 부가되며,
상기 복수의 다항함수 각각에 대해 부가된 성분은, 상기 복호장치에서 상기 분해된 복수의 다항함수의 곱셈연산 시, 상기 곱셈연산에 의해 복수의 상기 성분이 상쇄되어 항등원이 산출되도록 결정되는 것을 특징으로 하는 복호장치. - 제6항에 있어서,
상기 처리부는, 상기 복수의 다항함수를 곱셈연산하고, 상기 곱셈연산된 다항함수에 기초하여 상기 암호문을 상기 평문으로 복호화하는 것을 특징으로 하는 복호장치. - 삭제
- 제6항에 있어서,
상기 암호문 생성장치에서 분해된 상기 복수의 다항함수는, 기 설정된 상수의 상기 다항함수로 분해된 것을 특징으로 하는 복호장치. - 제6항에 있어서,
상기 공개키 암호 알고리즘은 RSA 또는 ECC 시스템에 따르는 것을 특징으로 하는 복호장치. - 제6항에 있어서,
상기 암호문 생성장치는 서버를 포함하며,
상기 복호장치는 상기 서버와 통신하는 영상처리장치를 포함하는 것을 특징으로 하는 복호장치.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110126798A KR101906225B1 (ko) | 2011-11-30 | 2011-11-30 | 복호장치와, 복호장치의 암호문 복호화 방법 |
US13/618,658 US8781113B2 (en) | 2011-11-30 | 2012-09-14 | Decryption apparatus and method of decrypting ciphertext of the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110126798A KR101906225B1 (ko) | 2011-11-30 | 2011-11-30 | 복호장치와, 복호장치의 암호문 복호화 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20130060636A KR20130060636A (ko) | 2013-06-10 |
KR101906225B1 true KR101906225B1 (ko) | 2018-12-10 |
Family
ID=48466884
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110126798A KR101906225B1 (ko) | 2011-11-30 | 2011-11-30 | 복호장치와, 복호장치의 암호문 복호화 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8781113B2 (ko) |
KR (1) | KR101906225B1 (ko) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SG10201405852QA (en) * | 2014-09-18 | 2016-04-28 | Huawei Internat Pte Ltd | Encryption function and decryption function generating method, encryption and decryption method and related apparatuses |
US10298393B1 (en) * | 2015-04-29 | 2019-05-21 | Compunetix, Inc. | Method and apparatus for factoring large integers |
KR102382952B1 (ko) * | 2019-01-11 | 2022-04-05 | 주식회사 크립토랩 | 근사 계산에 대한 계산 검증 |
WO2020231439A1 (en) * | 2019-05-16 | 2020-11-19 | Compunetix, Inc. | Method and apparatus for factoring large integers |
US12034849B1 (en) * | 2022-09-02 | 2024-07-09 | Compunetix, Inc. | Factoring large integers |
CN115348017B (zh) * | 2022-10-18 | 2023-02-07 | 阿里巴巴(中国)有限公司 | 密文处理方法以及装置 |
CN116170142B (zh) * | 2023-04-20 | 2023-07-18 | 北京信安世纪科技股份有限公司 | 分布式协同解密方法、设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070127721A1 (en) * | 2005-11-10 | 2007-06-07 | Atallah Mikhail J | Method and apparatus for hiding a private key |
US20110116625A1 (en) | 2008-03-05 | 2011-05-19 | Irdeto B.V. | Cryptographic system |
US20110150213A1 (en) | 2008-03-05 | 2011-06-23 | Irdeto B.V. | White-box implementation |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100490401B1 (ko) * | 2002-03-26 | 2005-05-17 | 삼성전자주식회사 | TC(Thin-Client)환경에서 영상 처리 장치 및 방법 |
KR101486424B1 (ko) * | 2008-09-12 | 2015-01-26 | 삼성전자주식회사 | 에러 정정 회로, 에러 정정 회로를 구비하는 플래시 메모리시스템 및 에러 정정 회로의 동작 방법 |
-
2011
- 2011-11-30 KR KR1020110126798A patent/KR101906225B1/ko active IP Right Grant
-
2012
- 2012-09-14 US US13/618,658 patent/US8781113B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070127721A1 (en) * | 2005-11-10 | 2007-06-07 | Atallah Mikhail J | Method and apparatus for hiding a private key |
US20110116625A1 (en) | 2008-03-05 | 2011-05-19 | Irdeto B.V. | Cryptographic system |
US20110150213A1 (en) | 2008-03-05 | 2011-06-23 | Irdeto B.V. | White-box implementation |
Also Published As
Publication number | Publication date |
---|---|
US20130136257A1 (en) | 2013-05-30 |
KR20130060636A (ko) | 2013-06-10 |
US8781113B2 (en) | 2014-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101906225B1 (ko) | 복호장치와, 복호장치의 암호문 복호화 방법 | |
US12101415B2 (en) | Method of RSA signature or decryption protected using a homomorphic encryption | |
US10749675B2 (en) | Homomorphic white box system and method for using same | |
US8892908B2 (en) | Cryptography module for use with fragmented key and methods for use therewith | |
EP2255317B1 (en) | Cryptographic system | |
US8705730B2 (en) | Elliptic curve cryptography with fragmented key processing and methods for use therewith | |
CN101645773B (zh) | 基于椭圆曲线加密法的签密方案 | |
CN102067080A (zh) | 白盒实现 | |
EP3010173B1 (en) | Key storage device, key storage method, and program therefor | |
US8306220B2 (en) | Method to generate a private key in a boneh-franklin scheme | |
EP2225846B1 (en) | Method to generate a private key in a Boneh-Franklin scheme | |
CN111431846B (zh) | 数据传输的方法、装置和系统 | |
US20230138384A1 (en) | Method for securely performing a public key algorithm | |
JP2007142897A (ja) | 署名装置、検証装置、復号装置、平文復元装置、情報提供装置、署名システム、通信システム、鍵生成装置及び署名方法 | |
CN116248270A (zh) | 一种明文加密的方法、装置、电子设备以及存储介质 | |
KR101035394B1 (ko) | 공개키 생성시간좌표를 이용한 ecc 인증방법 | |
Coetzee | The development of an efficient and secure product entitlement system for Pay-TV in modern attack scenarios | |
JP2007300423A (ja) | 暗号化装置、復号化装置、暗号化復号化装置及びそれを用いた暗号化復号化方法 | |
JP2006173805A (ja) | 端末装置、通信システム及び通信方法 | |
KR20100095069A (ko) | 소스인증 및 부인방지를 제공하는 수신제한 시스템 및 그 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |