KR20230094253A - Method of creating account for 2FA authenticaed electronic signature by secure multi-party computation - Google Patents

Method of creating account for 2FA authenticaed electronic signature by secure multi-party computation Download PDF

Info

Publication number
KR20230094253A
KR20230094253A KR1020210183255A KR20210183255A KR20230094253A KR 20230094253 A KR20230094253 A KR 20230094253A KR 1020210183255 A KR1020210183255 A KR 1020210183255A KR 20210183255 A KR20210183255 A KR 20210183255A KR 20230094253 A KR20230094253 A KR 20230094253A
Authority
KR
South Korea
Prior art keywords
secure computing
user
private key
party secure
server
Prior art date
Application number
KR1020210183255A
Other languages
Korean (ko)
Inventor
배경일
장중혁
정우현
Original Assignee
주식회사 아톰릭스랩
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 아톰릭스랩 filed Critical 주식회사 아톰릭스랩
Priority to KR1020210183255A priority Critical patent/KR20230094253A/en
Publication of KR20230094253A publication Critical patent/KR20230094253A/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • 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/46Secure multiparty computation, e.g. millionaire problem

Abstract

본 발명은 사용자가 서비스 제공자의 서비스 가입을 위하여 계정의 인증 정보를 생성하고 이를 이용하여 서비스 사용권한과 사용자 데이터 접근권한을 인가받는 인증 시스템에 관한 것으로서, 사용자가 별도의 소프트웨어를 사전에 설치하지 않고 웹 브라우저 상에서 실행되는 소프트웨어 모듈로 작성된 다자 간 보안 컴퓨팅 모듈을 통해 비대칭키 암호 시스템을 위한 프라이빗키의 비밀 정보 조각을 서버와의 협력 연산을 통해 생성하고, 서비스 시스템에 공개키를 사용자 인증을 위한 식별자로 제공함으로써, 사용자가 비대칭키 암호 전자서명을 서비스 이용을 위한 인증 체계로 사용할 수 있도록 하는 방법에 있어, 사용자가 웹 브라우저로 특정 URL에 접속하여 다자 간 보안 컴퓨팅을 위한 web assembly 모듈을 사용자 단말에 다운로드하여 실행하는 단계, 사용자가 웹 브라우저에 계정 생성을 위한 사용자 ID와 패스워드를 입력하는 단계, 사용자 ID와 패스워드를 입력받은 다자 간 보안 컴퓨팅을 위한 클라이언트 소프트웨어가 다자 간 보안 컴퓨팅 서버와 접속하여 협력 연산을 통해 비대칭키 암호시스템을 위한 프라이빗키 비밀 정보 조각을 다자 간 보안 컴퓨팅을 위한 클라이언트 소프트웨어와 다자 간 보안 컴퓨팅 서버에 각각 생성하는 단계, 각자의 프라이빗키 비밀 정보 조각을 보유한 다자 간 보안 컴퓨팅을 위한 클라이언트 소프트웨어와 다자 간 보안 컴퓨팅 서버가 협력 연산하여 계정 공개키를 생성하는 단계, 다자 간 보안 컴퓨팅을 위한 클라이언트 소프트웨어가 사용자 단말에서 생성된 프라이빗키 비밀 정보 조각을 사용자가 입력한 패스워드를 암호키로 하여 암호화하여 원격의 저장소에 계정의 공개키와 사용자 입력 ID의 해시값과 함께 조합을 이루어 저장하는 단계, 계정 공개키와 사용자가 입력한 ID의 해시값을 서비스 계정 등록을 위한 저장 장치에 전달하여 사용자 계정의 식별자로 저장하는 단계를 포함하는 다자 간 보안컴퓨팅을 이용한 비대칭 암호시스템 기반 인증이 가능한 계정 생성 방법을 제공함으로써, 웹 기반 온라인 서비스의 사용자 단말에 별도의 비대칭키 암호시스템을 위한 클라이언트 소프트웨어를 사전에 설치하지 않고도 비대칭키 암호시스템 전자서명을 이용한 인증이 가능한 서비스 계정을 생성할 수 있게 함으로써 사용자가 단순한 ID, 패스워드로 가입하는 것과 같이 편리하면서도 안전하게 비대칭키 암호시스템 기반의 인증을 사용하는 서비스 계정을 생성하여 단순 ID 패스워드 기반의 인증 시스템이 가진 보안 취약점을 제거하고 서비스 시스템 내에서 사용자가 전자서명 서비스를 이용할 수 있게 만드는 효과를 얻을 수 있다.
또한, 본 발명에 따른 다자 간 보안 컴퓨팅(Secure Multi-party Computation, 이하 SMPC) 방식의 인증 시스템은 사용자에게 프라이빗키를 이용한 전자서명에 대한 통제력을 완전하게 제공하면서도, 사용자가 사용자 단말에 평문 또는 암호화된 프라이빗키를 보관하고 사용하는 상황에서 발생할 수 있는 보안 위협을 제거해 줌으로써 프라이빗키 관리로 인한 어려움 없이 전자서명을 통한 인증을 필요로 하는 서비스를 이용할 수 있게 해주고, 프라이빗키 탈취를 방어하기 위해 투입하는 사용자와 서비스 제공자의 비용을 매우 작게 만들어주는 효과가 있다.
The present invention relates to an authentication system in which a user creates account authentication information for subscribing to a service of a service provider and uses it to obtain permission to use services and access to user data, without requiring the user to install separate software in advance. Through a multi-party secure computing module written as a software module running on a web browser, secret information fragments of private keys for asymmetric key cryptosystems are generated through cooperative operation with the server, and public keys in the service system are used as identifiers for user authentication. In a method that allows users to use asymmetric key cryptographic digital signatures as an authentication system for service use, users connect to a specific URL with a web browser and install a web assembly module for multilateral secure computing on the user terminal. Step of downloading and executing, Step of the user entering a user ID and password for creating an account in a web browser, client software for multi-party secure computing receiving the user ID and password connects to the multi-party secure computing server for cooperative calculation Step of generating pieces of private key secret information for the asymmetric key cryptosystem in the client software for multi-party secure computing and the multi-party secure computing server respectively, Clients for multi-party secure computing holding their own pieces of private key secret information The software and the multi-party secure computing server cooperate to generate the account public key, and the client software for multi-party secure computing encrypts the private key secret information fragment generated from the user terminal using the password entered by the user as the encryption key. Storing the combination of the public key of the account and the hash value of the ID input by the user in a remote storage, transferring the public key of the account and the hash value of the ID input by the user to the storage device for registering the service account, By providing an account creation method capable of authentication based on an asymmetric cryptographic system using multi-party secure computing including storing as an identifier, client software for a separate asymmetric key cryptographic system is pre-installed in a user terminal of a web-based online service. It is possible to create a service account that can be authenticated using an asymmetric key cryptosystem digital signature without having to create a service account that uses an asymmetric key cryptosystem-based authentication as conveniently and safely as a user registers with a simple ID and password. It is possible to remove security vulnerabilities of simple ID password-based authentication systems and to enable users to use digital signature services within the service system.
In addition, the authentication system of the Secure Multi-party Computation (SMPC) method according to the present invention completely provides the user with control over the electronic signature using the private key, while allowing the user to send plain text or encrypted text to the user terminal. By removing security threats that may occur in the situation of storing and using the stored private key, it is possible to use services that require authentication through digital signatures without difficulties due to private key management, and to protect private key theft. There is an effect of making the cost of users and service providers very small.

Description

다자 간 보안 컴퓨팅을 이용한 2FA 인증 온라인 전자서명 계정 생성 방법 {Method of creating account for 2FA authenticaed electronic signature by secure multi-party computation}{Method of creating account for 2FA authenticaed electronic signature by secure multi-party computation}

본 발명은 온라인 서비스에 접속하는 웹브라우저를 실행할 수 있는 클라이언트 단말에서 브라우저 상에서 실행되는 소프트웨어 모듈을 이용하여 서버와의 협력 연산을 통해 다자 간 보안 컴퓨팅을 수행함으로써 클라이언트 단말 내에 완전한 형태의 프라이빗키를 생성하지 않은 상태에서 클라이언트 단말과 서버가 나누어 생성한 프라이빗키 조각을 이용한 협력 연산 과정을 통해 완전한 프라이빗키를 가진 하나의 단말이 특정한 연산을 수행한 것과 같은 결과를 생산하는 다자 간 보안 컴퓨팅 방식의 연산을 위한 프라이빗키 비밀 정보 조각을 클라이언트 단말과 서버에 각각 생성하여 이를 이용하여 계정을 생성하여 등록하고 이를 백업하는 방법에 관한 것으로서, 보다 자세하게는 웹 브라우저 상에서 실행되는 소프트웨어 모듈이 접근할 수 있는 단말 내 저장소가 다자 간 보안 컴퓨팅에 의해 생성한 프라이빗키 비밀 정보 조각을 안정적으로 저장하기 어려운 상황에도 불구하고 이 프라이빗키 비밀 정보 조각을 원격의 서버에 안전하게 저장하고 ID와 패스워드 입력과 Google Authenticator와 같은 사용자 인증을 통해 이를 임의의 브라우저에서 쉽게 재로딩하여 사용할 수 있게 하여, 별도의 비대칭키 암호시스템의 키쌍 생성과 보관을 위한 비대칭키 암호 시스템을 위한 사용자 단말용 소프트웨어를 설치하지 않고도 다자 간 보안 컴퓨팅 지갑을 웹사이트 접속만으로 사용하여 서비스 사용자가 전자서명을 이용할 수 있는 계정을 생성하고 등록할 수 있게 만드는 방법에 대한 것이다.The present invention generates a complete private key in a client terminal by performing multilateral security computing through cooperative calculation with a server using a software module running on a browser in a client terminal capable of executing a web browser accessing an online service. Multilateral secure computing method operation that produces the same result as if a single terminal with a complete private key performed a specific operation through a cooperative operation process using private key fragments generated by dividing the client terminal and the server without It relates to a method of creating and registering an account by creating pieces of private key secret information on a client terminal and a server, respectively, and backing them up. More specifically, a storage in a terminal that can be accessed by software modules running on a web browser. Despite the situation where it is difficult to reliably store pieces of private key secret information generated by multilateral secure computing, this piece of private key secret information is safely stored on a remote server and ID and password input and user authentication such as Google Authenticator are used. Through this, it can be easily reloaded and used in any browser, and a multi-party secure computing wallet can be created on the website without installing software for the user terminal for the asymmetric key cryptosystem for generating and storing key pairs of the separate asymmetric key cryptosystem. It is about a method to enable service users to create and register accounts that can use digital signatures by using only access.

어떤 온라인 서비스에 대한 접근의 권한을 온라인에서 확인하기 위해서는, 미리 등록된 '계정'과 그 계정에 접근할 권한을 가진 사용자임을 확인할 수 있는 '인증 정보'를 필요로 한다. 대개 그 '인증 정보'는 패스워드나 그것의 해시값과 같이 권한을 가진 사람이 생성하여 등록하였기 때문에 다른 사람들은 알 수 없는 정보가 사용된다.In order to verify the right to access an online service online, a pre-registered 'account' and 'authentication information' to confirm that a user has the right to access the account are required. Usually, the 'authentication information' is created and registered by a person with authority, such as a password or its hash value, so information that others cannot know is used.

그러나 사용자가 입력한 정보를 평문 또는 해시함수에 의해 해시된 값의 형태로 서비스 제공자의 단말에 저장하고 이를 사용자가 보내오는 인증 요청에 포함된 인증 정보와 비교하여 접근 허용 여부를 결정하는 시스템은, 이 정보가 탈취되는 상황에 비인가자의 접근에 노출되는 문제점을 안고 있다.However, a system that stores the information entered by the user in the form of plain text or hashed values by a hash function in the terminal of the service provider and compares it with the authentication information included in the authentication request sent by the user to determine whether to allow access, In the situation where this information is stolen, it has a problem of being exposed to unauthorized persons' access.

이러한 문제를 해결하기 위해 서비스 제공자들은 인증 시스템이 비인가자의 접근에 노출되지 않도록 하기 위해, 사용자 인증을 서로 독립적인 두 개 이상의 방법으로 하여 보안성을 높이거나, 인증 정보의 탈취를 막기 위해 사용자 단말과 서비스 제공자의 인증 정보 관리 체계에 다양한 보안 기술들을 적용함으로써 많은 비용을 부담하여 이 문제에 대응하고 있다.In order to solve this problem, service providers increase security by using two or more independent methods for user authentication to prevent the authentication system from being exposed to unauthorized access, or to prevent stealing of authentication information by using user terminals and By applying various security technologies to the service provider's authentication information management system, it is responding to this problem at a high cost.

여기에 적용되는 보안 기술 시스템 중 하나가 비대칭키 암호시스템을 이용한 공개키 기반 구조로서, 사용자와 서비스 제공자가 모두 신뢰할 수 있는 공개키 등록 절차와 보관소, 공개키 조회를 통한 전자서명 검증에 의한 사용자 및 거래 인증 시스템이 그것이다.One of the security technology systems applied here is a public key infrastructure using an asymmetric key cryptosystem, which is a public key registration procedure and storage that both users and service providers can trust, users and users by digital signature verification through public key inquiry. It is a transaction authentication system.

일반적으로 비대칭키 암호시스템 상에서 프라이빗키와 공개키의 쌍을 생성하여 사용자가 공개키를 아이덴티티로 하여 암호화나 전자서명에 사용하기 위해서는 사용자의 단말에서 프라이빗키와 공개키 쌍을 생성하여 공개키를 정해진 방식으로 공개함으로써, 프라이빗키를 이용한 암호화나 전자서명을 수행하는 방법으로 공개키와 쌍을 이루는 프라이빗키를 통제하는 주체임을 인증하는 방식을 사용한다. 이러한 비대칭키 암호를 이용한 인증을 위해서는 사용자가 해커 등의 인가받지 않은 제3자에게 자신의 프라이빗키를 노출시키지 않고 보관 및 사용을 할 수 있다는 것을 전제로 하여야 한다. 그러나 사용자의 단말은 사용자의 관리 능력 부족이나 소프트웨어의 보안 취약성 등으로 인해 쉽게 해커의 공격에 노출되므로 자신의 단말에 대한 보안 관리 능력을 갖지 못한 일반 사용자가 비대칭키 암호를 이용한 인증 또는 전자서명을 이용하는 것은 쉽지 않다.In general, in order to generate a pair of private key and public key on an asymmetric key cryptosystem and use the public key as an identity for encryption or digital signature, the user's terminal generates a pair of private key and public key and determines the public key. By disclosing it in a way, it uses a method of authenticating that it is the subject controlling the private key paired with the public key by performing encryption or electronic signature using the private key. For authentication using such asymmetric key cryptography, it must be premised that the user can store and use his private key without exposing his private key to an unauthorized third party such as a hacker. However, since the user's terminal is easily exposed to hacker attacks due to the user's lack of management ability or security vulnerability of software, general users who do not have the security management ability of their own terminal use authentication using asymmetric key cryptography or digital signature. It's not easy.

그러나 이러한 공개키 기반 구조는 등록 기관이나 인증 기관을 전제로 하므로 비용이 높고 사용자 편의성을 해칠 뿐 아니라, 사용자가 보유하게 되는 공개키와 프라이빗키의 탈취에 의한 위험이 인증서 암호의 보안 강도에 의존하고 있을 뿐이어서, 비인가자에 의한 서비스 접근의 결과로 발생하는 책임을 사용자에게 전가하는 효과 이상의 충분한 보안성을 제공하지 못하는 문제가 지적되고 있다.However, since this public key infrastructure is premised on a registration authority or a certification authority, it is expensive and harms user convenience, and the risk of stealing the public and private keys held by the user depends on the security strength of the certificate password. However, the problem of not providing sufficient security beyond the effect of shifting the responsibility arising as a result of service access by unauthorized persons to the user has been pointed out.

이러한 문제를 해결하기 위해, 사용자의 편의성은 높이면서도 공개키 기반 구조가 가진 전자 서명 가능한 키 분배 기능을 유지하고, 사용자 단말에서 키 관리 부담이 적은 간편 인증 기술에 대한 연구개발이 이루어져 왔고, 이는 사용자 단말이 USIM이나 ICCard, Trustzone과 같은 안전 저장 공간이 있는 경우 사용자 단말에서 개인키를 보관하고, 그렇지 않은 경우에는 사용자 단말에 개인키를 보관하지 않고 사용자가 입력한 패스워드와 서비스 서버에서 제공되는 난수 시드를 이용하여 생성한 개인키를 서버에 보관하여 전자서명을 위임하여 처리하는 간편 인증 기반 전자서명 기술의 등장으로 귀결되었다.In order to solve this problem, research and development have been conducted on simple authentication technology that increases user convenience while maintaining the digital signature key distribution function of the public key infrastructure and reducing the burden of key management in user terminals. If the terminal has a safe storage space such as USIM, ICCard, or Trustzone, the user terminal stores the private key. Otherwise, the user terminal does not store the private key, and the password entered by the user and the random number seed provided by the service server This led to the emergence of simple authentication-based digital signature technology that stores the private key generated using the server in the server and delegates and processes the digital signature.

이러한 문제를 해결하기위한 수단으로 사용할 수 있는 기술이 다자간 보안컴퓨팅(Secure Multi-party Computation, 이하 SMPC)이다. SMPC는 복수의 참여자가 각자의 비밀 정보 조각을 가지고 협력 연산에 참여하지만 서로에게 자신이 보유한 비밀 정보 조각을 노출시키지 않은채로 연산의 결과를 만들 수 있기 때문에, N명 중에 t 명의 비밀 정보 조각이 있으면 복구할 수 있는 비밀 정보를 입력값으로 하는 연산을 각자의 비밀 정보 조각을 노출하여 합쳐서 비밀 정보를 만들지 않고도 계산할 수 있게 해준다. 특히 이러한 연산 중에 연산 결과를 가지고 입력값을 추론하기 어려운 연산에 적용할 경우, 연산 결과가 공개되더라도 비밀 정보가 노출되지 않기 때문에, 비밀 정보의 노출없이 반복적으로 여러번 협력 연산을 수행할 수 있고 사용자에게 다양한 복구 시나리오를 제공하면서도 보안성을 유지할 수 있는 장점이 있다.A technology that can be used as a means to solve this problem is Secure Multi-party Computation (SMPC). In SMPC, multiple participants participate in cooperative computation with their own secret information pieces, but can produce the result of the operation without exposing their secret information pieces to each other, so if there are t pieces of secret information among N people, It allows operations that take recoverable secret information as input to be computed without creating secret information by exposing and combining individual pieces of secret information. In particular, when applied to an operation in which it is difficult to deduce an input value with an operation result during such an operation, since secret information is not exposed even if the operation result is disclosed, cooperative operation can be repeatedly performed many times without exposing secret information, and the user can be informed. It has the advantage of maintaining security while providing various recovery scenarios.

그러나 사용자 단말 이러한 다자 간 보안 컴퓨팅을 이용한 분산키 생성이나 분산 서명을 사용하기 위해서는, 사용자 단말에 다자 간 보안 컴퓨팅을 위한 소프트웨어가 사전에 설치되어야 하고, 사용자 단말에 설치된 다자 간 보안 컴퓨팅 소프트웨어와 다자 간 보안 컴퓨팅 서버 간에 협력 연산을 통해 생성한 프라이빗키 비밀 정보 조각의 유실 시에 이를 복구하기 위해 니모닉 키워드 조합을 백업하여 복구 방법을 확보하여야 하므로 일반 사용자가 이를 사용하는데 어려움이 있다.However, in order to generate a distributed key or use a distributed signature using such multi-party secure computing at the user terminal, software for multi-party secure computing must be installed in the user terminal in advance, and the multi-party secure computing software installed on the user terminal and the multi-party secure computing software It is difficult for general users to use it because it is necessary to secure a recovery method by backing up the mnemonic keyword combination in order to recover the private key secret information fragment generated through cooperative operation between secure computing servers.

본 발명은, 사용자가 온라인 서비스에 가입하려는 상황에서 보안적 취약성이 큰 ID, 패스워드 방식이 아닌 비대칭키 암호시스템을 이용한 전자서명 방식을 사용하면서도, 자신의 패스워드나 ID, 프라이빗키 등을 서비스 시스템이나 그 관리자 또는 사용자 단말을 장악한 제3자에게 노출시키지 않고 서비스 시스템이나 그 시스템 관리자에게 계정 복구의 권한을 위임하는 방식의 계정 복구 방식이 아닌 본인이 기억하고 있는 ID, 패스워드, Google Authenticator와 같은 일회용 패스워드 인증 만으로 계정의 프라이빗키에 대한 통제권을 복구하는 복구 방식을 제공하여, 보안성이 높은 인증 수단과 전자서명 수단을 사용자 편의성이 높고 서비스 제공자 비용이 낮게 제공하는 것을 목적으로 한다.In the present invention, in a situation where a user intends to subscribe to an online service, a digital signature method using an asymmetric key encryption system is used instead of an ID and password method, which have a large security vulnerability, and a user's password, ID, private key, etc. It is not an account recovery method in which the account recovery authority is delegated to the service system or the system administrator without exposing the administrator or a third party who has seized the user terminal, but a one-time use such as ID, password, and Google Authenticator that the user remembers. By providing a recovery method that restores control over the private key of an account with only password authentication, it aims to provide high-security authentication and electronic signature means with high user convenience and low cost to service providers.

상기와 같은 목적을 달성하기 위해, Yahuda Lindell이 고안한 곱셈 복원가능 비밀 정보 조각을 이용한 다자간 보안컴퓨팅 기술(Lindell, Y.: Fast secure two-party ecdsa signing. In: Annual International Cryptology Conference. pp. 613-644. Springer (2017))을 이용하여 사용자 단말의 브라우저 상에서 실행되는 다자 간 보안 컴퓨팅 클라이언트 소프트웨어가 다자 간 보안 컴퓨팅 서버에게 자신의 패스워드나 개인키를 노출시키지 않고, 프라이빗키의 비밀 정보 조각을 곱셈 복원가능 정보 조각의 형태로 다자 간 보안 컴퓨팅 클라이언트 소프트웨어와 다자 간 보안 컴퓨팅 서버가 협력하여 생성하고, 각자 자신이 생성한 프라이빗키 비밀 정보 조각을 보관하고, 각자가 보유한 프라이빗키 비밀 정보 조각을 서로에게 노출시키지 않고 안전한 통신 채널을 이용하여 부분 연산 결과를 주고 받으며 협력하여 서명 가능하고, 사용자가 ID, 패스워드 입력과 일회용 패스워드 인증만으로 임의의 단말에서 해당 서비스에 접속하여 원격에 보관된 암호화된 프라이빗키 비밀 정보 조각을 획득하고 복호화하여 프라이빗키를 이용한 전자 서명 통제권을 복구하여 사용하는 방법을 제공한다. In order to achieve the above purpose, multilateral secure computing technology (Lindell, Y.: Fast secure two-party ecdsa signing. In: Annual International Cryptology Conference. pp. 613 -644. Using Springer (2017)), the multi-party secure computing client software running on the browser of the user terminal multiplies the secret information fragment of the private key without exposing its password or private key to the multi-party secure computing server. In the form of restorable information fragments, the multi-party secure computing client software and the multi-party secure computing server cooperate to create pieces of private key secret information generated by each party, and share private key secret information fragments held by each other with each other. It is possible to exchange and sign partial operation results using a secure communication channel without exposing them, and users access the service from any terminal with only ID and password input and one-time password authentication, and encrypted private key secrets stored remotely. Provides a method of obtaining and decrypting pieces of information to recover and use electronic signature control using a private key.

본 발명의 실시예에서는, 상술한 바와 같이, 본 발명에 따른 인증 정보 생성이 이루어지게 함으로써, 사용자 단말에 저장된 인증 정보의 보안 위험을 낮추고 서비스 제공자가 보관하는 인증 정보의 보안 위험을 동시에 낮추면서도 사용자에게 다양한 상황에서 편리한 계정 복구 시나리오를 제공할 수 있도록 하여, 사용자에게는 인증정보 및 개인키 관리 부담을 경감시키면서 전자서명 인증 서비스를 이용할 수 있게 하고, 서비스 제공자에게는 서비스 이용자의 인증 정보 보안을 위한 비용을 절감시키는 방법을 제공할 것이다.In the embodiment of the present invention, as described above, by generating authentication information according to the present invention, the security risk of authentication information stored in the user terminal is lowered and the security risk of authentication information stored by the service provider is lowered at the same time. By providing convenient account recovery scenarios in various situations, users can use digital signature authentication services while reducing the burden of managing authentication information and private keys, and service providers are free from costs for securing authentication information of service users. We will provide you with a way to save money.

도 1은 본 발명의 실시예에 따른 ID, 패스워드, 일회용 패스워드 기반의 비대칭키 암호 계정 시스템의 구성도이다.
도 2는 본 발명의 실시예에 따른 ID, 패스워드, 일회용 패스워드 설정을 통한 비대칭키 암호 계정 생성 방법의 동작흐름도이다.
1 is a block diagram of an asymmetric key cryptographic account system based on ID, password, and one-time password according to an embodiment of the present invention.
2 is an operation flow chart of a method for generating an asymmetric key password account through ID, password, and one-time password settings according to an embodiment of the present invention.

아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, with reference to the accompanying drawings, embodiments of the present invention will be described in detail so that those skilled in the art can easily carry out the present invention. However, the present invention may be embodied in many different forms and is not limited to the embodiments described herein. And in order to clearly explain the present invention in the drawings, parts irrelevant to the description are omitted, and similar reference numerals are attached to similar parts throughout the specification.

명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. Throughout the specification, when a certain component is said to "include", it means that it may further include other components without excluding other components unless otherwise stated.

다자간 보안 컴퓨팅 기술을 이용하여 ECDSA 비대칭키 암호알고리즘을 사용하는 암호 시스템을 기초로 사용자 단말의 웹 브라우저에서 실행되는 소프트웨어 모듈과 일회용 패스워드 시스템을 이용하여 서비스 제공 단말 간에 곱셈 복원가능 비밀 정보 조각을 인증 정보 생성하여 사용하는 사용자 인증 시스템으로, 이를 구성하는 방법을 설명하기로 한다. Based on the cryptographic system using the ECDSA asymmetric key cryptographic algorithm using multilateral security computing technology, authentication information can be multiplied and restored between the service providing terminal using the one-time password system and the software module running in the web browser of the user terminal. This is a user authentication system that is created and used, and how to configure it will be described.

도 1은 본 발명의 실시예에 따른 ECDSA 비대칭키 암호알고리즘을 사용하는 프라이빗키의 Secure Multi Party Computation(이하 'SMPC'라 한다) 비밀 정보조각 생성을 사용하는 ID, 패스워드, 일회용 패스워드 기반의 비대칭키 암호 계정 시스템의 구성도이다.1 is an asymmetric key based on an ID, password, and one-time password using Secure Multi Party Computation (hereinafter referred to as 'SMPC') secret information fragment generation of a private key using the ECDSA asymmetric key encryption algorithm according to an embodiment of the present invention. It is a configuration diagram of the password account system.

먼저, 사용자는 사용자 단말(100)의 브라우저를 이용하여 가입하려는 서비스의 URL(U)에 접속한다. 이때 서비스 서버(200)는 자바스크립트나 web assembly와 같이 브라우저에서 실행 가능한 다자 간 보안 컴퓨팅 클라이언트 소프트웨어 모듈(110)을 고객의 단말에 전달하고 사용자의 단말은 소프트웨어의 실행을 통해 사용자가 해당 서비스에 등록하려는 ID와 패스워드(PW)와 URL을 이용하여 서비스 서버(200)와 인증 정보 백업 서버(400)에 계정을 생성하면, 서비스 서버(200)는 일회용 패스워드 생성을 위한 시드(secretKey)를 생성하여 인증 정보 백업 서버(400)와 다자 간 보안 컴퓨팅 클라이언트 소프트웨어 모듈(110)에 전달하여 사용자가 다자 간 보안 컴퓨팅 클라이언트 소프트웨어 모듈을 이용하여 서비스 서버와 인증 정보 백업 서버에 접근할 수 있는 서비스 계정과 인증 정보 백업 계정의 계정 식별자를 생성한다. First, the user accesses the URL (U) of the service to be subscribed to using the browser of the user terminal 100 . At this time, the service server 200 delivers the multilateral security computing client software module 110 executable in the browser, such as JavaScript or web assembly, to the customer's terminal, and the user's terminal registers the service through the execution of the software. When an account is created in the service server 200 and the authentication information backup server 400 using the desired ID, password (PW), and URL, the service server 200 generates a secretKey for generating a one-time password for authentication. It is transmitted to the information backup server 400 and the multi-party secure computing client software module 110 to back up the service account and authentication information through which the user can access the service server and the authentication information backup server using the multi-party secure computing client software module. Generates an account identifier for the account.

이때 서비스 계정과 인증 정보 백업 계정의 식별자는 URL와 ID, 패스워드 정보만을 이용하여 생성되며, 이렇게 생성된 식별자가 기 등록된 식별자와 동일한 경우 서비스 서버(200)와 인증 정보 백업 서버(400)는 사용자 단말에서 실행되는 다자 간 보안 컴퓨팅 클라이언트 소프트웨어 모듈(110)은 웹 브라우저 상에 기 등록된 계정과 중복되어 등록할 수 없다고 표시하고 ID나 패스워드를 달리하여 새로운 계정을 생성할 것인지 기 등록된 계정을 복구할 것인지를 묻는 UI를 표시한다. 사용자가 새로운 계정을 생성할 것을 선택하면 다자 간 보안 컴퓨팅 클라이언트 소프트웨어 모듈은 입력된 ID와 패스워드를 삭제하고 새로운 ID와 패스워드를 입력받는 UI를 표시한다. 사용자가 기 등록된 계정을 복구할 것을 선택하면, 다자 간 보안 컴퓨팅 클라이언트 소프트웨어 모듈(110)은 인증 정보 백업 서버에 URL, ID와 패스워드를 해시하여 계정 식별자를 생성하여 전송하고 암호화된 인증 정보를 요청하여 이를 일회용 패스워드에 의한 추가 인증을 통해 사용자 단말로 암호화된 다운로드한다. 만약 일회용 패스워드에 의한 인증에 실패하면 일회용 패스워드 인증에 실패했음을 표시하고 일회용 패스워드 재입력을 요청하며, 인증 정보 백업 서버가 허용하는 제한 횟수까지 이를 반복한다. 만약 일회용 패스워드에 의한 인증이 성공하여 인증 정보 백업 서버로부터 암호화된 인증 정보가 전송되면 다자 간 보안 컴퓨팅 클라이언트 소프트웨어 모듈은 입력된 패스워드를 이용하여 이를 복호화하고 복호화된 정보를 이용하여 서비스 서버에 앞서 생성된 계정 식별자를 이용하여 다자 간 보안 컴퓨팅을 이용한 전자 서명에 의한 계정 확인을 요청한다.At this time, identifiers of the service account and authentication information backup account are generated using only URL, ID, and password information. The multi-party secure computing client software module 110 running on the terminal indicates that it cannot be registered because it is duplicated with a previously registered account on the web browser, and whether to create a new account by changing the ID or password or recover the previously registered account. Displays a UI asking if you want to do it. If the user selects to create a new account, the multi-party secure computing client software module deletes the entered ID and password and displays a UI for inputting a new ID and password. If the user chooses to restore a pre-registered account, the multi-party secure computing client software module 110 generates and transmits an account identifier by hashing the URL, ID and password to the authentication information backup server, and requests encrypted authentication information. Then, it is encrypted and downloaded to the user terminal through additional authentication using a one-time password. If the one-time password authentication fails, it indicates that the one-time password authentication failed, requests re-entry of the one-time password, and repeats this up to the limit of the number of times allowed by the authentication information backup server. If authentication by the one-time password succeeds and encrypted authentication information is transmitted from the authentication information backup server, the multi-party secure computing client software module decrypts it using the entered password and uses the decrypted information to generate the encrypted authentication information prior to the service server. Using the account identifier, request account confirmation by electronic signature using multi-party secure computing.

기 등록된 계정 식별자가 없는 것으로 확인되어 서비스 가입을 위한 새로운 계정 식별자가 생성된 상태에서, 다자 간 보안 컴퓨팅 소프트웨어 클라이언트 모듈(110)은 웹 브라우저 화면에 일회용 패스워드 계정 등록을 위해 서비스 서버에서 생성된 일회용 패스워드 계정 시드(secretKey)를 QR 코드나 문자열의 형태로 생성하여 사용자가 보유한 일회용 패스워드 클라이언트 소프트웨어가 설치된 모바일 단말(500)로 QR 코드 스캔이나 문자열 입력의 방식으로 서비스 서버에 일회용 패스워드 계정을 생성하고 그 결과로 화면에 표시된 일회용 패스워드를 다자 간 보안 컴퓨팅 클라이언트 소프트웨어 모듈에 입력하여 서비스 서버에 인증을 요청하고 인증이 되면 일회용 패스워드 계정 ID를 서비스 계정 식별자와 쌍을 이루어 등록하여 일회용 패스워드 서비스 계정을 생성한다. 서비스 서버는 이를 인증 정보 백업 서버에 전달하여 인증 정보 백업 서버에 동일한 ID를 가진 일회용 패스워드 서비스 계정을 생성한다.In a state where it is confirmed that there is no pre-registered account identifier and a new account identifier for service subscription is created, the multi-party secure computing software client module 110 displays the one-time password generated by the service server for registering a one-time password account on the web browser screen. A password account seed (secretKey) is generated in the form of a QR code or string, and a one-time password account is created in the service server by scanning a QR code or inputting a string with a mobile terminal 500 in which the one-time password client software possessed by the user is installed. As a result, the one-time password displayed on the screen is input into the multi-party secure computing client software module to request authentication from the service server, and when authentication is successful, the one-time password account ID is paired with the service account identifier and registered to create a one-time password service account. The service server transmits this to the authentication information backup server and creates a one-time password service account with the same ID in the authentication information backup server.

상기 서비스 서버가 일회용 패스워드 시드를 생성하여 일회용 패스워드 인증 시스템을 구성하는 방법은 공지 기술에 의해 누구나 쉽게 실시할 수 있다.A method of constructing a one-time password authentication system by generating a one-time password seed by the service server can be easily performed by anyone by known technology.

서비스 서버와 인증 정보 백업 서버에 일회용 패스워드 인증이 가능한 서비스 계정이 생성되면, 다자 간 보안 컴퓨팅 클라이언트 소프트웨어 모듈(110)과 다자 간 보안 컴퓨팅 서버(300)는 협력 연산을 통해, 클라이언트용 프라이빗키 비밀 정보 조각과 서버용 프라이빗키 비밀 정보 조각, 두 프라이빗키 비밀 정보 조각의 대수적 곱으로 정의된 프라이빗키에 대응되는 공개키를 생성하여 일회용 패스워드 인증을 통해 서비스 계정의 전자 서명 인증을 위한 정보로 등록한다. 이때 프라이빗키 비밀 정보 조각 생성 방법을 설명하면 다음과 같다. When a service account capable of one-time password authentication is created in the service server and the authentication information backup server, the multi-party secure computing client software module 110 and the multi-party secure computing server 300 cooperate with each other to obtain private key secret information for the client. The public key corresponding to the private key defined as the algebraic product of the fragment, the private key secret information fragment for the server, and the two private key secret information fragments is generated and registered as information for digital signature authentication of the service account through one-time password authentication. At this time, the method of generating private key secret information fragments is as follows.

도 2를 참조하면, 사용자의 웹 브라우저에서 실행되는 다자 간 보안 컴퓨팅 클라이언트 소프트웨어 모듈(110)은 다자 간 보안 컴퓨팅 서버(300)와의 통신을 통해, 다자 간 보안 컴퓨팅 클라이언트 소프트웨어 모듈(110)에 랜덤값 R1을 다자 간 보안 컴퓨팅 서버(300)에 R2를 생성하여 앞서 생성된 서비스 계정 식별자를 인증 정보의 키값으로 하여 단말과 다자 간 보안 컴퓨팅 서버의 저장소에 저장하고, 다자 간 보안 컴퓨팅 클라이언트 모듈(110)은 입력된 패스워드를 이용하여 R1을 암호화하여 원격의 인증 정보 백업 서버로 계정 식별자를 이용하여 저장한다. 이때 프라이빗키(SK)는 각자의 랜덤 값의 곱인 R1 * R2로 정의되나 다자 간 보안 컴퓨팅 클라이언트 소프트웨어 모듈(110)이 실행되는 사용자 단말 내의 정보만으로는 프라이빗키를 알 수 없고 마찬가지로 다자 간 보안 컴퓨팅 서버(300) 내의 정보만으로는 프라이빗키를 알 수 없다. Referring to FIG. 2 , the multi-party secure computing client software module 110 running in the user's web browser transmits a random value to the multi-party secure computing client software module 110 through communication with the multi-party secure computing server 300 . R1 is created in the multi-party secure computing server 300, R2 is created, and the previously generated service account identifier is used as a key value for authentication information and stored in the storage of the terminal and the multi-party secure computing server, and the multi-party secure computing client module 110 encrypts R1 using the entered password and stores it in a remote authentication information backup server using the account identifier. At this time, the private key (SK) is defined as R1 * R2, which is the product of each random value, but the private key cannot be known only with information in the user terminal where the multi-party secure computing client software module 110 is executed, and similarly, the multi-party secure computing server ( 300), the private key cannot be known with only the information in it.

이 상태에서 프라이빗키(SK)에 대응하는 공개키(PK)를 생성하는 방법은 다음과 같다. In this state, a method of generating a public key (PK) corresponding to the private key (SK) is as follows.

다자 간 보안 컴퓨팅 클라이언트 소프트웨어 모듈(110)이 다자 간 보안 컴퓨팅 서버(300)와 협력 연산하여, 클라이언트용 프라이빗키 비밀 정보 조각(R1)과 서버용 프라이빗키 비밀 정보 조각(R2)의 곱(R1*R2)을 프라이빗키로 하는 공개키를 생성하기 위해, 다자 간 보안 컴퓨팅 클라이언트 소프트웨어 모듈(110)은 다자 간 보안 컴퓨팅 서버(300)와의 암호화된 통신 채널을 통해 클라이언트 프라이빗키 비밀 정보 조각에 미리 정해진 타원곡선 암호 알고리즘의 제너레이터 G를 곱해서 나온 값(R1*G)을 다자 간 보안 컴퓨팅 서버(300)로 전송하고, 다자 간 보안 컴퓨팅 서버(300)는 서버용 프라이빗키 비밀 정보 조각(R2)에 미리 정해진 타원곡선 암호 알고리즘의 제너레이터 G를 곱한 값(R2*G)을 다자 간 보안 컴퓨팅 클라이언트 소프트웨어 모듈(110)로 전송하며, 다자 간 보안 컴퓨팅 클라이언트 소프트웨어 모듈(110)은 다자 간 보안 컴퓨팅 서버(300)로부터 받은 값(R2*G)에 자신이 보유한 클라이언트용 프라이빗키 비밀 정보 조각(R1)을 곱하여 공개키(PubKey=R1*R2*G=SK*G)를 생성하고, 다자 간 보안 컴퓨팅 서(300)버는 다자 간 보안 컴퓨팅 클라이언트 소프트웨어 모듈(110)로부터 받은 값(R1*G)에 자신의 서버용 프라이빗키 비밀 정보 조각(R2)을 곱하여 공개키(PubKey=R1*R2*G=SK*G)를 생성한다.The multi-party secure computing client software module 110 cooperates with the multi-party secure computing server 300 to calculate the product (R1*R2) of the private key secret information fragment (R1) for the client and the private key secret information fragment (R2) for the server. In order to generate a public key with ) as a private key, the multi-party secure computing client software module 110 transmits a predetermined elliptic curve encryption to a piece of client private key secret information through an encrypted communication channel with the multi-party secure computing server 300. The value (R1*G) obtained by multiplying the generator G of the algorithm is transmitted to the multi-party secure computing server 300, and the multi-party secure computing server 300 transmits a predetermined elliptic curve password to the private key secret information piece (R2) for the server. The value (R2*G) multiplied by the generator G of the algorithm is transmitted to the multi-party secure computing client software module 110, and the multi-party secure computing client software module 110 receives the value received from the multi-party secure computing server 300 ( A public key (PubKey=R1*R2*G=SK*G) is generated by multiplying R2*G) by the private key secret information fragment (R1) for the client, and the multi-party secure computing server 300 The public key (PubKey = R1 * R2 * G = SK * G) is generated by multiplying the value (R1 * G) received from the secure computing client software module 110 by the private key secret information piece (R2) for the server.

이 상태에서 다자간 보안 컴퓨팅 클라이언트 모듈(110)이 서비스 서버(300)에 계정을 등록하는 방법은 다음과 같다.In this state, a method for the multilateral secure computing client module 110 to register an account with the service server 300 is as follows.

다자간 보안 컴퓨팅 클라이언트 모듈(110)은 접속한 서비스 서버(300)의 일회용 패스워드의 시드 ID와 접속된 서비스 서버의 URL(U)과 사용자 단말(100)로부터 입력받은 ID와 랜덤하게 생성한 클라이언트용 프라이빗키 비밀 정보 조각(R1), 다자간 보안 컴퓨팅 서버(200)와 협력 연산으로 생성한 공개키(PK)를 이용하여, 서비스 서버(300)에 일회용 패스워드의 시드 ID(secretKey), URL(U)과 ID를 해시한 값(Hash(ID))과 공개키(PK)로 구성된 계정 정보를 등록한다.The multi-party security computing client module 110 uses the seed ID of the one-time password of the connected service server 300, the URL (U) of the connected service server, the ID input from the user terminal 100, and the randomly generated private private data for the client. Using the key secret information piece (R1) and the public key (PK) generated by cooperative operation with the multilateral security computing server 200, the service server 300 receives the seed ID (secretKey) of the one-time password, URL (U) and Register account information consisting of a hashed ID (Hash(ID)) and a public key (PK).

이 상태에서 다자간 보안 컴퓨팅 클라이언트 모듈(110)이 원격 저장소(400)에 클라이언트용 프라이빗키 비밀 정보 조각(R1)을 암호화한 값(Enc(R1, PW))을 저장하는 방법은 다음과 같다.In this state, a method for the multilateral secure computing client module 110 to store the encrypted value (Enc(R1, PW)) of the private key secret information fragment (R1) for the client in the remote storage 400 is as follows.

다자간 보안 컴퓨팅 클라이언트 모듈(110)은 일회용 패스워드 시드 ID(secretKey)와 접속한 서비스 서버(300)의 URL(U)과 사용자 단말(100)로부터 입력받은 ID, 패스워드(PW)와 랜덤하게 생성한 클라이언트용 프라이빗키 비밀 정보 조각(R1), 다자간 보안 컴퓨팅 서버(200)와 협력 연산으로 생성한 공개키(PK)를 이용하여, 원격 저장소(400)에 ID를 해시한 값을 식별자로 하여 일회용 패스워드 시드 ID(secretKey)를 등록한 후에 해당 ID 서비스 서버(300)의 URL(U)과 공개키, 암호화된 R1(Enc(R1, PW))를 저장한다.The multi-party security computing client module 110 includes a one-time password seed ID (secretKey), the URL (U) of the service server 300 connected, the ID and password (PW) input from the user terminal 100, and a randomly generated client. Private key secret information fragment (R1) for multilateral secure computing server 200 and public key (PK) generated by cooperative operation, ID hashed value in remote storage 400 is used as an identifier to seed a one-time password After registering the ID (secretKey), the URL (U) of the ID service server 300, the public key, and the encrypted R1 (Enc (R1, PW)) are stored.

이상에서 설명한 본 발명의 실시예는 장치 및 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체를 통해 구현될 수도 있으며, 이러한 구현은 앞서 설명한 실시예의 기재로부터 본 발명이 속하는 기술분야의 전문가라면 쉽게 구현할 수 있는 것이다. The embodiments of the present invention described above are not implemented only through devices and methods, and may be implemented through a program that realizes functions corresponding to the configuration of the embodiments of the present invention or a recording medium on which the program is recorded. Implementation can be easily implemented by an expert in the technical field to which the present invention belongs based on the description of the above-described embodiment.

이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.Although the embodiments of the present invention have been described in detail above, the scope of the present invention is not limited thereto, and various modifications and improvements made by those skilled in the art using the basic concept of the present invention defined in the following claims are also included in the scope of the present invention. that fall within the scope of the right.

Claims (2)

사용자 단말의 웹 브라우저 내에서 실행된 다자 간 보안 컴퓨팅 클라이언트 소프트웨어 모듈과 다자 간 보안 컴퓨팅 서버가 보안 통신 채널로 연결된 상태에서, 사용자가 등록하기를 원하는 ID(ID)와 패스워드(PW)를 입력하고 QR 코드의 형태로 브라우저 화면에 표시된 일회용 패스워드의 시드 ID(secretKey)로 일회용 패스워드 계정을 생성하여 모바일 화면에 표시된 일회용 패스워드를 입력하면, 다자 간 보안 컴퓨팅 클라이언트 소프트웨어 모듈과 다자 간 보안 컴퓨팅 서버가 협력 연산을 통해 Lindell 2 Party 다자 간 보안 컴퓨팅 분산키 알고리즘을 이용하여 다자 간 보안 컴퓨팅 클라이언트에 클라이언트용 프라이빗키 비밀 정보 조각을 다자 간 보안 컴퓨팅 서버 단말에 서버용 프라이빗키 비밀 정보 조각을 생성하고 이로부터 협력 연산을 통해 공개키를 생성하여 사용자가 입력한 ID의 해시값과 공개키를 서비스 서버에 설정된 일회용 패스워드 계정 정보와 결합된 서버용 프라이빗키 비밀 정보 조각의 식별자로 등록하는 계정 생성 단계,
상기 생성된 클라이언트용 프라이빗키 비밀 정보 조각을 사용자가 입력한 패스워드를 암호키로 하는 대칭키 암호화 방식을 이용하여 암호화하여 원격의 클라이언트용 프라이빗키 비밀 정보 조각 백업 서버에 사용자가 입력한 ID의 해시값과 함께 쌍을 이루어 저장하는 클라이언트용 프라이빗키 비밀 정보 조각 백업 단계를 포함하는 것을 특징으로 하는,
사용자의 ID와 패스워드 입력만으로 다자 간 보안 컴퓨팅(SMPC : Secure Multi-party Computation) 방식의 비대칭키 암호를 이용한 인증 시스템의 사용자 계정을 등록하는 방법

In a state where the multi-party secure computing client software module executed in the web browser of the user terminal and the multi-party secure computing server are connected through a secure communication channel, the user inputs the ID (ID) and password (PW) desired to register and QR When a one-time password account is created with the seed ID (secretKey) of the one-time password displayed on the browser screen in the form of code and the one-time password displayed on the mobile screen is entered, the multi-party secure computing client software module and the multi-party secure computing server perform cooperative calculations. By using the Lindell 2 Party multi-party secure computing distributed key algorithm, the private key secret information fragment for the client is generated in the multi-party secure computing client, and the private key secret information fragment for the server is generated in the multi-party secure computing server terminal. An account creation step of generating a public key and registering the hash value of the ID entered by the user and the public key as an identifier of a piece of private key secret information for the server combined with the one-time password account information set in the service server;
The generated piece of private key secret information for the client is encrypted using a symmetric key encryption method using the password entered by the user as an encryption key, and the hash value of the ID entered by the user Characterized in that it comprises a step of backing up pieces of private key secret information for clients that are paired and stored together.
A method of registering a user account in an authentication system using an asymmetric key cryptography based on Secure Multi-party Computation (SMPC) only by entering the user's ID and password.

상기 계정 생성 단계에서,
다자 간 보안 컴퓨팅 클라이언트 소프트웨어 모듈이 다자 간 보안 컴퓨팅 서버와 협력 연산하여, 클라이언트용 프라이빗키 비밀 정보 조각(R1)과 서버용 프라이빗키 비밀 정보 조각(R2)의 곱(R1*R2)을 프라이빗키로 하는 공개키를 생성하기 위해, 다자 간 보안 컴퓨팅 클라이언트 소프트웨어 모듈은 다자 간 보안 컴퓨팅 서버와의 암호화된 통신 채널을 통해 클라이언트 프라이빗키 비밀 정보 조각에 미리 정해진 타원곡선 암호 알고리즘의 제너레이터 G를 곱해서 나온 값(R1*G)을 다자 간 보안 컴퓨팅 서버로 전송하고, 다자 간 보안 컴퓨팅 서버는 서버용 프라이빗키 비밀 정보 조각(R2)에 미리 정해진 타원곡선 암호 알고리즘의 제너레이터 G를 곱한 값(R2*G)을 다자 간 보안 컴퓨팅 클라이언트 소프트웨어로 전송하여, 다자 간 보안 컴퓨팅 클라이언트 소프트웨어는 다자 간 보안 컴퓨팅 서버로부터 받은 값(R2*G)에 자신이 보유한 클라이언트용 프라이빗키 비밀 정보 조각(R1)을 곱하여 공개키(PubKey=R1*R2*G=SK*G)를 생성하고, 다자 간 보안 컴퓨팅 서버는 다자 간 보안 컴퓨팅 클라이언트 소프트웨어로부터 받은 값(R1*G)에 자신의 서버용 프라이빗키 비밀 정보 조각(R2)을 곱하여 공개키(PubKey=R1*R2*G=SK*G)를 생성하고, 다자 간 보안 컴퓨팅 클라이언트 소프트웨어는 사용자 ID의 해시값(Hash(ID))과 클라이언트용 프라이빗키 비밀 정보 조각을 패스워드를 암호키로 하여 암호화한 값(Enc_R1=Enc(PW,R1))과 공개키를 하나의 레코드로 저장하고, 다자 간 보안 컴퓨팅 서버는 사용자 ID의 해시값(Hash(ID))과 서버용 프라이빗키 비밀 정보 조각(R2)과 공개키(PubKey)를 하나의 레코드로 저장하는 것을 특징으로 하는 계정 생성 단계

In the account creation step,
The multi-party secure computing client software module cooperates with the multi-party secure computing server to calculate, and discloses the product (R1*R2) of the private key secret information fragment (R1) for the client and the private key secret information fragment (R2) for the server as the private key. To generate a key, the multi-party secure computing client software module multiplies a fragment of the client private key secret by the generator G of a predetermined elliptic curve cryptographic algorithm through an encrypted communication channel with the multi-party secure computing server (R1* G) is transmitted to the multi-party secure computing server, and the multi-party secure computing server multiplies the private key secret information fragment (R2) for the server by the generator G of the predetermined elliptic curve cryptographic algorithm (R2*G). Transmitted to the client software, the multi-party secure computing client software multiplies the value (R2*G) received from the multi-party secure computing server by the private key secret information fragment (R1) for the client it holds, and then the public key (PubKey=R1*R2 *G=SK*G), and the multi-party secure computing server multiplies the value (R1*G) received from the multi-party secure computing client software by the private key secret information fragment (R2) for its own server to generate the public key (PubKey= R1*R2*G=SK*G), and the multi-party secure computing client software encrypts the hash value of the user ID (Hash(ID)) and the secret information piece of the private key for the client with the password as the encryption key ( Enc_R1=Enc(PW,R1)) and the public key are stored as one record, and the multi-party secure computing server has the hash value of the user ID (Hash(ID)), the private key for the server, the secret information piece (R2) and the public key Account creation step characterized by storing (PubKey) as one record

KR1020210183255A 2021-12-20 2021-12-20 Method of creating account for 2FA authenticaed electronic signature by secure multi-party computation KR20230094253A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210183255A KR20230094253A (en) 2021-12-20 2021-12-20 Method of creating account for 2FA authenticaed electronic signature by secure multi-party computation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210183255A KR20230094253A (en) 2021-12-20 2021-12-20 Method of creating account for 2FA authenticaed electronic signature by secure multi-party computation

Publications (1)

Publication Number Publication Date
KR20230094253A true KR20230094253A (en) 2023-06-28

Family

ID=86994607

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210183255A KR20230094253A (en) 2021-12-20 2021-12-20 Method of creating account for 2FA authenticaed electronic signature by secure multi-party computation

Country Status (1)

Country Link
KR (1) KR20230094253A (en)

Similar Documents

Publication Publication Date Title
US10171451B2 (en) Distributed single sign-on
US9882717B2 (en) System and method for generating a server-assisted strong password from a weak secret
Limbasiya et al. Advanced formal authentication protocol using smart cards for network applicants
US10911431B2 (en) Local encryption for single sign-on
US7571471B2 (en) Secure login using a multifactor split asymmetric crypto-key with persistent key security
US20180034810A1 (en) A system and methods for protecting keys in computerized devices operating versus a server
US9185111B2 (en) Cryptographic authentication techniques for mobile devices
US10637818B2 (en) System and method for resetting passwords on electronic devices
US20070174614A1 (en) Derivative seeds
CN107920052B (en) Encryption method and intelligent device
CN111355591A (en) Block chain account safety management method based on real-name authentication technology
JP2010231404A (en) System, method, and program for managing secret information
EP3292654B1 (en) A security approach for storing credentials for offline use and copy-protected vault content in devices
Mishra et al. A provably secure content distribution framework for portable DRM systems
Nishimura et al. Secure authentication key sharing between personal mobile devices based on owner identity
KR20230094253A (en) Method of creating account for 2FA authenticaed electronic signature by secure multi-party computation
KR100681005B1 (en) Key roaming method, and method for the same
KR20230094252A (en) Method of creating account for electronic signature by secure multi-party computation
Fatima et al. Secure authentication and key management protocol in cloud computing
Kumari et al. Hacking resistance protocol for securing passwords using personal device
US20240121083A1 (en) Secure restoration of private key
RU2771928C2 (en) Secure data exchange ensuring direct secrecy
ALnwihel et al. A Novel Cloud Authentication Framework
Corella et al. Strong and convenient multi-factor authentication on mobile devices
CN117527185A (en) Block chain-based high-security identity authentication method and system

Legal Events

Date Code Title Description
E902 Notification of reason for refusal