KR20180037254A - 비보안 단말기로부터의 트랜잭션을 보안화하는 방법 - Google Patents

비보안 단말기로부터의 트랜잭션을 보안화하는 방법 Download PDF

Info

Publication number
KR20180037254A
KR20180037254A KR1020187006366A KR20187006366A KR20180037254A KR 20180037254 A KR20180037254 A KR 20180037254A KR 1020187006366 A KR1020187006366 A KR 1020187006366A KR 20187006366 A KR20187006366 A KR 20187006366A KR 20180037254 A KR20180037254 A KR 20180037254A
Authority
KR
South Korea
Prior art keywords
terminal
user
image
program
displayed
Prior art date
Application number
KR1020187006366A
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 스카이코드
Publication of KR20180037254A publication Critical patent/KR20180037254A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/32Payment architectures, schemes or protocols characterised by the use of specific devices or networks using wireless devices
    • G06Q20/322Aspects of commerce using mobile devices [M-devices]
    • G06Q20/3226Use of secure elements separate from M-devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • G06Q20/4012Verifying personal identification numbers [PIN]
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus 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
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus 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
    • G09C1/04Apparatus 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 with sign carriers or indicators moved relative to one another to positions determined by a permutation code, or key, so as to indicate the appropriate corresponding clear or ciphered text
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C5/00Ciphering apparatus or methods not provided for in the preceding groups, e.g. involving the concealment or deformation of graphic data such as designs, written or printed messages
    • 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/002Countermeasures against attacks on cryptographic mechanisms
    • 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/16Obfuscation or hiding, e.g. involving white box

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Business, Economics & Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Accounting & Taxation (AREA)
  • Signal Processing (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Finance (AREA)
  • User Interface Of Digital Computer (AREA)
  • Storage Device Security (AREA)
  • Telephone Function (AREA)

Abstract

본 발명은 보안 프로세서(SRV)에 의해 사용자를 인증하는 방법에 관한 것이다. 이 방법은, 선택 가능한 영역들을 갖는 이미지(IM)를 사용자의 단말기(MT)의 디스플레이 스크린 상에 디스플레이하도록 하는 불가해한(impenetrable) 프로그램(APG, APG1)을, 상기 단말기(MT)에 의해 실행하는 단계로서, 각각의 선택 가능한 영역은 라벨 또는 아이콘이 할당되고 상기 이미지 내에서 랜덤 데이터에 의해 규정된 분포를 가지며, 상기 이미지는 사용자가 개별적으로는 이해할 수 없는 프레임들(IM1)을 포함하고, 상기 라벨들 또는 아이콘들이 사용자가 이해 가능한 방식으로 디스플레이 스크린 상에 보이도록 사용자의 시각 시스템의 지속성이 이용되기에 적합한 레이트(rate)로 상기 프레임들이 연속적으로 디스플레이되는, 상기 불가해한 프로그램을 실행하는 단계; 상기 디스플레이된 이미지와 관련하여, 사용자가 상기 단말기의 인터페이스를 이용하여 지정한 상기 디스플레이 스크린 상의 위치들(Pos<i>)을 상기 단말기에 의해 수집하는 단계; 상기 사용자에 의해 지정된 위치들을 상기 단말기에 의해 상기 보안 프로세서로 전송하는 단계; 및 상기 디스플레이된 이미지와 관련된 상기 지정된 위치들을 상기 보안 프로세서에 의해 확인하는 단계로서, 상기 지정된 위치들이 상기 보안 프로세서에 알려진 사용자의 인증 데이터에 대응하는 경우에 상기 사용자가 인증되는, 상기 확인하는 단계;를 포함한다.

Description

비보안 단말기로부터의 트랜잭션을 보안화하는 방법
본 발명은 단말기와 원격 서버 간의 인증 방법에 관한 것이다.
은행 업무를 포함하여 인터넷에 연결된 단말기를 통해 점점 더 많은 서비스를 이용할 수 있다. 특히, 전자 상거래가 크게 성장했다. 이러한 맥락에서 사용된 단말기는 개인용 컴퓨터, 디지털 태블릿, 스마트 폰일 수 있다. 일반적으로, 이들 단말기는 메인 프로세서, 디스플레이 스크린에 접속되거나 접속 가능한 그래픽 처리 유닛(GPU), 인터넷과 같은 데이터 통신 네트워크에 접속하기 위한 회로, 및 키패드, 마우스 또는 디스플레이 스크린과 관련된 터치 감지 표면과 같은 제어 수단을 포함한다.
이러한 단말기를 사용하는 소위 "온라인" 서비스로의 액세스는 보안 문제를 야기한다. 사실, "악성" 프로그램을, 단말기 내에 설치하고 단말기의 메인 프로세서에 의해 실행하여, 메인 프로세서가 사용할 수 있는 전체 메모리뿐만 아니라 키패드를 사용하거나 스크린에 디스플레이된 이미지의 지정된 위치에 디스플레이되거나 입력된 데이터에 액세스할 수 있다. 이러한 악성 프로그램은 단말기에서 수행된 가능한 트랜잭션을 스누핑하고 이러한 트랜잭션 중에 도입되거나 조작된 모든 비밀 데이터를 검색하여 이들을 네트워크를 통해서 전송하도록 구성될 수 있다.
그러한 트랜잭션의 보안을 보장하기 위해, 일반적으로 보안 요소로서 그리고 암호 계산을 위해, 일반적으로 이동 전화에 제공되는 SIM 카드(가입자 식별 모듈)의 프로세서와 같은 보안 프로세서를 사용하는 것이 제안되었다. 하나 이상의 결제 애플리케이션을 실행하려면, 보안 프로세서가 결제 애플리케이션들의 수만큼의 많은 비밀 암호 키를 저장할 수 있어야 한다. 그러나, 애플리케이션을 보안 프로세서의 메모리에 로드하는 작업은 매우 안전하게 되어야 하는 복잡한 연산이다. 이를 위해, 이러한 작업은 예를 들어, TSM(Trusted Service Manager)와의 외부 상호 작용을 요구한다. SIM 카드는 이동 통신 사업자가 발행하므로 모바일 운영자는 그러한 애플리케이션을 카드에 설치하는 것을 거부할 수 있다. 또한, 휴대 전화의 도난의 경우에 또는 유지 보수 작업 중에, SIM 카드의 프로세서는 사기 의도가 있는 개인에 의한 공격을 받아 거기에 저장된 비밀 키가 노출될 수 있다.
SIM 카드의 프로세서에 설치된 보안 기능으로의 액세스는 일반적으로 단말기의 메인 프로세서에 접속된 입력 장치에 의한 비밀 코드(PIN 코드)의 입력을 필요로 한다. 결과적으로, 사용자가 입력한 비밀 코드는 반드시 메인 프로세서를 통과한다. 따라서, 메인 프로세서에 의해 실행되는 맬웨어는 이러한 비밀 코드로 액세스할 수 있다.
비밀 코드를 입력하기 위해, 키가 무작위로 배치된 키패드의 이미지를 디스플레이하는 것이 제안되었다. 이러한 방식은 악성 프로그램이, 키패드 이미지의 스크린 샷을 찍고 마우스 또는 터치 스크린을 사용하여 사용자가 클릭한 각각의 위치를 가로 채어 사용자가 입력한 키 조합을 취득하는 것을 방지한다.
또한, 사용자가 현재의 트랜잭션을 검증하기 위해 입력하는 코드인 일회용 코드를, 다른 통신 링크(예를 들어, SMS)에 의해 사용자에게 전송하는 것이 제안되어왔다. 이러한 방식은 사용자에 의한 추가 조작과 일회용 코드를 전송하기 위한 추가 비용을 필요로 한다. 이러한 방식은 스마트 폰이나 디지털 태블릿에서 수행되는 트랜잭션에도 적합하지 않다.
또한, 컴퓨터에 설치된 그래픽 프로세서의 컴퓨팅 성능을 사용하여 암호화 계산을 수행하도록 하는 방식이 이미 제안되었다. 사실, 이러한 프로세서는 대칭 또는 비대칭 암호화 및 암호 해독 계산과 같은 특정 암호화 계산을 수행하는 데 매우 적합한 병렬 컴퓨팅 아키텍처를 갖추고 있다. 그러나, 그래픽 프로세서에는 일반적으로 비휘발성 메모리가 없다. 따라서, 컴퓨터가 꺼질 때마다 애플리케이션이나 비밀 키가 사라지는 것 없이 애플리케이션이나 비밀 키를 저장할 수 없다. 이는 보안 트랜잭션을 수행하는 데 필요한 비밀 데이터를 저장하는 문제를 야기한다.
또한, 그래픽 프로세서는 외부 서버와 직접 통신할 수 없다. 따라서, 트랜잭션의 모든 데이터는 컴퓨터의 메인 프로세서에 의해 중계되며, 메인 프로세서는 컴퓨터의 통신 회선을 관리한다. 결과적으로, 컴퓨터에 설치된 악성 프로그램은 그래픽 프로세서와 서버 간에 교환되는 모든 트랜잭션 데이터를 검색하고 저장할 수 있다. 트랜잭션 데이터가 전송 전에 암호화되더라도, 악성 프로그램은 암호화된 트랜잭션 데이터를 재사용하여 상기 저장된 데이터에 대응하는 것과 동일한 트랜잭션을 수행할 수 있다.
특허 출원 공개 번호 WO2012/107698(US2014/0040633)은 원격 서버 또는 보안 프로세서와 보안 링크를 설정하기 위한 그래픽 프로세서의 개입을 포함하는 트랜잭션 방법을 설명한다. 그래픽 프로세서는 키가 랜덤 한 위치에 있는 키패드의 이미지를 디스플레이하도록 구성된다. 이러한 이미지는 그래픽 프로세서에서 연속적으로 디스플레이되는, 시각적인 암호화 프로세스에 의해 생성된 인식할 수 없는 프레임들로 분할된다. 프레임 디스플레이 빈도는 사용자의 망막 지속성을 이용하도록 조정되며, 이로써, 사용자는 연속적으로 디스플레이된 복수의 프레임으로부터 이미지를 재구성할 수 있다. 따라서, 단말기의 메인 프로세서가 실행하는 악성 프로그램은 스크린 샷을 찍음으로써, 망막 지속성에 의해 재구성된 이미지를 복구할 수 없는데, 그 이유는 프레임 디스플레이 빈도가 메인 프로세서가 스크린 샷을 찍을 수 있는 속도보다 훨씬 빠르기 때문이다.
그러나, 이러한 방식에서는, 공격자가 연속적인 부분적인 스크린 샷들로부터, 디스플레이된 이미지나 중요 데이터를 나타내는 이미지의 부분을 재구성할 수 없는 것이 아니다.
따라서, 비밀 데이터, 보다 일반적으로는 트랜잭션 데이터와 같은 민감한 데이터가 그래픽 프로세서를 갖는 단말기를 통해 이동하거나, 또는 그러한 단말기와 서버 간에 전송될 때, 또는 이러한 비밀 데이터 또는 민감한 데이터가 단말기의 키패드에의해 입력될 때, 이러한 데이터를 보호하는 것이 바람직할 수 있다.
실시형태들은 보안 프로세서에 의해 사용자를 인증하는 방법에 관한 것이고, 상기 방법은, 불가해한(impenetrable) 프로그램을 실행하여서, 선택 가능한 영역들을 갖는 이미지를 상기 단말기의 디스플레이 스크린 상에 디스플레이하도록 상기 단말기를 구성하는 단계로서, 상기 선택 가능한 영역들 각각에는 라벨 또는 아이콘이 할당되고 상기 선택 가능한 영역들은 상기 이미지 내에서 랜덤 데이터에 의해 규정된 분포를 가지며, 상기 이미지는 사용자가 개별적으로는 이해할 수 없는 프레임들을 포함하고, 상기 라벨들 또는 아이콘들이 사용자가 이해 가능한 방식으로 상기 디스플레이 스크린 상에 보이도록 상기 사용자의 시각 시스템의 지속성이 이용되기에 적합한 레이트(rate)로 상기 프레임들이 연속적으로 디스플레이되는, 상기 불가해한 프로그램을 실행하여서 상기 단말기를 구성하는 단계; 사용자가, 상기 사용자 단말기의 인터페이스를 이용하여, 상기 디스플레이된 이미지와 관련하여 지정한 상기 디스플레이 스크린 상의 위치들을, 상기 사용자 단말기에 의해서, 수집하는 단계; 및 상기 사용자에 의해 지정된 위치들을 상기 보안 프로세서에 전송하는 단계를 포함하며, 상기 지정된 위치들이 상기 보안 프로세서에 알려진, 상기 사용자의 인증 데이터에 대응하는 경우에, 상기 사용자는 상기 보안 프로세서에 의해 인증되는 것을 특징으로 한다.
일 실시형태에 따르면, 상기 방법은 보안 프로세서에 의해 상기 불가해한 프로그램을 상기 단말기로 전송하는 단계를 포함한다.
일 실시형태에 따르면, 상기 불가해한 프로그램은 상기 단말기가 트랜잭션 데이터를 디스플레이하도록 상기 단말기를 구성시킨다.
일 실시형태에 따르면, 상기 보안 프로세서에 의해 상기 사용자 단말기로 전송된 프로그램은, 상기 사용자 단말기가 상기 이미지 내의 상기 선택 가능한 영역들의 라벨들 또는 아이콘들을, 각 영역 내의 위치들에서, 및/또는 상기 프로그램에 특정된 크기로 및/또는 상기 프로그램에 특정된 폰트로, 디스플레이하도록 상기 사용자 단말기를 구성하는 것을 특징으로 한다.
일 실시형태에 따르면, 상기 사용자 단말기에 의한 상기 이미지의 디스플레이는, 상기 선택 가능한 영역들의 라벨들 또는 아이콘들을 나타내는, 상기 이미지의 각 픽셀 또는 픽셀 그룹에 대하여, 상기 이미지를 상보적인 픽셀 패턴들(complementary pixel patternms)로 연속적으로 분해하는 단계; 및 각 선택된 분해에 대해서, 상보적인 픽셀 패턴들을 연속적으로 생성하는 단계로서, 상기 생성된 상보적인 픽셀 패턴들이 사용자의 시각 시스템의 지속성을 이용하기에 적합한 레이트로 연속적으로 디스플레이되는 경우에만, 상기 선택 가능한 영역의 라벨들 또는 아이콘들이 상기 디스플레이 스크린 상에 가시적이 되는, 상기 생성하는 단계를 포함하는 것을 특징으로 한다.
일 실시형태에 따르면, 상기 사용자 단말기에 의한 상기 이미지의 디스플레이는, 상기 생성된 픽셀 패턴들이 연속적으로 디스플레이될지라도 상기 생성된 픽셀 패턴들을 인간의 시각 시스템이 결합할 수 있도록, 가변 지속 기간만큼 이격된 랜덤하게 선택된 시간들에서, 상기 생성된 픽셀 패턴들을, 상기 사용자 단말기에 의해서, 연속적으로 디스플레이하는 단계를 포함하며, 디스플레이된 이미지를 형성하는 픽셀 패턴들의 상기 디스플레이 시간들은 서로 구별되고 독립적인 것을 특징으로 한다.
일 실시형태에 따르면, 상기 보안 프로세서에 의해 상기 사용자 단말기로 전송된 상기 불가해한 프로그램은, 상기 단말기가, 랜덤 데이터를 생성하는 동작으로서, 상기 이미지 내의 상기 선택 가능한 영역들의 라벨들 또는 아이콘들의 분포가 상기 랜덤 데이터로부터 규정되는, 상기 랜덤 데이터를 생성하는 동작을 수행하고, 상기 랜덤 데이터를 암호화된 형태로 상기 보안 프로세서에 전송하도록, 상기 단말기를 구성시키며, 상기 방법은, 상기 보안 프로세서에 의해 상기 랜덤 데이터를 암호해독하는 단계; 상기 보안 프로세서에 의해, 상기 사용자 단말기에 의해 디스플레이된 상기 이미지 내의 상기 선택 가능한 영역들의 상기 라벨들 또는 아이콘들의 분포를 결정하는 단계; 및 상기 보안 프로세서에 의해, 상기 사용자에 의해 지정된 위치들로부터 상기 사용자에 의해 입력된 비밀 코드를 결정하고, 상기 선택 가능한 영역들의 상기 라벨들 또는 아이콘들의 분포를 결정하는 단계를 포함하는 것을 특징으로 한다.
일 실시형태에 따르면, 상기 불가해한 프로그램은 상기 이미지의 선택가능한 영역의 아이콘 또는 라벨을 나타내는 상기 이미지 내의 각 픽셀 또는 픽셀 그룹에 대하여, 상기 이미지의 상보적인 픽셀 패턴들로의 분해를 선택하는데 사용되는 랜덤 데이터를 생성하기 위한 난수 또는 의사 난수 생성 컴포넌트를 포함하는 것을 특징으로 한다.
실시형태들은 또한 사용자 단말기와 보안 프로세서 간에서 비밀 데이터를 공유하는 방법에 관한 것이며, 상기 방법은, 상기 단말기에 의해 비밀 데이터를 생성하는 단계와, 상기 암호화된 비밀 데이터를 상기 보안 프로세서에 전송하는 단계를 포함한다. 일 실시형태에 따르면, 상기 방법은, 상기 비밀 데이터를 생성하는 단계 및 상기 비밀 데이터를 암호화하는 단계를 구현하는 불가해한 프로그램을 상기 사용자 단말기에 의해 실행하는 단계를 포함하는 것을 특징으로 한다.
일 실시형태에 따르면, 상기 방법은 상기 보안 프로세서에 의해 상기 불가해한 프로그램의 적어도 일부를 상기 사용자 단말기로 송신하는 단계를 포함하는 것을 특징으로 한다.
일 실시형태에 따르면, 상기 방법은, 상기 사용자 단말기와 상기 보안 프로세서 간에 링크를 확립하는 단계를 포함하고, 상기 링크는 상기 사용자 단말기와 상기 보안 프로세서 간에서만 공유되는 상기 비밀 데이터에 의해 보호되는 것을 특징으로 한다.
실시형태들은 또한 보안 프로세서에 접속된 단말기로부터의 사용자를, 상기 보안 프로세서에 의해 인증하는 방법에 관한 것이고, 상기 방법은, 상기 사용자 단말기와 상기 보안 프로세서 간에서만 공유되는 비밀 데이터를 생성하기 위해, 그리고 선택 가능한 영역들을 갖는 이미지를 상기 사용자 단말기의 디스플레이 스크린 상에 디스플레이하기 위해, 상기 비밀 데이터를 공유하는 전술한 방법을 실행하도록 상기 사용자 단말기를 구성하는 프로그램을 상기 사용자 단말기 내로 로딩하는 단계로서, 상기 선택가능한 영역들 각각에는 라벨 또는 아이콘이 할당되고 상기 선택 가능한 영역들은 상기 공유된 비밀 데이터를 사용하여 상기 이미지 내에서 규정된 분포를 갖는, 상기 로딩하는 단계; 상기 사용자 단말기에 의해 상기 프로그램을 실행하여 상기 공유된 비밀 데이터를 생성하고 상기 디스플레이 스크린 상에 상기 이미지를 디스플레이하는 단계로서, 상기 이미지는 상기 사용자가 개별적으로는 이해할 수 없는 프레임들을 포함하고, 상기 프레임들은, 상기 라벨들 또는 아이콘들이 상기 사용자에게 이해 가능한 방식으로 상기 디스플레이 스크린 상에 나타나도록 상기 사용자의 시각 시스템의 지속성을 이용하기에 적합한 레이트로 연속적으로 디스플레이되는, 상기 디스플레이하는 단계; 사용자가, 상기 사용자 단말기의 인터페이스를 이용하여, 상기 디스플레이된 이미지와 관련하여 지정한 상기 디스플레이 스크린 상의 위치들을 상기 사용자 단말기가 수집하는 단계; 상기 사용자에 의해 지정된 위치들을 상기 사용자 단말기가 상기 보안 프로세서에 전송하는 단계; 및 상기 디스플레이된 이미지와 관련된 상기 지정된 위치들을 상기 보안 프로세서가 확인하는 단계로서, 상기 지정된 위치들이 상기 보안 프로세서에 알려진, 상기 사용자의 인증 데이터에 대응하는 경우에, 상기 사용자는 인증되는, 상기 확인하는 단계를 포함하는 것을 특징으로 한다.
일 실시형태에 따르면, 상기 공유된 비밀 데이터는 상기 디스플레이된 이미지의 상기 선택가능한 영역들의 분포를 규정하는 것을 특징으로 한다.
일 실시형태에 따르면, 상기 프로그램은 상기 사용자 단말기가 트랜잭션 데이터를 디스플레이하도록 상기 사용자 단말기를 구성하고, 상기 트랜잭션 데이터는 상기 사용자가 이해 불가능한 방식으로 상기 프레임들로 나타나는 것을 특징으로 한다.
일 실시형태에 따르면, 상기 보안 프로세서에 의해 상기 사용자 단말기로 전송된 프로그램은, 상기 사용자 단말기가 상기 이미지 내의 상기 선택 가능한 영역들의 라벨들 또는 아이콘들을, 각 영역 내의 위치들에서, 및/또는 상기 프로그램에 특정된 크기로 및/또는 상기 프로그램에 특정된 폰트로, 디스플레이하도록 상기 사용자 단말기를 구성하는 것을 특징으로 한다.
일 실시형태에 따르면, 상기 사용자 단말기에 의한 상기 이미지의 디스플레이는, 상기 선택 가능한 영역들의 라벨들 또는 아이콘들을 나타내는 상기 이미지의 각 픽셀 또는 픽셀 그룹에 대하여, 상기 이미지를 상보적인 픽셀 패턴들(complementary pixel patternms)로 연속적으로 분해하는 단계; 및 각 선택된 분해에 대해서, 상보적인 픽셀 패턴들을 연속적으로 생성하는 단계로서, 상기 생성된 상보적인 픽셀 패턴들이 사용자의 시각 시스템의 지속성을 이용하기에 적합한 레이트로 연속적으로 디스플레이되는 경우에만, 상기 선택 가능한 영역의 라벨들 또는 아이콘들이 상기 디스플레이 스크린 상에 가시적이 되는, 상기 생성하는 단계를 포함하는 것을 특징으로 한다.
일 실시형태에 따르면, 상기 사용자 단말기에 의한 상기 이미지의 디스플레이는, 상기 생성된 픽셀 패턴들이 연속적으로 디스플레이될지라도 상기 생성된 픽셀 패턴들을 인간의 시각 시스템이 결합할 수 있도록, 가변 지속 기간만큼 이격된 랜덤하게 선택된 시간들에서, 상기 생성된 픽셀 패턴들을, 상기 사용자 단말기에 의해서, 연속적으로 디스플레이하는 단계를 포함하며, 디스플레이된 이미지를 형성하는 픽셀 패턴들의 상기 디스플레이 시간들은 서로 구별되고 독립적인 것을 특징으로 한다.
일 실시형태에 따르면, 상기 보안 프로세서에 의해 상기 사용자 단말기로 전송된 불가해한 프로그램은, 상기 사용자 단말기가 상기 프로그램을 실행하는 프로세서의 컴퓨팅 자원들의 적어도 80 %를 점유하도록, 상기 사용자 단말기를 구성하는 것을 특징으로 한다.
일 실시형태에 따르면, 상기 보안 프로세서에 의해 송신되고 상기 사용자 단말기에 의해 실행되는 상기 불가해한 프로그램은, 다수의 순위화된 레벨들로 분포된 논리 게이트들을 포함하는 가블드 회로(garbled circuit)를 포함하고, 상기 논리 게이트들은, 상기 가블드 회로의 입력 값들만을 수신하는 제 1 레벨 그룹화 논리 게이트들(first level grouping logic gates)을 포함하며, 특정 레벨의 논리 게이트들은 하위 레벨들에 속하는 논리 게이트들로부터의 값만을 수신하거나, 상기 가블드 회로의 입력 값들만을 수신하고, 각각의 논리 게이트는 해당 논리 게이트의 각 입력 비트 및 각 출력 비트의 각 가능한 비트 값을 나타내는 가블드 값들(garbled values)과 연관되고, 각각의 논리 게이트는 진리 표와 연관되며, 상기 진리 표는, 해당 논리 게이트의 입력 이진 값들의 각 가능한 조합에 대해, 해당 논리 게이트의 입력 비트 값들의 조합에 대응하는 해당 논리 게이트의 출력 값을 나타내는 가블드 값의 암호화에 의해 획득된 값을 포함하며, 그래픽 프로세서에 의한 상기 가블드 회로의 실행은, 상기 순위화된 레벨들의 순서로 상기 다수의 레벨들의 논리 게이트들을 연속적으로 실행하는 단계로서, 상기 다수의 레벨들의 논리 게이트들 각각을 실행하는 동작은 해당 레벨의 논리 게이트들 모두를 동시에 실행하는 동작을 포함하며, 해당 논리 게이트의 실행은, 해당 논리 게이트의 가블드 입력 값들의 함수로서, 해당 논리 게이트와 연관된 상기 진리표의 행(row)을 선택하는 단계, 및 해당 논리 게이트의 가블드 출력 값을 얻기 위해 상기 선택된 행을 암호해독하는 단계를 포함하는, 상기 실행하는 단계; 및 해당 논리 게이트보다 높은 레벨을 갖는 논리 게이트를 실행할 때에, 결과적으로 생성된 가블드 출력 값들이 고려되도록, 해당 논리 게이트보다 높은 레벨을 갖는 논리 게이트의 입력부에 인가하기 위한, 상기 결과적으로 생성된 가블드 출력 값들을, 출력 메모리 영역으로부터 입력 메모리 영역으로 전달하는 단계를 포함하는 것을 특징으로 한다.
일 실시형태에 따르면, 상기 가블드 회로의 실행은 적어도 부분적으로, 가블드 회로의 형태로 구현된 인터프리터(interpreter) 자체에 의해 수행되는 것을 특징으로 한다.
일 실시형태에 따르면, 상기 비밀 또는 랜덤 데이터는, 동일한 입력 데이터에 대해 상이한 출력 데이터를 제공하도록, 동일한 행들을 가지나 상이하게 순위화된(ordered) 테이블들과 연관된 제 1 레벨의 논리 게이트들을 포함하는 가블드 회로를 사용하여 생성되고, 상기 제 1 레벨의 논리 게이트들의 출력 데이터들은 상기 제 1 레벨의 논리 게이트들에 의해 제공되는 순서에 따라서, 상기 제 1 레벨의 논리 게이트들의 출력 데이터들은 상기 제 1 레벨 다음의 레벨의 논리 게이트들에 제공되는 것을 특징으로 한다.
일 실시형태에 따르면, 상기 비밀 또는 랜덤 데이터는 다수의 동일한 연산들의 실행을 동시에 병렬로 수행함으로써 생성되고, 상기 랜덤 데이터는 상기 연산들이 종료되는 순서에 기초하는 것을 특징으로 한다.
일 실시형태에 따르면, 상기 보안 프로세서는 상기 사용자 단말기가 접속된 서버인 것을 특징으로 한다.
일 실시형태에 따르면, 상기 보안 프로세서는 상기 사용자 단말기 내에 포함되는 것을 특징으로 한다.
실시형태들은 또한 단말기로서, 동작들을 실행하도록 구성된 단말기에 관한 것이며, 상기 동작들은, 불가해한(impenetrable) 프로그램을 실행하여서, 선택 가능한 영역들을 갖는 이미지를 상기 단말기의 디스플레이 스크린 상에 디스플레이하도록 상기 단말기를 구성하는 동작으로서, 상기 선택 가능한 영역들 각각에는 라벨 또는 아이콘이 할당되고 상기 선택 가능한 영역들은 상기 이미지 내에서 랜덤 데이터에 의해 규정된 분포를 가지며, 상기 이미지는 사용자가 개별적으로는 이해할 수 없는 프레임들을 포함하고, 상기 라벨들 또는 아이콘들이 사용자가 이해 가능한 방식으로 상기 디스플레이 스크린 상에 보이도록 상기 사용자의 시각 시스템의 지속성이 이용되기에 적합한 레이트(rate)로 상기 프레임들이 연속적으로 디스플레이되는, 상기 불가해한 프로그램을 실행하여서 상기 단말기를 구성하는 동작; 사용자가, 상기 사용자 단말기의 인터페이스를 이용하여, 상기 디스플레이된 이미지와 관련하여 지정한 상기 디스플레이 스크린 상의 위치들을 수집하는 동작; 및 상기 사용자에 의해 지정된 위치들을 상기 보안 프로세서에 전송하는 동작을 포함하며, 상기 지정된 위치들이 상기 보안 프로세서에 알려진, 상기 사용자의 인증 데이터에 대응하는 경우에, 상기 사용자는 상기 보안 프로세서에 의해 인증되는 것을 특징으로 한다.
실시형태들은 또한 단말기에 관한 것이며, 상기 단말기는, 불가해한(impenetrable) 프로그램을 실행하도록 구성되며, 상기 불가해한 프로그램의 실행은, 상기 단말기가, 비밀 데이터를 생성하고, 상기 비밀 데이터를 암호화하며, 상기 암호화된 비밀 데이터를 보안 프로세서(secure processor)로 전송하도록, 상기 단말기를 구성시키는 것을 특징으로 한다.
실시형태들은 또한 이전에 규정된 방법들 중 하나의 방법 또는 다른 방법을 구현하도록 구성된 단말기에 관련될 수 있다.
실시형태들은 또한 이전에 규정된 방법들 중 하나의 방법 또는 다른 방법을 구현하도록 구성된 서버에 관련될 수도 있다.
실시형태들은 또한 단말기에 의해 로딩되고 실행될 때, 단말기가 이전에 규정된 방법들 중 임의의 것을 구현하도록 단말기를 구성하는 컴퓨터 프로그램에 관련될 수 있다.
또한, 실시형태들은, 비밀 데이터 공유 방법에 관한 것이며, 상기 방법은, 단말기의 그래픽 프로세서에서 비밀 데이터를 생성하는 단계, 상기 비밀 데이터를 암호화하는 단계, 및 상기 암호화된 비밀 데이터를 보안 프로세서에 전송하는 단계를 포함하며, 상기 비밀 데이터를 생성하는 단계 및 상기 비밀 데이터를 암호화하는 단계는, 상기 그래픽 프로세서에 의해 실행되는 가블드(garbled) 회로에 의해 수행되고, 상기 가블드 회로는, 다수의 순위화된 레벨들로 분포된 논리 게이트들을 포함하고, 상기 논리 게이트들은, 상기 가블드 회로의 입력 값들만을 수신하는 제 1 레벨 그룹화 논리 게이트들(first level logic gates)을 포함하며, 특정 레벨의 논리 게이트들은 하위 레벨들에 속하는 논리 게이트들로부터의 값만을 수신하거나, 상기 가블드 회로의 입력 값들만을 수신하고, 각각의 논리 게이트는 해당 논리 게이트의 각 입력 비트 및 각 출력 비트의 각 가능한 비트 값을 나타내는 가블드 값들(garbled values)과 연관되고, 각각의 논리 게이트는 진리 표와 연관되며, 상기 진리 표는, 해당 논리 게이트의 입력 이진 값들의 각 가능한 조합에 대해, 해당 논리 게이트의 입력 비트 값들의 조합에 대응하는 해당 논리 게이트의 출력 값을 나타내는 가블드 값의 암호화에 의해 획득된 값을 포함하며, 그래픽 프로세서에 의한 상기 가블드 회로의 실행은, 상기 순위화된 레벨들의 순서로 상기 다수의 레벨들의 논리 게이트들을 연속적으로 실행하는 단계로서, 상기 다수의 레벨들의 논리 게이트들 각각을 실행하는 동작은 해당 레벨의 논리 게이트들 모두를 동시에 실행하는 동작을 포함하며, 해당 논리 게이트의 실행은, 해당 논리 게이트의 가블드 입력 값들의 함수로서, 해당 논리 게이트와 연관된 상기 진리표의 행(row)을 선택하는 단계, 및 해당 논리 게이트의 가블드 출력 값을 얻기 위해 상기 선택된 행을 암호해독하는 단계를 포함하는, 상기 실행하는 단계; 및 해당 논리 게이트보다 높은 레벨을 갖는 논리 게이트를 실행할 때에, 결과적으로 생성된 가블드 출력 값들이 고려되도록, 해당 논리 게이트보다 높은 레벨을 갖는 논리 게이트의 입력부에 인가하기 위한, 상기 결과적으로 생성된 가블드 출력 값들을, 상기 그래픽 프로세서의 출력 메모리 영역으로부터 상기 그래픽 프로세서의 입력 메모리 영역으로 전달하는 단계를 포함하는 것을 특징으로 한다.
일 실시형태에 따르면, 상기 비밀 데이터는 랜덤하게 또는 의사-랜덤하게 생성되고, 상기 가블드 회로는 난수 또는 의사 난수 생성 컴포넌트를 포함하는 것을 특징으로 한다.
일 실시형태에 따르면, 상기 비밀 데이터는 다수의 동일한 연산들의 실행을 동시에 병렬로 수행함으로써 생성되고, 상기 랜덤 데이터는 상기 연산들이 종료되는 순서에 기초하는 것을 특징으로 한다.
일 실시형태에 따르면, 상기 비밀 또는 랜덤 데이터는, 동일한 입력 데이터에 대해 상이한 출력 데이터를 제공하도록, 동일한 행들을 가지나 상이하게 순위화된(ordered) 테이블들과 연관된 제 1 레벨의 논리 게이트들을 포함하는 가블드 회로를 사용하여 생성되고, 상기 제 1 레벨의 논리 게이트들의 출력 데이터들은 상기 제 1 레벨의 논리 게이트들에 의해 제공되는 순서에 따라서, 상기 제 1 레벨의 논리 게이트들의 출력 데이터들은 상기 제 1 레벨 다음의 레벨의 논리 게이트들에 제공되는 것을 특징으로 한다.
상기 가블드 회로의 실행은 적어도 부분적으로, 가블드 회로의 형태로 구현된 인터프리터(interpreter) 자체에 의해 수행되는 것을 특징으로 한다.
일 실시형태에 따르면, 상기 보안 프로세서는 상기 사용자 단말기가 접속된 서버인 것을 특징으로 한다.
일 실시형태에 따르면, 상기 방법은, 상기 사용자 단말기와 상기 보안 프로세서 간에 링크를 확립하는 단계를 포함하고, 상기 링크는 상기 사용자 단말기와 상기 보안 프로세서 간에서만 공유되는 상기 비밀 데이터에 의해 보호되는 것을 특징으로 한다.
또한, 본 발명은 서버에 접속된 단말기로부터의 사용자를, 상기 서버에 의해 인증하는 방법에 관한 것으로, 상기 단말기는 메인 프로세서, 디스플레이 스크린을 제어하는 그래픽 프로세서, 및 인터페이스를 포함하며, 상기 방법은, 상기 그래픽 프로세서가, 동작들을 수행하도록 상기 그래픽 프로세서를 구성하는 프로그램을 상기 그래픽 프로세서에 로딩하는 단계를 포함하며, 상기 동작들은, 위에서 규정된 비밀 데이터 공유 방법을 실행하는 동작; 상기 그래픽 프로세서와 서버 사이에서만 공유되는 비밀 데이터를 생성하는 동작; 상기 공유 비밀 데이터를 사용하여 규정되고 결정가능한 키 분포를 갖는 키패드의 이미지를, 상기 디스플레이 스크린 상에 디스플레이하는 동작을 포함하며, 상기 방법은, 상기 그래픽 프로세서에 의해 상기 프로그램을 실행하여 상기 공유 비밀 데이터를 생성하고 상기 키패드의 이미지를 상기 디스플레이 스크린 상에 디스플레이하는 단계를 포함하며, 상기 키보드의 이미지는 시각적인 암호화 알고리즘에 의해 생성되고 사용자에게는 개별적으로 이해될 수 없는 상보적인 프레임들의 형태로 디스플레이되며, 상기 상보적인 프레임들은, 상기 상보적인 프레임들을 합성한 이미지가, 사용자가 이해하기 쉽게 나타나게 되게, 사용자의 시각 시스템의 지속성을 이용하기에 적합한 레이트로 연속적으로 디스플레이되며, 상기 방법은, 사용자가, 상기 사용자 단말기의 인터페이스를 이용하여, 상기 디스플레이된 이미지와 관련하여 지정한 상기 디스플레이 스크린 상의 위치들을 상기 메인 프로세서가 수집하는 단계를 포함하며, 상기 방법은, 상기 사용자가 지정한 위치를 상기 메인 프로세서가 상기 서버로 전송하는 단계를 포함하며, 상기 방법은, 상기 지정된 위치들과 상기 서버가 알고 있는 상기 사용자의 비밀 인증 코드 간의 일관성을 검사하는 단계를 포함하며, 상기 일관성이 인정되면 상기 사용자가 인증된다.
일 실시형태에 따르면, 상기 공유 비밀 데이터는 상기 키패드 이미지의 키들의 분포를 규정한다.
일 실시형태에 따르면, 상기 키패드 이미지의 디스플레이는, 상기 키패드의 키 라벨들을 나타내는, 상기 키패드 이미지의 각 픽셀 또는 픽셀 그룹에 대하여, 상기 이미지를 상보적인 픽셀 패턴들로 연속적으로 분해하는 단계; 각 선택된 분해에 대해서, 상보적인 픽셀 패턴들이 중첩되는 경우에만 키 라벨들이 상기 디스플레이 스크린 상에서 가시적이 될 수 있도록 상보적인 픽셀 패턴들을 연속적으로 생성하는 단계; 및 상기 생성된 픽셀 패턴들이 연속적으로 디스플레이될지라도 상기 생성된 픽셀 패턴들을 인간의 시각 시스템이 결합할 수 있도록, 가변 지속 기간만큼 이격된 랜덤하게 선택된 시간들에서, 상기 생성된 픽셀 패턴들을, 연속적으로 디스플레이하는 단계를 포함하며, 디스플레이된 키패드 이미지를 형성하는 픽셀 패턴들의 상기 디스플레이 시간들은 서로 구별되고 독립적인 것을 특징으로 한다.
일 실시형태에 따르면, 상기 키패드 이미지의 디스플레이는 상기 그래픽 프로세서에 의해 실행되는 가블드 회로에 의해 수행된다.
실시형태들은 또한 이전에 규정된 방법들 중 하나의 방법 또는 다른 방법을 구현하도록 구성된 단말기에 관한 것이다.
실시형태들은 또한 메인 프로세서 및 그래픽 프로세서를 포함하는 단말기에 의해 로딩되고 실행될 때, 상기 단말기가 이전에 규정된 방법들 중 하나 또는 다른 것을 구현하도록 상기 단말기를 구성하는 컴퓨터 프로그램에 관한 것이다.
도 1은 트랜잭션 서버와 통신하는 종래의 단말기를 개략적으로 도시한다.
도 2는 종래의 그래픽 프로세서를 개략적으로 나타낸다.
도 3은 일 실시예에 따른, 그래픽 프로세서에 로딩된 프로그램의 기능적 아키텍처를 도식적으로 나타낸다.
도 4는 일 실시예에 따른, 그래픽 프로세서에 로딩된 프로그램의 컴포넌트를 개략적으로 나타낸다.
도 5는 일 실시예에 따른, 그래픽 프로세서에 로딩된 프로그램의 암호화 디스플레이 컴포넌트를 도식적으로 나타낸다.
도 6a는 사용자에 의해 보여질 수 있는 것과 같은, 암호화 디스플레이 컴포넌트에 의해 생성된 예시적인 이미지를 나타낸다.
도 6b는 특정 시간에 암호화 디스플레이 컴포넌트에 의해 생성되고 디스플레이되는 예시적인 이미지를 나타낸다.
도 7은 일 실시예에 따른, 암호화 디스플레이 컴포넌트에 의해 디스플레이 스크린 상에 연속적으로 디스플레이되는 이미지 픽셀 패턴을 개략적으로 도시한다.
도 8은 암호화 디스플레이 컴포넌트에 의해 생성된 픽셀 패턴의 디스플레이 및 리프레시 시간들을 시간 스케일 상에서 개략적으로 나타낸다.
도 9는 일 실시예에 따른, 그래픽 프로세서에 로딩된 프로그램의 암호화 컴포넌트를 개략적으로 나타낸다.
도 10은 일 실시예에 따른, 단말기 및 트랜잭션 서버에 의해 수행되는 단계들을 도시한다.
도 1은 인터넷과 같은 데이터 전송 네트워크를 통해 서버(SRV)와 통신할 수 있는 종래의 단말기(MT)를 나타낸다. 서버(SRV)는 서버가 연결될 수 있는 단말기와 트랜잭션을 수행하도록 구성될 수 있다.
단말기(MT)는 인터넷과 같은 네트워크에 연결되기 위한 회로를 갖추고 있다.단말기(MT)는 예를 들어 휴대 전화, 특히 스마트 폰, 또는 PDA(personal assistant) 또는 인터넷과 같은 네트워크에 접속하기 위한 회로를 구비한 개인용 컴퓨터와 같은 임의의 다른 유형의 장치이다. 단말기(MT)는 또한 메인 프로세서(HP), 메인 프로세서(HP)에 접속된, 네트워크(NT)에 접속하기 위한 회로(NIT), 디스플레이 스크린(DSP), 메인 프로세서(HP)에 연결된, 디스플레이 스크린(DSP)을 제어하기 위한 그래픽 프로세서(GP), 및 메인 프로세서(HP)에 연결된 제어 장치(CM)를 포함한다. 제어 장치는 키패드 또는 터치 감지 표면, 예를 들어 스크린 (DSP) 위에 배치된 투명한 터치 표면, 및 선택적으로 마우스와 같은 포인팅 장치를 포함할 수 있다. 프로세서(HP)는 단말기의 메인 프로세서("기저 대역 프로세서") 일 수 있다.
단말기는 UICC(Universal Integrated Circuit Card)로 구현될 수 있는 보안 프로세서(secure processor; SE)를 포함할 수도 있다. 프로세서(SE)는, 예를 들어 SIM 카드( "가입자 식별 모듈"), 또는 미니 SIM 또는 마이크로 SIM의 프로세서일 수 있으며, 이는 이동 전화 네트워크로의 액세스를 제공한다. 보안 프로세서는 비접촉식 단말기와 통신하기 위한 NFC(Near Field Communication) 회로를 포함할 수 있다. NFC 회로는 SIM 카드(SIM-NFC) 또는 UICC, SoC(System on Chip) 또는 SD 카드와 같은 외부 메모리 카드 내에 내장될 수 있다. NIT 회로는 이동 전화 네트워크로의 액세스, 및 이동 전화 네트워크 및/또는 무선 네트워크 인터페이스(WiFi, 블루투스) 및/또는 인터넷과 같은 데이터 전송 네트워크로의 임의의 다른 유선 또는 무선 접속 수단을 통한 인터넷으로의 액세스를 제공하는 무선 전화 회로를 포함할 수 있다.
서버(SRV)는 사용자에게 트랜잭션 서비스를 제공하도록 구성된다. 상기 서버는 보안 장치, 트랜잭션 서비스 관리 프로그램 및 프로그램 저장 및 트랜잭션 데이터에 전용되는 메모리 영역을 포함할 수 있다. 보안 장치는 서버를 보호하고, 특히 트랜잭션 데이터 및 트랜잭션 서비스 관리 프로그램에 전용된 메모리 영역으로의 액세스를 보호한다.
이하, 용어 "트랜잭션(transaction)"은 일반적으로 링크를 통한, 사용자에 의한 서비스 또는 데이터로의 액세스를 말하며, 이러한 액세스는 사용자의 인증을 필요로 한다.
도 2는 그래픽 프로세서(GP)의 예를 도시한다. 도 2에서, 프로세서(GP)는 다수의 다중 프로세싱 유닛(MPU)을 포함하는 병렬 아키텍처를 갖는다. 각 MPU는 몇 개의 스레드 프로세서(TP)와 특수 기능 유닛(SFU)을 포함한다. SFU는 나누기, 제곱근 등과 같이 컴퓨팅 자원들이 많이 드는 연산을 수행하도록 구성된다. 동일한 MPU의 프로세서들(TP)은 MPU에 특정한 로컬 메모리(LMEM)를 통해 서로 통신할 수 있다. 한편, 다른 MPU들에 속한 TP 프로세서들은 서로 통신하거나 동기화할 수 없다. 따라서, MPU의 TP 프로세서들은 GP 프로세서의 다른 MPU들의 로컬 메모리들(LMEM)에 액세스하지 못한다.
MPU들은 스레드 실행 제어 유닛(TPU)에 의해 관리된다. GP 프로세서는 비디오 메모리(VMEM)와, GP 프로세서 외부에서 직접 액세스할 수 없는 메인 메모리 (GMEM)도 포함한다. 반대로, HP 프로세서의 메모리(HMEM)는 GP 프로세서에 의해 직접 액세스될 수 없다. 그러나, GMEM 메모리와 HMEM 메모리 간의 데이터 전송은 GP 프로세서의 입/출력 포트와 DMA(Direct Memory Access) 동작을 통해 가능하다.
도 3은 단말기(MT)의 메인 프로세서(HP)에 의해 트랜잭션 어플리케이션(AP)(도 1)을 실행할 때, 그래픽 프로세서(GP)의 프로세싱 유닛(PU)에 로드되어 이에 의해서 실행되는 프로그램(AUTP)의 기능적 아키텍처를 도시한다. 일 실시예에 따르면, 이 프로그램은 병렬로 실행되는 다수의 디스플레이 컴포넌트(FCC)를 포함하며, 각각의 디스플레이 컴포넌트(FCC)는 디스플레이 스크린(DSP) 상에 디스플레이될 픽셀 패턴(VCP)을 비디오 메모리에 기입 및 리프레시하는 역할을 한다. 그래픽 프로세서(GP)에 로드된 프로그램은 또한 암호화 컴포넌트(ENC), 및 디스플레이 컴포넌트(FCC) 및 암호화 컴포넌트(ENC)에 난수를 제공하는 난수 생성 컴포넌트(RNG1)를 포함한다. 암호화 컴포넌트(ENC)는 난수 생성 컴포넌트(RNG1)에 의해 제공된 난수에 대응하는 암호화된 수들을 프로세서(GP) 외측으로 제공한다.
도 4는 일 실시예에 따른, 그래픽 프로세서(GP)에 로딩된 프로그램(AUTP)의 디스플레이 컴포넌트들(FCC) 중 하나를 도시한다. 디스플레이 컴포넌트(FCC)는 키패드 이미지의 픽셀을 생성하는 컴포넌트(KGN) 및 시각적 암호화 컴포넌트(KD)를 포함한다. 난수 생성 컴포넌트들(RNG1) 중 하나는 시드로서 사용되는 수(D1)를 입력으로서 수신한다. 난수 생성 컴포넌트(RNG1)는 난수 또는 의사 난수(RN1)를 m × p 개의 컴포넌트들(FCC)에 제공한다. 키패드 이미지의 픽셀을 생성하는 컴포넌트(KGN)의 입력부에 제공된 난수(RN1)는 숫자 또는 문자숫자와 같은 문자 또는 디스플레이될 키패드 이미지의 아이콘을 지정한다. 키패드 이미지 픽셀 생성 컴포넌트(KGN)는 난수(RN1)에 대응하는 문자를 형성하는 화상의 픽셀(PX)의 값, 블랙 또는 화이트를 제공한다. 난수(RN2)는 시각적 암화호 컴포넌트(KD)의 입력부에 제공된다. 시각적 암호화 컴포넌트(KD)는 키패드 이미지 픽셀 생성 컴포넌트(KGN)에 의해 공급된 픽셀(PX)의 함수로서 디스플레이될 픽셀 패턴(PT)을 연속적으로 제공한다.
그래픽 프로세서(GP)에 로딩된 키패드 이미지 픽셀 생성 컴포넌트들(KGN) 모두는 비디오 메모리(VMEM) 내에서, 함께, d 개의 병치된 키 이미지들로 구성된 키패드의 완전한 이미지를 생성하며, 각각의 키 이미지는 해당 키에 할당된 상이한 문자의 픽처를 포함한다. 따라서, 그래픽 프로세서(GP)에 로딩된 컴포넌트들의 앙상블(ensemble)은 디스플레이될 키패드의 키마다 m × p 개의 이미지 픽셀 생성 컴포넌트들(KGN)의 그룹을 포함하며, 이러한 컴포넌트들(KGN)의 그룹들 각각은 해당 키에 할당된 문자로 키를 나타내는 m × p 개의 픽셀들의 이미지를 생성한다. 이러한 m × p 개의 컴포넌트들(KGN)의 그룹들 각각은 난수 생성 컴포넌트(RNG1)로부터, 키 상에 디스플레이될 문자의 픽처에 대응하는 고유 수를 수신한다.
일 실시예에 따르면, 키의 이미지를 디스플레이하는 컴포넌트들(KGN)의 d 개의 그룹들 중 제 1 그룹은, 대응하는 난수 생성 컴포넌트(RNG1)로부터, 1 내지 d 개의 디스플레이될 키패드의 키들의 수들 간에 선택된 난수(RN11)를 수신한다. 키의 이미지를 디스플레이하는 컴포넌트들(KGN)의 d 개의 그룹들 중 제 2 그룹은, 1 내지 1만큼 감소된 d-1 개의 디스플레이될 키패드의 키들의 수들 간에 무작위로 선택된 수(RN12)를 입력으로서 수신하고, 여기서, 상기 수(RN12)는 나머지 키들에 할당될 나머지 문자들 중에서의 문자 순위에 대응한다. 따라서, 수(RN1i)는 키패드의 키에 할당될 마지막에서 두 번째 문자까지, 키에 할당될 남은 문자들의 수에 따라 임의로 선택된다. 마지막 문자는 나머지 키에 할당된다.
이미지 픽셀 생성 컴포넌트(KGN)는, 또한 스크린(DSP)에 의해 디스플레이된 이미지에서의 컴포넌트(KGN)에 의해 생성된 픽셀의 위치를 수신할 수 있다. 그러나, 프로세싱 유닛(PU) 내에서의 디스플레이 컴포넌트(FCCi)의 위치가 이 위치를 규정하는데 사용 가능하기 때문에, 위치(PXPi)는 필요하지 않을 수 있다.
시각적 암호화 컴포넌트(KD)는 난수 또는 의사 난수(RN2)의 함수로서, 시각적 암호화 변환을 픽셀(PXi)에 적용한다. 이러한 변환은 예를 들어, 문헌 "Visual Cryptography", Moni Naor, Adi Shamir, Eurocrypt94, 및 문헌 "Construction and Bounds for Visual Cryptography", G. Ateniese, C. Blundo, A. De Santis, GG Stinson에서 기술된다. 이러한 변환은, 상보적 프레임들의 세트의 모든 프레임들을 중첩함으로써만 원본 이미지가 복원되고, 상보적 프레임들 중 어느 하나가 없는 경우에 원본 이미지를 재구성하는 것은 매우 어렵게 되도록, 상기 원본 이미지, 예를 들어, 사람이 이해할 수 있는 이미지를, 여러 상보적 프레임들의 세트로 분해하는 것을 포함한다. 따라서, 시각적 암호화 컴포넌트(KD)는 픽셀(PXi)의 암호화된 형태에 대응하는 하나 이상의 픽셀(EPi)의 패턴을, 스크린(DSP) 상에 디스플레이될 각 프레임에 대해 생성한다. 따라서, 픽셀(PXi)의 값은 사용자의 시각 시스템의 망막 지속성을 이용하기에 적합한 프레임 디스플레이 레이트로, 해당 픽셀(PXi)의 상보 적 패턴들(EPi)을 연속적으로 디스플레이함으로써, 디스플레이(DSP) 상에 나타날 수 있다.
일 실시예에 따르면, 상보적 픽셀 패턴들(EPi)은 인간 시각 시스템과 양립 가능한 한계치 내에서의 랜덤하게 규정된 시간들에서 개별적으로 디스플레이된다. 도 5는 일 실시예에 따른 시각적 암호화 컴포넌트(KD)를 도시한다. 시각적 암호화 컴포넌트(KD)는 픽셀 패턴을 생성하기 위한 컴포넌트(PSL), 및 레지스터(RG), 모듈러스 컴퓨팅 컴포넌트(MOD), 비교기(CMP) 및 증분 컴포넌트(INC)를 포함하는 카운터 회로를 포함한다. 상기 레지스터(RG)는 카운터 회로의 초기 값을 규정하는 난수(RN2)의 부분(RN21)을 수신한다. MOD 컴포넌트는 레지스터(RG) 내의 수의 모듈러스를 계산한다. INC 컴포넌트는 MOD 컴포넌트의 출력 값을 1 씩 증분시키고 증분된 값을 레지스터(RG)에 공급한다. MOD 컴포넌트의 출력 값은 또한 시각적 암호화 컴포넌트(KD)의 출력 및 비교기(CMP)의 입력으로서 제공된다. 비교기(CMP)는 컴포넌트(MOD)의 출력값을 난수(RN2)의 부분(RN22)와 비교한다. 비교기(CMP)는 콤포넌트(PSL)에, 비교기(CMP)의 2 개의 입력 값이 동일할 때 활성화되는 디스플레이 인 에이블 신호(DS)를 제공한다. 컴포넌트(PSL)는 난수(RN2)의 부분(RN23)에 기초하여 복수의 픽셀 패턴 중에서 일 픽셀 패턴을 선택한다. DS 신호의 제 1 활성화 시에, PSL 컴포넌트는 KD 컴포넌트로부터 선택된 픽셀 패턴을, 상보적 픽셀들의 세트의 제 1 픽셀(EP1)로서 출력한다. DS 신호의 제 2 활성화 시에, PSL 컴포넌트는 시각적 암호화 컴포넌트(KD)의 입력에 제공된 픽셀(PX)의 값에 기초하여, 상보적 픽셀들의 세트 중 제 2 픽셀(EP2)로서, 상기 KD 컴포넌트로부터의 상기 선택된 픽셀 패턴 또는 이의 상보적 픽셀 패턴을 출력한다. 예를 들어, 상기 제 2 픽셀 패턴(EP2)은 시각적 암호화 컴포넌트(KD)의 입력으로서 공급된 픽셀(PX)의 값이 0이면 상기 선택된 픽셀 패턴이고, 상기 픽셀(PX)의 값이 1이면, 상기 제 2 픽셀 패턴(EP2)은 상보적 픽셀 패턴이다. 물론, 픽셀(PX)의 값의 함수로서, 반대 선택이 이루어질 수 있다. 따라서, 카운터 회로로 인해서, KD 컴포넌트가 제 1 픽셀 패턴을 출력하는 시간은 난수(RN21)에 따라서 랜덤하게 선택된다. 다음 픽셀 패턴들의 출력 시간은 난수(RN22)에 따라서 랜덤하게 선택되며, 이러한 난수는 시각적 암호화 컴포넌트(KD)로부터 픽셀 패턴(EP1, EP2)가 출력될 때마다 변할 수 있다. 모듈러스 컴퓨팅 컴포넌트(MOD)에 의해 사용된 모듈러스의 값은, 픽셀 패턴들(EP1, EP2)의 디스플레이 시간들이 인간 시각 시스템과 양립 가능한 지속 기간만큼 서로 이격되도록, 즉 인간 시각 시스템이 상보적인 픽셀 패턴들을 서로 결합할 수 있을 정도의 지속 시간만큼 이격되도록, 선택된다. 이를 위해, 상기 지속 시간은 50 내지 80ms 간에서 변할 수 있다. 제 1 픽셀 패턴(EP1)은 또한 KD 컴포넌트로부터 2 개의 픽셀 패턴들이 출력될 때마다 랜덤하게 선택된다.
도 5의 예에서, 픽셀 패턴은 2 개의 흑색 픽셀 및 2 개의 백색 픽셀을 포함하는 4 개의 픽셀을 갖는다. 제 1 픽셀 패턴(EP1)의 선택은 6 개의 패턴들, 즉 2 개의 수평 패턴, 2 개의 수직 패턴 및 2 개의 대각선 패턴들 중에서 수행된다. 물론, 다른 패턴 및 다른 상보적 패턴들의 조합이 사용자의 시각 시스템에서 흑색 또는 백색(회색) 픽셀을 형성하도록 고려될 수 있다.
FCC 컴포넌트들의 세트는 가시적인 암호화 디스플레이된 구역들 및 명확하게 디스플레이된 구역을 포함하는, 도 6a에 제시된 것과 같은 이미지를 생성하고 디스플레이하는 것을 가능하게 한다. 따라서, 도 6a의 예에서, 사용자에 의해 인지 가능한 이미지(IM)은 "0"에서 "9"까지의 번호를 갖는 키들, 취소 키 "C" 및 유효화 키 "V"를 포함하는 12 개의 키를 갖는 키패드의 이미지이다. 따라서, 도 6a의 예시적인 이미지에서, 프로그램(AUTP)은 10 개의 RNG1 컴포넌트들 및 10 x m × p 개의 FCC 컴포넌트들(d = 10)을 포함한다. 디스플레이된 이미지는 또한 트랜잭션 데이터를 위한 디스플레이 영역(RS) 및/또는 사용자에 의해 조작되는 각각의 키에 대한 "*"와 같은 일반 문자를 포함한다. "0"에서 "9"까지의 숫자를 갖는 키는 임의의 순서로 제시되고 임의로 선택된 시간에 픽셀 패턴들(EP1, EP2)을 연속적으로 디스플레이함으로써 시각적 암호를 사용하여 디스플레이된다. 도 6b는 PSL 컴포넌트에 의해 실제로 생성되어 디스플레이되는 이미지(IM1)를 도시한다. 이미지(IM1)는 컴포넌트(KGN)에 의해 생성된 이미지의 시각적 암호로 디스플레이되는 영역의 각 픽셀 (PX)에 대해 생성된 상보적 픽셀 패턴들의 세트들 중 하나의 세트 중의 두 개의 픽셀 패턴들(EP1, EP2) 중 하나만을 포함한다. 따라서, "0"에서 "9"까지의 숫자를 갖는 키의 라벨은 이미지(IM1)에서 보이지 않는다. 유효화 키와 취소 키는 이미지에서 임의로 규정된 위치를 가질 수도 있다.
일 실시예에 따르면, KGN 컴포넌트는 규정된 키 분포를 갖는 키패드의 이미지를 생성하기 위해 한 번 실행되고, RNG2 컴포넌트 및 KD 컴포넌트는 매주기 T마다 1 회 정도의 레이트로 여러 번 실행되고, 여기서 T는 예를 들어, 사용자가 취소 키 "C" 또는 유효화 키 "V"를 활성화할 때까지, 메모리(VMEM)에 픽셀 패턴(VCP)을 50 내지 80 ms마다 제공하도록, 2 내지 10 밀리 초의 크기를 갖는다. MOD 컴포넌트에 의해 인가되는 모듈로 값은 주기 T의 값 및 픽셀 패턴의 연속적인 디스플레이 시간들 간의 최대 지속 기간에 의존한다. 일 실시예에 따르면, 메모리(VMEM)의 콘텐츠는 주기(T) 각각에서 디스플레이된다
일 실시예에 따르면, KGN 컴포넌트는 키패드 이미지에서 0에서 9까지의 키들의 분포를 변경하지 않으면서, 상이한 이미지들을 생성하기 위해 일정 레이트로 실행되며, 이로써 공격자가 0에서 9까지의 키 분포를 결정하는 것을 훨씬 더 어렵게 된다. 이와 같이 생성된 상이한 이미지들은, 예를 들어 해당하는 키의 대응하는 표면 영역 내의 각각의 키의 라벨("0" 내지 "9")의 위치를 변화시키고, 및/또는 라벨의 크기를 변경하거나 및/또는 라벨에 사용하는 폰트를 변경한다.
도 7은 단말기의 스크린 DSP 상에서 사용자가 본 이미지(IM)를 도시한다. 일 실시예에 따르면, 이미지(IM)의 적어도 일부분은 서로 다른 레이트들로 픽셀 패턴들을 리프레싱함으로써 얻어지며, 제 1 이미지의 픽셀 패턴들은 상이한 시간들에 디스플레이된다. 도 7은 디스플레이 스크린(DSP)의 위치 P1에 순차적으로 디스플레이되는 픽셀 패턴들 P1<n>, P1<n + 1>, P1<n + 2>, P1<n + 3>, 디스플레이 스크린의 위치 P2에 순차적으로 디스플레이되는 픽셀 패턴들 P2<n>, P2<n + 1>, P2<n + 2>, P2<n + 3>, 디스플레이 스크린의 위치 P3에 순차적으로 디스플레이되는 픽셀 패턴들 P3<n>, P3<n + 1>, P3<n + 2>, P3<n + 3>을 나타낸다. 픽셀 패턴들 Pi<j>(j = n, n + 1, n + 2, n + 3, ...)은, 상보적인 픽셀 패턴들의 세트들 내에서의, 원본 이미지의 위치 Pi에서의 픽셀들의 그룹 또는 픽셀의, 시각적 암호화를 통한, 상이한 연속적인 분해들로부터 얻어진다. 이러한 분해는, 상보적인 픽셀 패턴들의 세트의 모든 픽셀 패턴들을 중첩시킴으로써만 원본 이미지가 복원될 수 있으며, 그리고 상보적인 픽셀 패턴들의 세트의 픽셀 패턴들 중 임의의 하나가 없는 경우 또는 상보적인 픽셀 패턴들의 다른 세트에 속하는 픽셀 패턴의 존재 시에는 원본 이미지 내의 픽셀의 값을 결정하는 것이 매우 어렵게 되도록, FCC 컴포넌트들의 KD 컴포넌트들에 의해 수행된다.
일 실시예에 따르면, 사용자의 망막(retinal) 또는 시각적 지속성(visibility persistence)이 상보적인 픽셀 패턴들의 각각의 세트의 픽셀 패턴들을 재결합시키며, 따라서 사용자는 해당 이미지에 할당된 모든 상보적인 픽셀 패턴들의 중첩으로 형성된 원본 이미지(IM)를 인식하도록 결정된 개별적인 각각의 지속기간 TPi<j>(i = 1, 2, 3, ... 및 j = n, n + 1, n + 2, n + 3,...)에 대해서, 각각의 픽셀 패턴 Pi<j>이 디스플레이된다.
예를 들어, 픽셀 패턴들 Pi<n> 및 Pi<n + 1>(i = 1, 2, 3, ...)은 제 1 세트의 상보적 픽셀 패턴들을 형성하고, 이러한 제 1 세트의 상보적인 픽셀 패턴들은 시각적인 암호화에 의한 제 1 분해로부터 생성되며, 픽셀 패턴들 Pi<n + 2> 및 Pi<n + 3>(i = 1, 2, 3, ...)은 제 2 세트의 상보적 픽셀 패턴들을 형성하며, 이러한 제 2 세트의 상보적 픽셀 패턴들은 상기 제 1 분해와는 상이한, 시각적인 암호화에 의한 제 2 분해로부터 생성된다. 물론, 원본 이미지의 픽셀 또는 픽셀 그룹은 2 개의 상보적인 픽셀 패턴들 이외에 시각적인 암호화에 의해 분해될 수 있다.
상보적인 픽셀 패턴들의 형태로 디스플레이된 원본 이미지의 픽셀들 또는 픽셀 그룹들은, 상보적인 픽셀 패턴들이 중첩되지 않으면 해당 이미지의 전부 또는 일부가 이해될 수 없도록 해당 이미지 내에서 분포된다. 따라서, (사용자에게 보이는 바와 같이) 도 6의 이미지(IM)는 키들이 임의의 순서로 배열된, 예를 들어 랜덤하게 결정된 순서로 배열되는 키패드를 갖는다. 일 실시예에 따르면, 키들의 형태에 의해 한정되고 키들의 라벨들을 나타내는 픽셀들은, 시각적인 암호화를 통해 상보적인 픽셀 패턴들로 분해된다. 물론, 이미지(IM)의 모든 픽셀들을 시각적 암호로 분해하는 것이 고려될 수 있다.
일 실시예에 따르면, 각 픽셀 패턴의 디스플레이 지속 기간 TPi<j>(i = 1, 2, 3, ... 및 j = n, n + 1, n + 2, n + 3, ...)은 픽셀 패턴들 간에서 50 내지 80 nm 간에서 시간적으로 변하는 값으로 설정된다. 일 실시예에 따르면, 디스플레이 스크린(DSP) 상에 이미지의 프리젠테이션의 시작에서 디스플레이된 제 1 픽셀 패턴은 개별 시간들에서 디스플레이된다. 따라서, 도 8은 시간축을 따라서, 디스플레이 시간들 t1, t2 및 t3에서, 원본 이미지(IM)의 위치들 P1, P2, 및 P3에서 디스플레이된 제 1 픽셀 패턴들 P1<0>, P2<0>, P3<0>을 나타낸다. 디스플레이 시간들 t1, t2 및 t3은, 이미지의 특정 픽셀 패턴들이 시간 t0에서 바로 디스플레이될 수 있다는 것을 고려하면, 상기 50 ms 이하로 선택될 수 있는, 지속 시간 tM보다 짧게, 이미지의 디스플레이의 시작의 시작 시간 t0으로부터 이격된다. 제 2 픽셀 패턴들 P1<1>, P2<1>, P3<1>는 제 1 픽섹 패턴들 P1<0>, P2<0>, P3<0> 후에 디스플레이되며, 이러한 제 2 디스프레이 시간들은 제 2픽셀 패턴들 간에서 서로 상이하며, 상기 2 픽셀 패턴들 P1<1>, P2<1>, P3<1>의 디스플레이 시간들은, 50 내지 80 ms의 각각의 지속 기간 TP1<0>, TP2<0>, TP3<0>만큼, 상기 제 1 픽셀 패턴들 P1<0>, P2<0>, P3<0>의 디스플레이 시간들과 이격된다.
따라서, 원본 이미지의 각 픽셀 또는 픽셀 그룹이 2 개의 연속적인 상보적인 픽셀 패턴들로 분해되고, 2 개의 연속적인 스크린 복사본이 메인 프로세서(HP)에 의해 50 ms 이하로 생성되어 저장될 수 있다고 가정하면, 두 번째 스크린 샷은 첫 번째 스크린 샷 내의 픽셀 패턴들에 상보적인 픽셀 패턴들 모두를 포함할 수 없다. 실제로, 픽셀 패턴들은 개별 시간들에 디스플레이되고 상이한 가변 리프레시 주기들로 리프레시되기 때문에, 첫 번째 스크린 샷은 이전에 디스플레이된 픽셀 패턴들에 상보족는 픽셀 패턴들을 반드시 포함해야하며, 따라서, 두 번째 스크린 샷에는 반드시 두 번째 스크린 샷 이후에 디스플레이될 픽셀 패턴들에 상보적인 픽셀 패턴들이 존재하야야 한다. 이러한 상보적인 픽셀 패턴들을 획득하도록 세 번째 스크린 샷은 이루어질 수 없다. 그러나, 원본 이미지의 픽셀, 예를 들어, 픽셀(P1)이 첫번째 스크린 샷 및 두번째 스크린 샷(P1<n>, P1<n + 1>)의 대응하는 픽셀 패턴들로부터 재구성되는지 또는 두번째 및 세번째 스크린 샷(P1<n + 1>, P1<n + 2>)의 대응하는 픽셀 패턴으로부터 재구성되는지의 여부를 결정하는 것이 불가능하다. 따라서, 원본 이미지의 모든 픽셀들이 2 개의 상보적인 픽셀 패턴들로 분해되면, 원본 이미지의 재구성은 선택을 요구하는데, 이러한 선택은, 시각적 암호화로 변환된 이미지의 각 픽셀 패턴에 대해서, 상기 첫번째 및 두번째 스크린 샷 내의 대응하는 픽셀 패턴들을 포함하는 쌍, 및 상기 두번째 및 세번째 스크린 샷 내의 대응하는 픽셀 패턴들을 포함하는 쌍에서의 상보적인 픽셀 패턴들의 올바른 쌍을 선택하는 것이다. 이 경우에, 메인 프로세서(HP)는 50ms 이내에 적어도 세 개의 연속적인 스크린 복사본을 생성하여 저장할 수 있어야 하며, 각각의 스크린 복사는 비디오 메모리(VMEM)가 판독될 것을 요구하고, 판독된 데이터는 메인 프로세서(HP)에 액세스 가능한 메모리(HMEM) 내에 기록되어야 한다.
원본 이미지의 각 픽셀이 시각적 암호화에 의해 3 개 이상의 상보적인 픽셀 패턴들의 세트로 변환되면, 연속적인 스크린 복사본으로부터 원본 이미지를 재구성하는 문제는 훨씬 더 복잡한다.
도 9는 일 실시예에 따른, 그래픽 프로세서(GP)에 설치된 암호화 컴포넌트들(ENCj) 중 하나를 나타낸다. 암호화 컴포넌트(ENCj)는 RNG1 모듈들 중 하나에 의해 전송된 난수(RN1)를 수신하고 암호화 알고리즘을 적용하여 상기 난수를 암호화하여 서명(ERN1)을 계산한다. ENCj 컴포넌트들에 의해 이와 같이 계산된 모든 서명들(ERN1)은 프로세서(GP) 외부, 예를 들어 서버(SRV)로 전송된다.
도 9의 예에서, 컴포넌트(ENCj)는 AES 알고리즘(고급 암호화 표준)을 구현한다. 따라서, ENC 컴포넌트는 다수의 (r + 1) 라운드로 암호화를 실행한다. 제 1 라운드에서, 암호화 컴포넌트(ENCj)는 함수(LC1), 비트방식 배타적 OR(XOR) 연산에 의해서, 초기 키 부분(K0j)을, 난수 생성 컴포넌트(RNG1)로부터 수신된 난수(RN1)와 결합한다. 이러한 결합의 결과는 비선형 대체 함수(BSUB)로 전송되며, 상기 대체 함수는 대응 테이블에 따라서 상기 결합의 각 바이트를 다른 것으로 대체한다. 상기 대체의 결과는 전치 함수(SHR)로 전송되며, 상기 전치 함수는 몇몇 행들 및 열들의 블록으로 포맷된 대체 결과(substituion result)의 마지막 3 행(row)들을 다수회 순환적으로 시프트시킨다. 이러한 전치의 결과는 믹싱 함수(MXCL)로 전송된다. 상기 MXCL 함수는, 상기 전치로부터 기인되는 블록에 열(column)마다 적용되며, 해당 블록의 각 열의 마지막 4 바이트들을 결합시킨다. 이러한 믹싱의 결과는, 함수(LC2), 즉, 비트방식 배타적 OR(XOR) 함수를 통해서, 초기 키에서 파생된 새로운 키(K1j)와 결합된다. 이러한 함수들(BSUB, SHR, MXCL)은 키 유도 함수(KDN)에 의해 이전 라운드에서 사용된 키로부터 도출된 새로운 키(Kij)로 각각의 라운드 i에서 실행된다. 마지막 라운드 r에서, 최대 라운드 수(MXR)에 도달하면, 믹싱 함수(MXCL)은 실행되지 않고, 전치 함수(SHR)의 결과는 이전 라운드에서 사용된 키로부터 유도된 마지막 키(Krj)와 결합된다. AES 알고리즘의 경우에서와 같이, 각 암호화 컴포넌트(ENCj)에 의해 구현되는 암호화 기능이 가역적이면, ENCj 컴포넌트는 서버(SRV)와 프로세서(GP) 사이의 전송 채널을 확립하는데 사용될 수 있고, 이러한 전송 채널은 서버(SRV)에만 알려진 비밀 키를 사용하여 대칭적 암호화에 의해 보안된다. 여기에서 그리고 이하에서, "보안"이라는 용어는 하드웨어 및/또는 소프트웨어 요소들에 의한 사기성 액세스로부터 보호된다는 것을 의미한다.
일 실시예에 따르면, RNG1, ENC 및 FCC 컴포넌트들은 회로의 형태로 또는 불가해한( "난독화된") 실행 가능 코드의 형태로 구현되며, 이로써, 그들의 연산이 완전히 은폐되며 수정될 수 없도록 된다. RNG1, ENC 및 FCC 컴포넌트들은, 사용자의 식별자에 특정된 각각의 비밀 키를 그들의 내부 구조에 내장하도록, 서버(SRV)에 의해 생성될 수 있다.
일 실시예에 따르면, RNG1, ENC 및 FCC 컴포넌트들은 AND, NAND, OR, NOR, XOR과 같은 논리 게이트를 포함하는 논리 회로의 형태로 구현되고, "가블드 회로"기술에 의해 변환된다. RNG1 및 FCC 컴포넌트들의 논리 회로로의 변환은, 예를 들어 C 또는 C ++ 언어로 작성된 프로그램의 변환 툴을 사용하여, VHDL 또는 Verilog와 같은 언어들로 변환되게 수행될 수 있다. 이 가블드 회로 변환 기술은 가블드 값들을 생성하고, 가블드 값들은, 해당 회로의 각 입력 비트의 각 이진 값 0 및 1 및 해당 회로의 각 논리 게이트 출력 비트를 나타내며, 일부 논리 게이트 출력들은 해당 회로의 출력들에 대응하며, 이로써, 가블드 회로는 진리표에 의해 각각의 게이트를 나타내고, 가블드 회로는, 키들을 사용하여, 진리표의 각 행의 출력 이진 값을 나타내는 가블드 값을 암호화함으로써, 각 진리표를 암호화하며, 논리 게이트 입력의 가블드 값들은 진리표의 행에 대응한다. 가블드 값과 이에 대응하는 이진 값 0 또는 1 간의 대응 관계를 결정하기 위해, 각 가블드 값의 결정된 랭크의 비트, 예를 들어, 최하위 비트(LSB)가 사용될 수 있다. 이렇게 결정된 비트는 논리 게이트의 진리표에서, 해당 논리 게이트의 입력 가블드 값에 대응하는 가블드 출력 값을 선택하는데 사용될 수 있다. 따라서, 각 게이트의 가블드 출력값은 사용된 암호화 알고리즘에 대응하는 암호해독 알고리즘을, 이로써 선택된 가블드 출력 값에, 논리 게이트의 입력에 인가된 가블드 값들을 키로서 사용하여, 적용함으로써 얻어 질 수 있다. 회로 토폴로지(회로 입력부들, 논리 게이트 출력부들 및 논리 게이트 입력부들 간의 연결)는 표로 규정될 수 있다.
이러한 방식으로, 가블드 회로로 변환될 때, RNG1, ENC 및 FCC 컴포넌트들의 동작을 결정할 수 없으며, 이러한 회로들은 가능한 많은 값들 중에서 일부 입력 값으로만 동작한다. 가블드 회로 기술에 대한 자세한 내용은 예를 들어 문헌 "Foundations of Garbled Circuits", Mihir Bellare, Viet Tung Hoang, Phillip Rogaway에서 찾을 수 있다.
가블드 회로를 생성하고 실행하기 위한 이러한 기법들은 그래픽 프로세서와 같은 SIMD(Simple Instruction Multiple Data) 아키텍처를 갖는 프로세서에 의해 구현되게 용이하게 구성될 수 있다. 이 목적을 위해, 가블드 회로의 논리 게이트는 행들로 분할되고, 제 1 랭크의 논리 게이트들은 가블드 회로의 입력값들만을 수신하는 논리 게이트들이고, 소정의 랭크 n의 논리 게이트는 가드블 회로의 입력 값 또는 하위 랭크 논리 게이트로부터의 값들만을 수신한다.
일 실시예에 따르면, 가블드 값들은 4 바이트의 4 픽셀들, 즉 16 바이트들에 걸쳐서 규정된다. 이로써, 논리 게이트의 진리표들은 4 개의 가블드 값으로 규정되며, 즉, 입력 이진 값들의 각 조합 (0, 0),(0, 1),(1, 0),(1, 1)에 해당하는 64 바이트에 의해 규정된다 가블드 회로의 토폴로지는 각 회로 연결의 번호 매기기에 의해 규정될 수 있으며, 이러한 회로 연결은 1에서 n까지의 회로 입력부들, n + 1에서 n + q까지의 회로의 논리 게이트의 각 출력부를 포함하며, 회로의 출력부들에는 n + qm + 1에서 n + q까지의 가장 높은 번호가 할당되고, 논리 게이트는 그들의 출력 연결 번호가, n + 1에서 n + q로서 달려진다. 이로써, 가블드 회로의 토폴로지는 회로의 각 논리 게이트에 대해서, 논리 게이트의 입력 연결 수를 수집하는 테이블의 형태로 저장될 수 있다.
그래픽 프로세서(GP)에 의한 가블드 회로의 실행은, 제 1 랭크의 논리 게이트로 시작하여, 행의 논리 게이트를 매 반복마다 실행함으로써, 반복적으로 동작하도록 구성된 가블드 회로 인터프리터 컴포넌트(garbled circuit interpreter component)(GCI)에 의해 수행될 수 있다. 제 1 랭크 논리 게이트의 실행 이전에, 토폴로지 테이블, 논리 게이트 진리 테이블 및 입력 가블드 값들이 GP 프로세서의 입력 메모리, 즉 메모리(GMEM)에 로드된다. 일 랭크에 속하는 논리 게이트가 실행될 때마다, 상기 가블드 회로 인터프리터 컴포넌트(GCI)는 그래픽 프로세서(GP)의 출력 메모리의 해당 랭크의 논리 게이트의 실행 결과로서 얻어진 가블드 값을, 즉, 입력 메모리(GMEM) 내의 메모리(VMEM) 내로 전송하도록 구성되고, 이들을 실행될 다음 랭크의 논리 게이트들의 입력부들에 제공하도록 구성된다. 이러한 전송 시에, 다음 랭크의 논리 게이트의 입력 값으로 사용되는 가블드 출력 값만이 전송된다. 가블드 회로 실행이 끝나면, 가블드 출력 값은 메모리(VMEM)에 저장되고 메인 프로세서(HP)로 전송될 수 있다.
이러한 방식으로, 암호화 키를 포함하는 암호화 회로(ENC)는 이를 생성하는 엔티티(이 경우에는 서버(SRV))에만 공지되어있다. 메인 프로세서(HP)는 그래픽 프로세서(GP)로 전송된 판독 명령을 통해 메모리(VMEM 및 GMEM)의 내용에 액세스할 수 있음을 알아야한다.
난수 생성 컴포넌트(RNG1)는, 예를 들어, 가블드 논리 게이트를 다수 번 복제함으로써 얻어지는 제 1 레벨의 논리 게이트들을 포함하는 회로에 의해서 그리고, 상기 제 1 레벨의 논리 게이트들의 각각의 진리표 내에서, 대응하는 게이트의 가블드 값들을 포함하는 진리표의 행들을 교환함으로써, 가블드 회로로서 구현될 수 있다. 난수 생성 컴포넌트(RNG1)는 제 2 레벨 또는 그 이상의 논리 게이트들을 포함할 수 있으며, 제 2 레벨 또는 그 이상의 논리 게이트들 각각은, 다른 가블드 논리 게이트, 또는 이전 레벨의 논리 게이트를 생성하는데 사용된 가블드 논리 게이트를 복제하고, 제 1 순위 논리 게이트의 각 진리표에서 진리표의 행들을 교환함으로써 얻어진 논리 게이트를 포함한다. 제 2 레벨 및 임의의 제 3 레벨 이상의 각 논리 게이트는 그 하위 레벨의 논리 게이트 출력들을 결합시킨다. 일 실시예에 따르면, 난수 생성 컴포넌트(RNG1)의 엔트로피 소스는 동일한 랭크의 가블드 논리 게이트들을 병렬로 실행하는 그래픽 프로세서(GP)의 병렬 아키텍처를 이용함으로써 얻어진다. 이러한 아키텍처에서, 현재 실행된 랭크의 가블드 논리 게이트의 가블드 출력 값들이 어느 순서로 공급될지를 미리 결정할 수는 없다. 실행되고 있는 논리 게이트의 가블드 출력값은, 다음 순위의 가블드 논리 게이트들로의 입력으로서, 이들이 획득된 순서대로 주입된다. 따라서, 논리 게이트들의 마지막 랭크의 출력에서 얻어진 가블드 값들은 특정한 랜덤한 특성을 갖는다.
또한, 동일한 복제된 논리 게이트로부터 형성된 여러 레벨들을 포함하도록, RNG1 컴포넌트을 달성하는 것이 가능하며, 여기서 각각의 복제된 논리 게이트는 다른 논리 게이트의 테이블과 관련하여 그들의 행들이 상이하게 정렬(ordered)될 수 있는 진리표를 갖는다. 따라서, 난수 생성 컴포넌트(RNG1)의 입력은 난수 생성 컴포넌트(RNG1)의 논리 게이트들의 수 개의 레벨들의 입력에서 사용될 수 있다.
난수 생성 컴포넌트(RNG1)는 또한 카운터들을 구현하는 가블드 회로의 형태로 구현될 수 있으며, 이들 카운터들 중 일부 카운터들은 다른 카운터들의 정지를 제어한다. 따라서, 카운터들의 값은 랜덤 값을 규정하는 기준이 된다.
난수 생성 컴포넌트(RNG1)는 또한 하위 레벨들의 논리 게이트들의 출력 값들에 적용되는 AES와 같은 암호화 알고리즘을 구현하는 논리 게이트 레벨들을 포함할 수 있다.
난수 생성 컴포넌트(RNG2)는 논리 게이트를 복제하고 복제된 논리 게이트의 진리표의 행을 재정렬함으로써 컴포넌트(RNG1)의 것과 유사한 형태로 실현될 수 있다. 난수 생성 컴포넌트(RNG2)는 또한 가블드 값(RN1)에서 가블드 값을 유도하도록 구성된 가블드 회로로 구현될 수 있다. 이 경우, 값(RN1)은 도 4의 값(S2) 대신에 컴포넌트(RNG2)의 입력부에도 인가된다.
가블드 회로 인터프리터 컴포넌트(GCI)의 전부 또는 일부는 또한 가블드 회로의 형태로 실현될 수 있다. 예를 들어, 논리 게이트의 가블드 출력 값을 얻기 위해 실행되는 행의 각 논리 게이트의 진리표의 행을 암호해독하는 역할을 하는 이러한 가블드 회로 인터프리터 컴포넌트(GCI)의 기능은 전술한 바와 같이, 가블드 회로의 형태로 실현될 수 있다.
도 10은 일 실시예에 따른 단말기의 사용자를 인증하기 위해 수행되는 단계들을 도시한다. 단계 S1 내지 S4는 사용자 인증 기능을 갖는 애플리케이션(AP)을 설치하기 위해 제공된다. 단계 S1에서, 단말기(MT)의 메인 프로세서(HP)는 사용자 식별자(UID)와 연관된 애플리케이션(AP)을 다운로드하기 위한 요청(Rq)을 전송한다. 단계 S2에서, 서버(SRV)는 이러한 요청(Rq)을 수신하고, 단말기(MT)의 그래픽스 프로세서(GP)에 로딩될 프로그램(APG)을 생성한다. APG 프로그램은 적어도 부분적으로 사용자의 UID에 대해 특정적으로 생성된 비밀 데이터로부터 불가해한 코드의 형태로 생성된다. 단계 S3에서, 서버(SRV)는 요청(Rq)에 응답하여, 메인 프로세서(HP) 및 그래픽 프로세서(GP)에 설치될 애플리케이션(AP) 및 프로그램(APG)을 단말기(MT)에 전송한다. 단계 S4에서, 메인 프로세서(HP)는 애플리케이션(AP) 및 프로그램(APG)을 수신하여 이들을 비휘발성 메모리에 저장한 다음 상기 애플리케이션(AP)을 설치한다.
단계 S11 내지 단계 S29는 사용자의 인증을 요구하는 서비스에 대한 트랜잭션 또는 액세스 중에 실행된다.
단계 S11에서, 메인 프로세서(HP) 및 서버(SRV) 또는 다른 서버에 의해 트랜잭션의 종료 시의 예비 처리가 수행된다. 단계 S12에서, 단말기(MT)는 사용자로부터 인증 요청(RqAuth)을 수신한다. 단계 S13에서, 단말기(MT)의 메인 프로세서(HP)는 상기 인층 요청(RqAuth)의 수신에 응답하여 애플리케이션(AP)의 실행을 개시한다. 트랜잭션 또는 서비스에 대한 액세스는 애플리케이션(AP)에서 수행할 수 있다.이 경우, 애플리케이션(AP)는 단계 S11 전에 시작되었다. 단계 S14에서, 메인 프로세서(HP)에 의해 실행되는 애플리케이션(AP)은 그래픽 처리 프로그램(APG1)에 대한 요청을 서버에 전송하며, 이러한 요청은 사용자의 식별자 UID 및 가능하게는, 트랜잭션에 관한 정보를 포함하며, 이러한 정보는 단말기(MT)의 스크린(DSP) 상에 표시될 것이다. 단계 S15에서, 서버(SRV)는 이러한 요청을 수신하고, 프로그램(APG)의 전부 또는 일부를 추가하여서 또는 대체하여서, 단말기(MT)의 그래픽 프로세서(GP)에로드되는 프로그램(APG1)을 생성한다. 여기서도 다시, 프로그램(APG1)은 적어도 부분적으로 사용자의 UID에 대해 특정하게 생성된 비밀 데이터로부터 불가해한 코드 또는 가블드 회로의 형태로 생성된다. 상기 프로그램(APG1)은 결제 대금 및 지불 수령인과 같은 트랜잭션 데이터를 디스플레이하도록 설계될 수 있는 컴포넌트(FCC)를 형성하는 프로그램을 포함한다. 상기 프로그램(APG1)의 일부 FCC 컴포넌트는, 예를 들어, 키 라벨들을 서로 상이하게(라벨의 위치, 라벨의 크기 및 라벨의 글꼴을 서로 상이하게) 디스플레이하록, 상기 프로그램(APG) 내의 키패드 디스플레이 컴포넌트들을 대체할 수도 있다.
단계 S16에서, 서버(SRV)는 자신이 생성한 프로그램(APG1)을 사용자 식별자(UID)로 송신한다. 단계 S17에서, 단말기(MT)는 프로그램(APG1)을 수신하여, 상기 비휘발성 메모리에 이미 저장된 프로그램(APG)의 전부 또는 일부를 대체하거나 추가하여서, 단말기(MT)의 휘발성 메모리 내에 프로그램(APG1)을 로딩하여서, 프로그램(APG-APG1)을 형성한다. 단계 S18에서, 메인 프로세서(HP)는 프로그램(APG-APG1)을 비휘발성 메모리로부터 그래픽 프로세서(GP)의 메모리(GMEM)로 전송한다. 단계 S19에서, 그래픽 프로세서(GP)는 프로그램(APG-APG1)을 로딩하여 시동한다. 단계 S20 및 S24 동안, 프로세서 GP는 프로그램 APG-APG1에 의해 제어된다. 단계(S20)에서, 그래픽 프로세서(GP)는 앞서 기술된 컴포넌트(RNG1 및 FCC)를 실행함으로써, 무작위로 선택된 위치들에 키들이 위치하는 키패드의, 스크린(DSP) 상에서의 디스플레이를 트리거링한다. 따라서, 그래픽 프로세서(GP)에 의한 키패드의 디스플레이는, 스크린 복제가 상술한 바와 같이 키패드의 키들의 구성을 제공하지 않도록 하는 시각적 암호 알고리즘을 적용함으로써 달성된다.
그래픽 프로세서(GP)에 의해 단계 S20이 실행되는 동안, HP 프로세서는 단계 S21 및 S22를 실행한다. 단계 S21에서, 메인 프로세서(HP)는 마우스 또는 터치 표면(CM)에 의해 사용자에 의해 활성화되는 바와 같은, 스크린(DSP) 상의 위치 POS(i)를 획득한다. 단계 S22에서, 활성화된 위치들 중 하나가 유효화 키 "V" 또는 취소 키 "C"의 위치에 대응하면, 메인 프로세서(HP)는 단계 S23에서 그래픽 프로세서(GP)에게, 유효화 또는 취소 메시지를 전송하며, 이러한 메시지는 그래픽 프로세서(GP)로 하여금 스크린(DSP) 상에 디스플레이된 이미지로부터 키패드 이미지를 제거할 수 있게 한다. 그래픽 프로세서(GP)에 의한 이러한 메시지의 수신은, 키패드 디스플레이 단계 S20를 종료하고, 수신된 메시지가 유효화 메시지이면, 그래픽 프로세서(GP)는 단계 S24를 실행하여, 이 단계에서, 프로그램(APG-APG1)의 컴포넌트 (ENC)가 난수 생성 컴포넌트(RNG1)에 의해 생성된 가블드 난수 값(RN1)을 암호화하여, 디스플레이될 키패드의 이미지를 생성한다. 단계 S26에서, 그래픽 프로세서(GP)는 단계 S24에서 계산된 암호화 값(ERN1)을 메인 프로세서(HP)에 공급한다. 단계 S27에서, 메인 프로세서(HP)는 가블드 값(ERN1), 사용자에 의해 도입된 위치 POS(i) 및 사용자의 UID를 서버(SRV)에 전송한다. 단계 S28에서, 서버(SRV)는 이러한 정보들울 수신하여 확인한 다음, 암호화된 값(ERN1)을 암호해독함으로써 정보들을 검증한다. 암호화된 값(ERN1)의 암호해독은 컴포넌트(ENC)에 대응하는 가블드 회로를 실행하고, 사용자의 UID와 관련하여 저장된 키(Krj)를 사용함으로써 서버 (SRV)에 의해 수행된다. 이러한 암호 해독 연산은 가블드 난수 값(RN1)을 생성한다. 이러한 값의 원래 이진 값을 결정하기 위해 가블드 값(RN1)을 디코딩하면 디스플레이된 키패드의 키 순서가 결정된다. 사용자에 의해 입력된 비밀 코드(SC)는 입력된 위치 POS(i) 및 디스플레이된 키패드의 키의 순서에 의해 결정된다. 단계 S29에서, 서버(SRV)는 사용자에 의해 도입되어 획득된 비밀 코드(SC)가 사용자의 UID와 관련하여 저장된 비밀 코드(SC')에 대응하는지를 검증한다. 서로 대응하는 경우에, 서버(SRV)는 사용자가 인증되었다고 간주한다. 그런 다음, 서버(SRV)는 트랜잭션의 유효성을 검사하거나 가능한 서버 파티에게 트랜잭션을 알릴 수 있다. 단계 S30에서, 서버(SRV)는 사용자의 인증의 성공 또는 실패를 단말기(MT)에 통지한다. 그런 다음, 메인 프로세서(HP)는 트랜잭션의 성공 또는 실패를 사용자에게 알리는 알림사항을 디스플레이할 수 있다.
일 실시예에 따르면, 프로그램(APG-APG1)은 그래픽 프로세서(GP)의 컴퓨팅 자원의 적어도 80 %를 차지하도록 구성된다. 이러한 방식으로, 그래픽 프로세서(GP)의 하나 이상의 유닛(TP 또는 SFU)에 의한 실행을 위해 다른 프로그램이 로딩되면, 그래픽 프로세서(GP)의 동작이 방해 받게된다. 따라서, 그래픽 프로세서(GP)에 의해 실행되는 다른 프로그램에 의해 스크린(DSP) 상에 디스플레이된 화상이 디스플레이되지 않도록 보장된다.
일 실시예에 따르면, 각 키의 문자는 각 트랜잭션과 함께 다운로드된 프로그램(APG1)에 규정된 가변 위치, 가변 크기 및 가변 폰트를 갖는 키의 이미지로 디스플레이될 수 있다. 따라서, 프로그램(APG1)은 디스플레이될 키패드의 하나 이상의 키들의 규정사항을 포함할 수 있다.
단계(S11 내지 S30)는 서비스에 대한 액세스, 온라인 지불 트랜잭션의 검증 또는 전자 투표 서비스와 같은 다양한 애플리케이션에 대해 구현될 수 있다. 전자 투표 서비스의 경우에, 애플리케이션(AP)의 실행 중에 서버(SRV)에 의해 제공되는 프로그램(APG1)은 투표 후보자의 이름을 디스플레이하기 위한 FCC 컴포넌트를 포함할 수 있으며, 각각의 후보는 키들이 단말기(MT)에 의해 디스플레이된 이미지에서 무작위로 분포되는 키패드의 키와 관련된다. 예를 들어, 사용자는 그가 투표하기를 원하는 후보에 대응하는 키패드의 키를 활성화시킴으로써 후보를 선택하고, 키 세트를 활성화시킴으로써 비밀 코드를 입력하여, 서버(SRV)가 해당 사용자를 인증할 수 있게 한다.
또한, 가블드 회로와 같은 불가해한 프로그램의 형태로 구현되는 암호화 컴포넌트(ENC)에 결합된 컴포넌트(RNG1)는 또한, 그래픽 프로세서(GP)와 서버에 의해서만 공유되고 그래픽 프로세서(GP)와 서버 외부에서는 액세스할 수 없는 비밀 데이터(가블드 랜덤 값(RN1))를 기반으로, 프로세서(GP)와 보안 프로세서 또는 서버(SRV) 간의 보안 통신 채널을 확립하기 위한 애플리케이션으로 구현될 수 있다. 보안 통신 채널은 그래픽 프로세서(GP) 및 서버(SRV)에 의해 구현된 암호화 알고리즘을 사용하여, 비밀 데이터를 암호화 키로 사용하거나, 그래픽 프로세서(GP) 및 서버(SRV)에 의해 동일한 암호화 키를 유도함으로써 달성될 수 있다. 이어서, 프로그램(APG, APG1)은 비밀 데이터를 사용하여 서버(SRV)에 의해 전송 및 암호화된 데이터를 암호해독하기 위한 암호해독 컴포넌트를 포함한다. 도 10의 절차와 유사한 절차가 구현될 수 있으며, 이 절차는, 단계 S11 내지 S28를 포함하지만, 이미지를 디스플레이하는 단계 S20 및 비밀 코드(SC)를 결정하는 단계 S28 및 이 비밀 코드를 예상 값과 비교하는 단계 S29를 포함하지 않은다.
컴포넌트들(RNG1, ENC 및 FCC)은 또한 일회용 코드를 생성하여 단말기의 스크린(DSP) 상에 디스플레이하도록 구현될 수 있다.
디스플레이될 키패드의 이미지를 생성하거나 디스플레이될 일회용 코드를 생성하기 위한 컴포넌트(KGN)의 입력부에서의 난수들은 서버(SRV)에 의해, 이전에 기술된 바와 같은 보안 통신 채널을 사용하여, 프로세서(GP)로 전송될 수 있다.
전술한 설명, 특히, 도 10에 대한 설명에서, 서버(SRV)에 의해 실행되는 모든 기술된 동작들은 전술한 보안 프로세서(SE)와 같은, 단말기(MT)에 포함된 보안 프로세서에 의해 대안적으로 실행될 수 있다.
당업자는 본 발명이 다양한 대안들로 적용되고 및 다양하게 응용될 수 있음을 알 것이다. 특히, 본 발명은 컴포넌트들(RNG1, ENC 및 FCC)에 대한 가블드 회로 형태의 실시예로 제한되지 않는다. 프로그램 난독화 방법과 같은 다른 방법은 프로그램의 코드를 불가해하게 하며, 프로세서에 로드된 프로그램의 연산을 모호하게 하고 및/또는 프로그램의 연산이 공개되지 않도록하거나, 허가받지 않은 사람에 의한 프로그램의 수정을 방지한다. 이러한 방법은 예를 들어, 문헌 "Obfuscating Circuits via Composite-Order Graded Encoding" Benny Applebaumy, Zvika Brakerskiz, IACR-TCC 12/01/2015, 또는 문헌 "How to Obfuscate Programs Directly", Joe Zimmerman , IACR, 30/09/2014에 기술되어 있다.
특히, 모바일 단말기거 구비한 일부 그래픽 프로세서는 상술한 동작을 수행하기에 충분히 강력하지 않을 수 있음을 알아야한다. 모바일 단말기의 메인 프로세서(HP)는 그래픽 프로세서(GP) 대신에 전술한 기능 전부 또는 일부를 수행하는데 사용될 수 있으며, 트랜잭션 프로세스의 보안은 불가해한 프로그램의 형태로 이러한 기능을 구현함으로써 보장된다. 그러한 프로그램은 리버스 엔지니어링으로 암호해독하기 위해 수학적으로 불가능한다. 자신의 실행 결과가 프로그램에 의해 생성된 랜덤 값에 의존하는 경우에, 프로그램의 입력 데이터를 악용할 수도 없다. 또한 보호된 컴포넌트는 컴포넌트의 전기 소비량에서의 변화 또는 해당 컴포넌트가 방출하는 전자기장에서의 변화를 측정하는 것을 수반하는 사이드 채널 분석의 대상이 될 수 있음에 유의해야 한다. 이러한 컴포넌트의 구조는 또한 전자 현미경으로 분석할 수 있다. 반대로, 이러한 분석 방법들은 불가해한 프로그램의 시맨틱스를 결정하는 데 효과가 없다.
또한, 임의의 시간에 개별적으로 리프레시된 픽셀 패턴들의 부분들을 갖는 이미지를 디스플레이하고 이들을 결합하여 인간 시각 시스템의 지속성을 이용함으로써 이해가능한 이미지를 형성하는 것은, 비밀 데이터를 공유하는 방법과 별도로 구현될 수 있는 독립형 발명이다. 따라서, 본 발명은 비밀 데이터 공유 방법, 및 개별적으로는 인간이 이해할 수 없는 일련의 프레임들의 형태로 랜덤하게 규정된 키 분포를 갖는 키패드의 이미지의 디스플레이를 조합한 인증 방법으로 제한되지 않는다. 실제로, 개별적으로는 인간이 이해할 수 없는 일련의 프레임들의 형태로서 디스플레이되는, 무작위로 규정된 키 분포를 갖는 키패드의 이미지에 따라서 사용자에 의해 도입된 비밀 코드에만 기초하여, 비밀 데이터를 공유하지 않고서도, 사용자를 인증하는 것이 고려될 수 있다. 예를 들어, 비밀 데이터를 공유하는 방법은 단말기와 서버 또는 단말기에 포함된 보안 프로세서 간에 보안 링크를 확립하도록 구현될 수 있다.
또한, 키패드의 디스플레이된 이미지는 사용자가 영역들을 선택하도록 요청된 임의의 다른 이미지로 대체될 수 있으며, 여기서 각각의 영역은 라벨 또는 아이콘과 연관되며, 이들 영역은 이미지 내에서 랜덤하게 규정된 각각의 위치를 갖는다. 따라서, 디스플레이되는 라벨 또는 아이콘은 예를 들어 트랜잭션 데이터를 나타낼 수 있는 숫자, 문자, 기호, 그림문자 또는 메시지를 나타낼 수 있다. 디스플레이된 이미지는 문제 및 이 문제에 대한 가능한 대답을 나타내는 선택 영역 또는 문제에 의해 지정된 특정 순서로 선택될 키들의 라벨을 나타낼 수 있다.

Claims (30)

  1. 보안 프로세서(SRV, SE)에 의해 사용자를 인증하는 방법으로서,
    선택 가능한 영역들을 갖는 이미지(IM)를 사용자의 단말기(MT)의 디스플레이 스크린 상에 디스플레이하도록 하는 불가해한(impenetrable) 프로그램(APG, APG1)을, 상기 단말기(MT)에 의해 실행하는 단계로서, 각각의 선택 가능한 영역은 라벨 또는 아이콘이 할당되고 상기 이미지 내에서 랜덤 데이터에 의해 규정된 분포를 가지며, 상기 이미지는 사용자가 개별적으로는 이해할 수 없는 프레임들(IM1)을 포함하고, 상기 라벨들 또는 아이콘들이 사용자가 이해 가능한 방식으로 디스플레이 스크린 상에 보이도록 사용자의 시각 시스템의 지속성이 이용되기에 적합한 레이트(rate)로 상기 프레임들이 연속적으로 디스플레이되는, 상기 불가해한 프로그램을 실행하는 단계;
    상기 디스플레이된 이미지와 관련하여, 사용자가 상기 단말기의 인터페이스를 이용하여 지정한 상기 디스플레이 스크린 상의 위치들(Pos<i>)을 상기 단말기에 의해 수집하는 단계;
    상기 사용자에 의해 지정된 위치들을 상기 단말기에 의해 상기 보안 프로세서로 전송하는 단계; 및
    상기 디스플레이된 이미지와 관련된 상기 지정된 위치들을 상기 보안 프로세서에 의해 확인하는 단계로서, 상기 지정된 위치들이 상기 보안 프로세서에 알려진 사용자의 인증 데이터에 대응하는 경우에 상기 사용자가 인증되는, 상기 확인하는 단계;를 포함하는, 사용자 인증 방법.
  2. 제 1 항에 있어서,
    상기 보안 프로세서에 의해 상기 불가해한 프로그램(APG, APG1)을 상기 단말기(MT)로 전송하는 단계를 포함하는, 사용자 인증 방법.
  3. 제 2 항에 있어서,
    상기 프로그램(APG1)은 상기 단말기(MT)가 트랜잭션 데이터를 디스플레이하도록 하는, 사용자 인증 방법.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 보안 프로세서(SRV, SE)에 의해 상기 단말기(MT)로 전송된 프로그램(APG1)은, 상기 단말기가 상기 이미지 내의 선택 가능한 영역들의 라벨들 또는 아이콘들을, 각 영역 내의 위치들에서, 및/또는 상기 프로그램에 특정된 크기 및/또는 폰트로, 디스플레이하도록 하는, 사용자 인증 방법.
  5. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
    상기 단말기(MT)에 의한 상기 이미지(IM1)의 디스플레이는,
    상기 선택 가능한 영역들의 라벨들 또는 아이콘들을 나타내는 상기 이미지의 각 픽셀 또는 픽셀 그룹에 대하여, 상보적인 픽셀 패턴들(complementary pixel patternms)로 연속적으로 분해하는 단계, 및
    상기 생성된 상보적인 픽셀 패턴들(EP1, EP2)이 사용자의 시각 시스템의 지속성을 이용하기에 적합한 레이트로 연속적으로 디스플레이되는 경우에만, 상기 선택 가능한 영역의 라벨들 또는 아이콘들이 상기 디스플레이 스크린 상에 가시적이 되도록, 각 선택된 분해에 대해서, 상보적인 픽셀 패턴들(EP1, EP2)을 연속적으로 생성하는 단계를 포함하는, 사용자 인증 방법.
  6. 제 1 항 내지 제 5 항 중 어느 한 항에 있어서,
    상기 단말기(MT)에 의한 상기 이미지(IM1)의 디스플레이는,
    상기 생성된 픽셀 패턴들이 연속적으로 디스플레이되더라도 상기 생성된 픽셀 패턴들을 인간의 시각 시스템이 결합할 수 있도록, 가변 지속 기간(TP1, TP2, TP3)만큼 이격된 랜덤하게 선택된 시간들로, 상기 생성된 픽셀 패턴들(P1, P2, P3)을 상기 단말기에 의해서 디스플레이하는 연속적인 단계들을 포함하며,
    디스플레이된 이미지를 형성하는 픽셀 패턴들의 상기 디스플레이 시간들(t1, t2, t3)은 서로 구별되고 독립적인, 사용자 인증 방법.
  7. 제 1 항 내지 제 6 항 중 어느 한 항에 있어서,
    상기 보안 프로세서(SRV, SE)에 의해 단말기(MT)로 전송된 불가해한 프로그램은,
    상기 단말기가,
    상기 이미지 내의 선택 가능한 영역들의 라벨들 또는 아이콘들의 분포가 랜덤 데이터(RN1)로부터 규정되도록, 상기 랜덤 데이터(RN1)를 생성하고,
    상기 랜덤 데이터를 암호화된 형태(ERN1)로 상기 보안 프로세서로 전송하도록하며,
    상기 방법은,
    상기 보안 프로세서에 의해 상기 랜덤 데이터를 암호해독하는 단계,
    상기 보안 프로세서에 의해, 상기 단말기에 의해 디스플레이된 상기 이미지 내의 선택 가능한 영역들의 라벨들 또는 아이콘들의 분포를 결정하는 단계, 및
    상기 보안 프로세서에 의해, 상기 사용자에 의해 지정된 위치들로부터 사용자에 의해 입력된 비밀 코드를 결정하고, 상기 선택 가능한 영역들의 라벨들 또는 아이콘들의 분포를 결정하는 단계를 포함하는, 사용자 인증 방법.
  8. 제 1 항 내지 제 7 항 중 어느 한 항에 있어서,
    상기 불가해한 프로그램(APG, APG1)은 상기 이미지의 선택가능한 영역의 아이콘 또는 라벨을 나타내는 상기 이미지 내의 각 픽셀 또는 픽셀 그룹에 대하여, 상보적인 픽셀 패턴들로의 분해를 선택하는데 사용되는 랜덤 데이터(RN2)를 생성하기 위한 난수 또는 의사 난수 생성 컴포넌트(RNG2)를 포함하는, 사용자 인증 방법.
  9. 사용자의 단말기(MT)에 의해 비밀 데이터(RN1)를 생성하는 단계,
    상기 비밀 데이터를 암호화하는 단계, 및
    상기 암호화된 비밀 데이터를 보안 프로세서에 전송하는 단계를 포함하는, 단말기(MT)와 보안 프로세서(SRV, SE) 사이에 비밀 데이터를 공유하는 방법에 있어서,
    상기 비밀 데이터(RN1)를 생성하는 단계 및 비밀 데이터를 암호화하는 단계를 구현하는 불가해한 프로그램(RNG1, ENC)을 상기 단말기에 의해 실행하는 단계를 포함하는 것을 특징으로 하는, 비밀 데이터 공유 방법.
  10. 제 9 항에 있어서,
    상기 보안 프로세서(SRV, SE)로부터 상기 단말기(MT)로 상기 불가해한 프로그램(RNG1, ENC)의 적어도 일부를 전송하는 단계를 포함하는, 비밀 데이터 공유 방법.
  11. 제 9 항 또는 제 10 항에 있어서,
    상기 단말기(MT)와 보안 프로세서(SRV, SE) 간에 링크를 형성하는 단계를 포함하고,
    상기 링크는 상기 단말기와 보안 프로세서 사이에서만 공유되는 상기 비밀 데이터(RN1)에 의해 보호되는, 비밀 데이터 공유 방법.
  12. 제 9 항 내지 제 11 항 중 어느 한 항에 있어서,
    상기 비밀 데이터(RN1)는 상기 불가해한 프로그램(RNG1, ENC)의 난수 또는 의사 난수를 생성하기 위한 컴포넌트(RNG1)에 의해 랜덤하게 또는 의사-랜덤하게 생성되는, 비밀 데이터 공유 방법.
  13. 보안 프로세서에 접속된 단말기로부터, 보안 프로세서(secure processor; SRV, SE)에 의해, 사용자를 인증하는 방법으로서,
    상기 단말기와 보안 프로세서 사이에서만 공유되는 비밀 데이터(RN1)를 생성하기 위해, 및 선택 가능한 영역들을 갖는 이미지(IM)를 상기 단말기의 디스플레이 스크린 상에 디스플레이하기 위해, 상기 단말기가 제 9 항 내지 제 12 항 중 어느 한 항에 따른 방법을 실행하도록 하는 프로그램(RN1, ENC, FCC)을 상기 단말기에 로딩하는 단계로서, 각각의 선택가능한 영역은 라벨 또는 아이콘이 할당되고 상기 공유된 비밀 데이터를 사용하여 상기 이미지 내에서 규정된 분포를 갖는, 상기 로딩하는 단계;
    상기 공유된 비밀 데이터를 생성하고 상기 디스플레이 스크린 상에 상기 이미지를 디스플레이하도록 상기 단말기에 의해 상기 프로그램을 실행하는 단계로서, 상기 이미지는 사용자가 개별적으로는 이해할 수 없는 프레임들(IM1)을 포함하고, 상기 라벨들 또는 아이콘들이 사용자에게 이해 가능한 방식으로 상기 디스플레이 스크린 상에 나타나도록 사용자의 시각 시스템의 지속성을 이용하기에 적합한 레이트로 상기 프레임들이 연속적으로 디스플레이되는, 상기 프로그램을 실행하는 단계;
    사용자가, 상기 단말기의 인터페이스를 이용하여, 상기 디스플레이된 이미지와 관련하여 지정한 상기 디스플레이 스크린 상의 위치들(Pos<i>)을 상기 단말기에 의해 수집하는 단계;
    상기 사용자에 의해 지정된 위치들을 상기 단말기에 의해 상기 보안 프로세서로 전송하는 단계; 및
    상기 디스플레이된 이미지와 관련된 상기 지정된 위치들을 상기 보안 프로세서에 의해 확인하는 단계로서, 상기 지정된 위치들이 상기 보안 프로세서에 알려진 사용자의 인증 데이터에 대응하는 경우에 상기 사용자는 인증되는, 상기 확인하는 단계;를 포함하는, 사용자 인증 방법.
  14. 제 13 항에 있어서,
    상기 공유된 비밀 데이터(RN1)는 상기 디스플레이된 이미지(IM1)의 선택가능한 영역들의 분포를 규정하는, 사용자 인증 방법.
  15. 제 13 항 또는 제 14 항에 있어서,
    상기 프로그램(APG1)은 상기 단말기(MT)가 트랜잭션 데이터를 디스플레이하도록 하고,
    상기 트랜잭션 데이터는 사용자가 이해 불가능한 방식으로 상기 프레임들에 나타나는, 사용자 인증 방법.
  16. 제 13 항 내지 제 15 항 중 어느 한 항에 있어서,
    상기 보안 프로세서(SRV, SE)에 의해 상기 단말기(MT)로 전송된 프로그램(APG1)은, 상기 단말기가 상기 이미지 내의 선택 가능한 영역들의 라벨들 또는 아이콘들을 각 영역 내의 위치들에서, 및/또는 상기 프로그램에 특정된 크기 및/또는 특정된 폰트로 디스플레이하도록 하는, 사용자 인증 방법.
  17. 제 13 항 내지 제 16 항 중 어느 한 항에 있어서,
    상기 단말기(MT)에 의한 이미지(IM1)의 디스플레이는,
    상기 선택 가능한 영역들의 라벨들 또는 아이콘들을 나타내는 이미지의 각 픽셀 또는 픽셀 그룹에 대하여, 상보적인 픽셀 패턴들(complementary pixel patternms)로 분해를 선택하는 단계, 및
    각 선택된 분해에 대해서, 상보적인 픽셀 패턴들(EP1, EP2)을 생성하는 단계로서, 상기 생성된 상보적인 픽셀 패턴들(EP1, EP2)이 사용자의 시각 시스템의 지속성을 이용하기에 적합한 레이트로 연속적으로 디스플레이되는 경우에만, 상기 선택 가능한 영역의 라벨들 또는 아이콘들이 상기 디스플레이 스크린 상에 가시적이 되는, 상기 상보적인 픽셀 패턴들(EP1, EP2)을 생성하는 단계의 연속적인 단계들을 포함하는, 사용자 인증 방법.
  18. 제 13 항 내지 제 17 항 중 어느 한 항에 있어서,
    상기 단말기(MT)에 의한 이미지(IM1)의 디스플레이는,
    상기 생성된 픽셀 패턴들이 연속적으로 디스플레이되더라도 인간의 시각 시스템이 상기 생성된 픽셀 패턴들을 조합할 수 있도록, 가변 지속 기간(TP1, TP2, TP3)만큼 이격된 랜덤하게 선택된 시간들에서, 상기 생성된 픽셀 패턴들(P1, P2, P3)을 단말기에 의해서 연속적으로 디스플레이하는 단계를 포함하며,
    디스플레이되는 이미지를 형성하는 픽셀 패턴들의 디스플레이 시간들(t1, t2, t3)은 서로 구별되고 독립적인, 사용자 인증 방법.
  19. 제 1 항 내지 제 18 항 중 어느 한 항에 있어서,
    상기 보안 프로세서(SRV, SE)에 의해 단말기(MT)로 전송된 불가해한 프로그램(APG, APG1)은, 상기 단말기가 상기 프로그램을 실행하는 프로세서의 컴퓨팅 자원들의 적어도 80 %를 점유하도록 하는, 방법.
  20. 제 1 항 내지 제 19 항 중 어느 한 항에 있어서,
    상기 보안 프로세서(SRV, SE)에 의해 송신되고 상기 단말기(MT)에 의해 실행되는 상기 불가해한 프로그램(APG, APG1)은, 다수의 순위화된 레벨들로 분포된 논리 게이트들을 포함하는 가블드 회로(garbled circuit)(RNG1, FCC, ENC)를 포함하고,
    상기 논리 게이트들은, 상기 가블드 회로의 입력 값들만을 수신하는 제 1 레벨 그룹화 논리 게이트들(level grouping logic gates)을 포함하며,
    특정 레벨의 논리 게이트들은 하위 레벨들에 속하는 논리 게이트들로부터의 값만을 수신하거나, 상기 가블드 회로의 입력 값들만을 수신하고,
    각각의 논리 게이트는, 논리 게이트의 각 입력 비트 및 각 출력 비트의 각각의 가능한 비트 값을 나타내는 가블드 값들(garbled values)과 연관되고,
    각각의 논리 게이트는, 논리 게이트의 입력 이진 값들의 각 가능한 조합에 대해, 상기 논리 게이트의 입력 비트 값들의 조합에 대응하는 논리 게이트의 출력 값을 나타내는 가블드 값의 암호화에 의해 획득된 값을 포함하는 진리 표와 연관되며,
    그래픽 프로세서에 의한 상기 가블드 회로의 실행은,
    상기 순위화된 레벨들의 순서로 다수의 레벨들의 논리 게이트들을 연속적으로 실행하는 단계로서, 각 레벨의 논리 게이트들을 실행하는 동작은 상기 레벨의 논리 게이트들 모두를 동시에 실행하는 동작을 포함하고, 논리 게이트의 실행은, 상기 논리 게이트의 가블드 입력 값들의 함수로서, 상기 논리 게이트와 연관된 진리표의 행(row)을 선택하고 및 상기 논리 게이트의 가블드 출력 값을 얻기 위해 선택된 행을 암호해독하는 단계들을 포함하는, 상기 다수의 레벨들의 논리 게이트들을 연속적으로 실행하는 단계, 및
    다음 레벨의 논리 게이트를 실행할 때 결과로서 생성된 가블드 출력 값들이 고려되도록, 상기 결과로서 생성된 가블드 출력 값들을 더 높은 레벨의 논리 게이트의 입력부에 인가하기 위하여 출력 메모리 영역(VMEM)으로부터 입력 메모리 영역(GMEM)으로 전달하는 단계를 포함하는, 방법.
  21. 제 20 항에 있어서,
    상기 가블드 회로(RNG1, FCC, ENC)의 실행은, 적어도 부분적으로 가블드 회로의 형태로 구현된 인터프리터(GCI) 자체에 의해 수행되는, 방법.
  22. 제 1 항 내지 제 21 항 중 어느 한 항에 있어서,
    동일한 입력 데이터에 대해 상이한 출력 데이터를 제공하도록, 동일한 행들을 가지나 상이하게 순위화된(ordered) 테이블들과 연관된 제 1 레벨의 논리 게이트들을 포함하는 가블드 회로(RNG1, RNG2)를 사용하여 상기 비밀 또는 랜덤 데이터(RN1, RN2)가 생성되고,
    상기 제 1 레벨의 논리 게이트들의 출력 데이터들은, 상기 제 1 레벨의 논리 게이트들에 의해 제공되는 순서에 따라서, 다음 레벨의 논리 게이트들에 제공되는, 방법.
  23. 제 1 항 내지 제 21 항 중 어느 한 항에 있어서,
    상기 비밀 또는 랜덤 데이터(RN1, RN2)는 다수의 동일한 연산들의 실행을 동시에 병렬로 수행함으로써 생성되고,
    상기 랜덤 데이터는 상기 연산들이 종료되는 순서에 의존하는, 방법.
  24. 제 1 항 내지 제 23 항 중 어느 한 항에 있어서,
    상기 보안 프로세서는 상기 단말기(MT)가 접속된 서버(SRV)인, 방법.
  25. 제 1 항 내지 제 23 항 중 어느 한 항에 있어서,
    상기 보안 프로세서(SE)는 상기 단말기(MT) 내에 포함되는, 방법.
  26. 단말기로서,
    상기 단말기가 선택 가능한 영역들을 갖는 이미지(IM)를 상기 단말기(MT)의 디스플레이 스크린 상에 디스플레이하도록 하는 불가해한(impenetrable) 프로그램(APG, APG1)을 실행하도록 구성되고, 각각의 선택 가능한 영역은 라벨 또는 아이콘과 연관되고 상기 이미지 내에서 랜덤 데이터에 의해 규정된 분포를 가지며, 상기 이미지는 사용자가 개별적으로는 이해할 수 없는 프레임들(IM1)을 포함하고, 상기 라벨들 또는 아이콘들이 사용자가 이해 가능한 방식으로 상기 디스플레이 스크린 상에 보이도록 상기 사용자의 시각 시스템의 지속성이 이용되기에 적합한 레이트(rate)로 상기 프레임들이 연속적으로 디스플레이되며,
    상기 단말기는, 상기 디스플레이된 이미지와 관련하여 단말기의 인터페이스에 의해 사용자가 지정한 디스플레이 스크린 상의 위치들(Pos<i>)을 수집하도록 구성되며, 및
    상기 단말기는, 사용자에 의해 지정된 위치들을 상기 보안 프로세서(SRV, SE)에 전송하도록 구성되며,
    상기 지정된 위치들이 상기 보안 프로세서에 알려진 사용자의 인증 데이터에 대응하는 경우에, 사용자가 상기 보안 프로세서에 의해 인증되는, 단말기.
  27. 단말기가, 비밀 데이터(RN1)를 생성하고,
    상기 비밀 데이터를 암호화하며,
    상기 암호화된 비밀 데이터를 보안 프로세서(SRV, SE)로 전송하도록 하는, 불가해한(impenetrable) 프로그램(APG, APG1)을 실행하도록 구성되는, 단말기.
  28. 제 2 항 내지 제 8 항 및 제 10 항 내지 제 25 항 중 어느 한 항에 따른 방법을 실행하도록 구성된 단말기.
  29. 제 1 항 내지 제 25 항 중 어느 한 항에 따른 방법을 실행하도록 구성된 서버.
  30. 단말기(MT)에 의해 로딩되고 실행될 때, 상기 단말기가 제 1 항 내지 제 25 항 중 어느 한 항에 따른 방법을 실행하도록 하는 컴퓨터 프로그램.
KR1020187006366A 2015-08-04 2016-08-03 비보안 단말기로부터의 트랜잭션을 보안화하는 방법 KR20180037254A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR1557534A FR3039948B1 (fr) 2015-08-04 2015-08-04 Procede de securisation d’une transaction a partir d’un terminal non securise
FR1557534 2015-08-04
PCT/FR2016/052023 WO2017021657A1 (fr) 2015-08-04 2016-08-03 Procédé de sécurisation d'une transaction a partir d'un terminal non sécurise

Publications (1)

Publication Number Publication Date
KR20180037254A true KR20180037254A (ko) 2018-04-11

Family

ID=54937227

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187006366A KR20180037254A (ko) 2015-08-04 2016-08-03 비보안 단말기로부터의 트랜잭션을 보안화하는 방법

Country Status (6)

Country Link
US (1) US20180240100A1 (ko)
EP (1) EP3332504B1 (ko)
KR (1) KR20180037254A (ko)
CN (1) CN108141350A (ko)
FR (1) FR3039948B1 (ko)
WO (1) WO2017021657A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI634776B (zh) * 2017-08-04 2018-09-01 飛捷科技股份有限公司 影像顯示系統及應用於其上之影像顯示方法
US11818249B2 (en) * 2017-12-04 2023-11-14 Koninklijke Philips N.V. Nodes and methods of operating the same
EP3528161A1 (en) * 2018-02-19 2019-08-21 Skeyecode Method for signing a transaction
US11443072B2 (en) * 2018-06-29 2022-09-13 Microsoft Technology Licensing, Llc Peripheral device with resource isolation
CN110661764A (zh) 2018-06-29 2020-01-07 阿里巴巴集团控股有限公司 安全多方计算协议的输入获取方法和装置
US11126757B2 (en) 2018-10-19 2021-09-21 Microsoft Technology Licensing, Llc Peripheral device
US11245680B2 (en) * 2019-03-01 2022-02-08 Analog Devices, Inc. Garbled circuit for device authentication
US10797866B1 (en) * 2020-03-30 2020-10-06 Bar-Ilan University System and method for enforcement of correctness of inputs of multi-party computations
CN115292142B (zh) * 2022-10-08 2022-12-16 成都中科合迅科技有限公司 基于可识别格式数据自动化可视化方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7505604B2 (en) * 2002-05-20 2009-03-17 Simmonds Precision Prodcuts, Inc. Method for detection and recognition of fog presence within an aircraft compartment using video images
EP2372945A1 (fr) * 2010-03-31 2011-10-05 France Telecom Procédé de transmission sécurisée de données entre un terminal numérique et une plateforme de services interactifs
FR2959896B1 (fr) * 2010-05-06 2014-03-21 4G Secure Procede d'authentification d'un utilisateur requerant une transaction avec un fournisseur de service
FR2971599B1 (fr) * 2011-02-11 2013-03-15 Jean Luc Leleu Procede de transaction securisee a partir d'un terminal non securise
FR2995433B1 (fr) * 2012-09-11 2016-09-02 Arjowiggins Security Procede d'authentification d'un element de securite par superposition de n images partagees en couleur et element de securite mettant en œuvre ce procede
WO2014108835A2 (en) * 2013-01-08 2014-07-17 Bar-Ilan University A method for providing security using secure computation
US9264899B2 (en) * 2013-12-19 2016-02-16 Nxp, B.V. Binding mobile device secure software components to the SIM

Also Published As

Publication number Publication date
FR3039948B1 (fr) 2017-08-11
FR3039948A1 (fr) 2017-02-10
EP3332504A1 (fr) 2018-06-13
EP3332504B1 (fr) 2019-10-30
WO2017021657A1 (fr) 2017-02-09
CN108141350A (zh) 2018-06-08
US20180240100A1 (en) 2018-08-23

Similar Documents

Publication Publication Date Title
KR20180037254A (ko) 비보안 단말기로부터의 트랜잭션을 보안화하는 방법
US10380361B2 (en) Secure transaction method from a non-secure terminal
EP3319069B1 (en) Method for authenticating a user by means of a non-secure terminal
US8000473B2 (en) Method and apparatus for generating cryptographic sets of instructions automatically and code generator
US20050044395A1 (en) Secure data input dialogue using visual cryptography
CN101682506A (zh) 用于确定在保护数据时应用的可编程处理步骤的系统和方法
CN101448127B (zh) 保密信息存储系统和方法
KR102055625B1 (ko) 인증 서버 장치, 프로그램 및 인증 방법
KR20130093557A (ko) 적어도 하나의 암호화 명령어를 포함하는 소프트웨어 애플리케이션의 협력 실행을 위한 시스템, 장치, 및 방법
Cao et al. Secure QR code scheme based on visual cryptography
US20190258829A1 (en) Securely performing a sensitive operation using a non-secure terminal
EP3319000A1 (en) Method for securing a transaction performed from a non-secure terminal
EP3319067A1 (en) Method for authenticating a user by means of a non-secure terminal
EP3594838A1 (en) Method for recovering a secret key securely stored in a secure element
EP3319068A1 (en) Method for securely transmitting a secret data to a user of a terminal
EP3319001A1 (en) Method for securely transmitting a secret data to a user of a terminal
KR101691172B1 (ko) 단말기 및 이를 이용한 정보 처리 방법
CN114531236B (zh) 一种密钥的处理方法、装置及电子设备
KR20110129068A (ko) 모바일 보안카드를 이용한 인터넷 뱅킹 거래 시스템 및 그 방법
EP3319002B1 (en) Method for securely performing a sensitive operation using a non-secure terminal
JP2011097192A (ja) 暗号化メッセージ送信装置、プログラム、暗号化メッセージ送信方法および認証システム
KR20230064583A (ko) 스트리밍 서비스 제공 시스템 및 이의 방법
EP3319269A1 (en) Method for securely performing a sensitive operation using a non-secure terminal
KR101677846B1 (ko) 입력 정보를 처리하는 단말기 및 그 동작 방법
CN103729602A (zh) 利用电源管理控制器对系统进行加密保护的方法