KR-102960575-B1 - Electronic device that performs user authentication using homomorphic encryption and control method thereof
Abstract
전자 장치 및 이의 제어 방법이 제공된다. 본 전자 장치는 통신 장치, 동형 암호를 수행하기 위한 암호키와 복호키를 저장하는 메모리, 메모리와 연결되어 전자 장치를 제어하기 위한 프로세서;를 포함하며, 프로세서는 사용자의 식별 정보 및 제1 패스워드를 등록하기 위하여 사용자 식별 정보 및 제1 패스워드가 입력되면, 제1 패스워드를 이용하여 해쉬값을 획득하고, 암호키를 이용하여 해쉬값을 암호화하고, 통신 장치를 통해 식별 정보와 암호화된 해쉬값을 서버로 전송하고, 서버에 로그인하기 위하여 식별 정보 및 제2 패스워드가 입력되면, 암호키와 복호키를 로딩하고, 통신 장치를 통해 서버로 식별 정보를 전송하고, 서버로부터 제1 난수(nonce)가 수신되면, 복호키, 제2 패스워드 및 제1 난수를 이용하여 제1 인증값을 획득하고, 통신 장치를 통해 서버로 제1 인증값을 전송하고, 서버로부터 제1 인증값 및 제2 난수를 이용하여 생성된 제2 인증값이 수신되면, 복호키를 이용하여 제2 인증값을 복호화하여 제3 인증값을 획득하고, 통신 장치를 통해 서버로 제3 인증값을 전송한다. 이때, 서버는 제3 인증값을 이용하여 사용자를 인증한다.
Inventors
- 신준범
- 서정주
Assignees
- 주식회사 크립토랩
Dates
- Publication Date
- 20260506
- Application Date
- 20240221
- Priority Date
- 20230303
Claims (18)
- 전자 장치에 있어서, 통신 장치; 동형 암호를 수행하기 위한 암호키와 복호키를 저장하는 메모리; 상기 메모리와 연결되어 상기 전자 장치를 제어하기 위한 프로세서;를 포함하며, 상기 프로세서는, 사용자의 식별 정보 및 제1 패스워드를 등록하기 위하여 사용자 식별 정보 및 제1 패스워드가 입력되면, 상기 제1 패스워드를 이용하여 해쉬값을 획득하고, 상기 암호키를 이용하여 상기 해쉬값을 암호화하고, 상기 통신 장치를 통해 상기 식별 정보와 상기 암호화된 해쉬값을 서버로 전송하고, 상기 서버에 로그인하기 위하여 상기 식별 정보 및 제2 패스워드가 입력되면, 상기 암호키와 상기 복호키를 로딩하고, 상기 통신 장치를 통해 상기 서버로 상기 식별 정보를 전송하고, 상기 서버로부터 제1 난수(nonce)가 수신되면, 상기 복호키, 상기 제2 패스워드 및 상기 제1 난수를 이용하여 제1 인증값을 획득하고, 상기 통신 장치를 통해 상기 서버로 상기 제1 인증값을 전송하고, 상기 서버로부터 상기 제1 인증값 및 제2 난수를 이용하여 생성된 제2 인증값이 수신되면, 상기 복호키를 이용하여 상기 제2 인증값을 복호화하여 제3 인증값을 획득하고, 상기 통신 장치를 통해 상기 서버로 상기 제3 인증값을 전송하며, 상기 서버는 제3 인증값을 이용하여 상기 사용자를 인증하는 전자 장치.
- 제1항에 있어서, 상기 프로세서는, 상기 복호키를 제1 해쉬 함수에 입력하여 제1 해쉬값을 획득하고, 상기 제1 해쉬값과 상기 제1 패스워드를 연접(concatenate)하고, 연접한 값을 제2 해쉬 함수에 입력하여 제2 해쉬값을 획득하며, 상기 암호키를 이용하여 상기 제2 해쉬값을 암호화하며, 상기 통신 장치를 통해 상기 식별 정보와 상기 암호화된 제2 해쉬값을 서버로 전송하는 전자 장치.
- 제2항에 있어서, 상기 프로세서는, 상기 서버로부터 제1 난수(nonce)가 수신되면, 상기 복호키를 상기 제1 해쉬 함수에 입력하여 제3 해쉬값을 획득하고, 상기 제3 해쉬값과 상기 제2 패스워드를 연접하고, 연접한 값을 상기 제2 해쉬 함수에 입력하여 제4 해쉬값을 획득하며, 상기 암호키를 이용하여 상기 제4 해쉬값을 암호화하며, 상기 암호화된 제4 해쉬값에 상기 제1 난수를 더하여 상기 제1 인증값을 획득하는 전자 장치.
- 제3항에 있어서, 상기 서버는, 상기 제1 인증값에 상기 제1 난수 및 상기 암호화된 해쉬값을 뺀 값에 상기 제2 난수를 더하여 상기 제2 인증값을 획득하며, 상기 프로세서는, 상기 통신 장치를 통해 상기 서버로부터 상기 제2 인증값을 수신하는 전자 장치.
- 제4항에 있어서, 상기 프로세서는, 상기 제2 인증값이 수신되면, 상기 복호키를 이용하여 상기 제2 인증값을 복호화하고, 상기 복호화한 값을 제3 해쉬 함수에 입력하여 상기 제3 인증값을 획득하고, 상기 통신 장치를 통해 상기 서버로 상기 제3 인증값을 전송하며, 상기 서버는, 상기 제3 인증값과 상기 제3 해쉬 함수에 상기 제2 난수를 입력하여 획득한 값이 동일한지 여부를 식별하여 상기 사용자를 인증하는 전자 장치.
- 전자 장치에 있어서, 통신 장치; 동형 암호를 수행하기 위한 암호키와 복호키를 저장하는 메모리; 상기 메모리와 연결되어 상기 전자 장치를 제어하기 위한 프로세서;를 포함하며, 상기 프로세서는, 사용자의 식별 정보 및 제1 생체 정보를 등록하기 위하여 사용자 식별 정보 및 제1 생체 정보가 입력되면, 상기 제1 생체 정보를 전처리하고, 상기 암호키를 이용하여 상기 전처리된 제1 생체 정보를 암호화하고, 상기 통신 장치를 통해 상기 식별 정보와 상기 암호화된 생체 정보를 서버로 전송하고, 상기 서버에 로그인하기 위하여 상기 식별 정보 및 제2 생체 정보가 입력되면, 상기 암호키와 상기 복호키를 로딩하고, 상기 통신 장치를 통해 상기 서버로 상기 식별 정보를 전송하고, 상기 서버로부터 제1 난수(nonce)가 수신되면, 상기 제2 생체 정보 및 상기 제1 난수를 이용하여 제1 인증값을 획득하고, 상기 통신 장치를 통해 상기 서버로 상기 제1 인증값을 전송하고, 상기 서버로부터 상기 제1 인증값 및 제2 난수를 이용하여 생성된 제2 인증값이 수신되면, 상기 복호키를 이용하여 상기 제2 인증값을 복호화하여 제3 인증값을 획득하고, 상기 통신 장치를 통해 상기 서버로 상기 제3 인증값을 전송하며, 상기 서버는 제3 인증값을 이용하여 상기 사용자를 인증하는 전자 장치.
- 제6항에 있어서, 상기 프로세서는, 상기 서버로부터 제1 난수(nonce)가 수신되면, 상기 제2 생체 정보를 전처리하고, 상기 전처리된 값에 상기 제1 난수를 더하여 제1 값을 획득하고, 상기 암호키를 통해 상기 제1 값을 암호화하여 상기 제1 인증값을 획득하는 전자 장치.
- 제7항에 있어서, 상기 서버는, 상기 제1 인증값에 상기 제1 난수를 뺀 값에 상기 암호화된 생체 정보를 곱한 후 상기 제2 난수를 더하여 상기 제2 인증값을 획득하며, 상기 프로세서는, 상기 통신 장치를 통해 상기 서버로부터 상기 제2 인증값을 수신하는 전자 장치.
- 제8항에 있어서, 상기 프로세서는, 상기 제2 인증값이 수신되면, 상기 복호키를 이용하여 상기 제2 인증값을 복호화하여 상기 제3 인증값을 획득하고, 상기 통신 장치를 통해 상기 서버로 상기 제3 인증값을 전송하며, 상기 서버는, 상기 제3 인증값에 상기 제2 난수를 뺀 값이 임계값 이상인지 여부를 식별하여 상기 사용자를 인증하는 전자 장치.
- 동형 암호를 수행하기 위한 암호키와 복호키를 저장하는 전자 장치의 제어 방법에 있어서, 사용자의 식별 정보 및 제1 패스워드를 등록하기 위하여 사용자 식별 정보 및 제1 패스워드가 입력되면, 상기 제1 패스워드를 이용하여 해쉬값을 획득하는 단계; 상기 암호키를 이용하여 상기 해쉬값을 암호화하는 단계; 상기 식별 정보와 상기 암호화된 해쉬값을 서버로 전송하는 단계; 상기 서버에 로그인하기 위하여 상기 식별 정보 및 제2 패스워드가 입력되면, 상기 암호키와 상기 복호키를 로딩하고, 상기 서버로 상기 식별 정보를 전송하는 단계; 상기 서버로부터 제1 난수(nonce)가 수신되면, 상기 복호키, 상기 제2 패스워드 및 상기 제1 난수를 이용하여 제1 인증값을 획득하고, 상기 서버로 상기 제1 인증값을 전송하는 단계; 및 상기 서버로부터 상기 제1 인증값 및 제2 난수를 이용하여 생성된 제2 인증값이 수신되면, 상기 복호키를 이용하여 상기 제2 인증값을 복호화하여 제3 인증값을 획득하고, 상기 서버로 상기 제3 인증값을 전송하는 단계;를 포함하며, 상기 서버는 제3 인증값을 이용하여 상기 사용자를 인증하는 제어 방법.
- 제10항에 있어서, 상기 해쉬값을 획득하는 단계는, 상기 복호키를 제1 해쉬 함수에 입력하여 제1 해쉬값을 획득하는 단계; 상기 제1 해쉬값과 상기 제1 패스워드를 연접(concatenate)하고, 연접한 값을 제2 해쉬 함수에 입력하여 제2 해쉬값을 획득하는 단계; 상기 암호키를 이용하여 상기 제2 해쉬값을 암호화하는 단계;를 포함하고, 상기 암호화된 해쉬값을 서버로 전송하는 단계는, 상기 식별 정보와 상기 암호화된 제2 해쉬값을 서버로 전송하는 제어 방법.
- 제11항에 있어서, 상기 제1 인증값을 전송하는 단계는, 상기 서버로부터 제1 난수(nonce)가 수신되면, 상기 복호키를 상기 제1 해쉬 함수에 입력하여 제3 해쉬값을 획득하는 단계; 상기 제3 해쉬값과 상기 제2 패스워드를 연접하고, 연접한 값을 상기 제2 해쉬 함수에 입력하여 제4 해쉬값을 획득하는 단계; 상기 암호키를 이용하여 상기 제4 해쉬값을 암호화하는 단계; 및 상기 암호화된 제4 해쉬값에 상기 제1 난수를 더하여 상기 제1 인증값을 획득하는 단계;를 포함하는 제어 방법.
- 제12항에 있어서, 상기 서버는, 상기 제1 인증값에 상기 제1 난수 및 상기 암호화된 해쉬값을 뺀 값에 상기 제2 난수를 더하여 상기 제2 인증값을 획득하는 제어 방법.
- 제13항에 있어서, 제3 인증값을 전송하는 단계는, 상기 제2 인증값이 수신되면, 상기 복호키를 이용하여 상기 제2 인증값을 복호화하는 단계; 상기 복호화한 값을 제3 해쉬 함수에 입력하여 상기 제3 인증값을 획득하는 단계; 및 상기 서버로 상기 제3 인증값을 전송하는 단계;를 포함하며, 상기 서버는, 상기 제3 인증값과 상기 제3 해쉬 함수에 상기 제2 난수를 입력하여 획득한 값이 동일한지 여부를 식별하여 상기 사용자를 인증하는 제어 방법.
- 동형 암호를 수행하기 위한 암호키와 복호키를 저장하는 전자 장치의 제어 방법에 있어서, 사용자의 식별 정보 및 제1 생체 정보를 등록하기 위하여 사용자 식별 정보 및 제1 생체 정보가 입력되면, 상기 제1 생체 정보를 전처리하는 단계; 상기 암호키를 이용하여 상기 전처리된 제1 생체 정보를 암호화하는 단계; 상기 식별 정보와 상기 암호화된 생체 정보를 서버로 전송하는 단계; 상기 서버에 로그인하기 위하여 상기 식별 정보 및 제2 생체 정보가 입력되면, 상기 암호키와 상기 복호키를 로딩하고, 상기 서버로 상기 식별 정보를 전송하는 단계; 상기 서버로부터 제1 난수(nonce)가 수신되면, 상기 제2 생체 정보 및 상기 제1 난수를 이용하여 제1 인증값을 획득하고, 상기 서버로 상기 제1 인증값을 전송하는 단계; 및 상기 서버로부터 상기 제1 인증값 및 제2 난수를 이용하여 생성된 제2 인증값이 수신되면, 상기 복호키를 이용하여 상기 제2 인증값을 복호화하여 제3 인증값을 획득하고, 상기 서버로 상기 제3 인증값을 전송하는 단계;를 포함하며, 상기 서버는 제3 인증값을 이용하여 상기 사용자를 인증하는 제어 방법.
- 제15항에 있어서, 상기 제1 인증값을 전송하는 단계는, 상기 서버로부터 제1 난수(nonce)가 수신되면, 상기 제2 생체 정보를 전처리하는 단계; 상기 전처리된 값에 상기 제1 난수를 더하여 제1 값을 획득하는 단계; 상기 암호키를 통해 상기 제1 값을 암호화하여 상기 제1 인증값을 획득하는 단계;를 포함하는 제어 방법.
- 제16항에 있어서, 상기 서버는, 상기 제1 인증값에 상기 제1 난수를 뺀 값에 상기 암호화된 생체 정보를 곱한 후 상기 제2 난수를 더하여 상기 제2 인증값을 획득하는 제어 방법.
- 제17항에 있어서, 상기 제3 인증값을 전송하는 단계는, 상기 제2 인증값이 수신되면, 상기 복호키를 이용하여 상기 제2 인증값을 복호화하여 상기 제3 인증값을 획득하는 단계; 및 상기 서버로 상기 제3 인증값을 전송하는 단계;를 포함하고, 상기 서버는, 상기 제3 인증값에 상기 제2 난수를 뺀 값이 임계값 이상인지 여부를 식별하여 상기 사용자를 인증하는 제어 방법.
Description
동형 암호를 이용하여 사용자 인증을 수행하는 전자 장치 및 이의 제어 방법{Electronic device that performs user authentication using homomorphic encryption and control method thereof} 본 개시는 전자 장치 및 이의 제어 방법에 관한 것으로, 더욱 상세하게는 동형 암호를 이용하여 사용자 인증을 수행할 수 있는 전자 장치 및 이의 제어 방법에 관한 것이다. 통신 기술이 발달하고, 전자 장치의 보급이 활발해짐에 따라, 전자 장치 간의 통신 보안을 유지하기 위한 노력이 지속적으로 이루어지고 있다. 이에 따라, 대부분의 통신 환경에서는 암호화/복호화 기술이 사용되고 있다. 암호화 기술에 의해 암호화된 메시지가 상대방에게 전달되면, 상대방은 메시지를 이용하기 위해서는 복호화를 수행하여야 한다. 이 경우, 상대방은 암호화된 데이터를 복호화하는 과정에서 자원 및 시간 낭비가 발생하게 된다. 또한, 상대방이 연산을 위해 일시적으로 메시지를 복호화한 상태에서 제3자의 해킹이 이루어지는 경우, 그 메시지가 제3자에게 손쉽게 유출될 수 있다는 문제점도 있었다. 이러한 문제를 해결하기 위하여 동형 암호화 방법이 연구되고 있다. 동형 암호화(homomorphic encryption) 방법은 암호화된 정보를 복호화하지 않고 암호문 자체에서 연산을 하더라도, 평문에 대해 연산한 후 암호화한 값과 동일한 결과를 얻을 수 있다. 따라서, 암호문을 복호화하지 않은 상태에서 각종 연산을 수행할 수 있다. 한편, 사용자가 어떠한 시스템에 접근하거나 시스템에서 특정한 행위를 하기 위해서는 사용자의 신원과 그에 부여된 권한을 확인하는 사용자 인증 절차가 필수적이다. 패스워드 인증은 가장 대표적인 인증 방식으로, 사용자가 문자열 형태의 비밀을 알고 있음을 증명함으로써 신원을 증명하는 방식이다. 또한, 다중요소 인증 방식(MFA, Multi-Factor Authentication)은 인증 과정에서 “지식(Knowledge)”을 확인하는 수단인 패스워드 외에 생체 정보 등의 “속성(Inherent)”, 하드웨어 토큰 등의 “소유(Possession)”, 그리고 “위치(Location)” 등에 대한 인증을 추가로 요구하는 방식으로서, 패스워드의 유출에 대응하고 개인 정보, 금융 자산 등의 민감한 정보로의 접근에 더 높은 보안을 적용할 수 있다. 다만, 사용자 인증을 위한 정보를 저장하는 서버 및 소프트웨어는 네트워크 감청, 공격, 악의적 내부자 등 여러 가지의 위협 모델에 노출되어 있으며, 사용자 인증을 위한 정보 및 인증 데이터가 유출될 수 있다. 평문 형태가 유출된 패스워드는 해당 서비스 뿐 아니라 다른 서비스들로 같은 계정명과 함께 자동화된 무차별적 인증을 시도하는 크리덴셜 스터핑(Credential Stuffing)에 활용된다. 따라서, 패스워드 평문의 직접적인 유출을 방지하기 위해 패스워드에 암호학적 해시를 적용한 값을 서버에 저장한다. 그러나, 해시를 적용한 해쉬값 형태로 패스워드를 저장하더라도, 레인보우 테이블(Rainbow Table) 공격 및 무차별 대입(Brute Force) 공격 등과 같은 공격이 이루어지고 있다. 이러한 공격을 방지하기 위해, 레인보우 테이블 공격을 극복하기 위해 공개된 값인 SALT를 해시 알고리즘의 입력에 포함시키고, 무차별 대입 공격의 비용을 높이기 위해 해시의 반복수 ROUND를 적용한다. 그러나 패스워드 분포가 사람이 암기하기 쉬운 방향으로 편향되어 있기 때문에, 패스워드 생성 방법론과 GPU 등의 강력한 SIMD 하드웨어를 이용한 무차별 대입 소프트웨어들을 활용하여 해시값으로부터 패스워드를 찾아내는 기술도 발전하고 있다. 따라서, 보다 보안이 강화된 사용자 인증에 대한 방안의 모색이 요청된다. 도 1은 본 개시의 일 실시예에 따른, 사용자 인증 시스템을 도시한 도면, 도 2는 본 개시의 일 실시예에 따른, 전자 장치의 구성을 나타내는 블록도, 도 3은 본 개시의 일 실시예에 따른, 서버의 구성을 나타내는 블록도, 도 4는 본 개시의 일 실시예에 따른, 사용자의 식별 정보 및 패스워드를 서버에 등록하는 방법을 설명하기 위한 시퀀스도, 도 5는 본 개시의 일 실시예에 따른, 패스워드를 이용하여 사용자를 인증하는 방법을 설명하기 위한 시퀀스도, 도 6은 본 개시의 일 실시예에 따른, 사용자의 식별 정보 및 생체 정보를 서버에 등록하는 방법을 설명하기 위한 시퀀스도, 도 7은 본 개시의 일 실시예에 따른, 생체 정보를 이용하여 사용자를 인증하는 방법을 설명하기 위한 시퀀스도, 그리고, 도 8은 본 개시의 일 실시예에 따른, 동형 암호를 이용하여 사용자를 인증하기 위한 전자 장치의 제어 방법을 설명하기 위한 흐름도이다. 이하에서는 첨부 도면을 참조하여 본 개시에 대해서 자세하게 설명한다. 본 개시에서 수행되는 정보(데이터) 전송 과정은 필요에 따라서 암호화/복호화가 적용될 수 있으며, 본 개시 및 특허청구범위에서 정보(데이터) 전송 과정을 설명하는 표현은 별도로 언급되지 않더라도 모두 암호화/복호화하는 경우도 포함하는 것으로 해석되어야 한다. 본 개시에서 "A로부터 B로 전송(전달)" 또는 "A가 B로부터 수신"과 같은 형태의 표현은 중간에 다른 매개체가 포함되어 전송(전달) 또는 수신되는 것도 포함하며, 반드시 A로부터 B까지 직접 전송(전달) 또는 수신되는 것만을 표현하는 것은 아니다. 본 개시의 설명에 있어서 각 단계의 순서는 선행 단계가 논리적 및 시간적으로 반드시 후행 단계에 앞서서 수행되어야 하는 경우가 아니라면 각 단계의 순서는 비제한적으로 이해되어야 한다. 즉, 위와 같은 예외적인 경우를 제외하고는 후행 단계로 설명된 과정이 선행단계로 설명된 과정보다 앞서서 수행되더라도 개시의 본질에는 영향이 없으며 권리범위 역시 단계의 순서에 관계없이 정의되어야 한다. 그리고 본 명세서에서 "A 또는 B"라고 기재한 것은 A와 B 중 어느 하나를 선택적으로 가리키는 것뿐만 아니라 A와 B 모두를 포함하는 것도 의미하는 것으로 정의된다. 또한, 본 개시에서 "포함"이라는 용어는 포함하는 것으로 나열된 요소 이외에 추가로 다른 구성요소를 더 포함하는 것도 포괄하는 의미를 가진다. 본 개시에서는 본 개시의 설명에 필요한 필수적인 구성요소만을 설명하며, 본 개시의 본질과 관계가 없는 구성요소는 언급하지 아니한다. 그리고 언급되는 구성요소만을 포함하는 배타적인 의미로 해석되어서는 안 되며 다른 구성요소도 포함할 수 있는 비배타적인 의미로 해석되어야 한다. 그리고 본 개시에서 "값"이라 함은 스칼라값뿐만 아니라 벡터, 다항식 형태도 포함하는 개념으로 정의된다. 후술하는 본 개시의 각 단계의 수학적 연산 및 산출은 해당 연산 또는 산출을 하기 위해 공지되어 있는 코딩 방법 및/또는 본 개시에 적합하게 고안된 코딩에 의해서 컴퓨터 연산으로 구현될 수 있다. 이하에서 설명하는 구체적인 수학식은 가능한 여러 대안 중에서 예시적으로 설명되는 것이며, 본 개시의 권리 범위가 본 개시에 언급된 수학식에 제한되는 것으로 해석되어서는 아니된다. 설명의 편의를 위해서, 본 개시에서는 다음과 같이 표기를 정하기로 한다. a ← D : 분포(D)에 따라서 원소(a)를 선택함 s1, s2 ∈ R : S1, S2 각각은 R 집합에 속하는 원소이다. mod(q) : q 원소로 모듈(modular) 연산 : 내부 값을 반올림함 이하에서는 첨부된 도면을 이용하여 본 개시의 다양한 실시 예들에 대하여 구체적으로 설명한다. 도 1은 본 개시의 일 실시 예에 따른 사용자 인증 시스템을 설명하기 위한 도면이다. 도 1을 참조하면, 사용자 인증 시스템은 전자 장치(100) 및 서버(200)를 포함할 수 있으며, 각 구성들은 네트워크(10)를 통해 서로 연결될 수 있다. 네트워크(10)는 다양한 형태의 유무선 통신 네트워크, 방송 통신 네트워크, 광통신 네트워크, 클라우드 네트워크 등으로 구현될 수 있으며, 각 장치들은 별도의 매개체 없이 와이파이, 블루투스, NFC(Near Field Communication) 등과 같은 방식으로 연결될 수도 있다. 도 1에 도시된 전자 장치(100)는 스마트폰, 태블릿, 게임 플레이어, PC, 랩톱 PC, 홈서버, 키오스크 등과 같은 다양한 형태의 장치로 구현될 수 있으며, 이밖에 IoT 기능이 적용된 가전 제품 형태로도 구현될 수 있다. 도 1에 도시된 서버(200)는 사용자 인증이 필요한 다양한 서비스 또는 기능 등을 제공하기 위한 서버일 수 있다. 이때, 도 1에서는 서버(200)가 하나로 구현되었으나, 이는 일 실시예에 불과할 뿐, 복수의 서버로 구현될 수 있다. 사용자는 자신이 사용하는 전자 장치(100)를 통해서 다양한 정보를 입력할 수 있다. 입력된 정보는 전자 장치(100) 자체에 저장될 수도 있지만, 저장 용량 및 보안 등을 이유로 외부 장치로 전송되어 저장될 수도 있다. 도 1에서 서버(200)는 이러한 정보들을 저장하는 역할을 수행할 수 있다. 일 예로, 전자 장치(100)는 사용자의 식별 정보 및 인증 정보(예를 들어, 패스워드 또는 생체 정보 등)를 획득하고, 동형 암호화된 인증 정보를 서버(200)에 전송할 수 있다. 서버(200)는 동형 암호화된 인증 정보를 저장할 수 있다. 전자 장치(100)는 입력된 정보를 동형 암호화(homomorphic encryption, (HE))하여, 동형 암호문(또는, 동형 암호 데이터)을 서버(200)로 전송할 수 있다. 일 예로, 동형 암호문은 동형 암호화된 인증 정보일 수 있다. 한편, 전자 장치(100)와 서버(200)는 사용자 인증에 사용할 동형 암호 스킴(scheme)과 아래의 알고리즘을 공유할 수 있다. 이때, 평문이 벡터 형식일 경우, 벡터의 +, * 연산은 같은 위치의 원소별로 덧셈과 곱셈을 수행함을 의미할 수 있다. ● KeyGen(param) → ek, dk : 키 생성 알고리즘에 동형암호 파라미터 param를 입력하여 암호키 ek와 복호키 dk를 생성한다. ● Enc(ek, m) → c : 평문 m을 암호키 ek로 암호화하여 암호문 c를 계산한다. ● Dec(dk, c) → m : 암호문 c를 복호키 dk로 복호화하여 평문 m을 계산한다