KR102545272B1 - Interfacing support server that supports the interfacing between a cloud storage and a client terminal to provide a cloud office service and operating method thereof - Google Patents

Interfacing support server that supports the interfacing between a cloud storage and a client terminal to provide a cloud office service and operating method thereof Download PDF

Info

Publication number
KR102545272B1
KR102545272B1 KR1020210139963A KR20210139963A KR102545272B1 KR 102545272 B1 KR102545272 B1 KR 102545272B1 KR 1020210139963 A KR1020210139963 A KR 1020210139963A KR 20210139963 A KR20210139963 A KR 20210139963A KR 102545272 B1 KR102545272 B1 KR 102545272B1
Authority
KR
South Korea
Prior art keywords
cloud storage
electronic signature
storage server
public key
matrix
Prior art date
Application number
KR1020210139963A
Other languages
Korean (ko)
Other versions
KR20230056204A (en
Inventor
최치훈
Original Assignee
주식회사 한글과컴퓨터
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 한글과컴퓨터 filed Critical 주식회사 한글과컴퓨터
Priority to KR1020210139963A priority Critical patent/KR102545272B1/en
Publication of KR20230056204A publication Critical patent/KR20230056204A/en
Application granted granted Critical
Publication of KR102545272B1 publication Critical patent/KR102545272B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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)
    • H04L9/0825Key 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) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • 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/3236Cryptographic 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 cryptographic hash functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances

Abstract

클라우드 오피스 서비스를 제공하기 위한, 클라우드 스토리지와 클라이언트 단말 간의 인터페이싱을 지원하는 인터페이싱 지원 서버 및 그 동작 방법이 개시된다. 본 발명은 클라이언트 단말로부터 소정의 클라우드 스토리지 서버에 대한 액세스 요청이 수신되는 경우, 상기 클라우드 스토리지 서버가 신뢰할 수 있는 클라우드 스토리지 서버인지 여부에 대한 검증을 수행하여, 상기 클라우드 스토리지 서버에 대한 검증이 완료되는 경우에만 상기 클라이언트 단말의 상기 클라우드 스토리지 서버에 대한 액세스를 가능하게 하는 인터페이싱 지원 서버 및 그 동작 방법에 대한 것이다.Disclosed are an interfacing support server supporting interfacing between a cloud storage and a client terminal to provide a cloud office service and an operating method thereof. In the present invention, when a request for access to a predetermined cloud storage server is received from a client terminal, verification of whether the cloud storage server is a reliable cloud storage server is performed, and verification of the cloud storage server is completed. An interfacing support server enabling access to the cloud storage server of the client terminal only when the client terminal is present, and an operating method thereof.

Description

클라우드 오피스 서비스를 제공하기 위한, 클라우드 스토리지와 클라이언트 단말 간의 인터페이싱을 지원하는 인터페이싱 지원 서버 및 그 동작 방법{INTERFACING SUPPORT SERVER THAT SUPPORTS THE INTERFACING BETWEEN A CLOUD STORAGE AND A CLIENT TERMINAL TO PROVIDE A CLOUD OFFICE SERVICE AND OPERATING METHOD THEREOF}Interfacing support server supporting interfacing between cloud storage and client terminal for providing cloud office service and its operation method THEREOF}

본 발명은 클라우드 오피스 서비스를 제공하기 위한, 클라우드 스토리지와 클라이언트 단말 간의 인터페이싱을 지원하는 인터페이싱 지원 서버 및 그 동작 방법에 대한 것이다.The present invention relates to an interfacing support server supporting interfacing between a cloud storage and a client terminal to provide a cloud office service, and an operating method thereof.

최근, 초고속 인터넷 환경이 보급됨에 따라, 다양한 분야에서 클라우드 서비스의 활용이 증가하고 있다. 이러한 클라우드 서비스는, 데이터를 클라이언트 단말이 아닌 별도의 클라우드 스토리지 서버에 저장해 둠으로써, 사용자가 필요할 때에 클라우드 스토리지에 액세스하여 데이터를 활용할 수 있도록 지원하는 서비스를 의미한다.BACKGROUND ART Recently, with the spread of high-speed Internet environments, the use of cloud services is increasing in various fields. Such a cloud service refers to a service that supports a user to access cloud storage and utilize data when needed by storing data in a separate cloud storage server instead of a client terminal.

관련해서, 이러한 클라우드 스토리지 서버에 저장된 문서 파일을 클라이언트 단말에 설치된 문서 편집 프로그램으로 오픈해서 편집할 수 있도록 지원하는 클라우드 기반의 오피스 서비스도 출시되고 있다.In this regard, a cloud-based office service that supports document files stored in the cloud storage server to be opened and edited with a document editing program installed in a client terminal is also being released.

이러한 흐름에 맞춰, 다양한 클라우드 업체들이 출현하면서, 다양한 클라우드 스토리지 서버들이 사용되고 있다. 이때, 이러한 클라우드 스토리지 서버를 이용한 클라우드 오피스 서비스를 제공하기 위해서는, 클라우드 스토리지 서버와 클라이언트 단말에 설치된 문서 편집 프로그램 간의 연동이 필요하다.In line with this trend, as various cloud companies emerge, various cloud storage servers are being used. At this time, in order to provide a cloud office service using such a cloud storage server, interworking between the cloud storage server and a document editing program installed in a client terminal is required.

다만, 클라우드 업체에서 운영하는 클라우드 스토리지 서버에 해킹이 발생하거나 클라우드 업체에서의 서버 운영이 불안정하게 되면, 클라이언트 단말에도 좋지 않은 영향을 미칠 수 있기 때문에, 클라우드 업체와의 사전 협의를 거쳐, 신뢰할 수 있는 클라우드 스토리지 서버를 통해서만 사용자에게 클라우드 오피스 서비스를 제공하는 방안이 도입될 필요가 있다.However, if hacking occurs in the cloud storage server operated by the cloud company or if server operation in the cloud company becomes unstable, it may adversely affect the client terminal. A method of providing cloud office services to users only through a cloud storage server needs to be introduced.

따라서, 다양한 클라우드 업체에서 운영하는 클라우드 스토리지 서버들과 클라이언트 단말 간의 연동을 통해, 클라우드 오피스 서비스를 제공할 때, 각 클라우드 스토리지 서버가 신뢰할 수 있는 클라우드 스토리지 서버인지 여부를 확인하고 관리할 수 있도록 지원하는 기술에 대한 연구가 필요하다.Therefore, when providing cloud office services through linkage between cloud storage servers operated by various cloud companies and client terminals, it is possible to check and manage whether each cloud storage server is a reliable cloud storage server. Research on technology is needed.

본 발명은 클라이언트 단말로부터 소정의 클라우드 스토리지 서버에 대한 액세스 요청이 수신되는 경우, 상기 클라우드 스토리지 서버가 신뢰할 수 있는 클라우드 스토리지 서버인지 여부에 대한 검증을 수행하여, 상기 클라우드 스토리지 서버에 대한 검증이 완료되는 경우에만 상기 클라이언트 단말의 상기 클라우드 스토리지 서버에 대한 액세스를 가능하게 하는 인터페이싱 지원 서버 및 그 동작 방법을 제시함으로써, 신뢰할 수 있는 보안 환경 하에서 사용자가 클라우드 오피스 서비스를 이용할 수 있도록 지원하고자 한다.In the present invention, when a request for access to a predetermined cloud storage server is received from a client terminal, verification of whether the cloud storage server is a reliable cloud storage server is performed, and verification of the cloud storage server is completed. By presenting an interfacing support server and its operating method enabling access to the cloud storage server of the client terminal only when the client terminal is in the cloud, it is intended to support users to use the cloud office service under a reliable security environment.

본 발명의 일실시예에 따른, 클라우드 오피스 서비스를 제공하기 위한, 클라우드 스토리지와 클라이언트 단말 간의 인터페이싱을 지원하는 인터페이싱 지원 서버는 전자 서명을 위한 마스터 개인키 - 상기 마스터 개인키에 대응되는 마스터 공개키는 상기 클라우드 오피스 서비스에 가입되어 있는 복수의 회원들 각각의 클라이언트 단말에 사전 발급되어 있음 - 가 저장되어 있는 마스터 개인키 저장부, 사전 지정된 복수의 클라우드 스토리지 서버들 각각에 대한 사전 발급된 공개키 - 상기 복수의 클라우드 스토리지 서버들 각각에 대한 공개키에 대응되는 개인키는, 각 클라우드 스토리지 서버에 사전 발급되어 있음 - 가 저장되어 있는 공개키 저장부, 상기 복수의 회원들 중 어느 한 명인 제1 회원이 보유하고 있는 제1 클라이언트 단말로부터 상기 복수의 클라우드 스토리지 서버들 중 어느 하나인 제1 클라우드 스토리지 서버에 사전 저장되어 있는 제1 전자 문서에 대한 데이터의 전송 요청이 수신되면, 상기 제1 클라우드 스토리지 서버로 전자 서명을 요청하는 서명 요청부, 상기 제1 클라우드 스토리지 서버로부터, 상기 제1 클라우드 스토리지 서버에 사전 발급되어 있는 제1 개인키에 기초하여 전자 서명된 제1 전자 서명 값이 수신되면, 상기 공개키 저장부로부터 상기 제1 클라우드 스토리지 서버에 대한 제1 공개키를 추출한 후, 상기 제1 공개키를 기초로 상기 제1 전자 서명 값에 대한 검증을 수행하는 검증 수행부 및 상기 제1 전자 서명 값에 대한 검증이 완료되면, 상기 제1 클라우드 스토리지 서버로부터 상기 제1 전자 문서에 대한 데이터를 수신하고, 상기 마스터 개인키 저장부에 저장되어 있는 상기 마스터 개인키에 기초하여 전자 서명을 수행함으로써 제2 전자 서명 값을 생성한 후, 상기 제1 클라이언트 단말로 상기 제2 전자 서명 값과 상기 제1 전자 문서에 대한 데이터를 전송하는 정보 전송부를 포함한다.According to an embodiment of the present invention, an interfacing support server supporting interfacing between a cloud storage and a client terminal for providing a cloud office service is a master private key for electronic signature - a master public key corresponding to the master private key pre-issued to each client terminal of a plurality of members subscribed to the cloud office service - a master private key storage unit in which is stored, a pre-issued public key for each of a plurality of pre-specified cloud storage servers - the above A private key corresponding to a public key for each of a plurality of cloud storage servers is pre-issued in each cloud storage server - a public key storage unit in which a first member, which is one of the plurality of members, is stored When a request for transmission of data for a first electronic document pre-stored in a first cloud storage server, which is any one of the plurality of cloud storage servers, is received from a first client terminal possessed, the first cloud storage server When a first electronic signature value electronically signed based on a first private key previously issued to the first cloud storage server is received from the signature requesting unit requesting an electronic signature, the first cloud storage server, the public key After extracting the first public key for the first cloud storage server from the storage unit, a verification performing unit for performing verification on the first electronic signature value based on the first public key and the first electronic signature value When the verification of the second electronic document is completed, data for the first electronic document is received from the first cloud storage server and electronic signature is performed based on the master private key stored in the master private key storage unit. and an information transmitting unit configured to transmit the second electronic signature value and data on the first electronic document to the first client terminal after generating the signature value.

또한, 본 발명의 일실시예에 따른, 클라우드 오피스 서비스를 제공하기 위한, 클라우드 스토리지와 클라이언트 단말 간의 인터페이싱을 지원하는 인터페이싱 지원 서버의 동작 방법은 전자 서명을 위한 마스터 개인키 - 상기 마스터 개인키에 대응되는 마스터 공개키는 상기 클라우드 오피스 서비스에 가입되어 있는 복수의 회원들 각각의 클라이언트 단말에 사전 발급되어 있음 - 가 저장되어 있는 마스터 개인키 저장부를 유지하는 단계, 사전 지정된 복수의 클라우드 스토리지 서버들 각각에 대한 사전 발급된 공개키 - 상기 복수의 클라우드 스토리지 서버들 각각에 대한 공개키에 대응되는 개인키는, 각 클라우드 스토리지 서버에 사전 발급되어 있음 - 가 저장되어 있는 공개키 저장부를 유지하는 단계, 상기 복수의 회원들 중 어느 한 명인 제1 회원이 보유하고 있는 제1 클라이언트 단말로부터 상기 복수의 클라우드 스토리지 서버들 중 어느 하나인 제1 클라우드 스토리지 서버에 사전 저장되어 있는 제1 전자 문서에 대한 데이터의 전송 요청이 수신되면, 상기 제1 클라우드 스토리지 서버로 전자 서명을 요청하는 단계, 상기 제1 클라우드 스토리지 서버로부터, 상기 제1 클라우드 스토리지 서버에 사전 발급되어 있는 제1 개인키에 기초하여 전자 서명된 제1 전자 서명 값이 수신되면, 상기 공개키 저장부로부터 상기 제1 클라우드 스토리지 서버에 대한 제1 공개키를 추출한 후, 상기 제1 공개키를 기초로 상기 제1 전자 서명 값에 대한 검증을 수행하는 단계 및 상기 제1 전자 서명 값에 대한 검증이 완료되면, 상기 제1 클라우드 스토리지 서버로부터 상기 제1 전자 문서에 대한 데이터를 수신하고, 상기 마스터 개인키 저장부에 저장되어 있는 상기 마스터 개인키에 기초하여 전자 서명을 수행함으로써 제2 전자 서명 값을 생성한 후, 상기 제1 클라이언트 단말로 상기 제2 전자 서명 값과 상기 제1 전자 문서에 대한 데이터를 전송하는 단계를 포함한다.In addition, according to an embodiment of the present invention, a method of operating an interfacing support server supporting interfacing between a cloud storage and a client terminal for providing a cloud office service is a master private key for electronic signature - corresponding to the master private key The master public key is pre-issued to each of the client terminals of a plurality of members subscribed to the cloud office service - maintaining a master private key storage unit in which is stored, to each of a plurality of pre-specified cloud storage servers Maintaining a public key storage unit in which a pre-issued public key for the plurality of cloud storage servers, in which a private key corresponding to the public key for each of the plurality of cloud storage servers is pre-issued in each cloud storage server, is stored; A request for transmission of data for a first electronic document pre-stored in a first cloud storage server, which is any one of the plurality of cloud storage servers, from a first client terminal possessed by a first member, which is one of the members of requesting an electronic signature from the first cloud storage server, the first electronic signature obtained from the first cloud storage server based on a first private key previously issued to the first cloud storage server. When a signature value is received, extracting a first public key for the first cloud storage server from the public key storage unit, and then verifying the first electronic signature value based on the first public key; and When the verification of the first electronic signature value is completed, data for the first electronic document is received from the first cloud storage server, and based on the master private key stored in the master private key storage unit, and generating a second electronic signature value by performing a signature, and then transmitting the second electronic signature value and data for the first electronic document to the first client terminal.

본 발명은 클라이언트 단말로부터 소정의 클라우드 스토리지 서버에 대한 액세스 요청이 수신되는 경우, 상기 클라우드 스토리지 서버가 신뢰할 수 있는 클라우드 스토리지 서버인지 여부에 대한 검증을 수행하여, 상기 클라우드 스토리지 서버에 대한 검증이 완료되는 경우에만 상기 클라이언트 단말의 상기 클라우드 스토리지 서버에 대한 액세스를 가능하게 하는 인터페이싱 지원 서버 및 그 동작 방법을 제시함으로써, 신뢰할 수 있는 보안 환경 하에서 사용자가 클라우드 오피스 서비스를 이용할 수 있도록 지원할 수 있다.In the present invention, when a request for access to a predetermined cloud storage server is received from a client terminal, verification of whether the cloud storage server is a reliable cloud storage server is performed, and verification of the cloud storage server is completed. By suggesting an interfacing support server and its operating method enabling access to the cloud storage server of the client terminal only when the client terminal is in the cloud, it is possible to support the user to use the cloud office service under a reliable security environment.

도 1은 본 발명의 일실시예에 따른 클라우드 오피스 서비스를 제공하기 위한, 클라우드 스토리지와 클라이언트 단말 간의 인터페이싱을 지원하는 인터페이싱 지원 서버의 구조를 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 클라우드 오피스 서비스를 제공하기 위한, 클라우드 스토리지와 클라이언트 단말 간의 인터페이싱을 지원하는 인터페이싱 지원 서버의 동작 방법을 도시한 순서도이다.
1 is a diagram showing the structure of an interfacing support server supporting interfacing between a cloud storage and a client terminal for providing a cloud office service according to an embodiment of the present invention.
2 is a flowchart illustrating an operating method of an interfacing support server supporting interfacing between a cloud storage and a client terminal to provide a cloud office service according to an embodiment of the present invention.

이하에서는 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명하기로 한다. 이러한 설명은 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였으며, 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 본 명세서 상에서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 사람에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다.Hereinafter, embodiments according to the present invention will be described in detail with reference to the accompanying drawings. This description is not intended to limit the present invention to specific embodiments, but should be understood to include all modifications, equivalents, and substitutes included in the spirit and scope of the present invention. While describing each drawing, similar reference numerals have been used for similar components, and unless otherwise defined, all terms used in this specification, including technical or scientific terms, are common knowledge in the art to which the present invention belongs. has the same meaning as commonly understood by the person who has it.

본 문서에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다. 또한, 본 발명의 다양한 실시예들에 있어서, 각 구성요소들, 기능 블록들 또는 수단들은 하나 또는 그 이상의 하부 구성요소로 구성될 수 있고, 각 구성요소들이 수행하는 전기, 전자, 기계적 기능들은 전자회로, 집적회로, ASIC(Application Specific Integrated Circuit) 등 공지된 다양한 소자들 또는 기계적 요소들로 구현될 수 있으며, 각각 별개로 구현되거나 2 이상이 하나로 통합되어 구현될 수도 있다. In this document, when a certain component is said to "include", it means that it may further include other components without excluding other components unless otherwise stated. In addition, in various embodiments of the present invention, each component, functional block, or means may be composed of one or more sub-components, and the electrical, electronic, and mechanical functions performed by each component are electronic It may be implemented with various known elements or mechanical elements such as circuits, integrated circuits, ASICs (Application Specific Integrated Circuits), and may be implemented separately or two or more may be integrated into one.

한편, 첨부된 블록도의 블록들이나 흐름도의 단계들은 범용 컴퓨터, 특수용 컴퓨터, 휴대용 노트북 컴퓨터, 네트워크 컴퓨터 등 데이터 프로세싱이 가능한 장비의 프로세서나 메모리에 탑재되어 지정된 기능들을 수행하는 컴퓨터 프로그램 명령들(instructions)을 의미하는 것으로 해석될 수 있다. 이들 컴퓨터 프로그램 명령들은 컴퓨터 장치에 구비된 메모리 또는 컴퓨터에서 판독 가능한 메모리에 저장될 수 있기 때문에, 블록도의 블록들 또는 흐름도의 단계들에서 설명된 기능들은 이를 수행하는 명령 수단을 내포하는 제조물로 생산될 수도 있다. 아울러, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 명령들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 가능한 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 정해진 순서와 달리 실행되는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 실질적으로 동시에 수행되거나, 역순으로 수행될 수 있으며, 경우에 따라 일부 블록들 또는 단계들이 생략된 채로 수행될 수도 있다.On the other hand, the blocks of the accompanying block diagram or the steps of the flowchart are computer program instructions that perform designated functions by being loaded into a processor or memory of a device capable of data processing, such as a general-purpose computer, a special purpose computer, a portable notebook computer, and a network computer. can be interpreted as meaning Since these computer program instructions may be stored in a memory included in a computer device or in a computer readable memory, the functions described in blocks of a block diagram or steps of a flowchart are produced as a product containing instruction means for performing them. It could be. Further, each block or each step may represent a module, segment or portion of code that includes one or more executable instructions for executing specified logical function(s). Also, it should be noted that in some alternative embodiments, functions mentioned in blocks or steps may be executed out of a predetermined order. For example, two blocks or steps shown in succession may be performed substantially simultaneously or in reverse order, and in some cases, some blocks or steps may be omitted.

도 1은 본 발명의 일실시예에 따른 클라우드 오피스 서비스를 제공하기 위한, 클라우드 스토리지와 클라이언트 단말 간의 인터페이싱을 지원하는 인터페이싱 지원 서버의 구조를 도시한 도면이다.1 is a diagram showing the structure of an interfacing support server supporting interfacing between a cloud storage and a client terminal for providing a cloud office service according to an embodiment of the present invention.

도 1을 참조하면, 본 발명에 따른 인터페이싱 지원 서버(110)는 마스터 개인키 저장부(111), 공개키 저장부(112), 서명 요청부(113), 검증 수행부(114) 및 정보 전송부(115)를 포함한다.Referring to FIG. 1, the interfacing support server 110 according to the present invention includes a master private key storage unit 111, a public key storage unit 112, a signature request unit 113, a verification unit 114, and information transmission. Includes section 115.

우선, 마스터 개인키 저장부(111)에는 전자 서명을 위한 마스터 개인키가 저장되어 있다.First of all, the master private key for electronic signature is stored in the master private key storage unit 111 .

이때, 상기 클라우드 오피스 서비스에 가입되어 있는 복수의 회원들 각각의 클라이언트 단말에는 상기 마스터 개인키에 대응되는 마스터 공개키가 사전 발급되어 있다.At this time, a master public key corresponding to the master private key is pre-issued to each client terminal of a plurality of members subscribed to the cloud office service.

또한, 공개키 저장부(112)에는 사전 지정된 복수의 클라우드 스토리지 서버들(101, 102, 103, 104) 각각에 대한 사전 발급된 공개키가 저장되어 있다.In addition, the public key storage unit 112 stores pre-issued public keys for each of the plurality of pre-designated cloud storage servers 101, 102, 103, and 104.

예컨대, 공개키 저장부(112)에는 하기의 표 1과 같이, 복수의 클라우드 스토리지 서버들(101, 102, 103, 104) 각각에 대한 사전 발급된 공개키가 저장되어 있을 수 있다.For example, as shown in Table 1 below, the public key storage unit 112 may store pre-issued public keys for each of the plurality of cloud storage servers 101, 102, 103, and 104.

복수의 클라우드 스토리지 서버들Multiple cloud storage servers 공개키public key 클라우드 스토리지 서버 1(101)Cloud storage server 1 (101) 공개키 1public key 1 클라우드 스토리지 서버 2(102)Cloud Storage Server 2 (102) 공개키 2public key 2 클라우드 스토리지 서버 3(103)Cloud Storage Server 3 (103) 공개키 3public key 3 ...... ...... 클라우드 스토리지 서버 M(104)Cloud Storage Server M (104) 공개키 Mpublic key M

이때, 복수의 클라우드 스토리지 서버들(101, 102, 103, 104) 각각에는, 각 클라우드 스토리지 서버에 대한 공개키에 대응되는 개인키가 사전 발급되어 있다.At this time, in each of the plurality of cloud storage servers 101, 102, 103, and 104, a private key corresponding to the public key for each cloud storage server is pre-issued.

관련해서, 상기 표 1과 같이, 공개키 저장부(112)에 복수의 클라우드 스토리지 서버들(101, 102, 103, 104) 각각에 대한 공개키가 저장되어 있다고 하는 경우, '클라우드 스토리지 서버 1(101)'에는 '공개키 1'에 대응되는 '개인키 1'이 사전 발급되어 저장되어 있을 수 있고, '클라우드 스토리지 서버 2(102)'에는 '공개키 2'에 대응되는 '개인키 2'가 사전 발급되어 저장되어 있을 수 있으며, '클라우드 스토리지 서버 3(103)'에는 '공개키 3'에 대응되는 '개인키 3'이 사전 발급되어 저장되어 있을 수 있고, ..., '클라우드 스토리지 서버 M(104)'에는 '공개키 M'에 대응되는 '개인키 M'이 사전 발급되어 저장되어 있을 수 있다.In this regard, as shown in Table 1 above, when it is assumed that the public key for each of the plurality of cloud storage servers 101, 102, 103, and 104 is stored in the public key storage unit 112, 'cloud storage server 1 ( 101)', 'Private Key 1' corresponding to 'Public Key 1' may be pre-issued and stored, and 'Private Key 2' corresponding to 'Public Key 2' may be stored in 'Cloud Storage Server 2 (102)'. may be pre-issued and stored, and 'private key 3' corresponding to 'public key 3' may be pre-issued and stored in 'cloud storage server 3 (103)', ..., 'cloud storage The 'private key M' corresponding to the 'public key M' may be pre-issued and stored in the server M 104'.

이러한 상황에서, 상기 복수의 회원들 중 어느 한 명인 제1 회원(130)이 보유하고 있는 제1 클라이언트 단말(140)로부터 복수의 클라우드 스토리지 서버들(101, 102, 103, 104) 중 어느 하나인 제1 클라우드 스토리지 서버에 사전 저장되어 있는 제1 전자 문서에 대한 데이터의 전송 요청이 수신되면, 서명 요청부(113)는 상기 제1 클라우드 스토리지 서버로 전자 서명을 요청한다.In this situation, any one of the plurality of cloud storage servers (101, 102, 103, 104) from the first client terminal 140 possessed by any one of the plurality of members, the first member 130 When a transmission request for data for the first electronic document pre-stored in the first cloud storage server is received, the signature requesting unit 113 requests an electronic signature from the first cloud storage server.

검증 수행부(114)는 상기 제1 클라우드 스토리지 서버로부터, 상기 제1 클라우드 스토리지 서버에 사전 발급되어 있는 제1 개인키에 기초하여 전자 서명된 제1 전자 서명 값이 수신되면, 공개키 저장부(112)로부터 상기 제1 클라우드 스토리지 서버에 대한 제1 공개키를 추출한 후, 상기 제1 공개키를 기초로 상기 제1 전자 서명 값에 대한 검증을 수행한다.When the verification unit 114 receives a first electronic signature value electronically signed based on a first private key previously issued to the first cloud storage server from the first cloud storage server, the public key storage unit ( After extracting the first public key for the first cloud storage server from 112), the first electronic signature value is verified based on the first public key.

이때, 본 발명의 일실시예에 따르면, 서명 요청부(113)는 매핑 행렬 저장부(116), 매핑 행렬 추출부(117), 랜덤 코드 생성부(118), 치환 행렬 생성부(119) 및 요청부(120)를 포함할 수 있고, 검증 수행부(114)는 복원부(121) 및 검증부(122)를 포함할 수 있다.At this time, according to one embodiment of the present invention, the signature request unit 113 includes a mapping matrix storage unit 116, a mapping matrix extraction unit 117, a random code generator 118, a substitution matrix generator 119, and It may include a requesting unit 120, and the verifying unit 114 may include a restoring unit 121 and a verifying unit 122.

매핑 행렬 저장부(116)에는 복수의 클라우드 스토리지 서버들(101, 102, 103, 104) 각각과 사전 공유하고 있는, 각 클라우드 스토리지 서버에 대응되는 서로 다른 복수의 매핑(Mapping) 행렬들이 저장되어 있다.The mapping matrix storage unit 116 stores a plurality of different mapping matrices corresponding to each cloud storage server that are previously shared with each of the plurality of cloud storage servers 101, 102, 103, and 104. .

여기서, 상기 복수의 매핑 행렬들 각각은, 1과 0의 성분으로 구성된 n x n(n은 2이상의 자연수임) 크기의 행렬로, 상기 복수의 매핑 행렬들 각각을 구성하는 n2개의 성분들 중 t(t는 2 이상 n2 미만의 자연수임)개의 성분들은 1로 지정되어 있고, 나머지 n2-t개의 성분들은 0으로 지정되어 있다.Here, each of the plurality of mapping matrices is a matrix of size nxn (n is a natural number equal to or greater than 2) composed of components of 1 and 0, and t (of n 2 components constituting each of the plurality of mapping matrices) t is a natural number greater than or equal to 2 and less than n 2 ) components are designated as 1, and the remaining n 2 -t components are designated as 0.

이와 관련해서, n을 '3', t를 '4'라고 하는 경우, 매핑 행렬 저장부(116)에는 하기의 표 2와 같이 정보가 저장되어 있을 수 있다.In this regard, when n is '3' and t is '4', information as shown in Table 2 below may be stored in the mapping matrix storage unit 116 .

복수의 클라우드 스토리지 서버들Multiple cloud storage servers 매핑 행렬mapping matrix 클라우드 스토리지 서버 1(101)Cloud storage server 1 (101)

Figure 112021119993133-pat00001
Figure 112021119993133-pat00001
클라우드 스토리지 서버 2(102)Cloud Storage Server 2 (102)
Figure 112021119993133-pat00002
Figure 112021119993133-pat00002
클라우드 스토리지 서버 3(103)Cloud Storage Server 3 (103)
Figure 112021119993133-pat00003
Figure 112021119993133-pat00003
...... ...... 클라우드 스토리지 서버 M(104)Cloud Storage Server M (104)
Figure 112021119993133-pat00004
Figure 112021119993133-pat00004

매핑 행렬 추출부(117)는 제1 클라이언트 단말(140)로부터 상기 제1 클라우드 스토리지 서버에 저장되어 있는 상기 제1 전자 문서에 대한 데이터의 전송 요청이 수신되면, 매핑 행렬 저장부(116)로부터 상기 제1 클라우드 스토리지 서버에 대응되는 제1 매핑 행렬을 추출한다.The mapping matrix extractor 117, when receiving a transmission request for data for the first electronic document stored in the first cloud storage server from the first client terminal 140, extracts the mapping matrix from the mapping matrix storage unit 116. A first mapping matrix corresponding to the first cloud storage server is extracted.

랜덤 코드 생성부(118)는 상기 제1 매핑 행렬이 추출되면, t개의 인증 코드들과 n2-t개의 더미 코드들을 랜덤하게 생성한다.When the first mapping matrix is extracted, the random code generator 118 randomly generates t authentication codes and n 2 -t dummy codes.

치환 행렬 생성부(119)는 상기 t개의 인증 코드들과 상기 n2-t개의 더미 코드들이 생성되면, 상기 제1 매핑 행렬에서, 상기 제1 매핑 행렬을 구성하는 n2개의 성분들 중 1이 지정되어 있는 성분들을, 상기 t개의 인증 코드들로 하나씩 치환하고, 0이 지정되어 있는 n2-t개의 성분들을, 상기 n2-t개의 더미 코드들로 하나씩 치환함으로써, n x n 크기의 제1 치환 행렬을 생성한다.When the t authentication codes and the n 2 -t dummy codes are generated, the permutation matrix generator 119 determines that 1 of the n 2 components constituting the first mapping matrix is A first substitution of size nxn is performed by replacing designated components with the t authentication codes one by one and replacing n 2 -t components designated with 0 with the n 2 -t dummy codes one by one. create a matrix

요청부(120)는 상기 제1 치환 행렬이 생성되면, 상기 제1 클라우드 스토리지 서버로 상기 제1 치환 행렬을 전송하면서, 상기 제1 클라우드 스토리지 서버로 상기 제1 치환 행렬에 포함되어 있는 상기 t개의 인증 코드들을 기초로 한 전자 서명을 요청한다.When the first substitution matrix is generated, the requesting unit 120 transmits the first substitution matrix to the first cloud storage server, and transmits the t values included in the first substitution matrix to the first cloud storage server. Request an electronic signature based on authentication codes.

이때, 본 발명의 일실시예에 따르면, 제1 클라우드 스토리지 서버는 메모리 상에 상기 제1 매핑 행렬과 상기 제1 개인키를 사전 저장하고 있고, 인터페이싱 지원 서버(110)로부터 상기 제1 치환 행렬이 수신되면서, 인터페이싱 지원 서버(110)로부터 상기 제1 치환 행렬에 포함되어 있는 상기 t개의 인증 코드들을 기초로 한 전자 서명 요청이 수신되면, 상기 제1 치환 행렬과 상기 제1 매핑 행렬 간의 아다마르 곱(Hadamard product)을 연산하여 n x n 크기의 제1 연산 행렬을 생성할 수 있다.At this time, according to one embodiment of the present invention, the first cloud storage server pre-stores the first mapping matrix and the first private key in memory, and the first substitution matrix from the interfacing support server 110 While being received, when an electronic signature request based on the t authentication codes included in the first permutation matrix is received from the interfacing support server 110, Hadamard product between the first permutation matrix and the first mapping matrix (Hadamard product) may be calculated to generate a first operation matrix having a size of n x n.

여기서, 아다마르 곱이란 같은 크기의 행렬에서 각 성분을 곱하는 연산을 의미하며, '[a b c]'와 '[x y z]'라는 행렬이 있을 때, 두 행렬 간의 아다마르 곱을 연산하면, 이에 대한 연산 행렬은 '[ax by cz]'로 나타낼 수 있다.Here, the Hadamard product means an operation of multiplying each component in a matrix of the same size, and when there are matrices of '[a b c]' and '[x y z]', if the Hadamard product of two matrices is calculated, the operation matrix for this can be expressed as '[ax by cz]'.

이후, 상기 제1 클라우드 스토리지 서버는 상기 제1 연산 행렬을 구성하는 n2개의 성분들 중 0이 아닌 상기 t개의 성분들을 추출한 후, 상기 t개의 성분들로 구성되는 데이터 셋에 대해 상기 제1 개인키로 전자 서명함으로써, 제1 전자 서명 값을 생성하여 인터페이싱 지원 서버(110)로 전송할 수 있다.Thereafter, the first cloud storage server extracts the t elements that are not 0 among the n 2 elements constituting the first calculation matrix, and then extracts the first individual data set consisting of the t elements. By digitally signing with a key, a first electronic signature value may be generated and transmitted to the interfacing support server 110 .

복원부(121)는 상기 제1 클라우드 스토리지 서버로부터 상기 제1 전자 서명 값(상기 제1 전자 서명 값은 상기 제1 클라우드 스토리지 서버에 수신된 상기 제1 치환 행렬을 구성하는 n2개의 성분들 중 상기 제1 매핑 행렬에서의 1의 성분이 위치하는 지점과 대응되는 지점에 위치하는 t개의 성분들이 추출된 후, 상기 t개 성분들로 구성되는 데이터 셋이 상기 제1 클라우드 스토리지 서버에 발급되어 있는 상기 제1 개인키로 전자 서명되어 생성된 값임)이 수신되면, 공개키 저장부(112)로부터 상기 제1 공개키를 추출한 후, 상기 제1 공개키로 상기 제1 전자 서명 값을 복호화함으로써, 상기 t개의 성분들로 구성되는 데이터 셋을 복원한다.The restoring unit 121 includes the first electronic signature value from the first cloud storage server (the first electronic signature value is among n 2 components constituting the first substitution matrix received by the first cloud storage server). After t components located at a point corresponding to the point where component 1 in the first mapping matrix is located are extracted, a data set consisting of the t components is issued to the first cloud storage server When a value generated by digitally signing with the first private key) is received, the first public key is extracted from the public key storage unit 112, and then the first electronic signature value is decrypted with the first public key, so that the t Reconstruct a data set consisting of components.

검증부(122)는 상기 t개의 성분들로 구성되는 데이터 셋이 복원되면, 상기 t개의 성분들이 상기 t개의 인증 코드들과 모두 일치하는지 확인하여, 상기 t개의 성분들이 상기 t개의 인증 코드들과 모두 일치하는 것으로 확인되면, 상기 제1 전자 서명 값에 대한 검증이 완료된 것으로 처리한다.When the data set consisting of the t components is restored, the verifier 122 checks whether the t components match all of the t authentication codes, and determines whether the t components match the t authentication codes. If it is confirmed that all of them match, it is processed that the verification of the first electronic signature value is completed.

이하에서는 매핑 행렬 추출부(117), 랜덤 코드 생성부(118), 치환 행렬 생성부(119), 요청부(120), 복원부(121) 및 검증부(122)의 동작을 예를 들어 상세히 설명하기로 한다.Hereinafter, the operations of the mapping matrix extractor 117, random code generator 118, substitution matrix generator 119, requester 120, restorer 121, and verifier 122 are described in detail by way of example. Let's explain.

먼저, 상기 제1 클라우드 스토리지 서버를 '클라우드 스토리지 서버 1(101)'이라고 하고, 상기 제1 클라우드 스토리지 서버인 '클라우드 스토리지 서버 1(101)'에 저장되어 있는 상기 제1 전자 문서를 '전자 문서 1'이라고 하며, n을 '3', t를 '4'라고 가정하자.First, the first cloud storage server is referred to as 'cloud storage server 1 (101)', and the first electronic document stored in the 'cloud storage server 1 (101)', which is the first cloud storage server, is referred to as 'electronic document'. 1', let's assume that n is '3' and t is '4'.

이때, 제1 클라이언트 단말(140)로부터 '클라우드 스토리지 서버 1(101)'에 저장되어 있는 '전자 문서 1'에 대한 데이터의 전송 요청이 인터페이싱 지원 서버(110)에 수신되면, 매핑 행렬 추출부(117)는 상기 표 2와 같은 매핑 행렬 저장부(116)로부터 '클라우드 스토리지 서버 1(101)'에 대응되는 제1 매핑 행렬로 '

Figure 112021119993133-pat00005
'을 추출할 수 있다.At this time, when a request for transmission of data for 'electronic document 1' stored in 'cloud storage server 1 (101)' is received from the first client terminal 140 to the interfacing support server 110, the mapping matrix extractor ( 117) to the first mapping matrix corresponding to the 'cloud storage server 1 (101)' from the mapping matrix storage unit 116 as shown in Table 2 above.
Figure 112021119993133-pat00005
' can be extracted.

이렇게, 매핑 행렬 추출부(117)에 의해 상기 제1 매핑 행렬이 추출되면, 랜덤 코드 생성부(118)는 4개의 인증 코드들과 5개의 더미 코드들을 랜덤하게 생성할 수 있다.In this way, when the first mapping matrix is extracted by the mapping matrix extractor 117, the random code generator 118 may randomly generate 4 authentication codes and 5 dummy codes.

만약, 랜덤 코드 생성부(118)에 의해 'C1, C2, C3, C4'라고 하는 4개의 인증 코드들과 'D1, D2, D3, D4, D5'라고 하는 5개의 더미 코드들이 생성되었다고 하는 경우, 치환 행렬 생성부(119)는 상기 제1 매핑 행렬인 '

Figure 112021119993133-pat00006
'에서, 상기 제1 매핑 행렬을 구성하는 9개의 성분들 중 1이 지정되어 있는 성분들 각각을 'C1, C2, C3, C4'로 하나씩 치환하고, 0이 지정되어 있는 5개의 성분들 각각을 'D1, D2, D3, D4, D5'로 하나씩 치환함으로써, 3 x 3 크기의 제1 치환 행렬을 생성할 수 있다.If, by the random code generator 118, four authentication codes called 'C 1 , C 2 , C 3 , C 4 ' and 'D 1 , D 2 , D 3 , D 4 , D 5 ' When it is assumed that 5 dummy codes are generated, the substitution matrix generator 119 generates the first mapping matrix '
Figure 112021119993133-pat00006
', each of the nine components constituting the first mapping matrix, to which 1 is designated, is substituted one by one with 'C 1 , C 2 , C 3 , C 4 ', and 5 elements to which 0 is designated A first substitution matrix having a size of 3×3 may be generated by substituting each of the components with 'D 1 , D 2 , D 3 , D 4 , and D 5 '.

이때, 치환 행렬 생성부(119)는 상기 제1 매핑 행렬을 구성하는 9개의 성분들을 상기 인증 코드들과 더미 코드들로 하나씩 치환할 때, 좌측열에서 우측열의 방향으로, 상단행에서 하단행의 방향으로 순차적으로 하나씩 치환할 수 있다. 즉, 치환 행렬 생성부(119)는 상기 제1 매핑 행렬에서 '1행 1열, 1행 2열, 1행 3열, 2행 1열, 2행 2열, 2행 3열, 3행 1열, 3행 2열, 3행 3열'의 순서로 각 성분들을 상기 인증 코드들과 더미 코드들로 하나씩 치환할 수 있다.At this time, when the substitution matrix generator 119 replaces the nine components constituting the first mapping matrix one by one with the authentication codes and dummy codes, the substitution matrix generation unit 119 moves from the left column to the right column, from the top row to the bottom row. It can be substituted one by one sequentially in the direction. That is, in the first mapping matrix, the permutation matrix generator 119 calculates '1 row and 1 column, 1 row and 2 columns, 1 row and 3 columns, 2 row and 1 column, 2 row and 2 columns, 2 row and 3 columns, 3 row and 1 column, Column, 3rd row, 2nd column, 3rd row, 3rd column', each component may be replaced with the authentication codes and dummy codes one by one.

이러한 방식으로, 치환 행렬 생성부(119)는 상기 제1 매핑 행렬인 '

Figure 112021119993133-pat00007
'에서, 상기 제1 매핑 행렬을 구성하는 9개의 성분들 중 1이 지정되어 있는 성분들 각각을 'C1, C2, C3, C4'로 하나씩 치환하고, 0이 지정되어 있는 5개의 성분들 각각을 'D1, D2, D3, D4, D5'로 하나씩 치환함으로써, 3 x 3 크기의 제1 치환 행렬을 '
Figure 112021119993133-pat00008
'와 같이 생성할 수 있다.In this way, the substitution matrix generator 119 generates the first mapping matrix '
Figure 112021119993133-pat00007
', each of the nine components constituting the first mapping matrix, to which 1 is designated, is substituted one by one with 'C 1 , C 2 , C 3 , C 4 ', and 5 elements to which 0 is designated By substituting each of the components with 'D 1 , D 2 , D 3 , D 4 , D 5 ', the first substitution matrix having a size of 3 x 3 is '
Figure 112021119993133-pat00008
' can be created.

이렇게, 치환 행렬 생성부(119)에 의해 상기 제1 치환 행렬이 생성되면, 요청부(120)는 '클라우드 스토리지 서버 1(101)'로 상기 제1 치환 행렬인 '

Figure 112021119993133-pat00009
'을 전송하면서, '클라우드 스토리지 서버 1(101)'로 상기 제1 치환 행렬인 '
Figure 112021119993133-pat00010
'에 포함되어 있는 상기 4개의 인증 코드들인 'C1, C2, C3, C4'를 기초로 한 전자 서명을 요청할 수 있다.In this way, when the first substitution matrix is generated by the substitution matrix generation unit 119, the requesting unit 120 sends the 'cloud storage server 1 (101)' to the first substitution matrix '
Figure 112021119993133-pat00009
While transmitting ', the first substitution matrix ' to the 'Cloud Storage Server 1 (101)'
Figure 112021119993133-pat00010
It is possible to request an electronic signature based on the four authentication codes 'C 1 , C 2 , C 3 , C 4 ' included in '.

이때, '클라우드 스토리지 서버 1(101)'은 메모리 상에 상기 제1 매핑 행렬인 '

Figure 112021119993133-pat00011
'과 '클라우드 스토리지 서버 1(101)'에 대해서 사전 발급된 개인키인 '개인키 1'을 사전 저장하고 있을 수 있고, 인터페이싱 지원 서버(110)로부터 상기 제1 치환 행렬인 '
Figure 112021119993133-pat00012
'가 수신되면서, 전자 서명 요청이 수신되면, 상기 제1 치환 행렬인 '
Figure 112021119993133-pat00013
'와 상기 제1 매핑 행렬인 '
Figure 112021119993133-pat00014
' 간의 아다마르 곱을 연산하여 3 x 3 크기의 제1 연산 행렬을 '
Figure 112021119993133-pat00015
'과 같이 생성할 수 있다.At this time, 'cloud storage server 1 (101)' is the first mapping matrix 'in memory'
Figure 112021119993133-pat00011
' and 'Private Key 1', which is a pre-issued private key for 'Cloud Storage Server 1 (101)', may be pre-stored, and from the interfacing support server 110, the first permutation matrix '
Figure 112021119993133-pat00012
' is received, and when an electronic signature request is received, the first substitution matrix '
Figure 112021119993133-pat00013
' and the first mapping matrix '
Figure 112021119993133-pat00014
' Calculate the Hadamard product between ' the first operation matrix of size 3 x 3 '
Figure 112021119993133-pat00015
' can be created.

그 이후, '클라우드 스토리지 서버 1(101)'은 상기 제1 연산 행렬을 구성하는 9개의 성분들 중 0이 아닌 상기 4개의 성분들을 'C1, C2, C3, C4'와 같이 추출한 후, 상기 4개의 성분들인 'C1, C2, C3, C4'로 구성되는 데이터 셋인 '[C1, C2, C3, C4]'에 대해 상기 '개인키 1'로 전자 서명함으로써, 제1 전자 서명 값을 생성하여 인터페이싱 지원 서버(110)로 전송할 수 있다.After that, the 'cloud storage server 1 (101)' extracts the four non-zero elements among the nine elements constituting the first operation matrix as 'C 1 , C 2 , C 3 , C 4 ' Then, the data set consisting of the four components 'C 1 , C 2 , C 3 , C 4 ', '[C 1 , C 2 , C 3 , C 4 ]' is used as the 'private key 1'. By signing, a first electronic signature value may be generated and transmitted to the interfacing support server 110 .

이렇게, '클라우드 스토리지 서버 1(101)'로부터 인터페이싱 지원 서버(110)에 상기 제1 전자 서명 값이 수신되는 경우, 복원부(121)는 상기 표 1과 같은 공개키 저장부(112)로부터 '클라우드 스토리지 서버 1(101)'에 대한 공개키인 '공개키 1'을 추출한 후, 상기 '공개키 1'로 상기 제1 전자 서명 값을 복호화함으로써, 상기 4개의 성분들인 'C1, C2, C3, C4'로 구성되는 데이터 셋인 '[C1, C2, C3, C4]'을 복원할 수 있다.In this way, when the first electronic signature value is received from the 'cloud storage server 1 101' to the interfacing support server 110, the recovery unit 121 'from the public key storage unit 112 shown in Table 1' After extracting 'Public Key 1', which is the public key for Cloud Storage Server 1 (101)', and then decrypting the first electronic signature value with 'Public Key 1', the four components 'C 1 , C 2 ' , C 3 , C 4 ', which is a data set '[C 1 , C 2 , C 3 , C 4 ]' can be restored.

이렇게, 복원부(121)에 의해 상기 데이터 셋인 '[C1, C2, C3, C4]'가 복원되면, 검증부(122)는 상기 데이터 셋인 '[C1, C2, C3, C4]'를 구성하는 4개의 성분들인 'C1, C2, C3, C4'가 상기 4개의 인증 코드들인 'C1, C2, C3, C4'와 모두 일치하는지 확인하여, 상기 4개의 성분들인 'C1, C2, C3, C4'가 상기 4개의 인증 코드들인 'C1, C2, C3, C4'와 모두 일치하는 것으로 확인되면, 상기 제1 전자 서명 값에 대한 검증이 완료된 것으로 처리할 수 있다.In this way, when the data set '[C 1 , C 2 , C 3 , C 4 ]' is restored by the restoration unit 121, the verification unit 122 determines the data set '[C 1 , C 2 , C 3 ] '. , C 4 ] Check whether the four components 'C 1 , C 2 , C 3 , C 4 ', which constitute 'C 1 , C 2 , C 3 , C 4 ', all match the four authentication codes 'C 1 , C 2 , C 3 , C 4 ' So, if it is confirmed that the four components 'C 1 , C 2 , C 3 , C 4 ' match all of the four authentication codes 'C 1 , C 2 , C 3 , C 4 ', the first 1 The verification of the electronic signature value can be processed as completed.

이렇게, 검증 수행부(114)에 의해 상기 제1 전자 서명 값에 대한 검증이 완료되면, 정보 전송부(115)는 상기 제1 클라우드 스토리지 서버로부터 상기 제1 전자 문서에 대한 데이터를 수신하고, 마스터 개인키 저장부(111)에 저장되어 있는 상기 마스터 개인키에 기초하여 전자 서명을 수행함으로써 제2 전자 서명 값을 생성한 후, 제1 클라이언트 단말(140)로 상기 제2 전자 서명 값과 상기 제1 전자 문서에 대한 데이터를 전송한다.In this way, when verification of the first electronic signature value is completed by the verification unit 114, the information transmission unit 115 receives data on the first electronic document from the first cloud storage server, and the master After generating a second electronic signature value by performing an electronic signature based on the master private key stored in the private key storage unit 111, the second electronic signature value and the first electronic signature value are transmitted to the first client terminal 140. 1 Transmit data for electronic documents.

이때, 본 발명의 일실시예에 따르면, 정보 전송부(115)는 상기 제1 전자 서명 값에 대한 검증이 완료되면, 상기 제1 클라우드 스토리지 서버로부터 상기 제1 전자 문서에 대한 데이터를 수신하고, 상기 제1 전자 문서에 대한 데이터를 사전 설정된 해시 함수(상기 해시 함수는 상기 복수의 회원들 각각이 보유하고 있는 클라이언트 단말에 사전 발급되어 있음)에 입력으로 인가하여 제1 해시 값을 생성하며, 상기 제1 해시 값을 마스터 개인키 저장부(111)에 저장되어 있는 상기 마스터 개인키로 전자 서명하여 상기 제2 전자 서명 값을 생성한 후, 제1 클라이언트 단말(140)로 상기 제2 전자 서명 값과 상기 제1 전자 문서에 대한 데이터를 전송할 수 있다.At this time, according to one embodiment of the present invention, when the verification of the first electronic signature value is completed, the information transmission unit 115 receives data for the first electronic document from the first cloud storage server, A first hash value is generated by applying the data for the first electronic document as an input to a preset hash function (the hash function is pre-issued to a client terminal possessed by each of the plurality of members), After digitally signing the first hash value with the master private key stored in the master private key storage unit 111 to generate the second electronic signature value, the second electronic signature value and Data for the first electronic document may be transmitted.

이때, 본 발명의 일실시예에 따르면, 제1 클라이언트 단말(140)은 메모리 상에 상기 마스터 공개키와 상기 해시 함수를 사전 저장하고 있고, 인터페이싱 지원 서버(110)로부터 상기 제2 전자 서명 값과 상기 제1 전자 문서에 대한 데이터가 수신되면, 상기 제1 전자 문서에 대한 데이터를 상기 해시 함수에 입력으로 인가하여 상기 제1 해시 값을 생성하고, 상기 마스터 공개키로 상기 제2 전자 서명 값을 복호화하여 복호화 값을 생성한 후, 상기 제1 해시 값이 상기 복호화 값과 서로 일치하는지 확인함으로써, 상기 제2 전자 서명 값에 대한 검증을 완료할 수 있다.At this time, according to one embodiment of the present invention, the first client terminal 140 pre-stores the master public key and the hash function in memory, and the second electronic signature value and the second electronic signature value from the interfacing support server 110 When the data for the first electronic document is received, the first hash value is generated by applying the data for the first electronic document as an input to the hash function, and the second electronic signature value is decrypted with the master public key. After generating a decryption value by doing so, verification of the second electronic signature value may be completed by checking whether the first hash value matches the decryption value.

그 이후, 제1 클라이언트 단말(140)은 제1 클라이언트 단말(140)에 사전 설치되어 있는 문서 작성 애플리케이션을 구동하여 상기 제1 전자 문서에 대한 데이터를 로드함으로써, 상기 제1 전자 문서를 제1 클라이언트 단말(140)에서 열람할 수 있다.After that, the first client terminal 140 drives a document preparation application pre-installed in the first client terminal 140 to load data for the first electronic document, thereby converting the first electronic document into a first client. It can be viewed in the terminal 140.

예컨대, 전술한 예와 같이, '클라우드 스토리지 서버 1(101)'로부터 상기 제1 전자 서명 값이 수신됨에 따라, 검증 수행부(114)에 의해 상기 제1 전자 서명 값에 대한 검증이 완료되었다고 하는 경우, 정보 전송부(115)는 '클라우드 스토리지 서버 1(101)'로부터 '전자 문서 1'에 대한 데이터를 수신하고, '전자 문서 1'에 대한 데이터를 사전 설정된 해시 함수에 입력으로 인가하여 제1 해시 값을 생성하며, 상기 제1 해시 값을 마스터 개인키 저장부(111)에 저장되어 있는 상기 마스터 개인키로 전자 서명하여 상기 제2 전자 서명 값을 생성한 후, 제1 클라이언트 단말(140)로 상기 제2 전자 서명 값과 '전자 문서 1'에 대한 데이터를 전송할 수 있다.For example, as in the above example, as the first electronic signature value is received from the 'cloud storage server 1 (101)', it is assumed that the verification of the first electronic signature value is completed by the verification unit 114. In this case, the information transmission unit 115 receives data for 'electronic document 1' from 'cloud storage server 1 101', applies the data for 'electronic document 1' as an input to a preset hash function, and 1 hash value is generated, and the first hash value is electronically signed with the master private key stored in the master private key storage unit 111 to generate the second electronic signature value, and then the first client terminal 140 The second electronic signature value and data for 'electronic document 1' may be transmitted.

이때, 제1 클라이언트 단말(140)은 인터페이싱 지원 서버(110)로부터 상기 제2 전자 서명 값과 '전자 문서 1'에 대한 데이터가 수신되면, 메모리 상에 사전 저장하고 있는 상기 해시 함수에, '전자 문서 1'에 대한 데이터를 입력으로 인가하여 상기 제1 해시 값을 생성한 후, 메모리 상에 사전 저장하고 있는, 상기 마스터 개인키에 대응되는 마스터 공개키로 상기 제2 전자 서명 값을 복호화하여 복호화 값을 생성할 수 있다.At this time, when the first client terminal 140 receives the second electronic signature value and the data for the 'electronic document 1' from the interfacing support server 110, the hash function pre-stored in the memory is converted to 'electronic document 1'. After generating the first hash value by applying the data for document 1' as an input, decrypting the second electronic signature value with the master public key corresponding to the master private key stored in memory to decrypt the decryption value. can create

그 이후, 제1 클라이언트 단말(140)은 상기 제1 해시 값을 상기 복호화 값과 서로 비교하여, 양 값이 서로 일치하는 것으로 확인되는 경우, 상기 제2 전자 서명 값에 대한 검증을 완료 처리한 후, 제1 클라이언트 단말(140)에 사전 설치되어 있는 문서 작성 애플리케이션을 구동하여 '전자 문서 1'에 대한 데이터를 로드함으로써, '전자 문서 1'을 제1 클라이언트 단말(140)에서 열람할 수 있다.Thereafter, the first client terminal 140 compares the first hash value with the decrypted value, and when it is confirmed that both values match each other, after completing verification of the second electronic signature value, , 'Electronic document 1' can be viewed in the first client terminal 140 by driving a document creation application pre-installed in the first client terminal 140 and loading data for 'electronic document 1'.

도 2는 본 발명의 일실시예에 따른 클라우드 오피스 서비스를 제공하기 위한, 클라우드 스토리지와 클라이언트 단말 간의 인터페이싱을 지원하는 인터페이싱 지원 서버의 동작 방법을 도시한 순서도이다.2 is a flowchart illustrating an operating method of an interfacing support server supporting interfacing between a cloud storage and a client terminal to provide a cloud office service according to an embodiment of the present invention.

단계(S210)에서는 전자 서명을 위한 마스터 개인키(상기 마스터 개인키에 대응되는 마스터 공개키는 상기 클라우드 오피스 서비스에 가입되어 있는 복수의 회원들 각각의 클라이언트 단말에 사전 발급되어 있음)가 저장되어 있는 마스터 개인키 저장부를 유지한다.In step S210, a master private key for electronic signature (the master public key corresponding to the master private key is pre-issued to each client terminal of a plurality of members subscribed to the cloud office service) is stored Maintains the master private key storage.

단계(S220)에서는 사전 지정된 복수의 클라우드 스토리지 서버들 각각에 대한 사전 발급된 공개키(상기 복수의 클라우드 스토리지 서버들 각각에 대한 공개키에 대응되는 개인키는, 각 클라우드 스토리지 서버에 사전 발급되어 있음)가 저장되어 있는 공개키 저장부를 유지한다.In step S220, a pre-issued public key for each of a plurality of pre-specified cloud storage servers (the private key corresponding to the public key for each of the plurality of cloud storage servers is pre-issued to each cloud storage server) ) is stored in the public key storage unit.

단계(S230)에서는 상기 복수의 회원들 중 어느 한 명인 제1 회원이 보유하고 있는 제1 클라이언트 단말로부터 상기 복수의 클라우드 스토리지 서버들 중 어느 하나인 제1 클라우드 스토리지 서버에 사전 저장되어 있는 제1 전자 문서에 대한 데이터의 전송 요청이 수신되면, 상기 제1 클라우드 스토리지 서버로 전자 서명을 요청한다.In step S230, a first electronic device pre-stored in a first cloud storage server, which is one of the plurality of cloud storage servers, from a first client terminal possessed by a first member, which is one of the plurality of members. When a request for transmission of document data is received, an electronic signature is requested to the first cloud storage server.

단계(S240)에서는 상기 제1 클라우드 스토리지 서버로부터, 상기 제1 클라우드 스토리지 서버에 사전 발급되어 있는 제1 개인키에 기초하여 전자 서명된 제1 전자 서명 값이 수신되면, 상기 공개키 저장부로부터 상기 제1 클라우드 스토리지 서버에 대한 제1 공개키를 추출한 후, 상기 제1 공개키를 기초로 상기 제1 전자 서명 값에 대한 검증을 수행한다.In step S240, when a first electronic signature value electronically signed based on a first private key pre-issued in the first cloud storage server is received from the first cloud storage server, the public key storage unit After extracting the first public key for the first cloud storage server, verification of the first electronic signature value is performed based on the first public key.

단계(S250)에서는 상기 제1 전자 서명 값에 대한 검증이 완료되면, 상기 제1 클라우드 스토리지 서버로부터 상기 제1 전자 문서에 대한 데이터를 수신하고, 상기 마스터 개인키 저장부에 저장되어 있는 상기 마스터 개인키에 기초하여 전자 서명을 수행함으로써 제2 전자 서명 값을 생성한 후, 상기 제1 클라이언트 단말로 상기 제2 전자 서명 값과 상기 제1 전자 문서에 대한 데이터를 전송한다.In step S250, when the verification of the first electronic signature value is completed, data on the first electronic document is received from the first cloud storage server, and the master personal key stored in the master private key storage unit is received. After generating a second electronic signature value by performing an electronic signature based on the key, the second electronic signature value and data for the first electronic document are transmitted to the first client terminal.

이때, 본 발명의 일실시예에 따르면, 단계(S230)에서는 상기 복수의 클라우드 스토리지 서버들 각각과 사전 공유하고 있는, 각 클라우드 스토리지 서버에 대응되는 서로 다른 복수의 매핑 행렬들(상기 복수의 매핑 행렬들 각각은, 1과 0의 성분으로 구성된 n x n(n은 2이상의 자연수임) 크기의 행렬로, 상기 복수의 매핑 행렬들 각각을 구성하는 n2개의 성분들 중 t(t는 2 이상 n2 미만의 자연수임)개의 성분들은 1로 지정되어 있고, 나머지 n2-t개의 성분들은 0으로 지정되어 있음)이 저장되어 있는 매핑 행렬 저장부를 유지하는 단계, 상기 제1 클라이언트 단말로부터 상기 제1 클라우드 스토리지 서버에 저장되어 있는 상기 제1 전자 문서에 대한 데이터의 전송 요청이 수신되면, 상기 매핑 행렬 저장부로부터 상기 제1 클라우드 스토리지 서버에 대응되는 제1 매핑 행렬을 추출하는 단계, 상기 제1 매핑 행렬이 추출되면, t개의 인증 코드들과 n2-t개의 더미 코드들을 랜덤하게 생성하는 단계, 상기 t개의 인증 코드들과 상기 n2-t개의 더미 코드들이 생성되면, 상기 제1 매핑 행렬에서, 상기 제1 매핑 행렬을 구성하는 n2개의 성분들 중 1이 지정되어 있는 성분들을, 상기 t개의 인증 코드들로 하나씩 치환하고, 0이 지정되어 있는 n2-t개의 성분들을, 상기 n2-t개의 더미 코드들로 하나씩 치환함으로써, n x n 크기의 제1 치환 행렬을 생성하는 단계 및 상기 제1 치환 행렬이 생성되면, 상기 제1 클라우드 스토리지 서버로 상기 제1 치환 행렬을 전송하면서, 상기 제1 클라우드 스토리지 서버로 상기 제1 치환 행렬에 포함되어 있는 상기 t개의 인증 코드들을 기초로 한 전자 서명을 요청하는 단계를 포함할 수 있다.At this time, according to one embodiment of the present invention, in step S230, a plurality of different mapping matrices (the plurality of mapping matrices) corresponding to each cloud storage server, which are pre-shared with each of the plurality of cloud storage servers. Each of s is an nxn (n is a natural number greater than or equal to 2) size matrix composed of 1 and 0 components, and t (t is greater than or equal to 2 and less than n 2 ) among n 2 components constituting each of the plurality of mapping matrices. maintaining a mapping matrix storage unit in which the components of (which are natural numbers of ) are designated as 1 and the remaining n 2 -t components are designated as 0), the first cloud storage from the first client terminal. Extracting a first mapping matrix corresponding to the first cloud storage server from the mapping matrix storage unit when a request for transmission of data for the first electronic document stored in the server is received; if extracted, randomly generating t authentication codes and n 2 -t dummy codes; when the t authentication codes and n 2 -t dummy codes are generated, in the first mapping matrix, Among the n 2 components constituting the first mapping matrix, components designated with 1 are replaced one by one with the t authentication codes, and n 2 -t components designated with 0 are replaced with the n 2 -t elements. generating a first substitution matrix of size nxn by substituting one by one with n dummy codes; and when the first substitution matrix is generated, transmitting the first substitution matrix to the first cloud storage server, and requesting an electronic signature based on the t authentication codes included in the first substitution matrix to a storage server.

이때, 단계(S240)에서는 상기 제1 클라우드 스토리지 서버로부터 상기 제1 전자 서명 값(상기 제1 전자 서명 값은 상기 제1 클라우드 스토리지 서버에 수신된 상기 제1 치환 행렬을 구성하는 n2개의 성분들 중 상기 제1 매핑 행렬에서의 1의 성분이 위치하는 지점과 대응되는 지점에 위치하는 t개의 성분들이 추출된 후, 상기 t개 성분들로 구성되는 데이터 셋이 상기 제1 클라우드 스토리지 서버에 발급되어 있는 상기 제1 개인키로 전자 서명되어 생성된 값임)이 수신되면, 상기 공개키 저장부로부터 상기 제1 공개키를 추출한 후, 상기 제1 공개키로 상기 제1 전자 서명 값을 복호화함으로써, 상기 t개의 성분들로 구성되는 데이터 셋을 복원하는 단계 및 상기 t개의 성분들로 구성되는 데이터 셋이 복원되면, 상기 t개의 성분들이 상기 t개의 인증 코드들과 모두 일치하는지 확인하여, 상기 t개의 성분들이 상기 t개의 인증 코드들과 모두 일치하는 것으로 확인되면, 상기 제1 전자 서명 값에 대한 검증이 완료된 것으로 처리하는 단계를 포함할 수 있다.At this time, in step S240, the first electronic signature value from the first cloud storage server (the first electronic signature value is n 2 components constituting the first substitution matrix received by the first cloud storage server) After t components located at points corresponding to the point where component 1 in the first mapping matrix is located are extracted, a data set consisting of the t components is issued to the first cloud storage server, is a value generated by digitally signing with the first private key) is received, the first public key is extracted from the public key storage unit, and then the first electronic signature value is decrypted with the first public key, so that the t Restoring a data set composed of components, and when the data set composed of the t components is restored, checking whether the t components match all of the t authentication codes, so that the t components When it is confirmed that all of the t authentication codes match, processing that the verification of the first electronic signature value is completed may be included.

이때, 본 발명의 일실시예에 따르면, 상기 제1 클라우드 스토리지 서버는 메모리 상에 상기 제1 매핑 행렬과 상기 제1 개인키를 사전 저장하고 있고, 상기 인터페이싱 지원 서버로부터 상기 제1 치환 행렬이 수신되면서, 상기 인터페이싱 지원 서버로부터 상기 제1 치환 행렬에 포함되어 있는 상기 t개의 인증 코드들을 기초로 한 전자 서명 요청이 수신되면, 상기 제1 치환 행렬과 상기 제1 매핑 행렬 간의 아다마르 곱을 연산하여 n x n 크기의 제1 연산 행렬을 생성하고, 상기 제1 연산 행렬을 구성하는 n2개의 성분들 중 0이 아닌 상기 t개의 성분들을 추출한 후, 상기 t개의 성분들로 구성되는 데이터 셋에 대해 상기 제1 개인키로 전자 서명함으로써, 상기 제1 전자 서명 값을 생성하여 상기 인터페이싱 지원 서버로 전송할 수 있다.At this time, according to an embodiment of the present invention, the first cloud storage server pre-stores the first mapping matrix and the first private key in a memory, and the first substitution matrix is received from the interfacing support server. while, when an electronic signature request based on the t authentication codes included in the first permutation matrix is received from the interfacing support server, the Hadamard product between the first permutation matrix and the first mapping matrix is calculated and nxn After generating a first operation matrix having the size of the first operation matrix, extracting the t elements that are not 0 among the n 2 elements constituting the first operation matrix, the first operation matrix for a data set consisting of the t elements By digitally signing with a private key, the first electronic signature value may be generated and transmitted to the interfacing support server.

또한, 본 발명의 일실시예에 따르면, 단계(S250)에서는 상기 제1 전자 서명 값에 대한 검증이 완료되면, 상기 제1 클라우드 스토리지 서버로부터 상기 제1 전자 문서에 대한 데이터를 수신하고, 상기 제1 전자 문서에 대한 데이터를 사전 설정된 해시 함수(상기 해시 함수는 상기 복수의 회원들 각각이 보유하고 있는 클라이언트 단말에 사전 발급되어 있음)에 입력으로 인가하여 제1 해시 값을 생성하며, 상기 제1 해시 값을 상기 마스터 개인키 저장부에 저장되어 있는 상기 마스터 개인키로 전자 서명하여 상기 제2 전자 서명 값을 생성한 후, 상기 제1 클라이언트 단말로 상기 제2 전자 서명 값과 상기 제1 전자 문서에 대한 데이터를 전송할 수 있다.In addition, according to one embodiment of the present invention, in step S250, when the verification of the first electronic signature value is completed, data on the first electronic document is received from the first cloud storage server, and the A first hash value is generated by applying data for 1 electronic document as an input to a preset hash function (the hash function is pre-issued to a client terminal possessed by each of the plurality of members), and the first hash value is generated. After digitally signing a hash value with the master private key stored in the master private key storage unit to generate the second electronic signature value, the second electronic signature value and the first electronic document are stored in the first client terminal. data can be transmitted.

이때, 본 발명의 일실시예에 따르면, 상기 제1 클라이언트 단말은 메모리 상에 상기 마스터 공개키와 상기 해시 함수를 사전 저장하고 있고, 상기 인터페이싱 지원 서버로부터 상기 제2 전자 서명 값과 상기 제1 전자 문서에 대한 데이터가 수신되면, 상기 제1 전자 문서에 대한 데이터를 상기 해시 함수에 입력으로 인가하여 상기 제1 해시 값을 생성하고, 상기 마스터 공개키로 상기 제2 전자 서명 값을 복호화하여 복호화 값을 생성하며, 상기 제1 해시 값이 상기 복호화 값과 서로 일치하는지 확인함으로써, 상기 제2 전자 서명 값에 대한 검증을 완료한 후, 상기 제1 클라이언트 단말에 사전 설치되어 있는 문서 작성 애플리케이션을 구동하여 상기 제1 전자 문서에 대한 데이터를 로드함으로써, 상기 제1 전자 문서를 상기 제1 클라이언트 단말에서 열람할 수 있다.At this time, according to an embodiment of the present invention, the first client terminal pre-stores the master public key and the hash function in a memory, and the second electronic signature value and the first electronic signature value from the interfacing support server When the data for the document is received, the data for the first electronic document is applied as an input to the hash function to generate the first hash value, and the second electronic signature value is decrypted with the master public key to obtain a decryption value. and, after verifying the second electronic signature value by checking whether the first hash value matches the decryption value with each other, and then driving a document creation application pre-installed in the first client terminal, By loading the data for the first electronic document, the first electronic document can be viewed in the first client terminal.

이상, 도 2를 참조하여 본 발명의 일실시예에 따른 인터페이싱 지원 서버의 동작 방법에 대해 설명하였다. 여기서, 본 발명의 일실시예에 따른 인터페이싱 지원 서버의 동작 방법은 도 1을 이용하여 설명한 인터페이싱 지원 서버(110)의 동작에 대한 구성과 대응될 수 있으므로, 이에 대한 보다 상세한 설명은 생략하기로 한다.In the above, the operating method of the interfacing support server according to an embodiment of the present invention has been described with reference to FIG. 2 . Here, since the operating method of the interfacing support server according to an embodiment of the present invention may correspond to the configuration of the operation of the interfacing support server 110 described with reference to FIG. 1, a detailed description thereof will be omitted. .

본 발명의 일실시예에 따른 클라우드 오피스 서비스를 제공하기 위한, 클라우드 스토리지와 클라이언트 단말 간의 인터페이싱을 지원하는 인터페이싱 지원 서버의 동작 방법은 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램으로 구현될 수 있다.An operating method of an interfacing support server supporting interfacing between a cloud storage and a client terminal for providing a cloud office service according to an embodiment of the present invention is implemented as a computer program stored in a storage medium for execution through combination with a computer. It can be.

또한, 본 발명의 일실시예에 따른 클라우드 오피스 서비스를 제공하기 위한, 클라우드 스토리지와 클라이언트 단말 간의 인터페이싱을 지원하는 인터페이싱 지원 서버의 동작 방법은 컴퓨터와의 결합을 통해 실행시키기 위한 컴퓨터 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.In addition, an operating method of an interfacing support server supporting interfacing between a cloud storage and a client terminal for providing a cloud office service according to an embodiment of the present invention is implemented in the form of computer program instructions for execution through combination with a computer. and can be recorded on a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. Program instructions recorded on the medium may be those specially designed and configured for the present invention or those known and usable to those skilled in computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks. - includes hardware devices specially configured to store and execute program instructions, such as magneto-optical media, and ROM, RAM, flash memory, and the like. Examples of program instructions include high-level language codes that can be executed by a computer using an interpreter, as well as machine language codes such as those produced by a compiler.

이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.As described above, the present invention has been described by specific details such as specific components and limited embodiments and drawings, but these are provided to help a more general understanding of the present invention, and the present invention is not limited to the above embodiments. , Those skilled in the art in the field to which the present invention belongs can make various modifications and variations from these descriptions.

따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.Therefore, the spirit of the present invention should not be limited to the described embodiments, and it will be said that not only the claims to be described later, but also all modifications equivalent or equivalent to these claims belong to the scope of the present invention. .

110: 클라우드 오피스 서비스를 제공하기 위한, 클라우드 스토리지와 클라이언트 단말 간의 인터페이싱을 지원하는 인터페이싱 지원 서버
111: 마스터 개인키 저장부 112: 공개키 저장부
113: 서명 요청부 114: 검증 수행부
115: 정보 전송부 116: 매핑 행렬 저장부
117: 매핑 행렬 추출부 118: 랜덤 코드 생성부
119: 치환 행렬 생성부 120: 요청부
121: 복원부 122: 검증부
130: 제1 회원
140: 제1 클라이언트 단말
101, 102, 103: 복수의 클라우드 스토리지 서버들
110: Interfacing support server supporting interfacing between cloud storage and client terminals for providing cloud office services
111: master private key storage unit 112: public key storage unit
113: signature request unit 114: verification execution unit
115: information transmission unit 116: mapping matrix storage unit
117: mapping matrix extraction unit 118: random code generation unit
119: substitution matrix generation unit 120: request unit
121: restoration unit 122: verification unit
130: first member
140: first client terminal
101, 102, 103: Multiple cloud storage servers

Claims (12)

클라우드 오피스 서비스를 제공하기 위한, 클라우드 스토리지와 클라이언트 단말 간의 인터페이싱을 지원하는 인터페이싱 지원 서버에 있어서,
전자 서명을 위한 마스터 개인키 - 상기 마스터 개인키에 대응되는 마스터 공개키는 상기 클라우드 오피스 서비스에 가입되어 있는 복수의 회원들 각각의 클라이언트 단말에 사전 발급되어 있음 - 가 저장되어 있는 마스터 개인키 저장부;
사전 지정된 복수의 클라우드 스토리지 서버들 각각에 대한 사전 발급된 공개키 - 상기 복수의 클라우드 스토리지 서버들 각각에 대한 공개키에 대응되는 개인키는, 각 클라우드 스토리지 서버에 사전 발급되어 있음 - 가 저장되어 있는 공개키 저장부;
상기 복수의 회원들 중 어느 한 명인 제1 회원이 보유하고 있는 제1 클라이언트 단말로부터 상기 복수의 클라우드 스토리지 서버들 중 어느 하나인 제1 클라우드 스토리지 서버에 사전 저장되어 있는 제1 전자 문서에 대한 데이터의 전송 요청이 수신되면, 상기 제1 클라우드 스토리지 서버로 전자 서명을 요청하는 서명 요청부;
상기 제1 클라우드 스토리지 서버로부터, 상기 제1 클라우드 스토리지 서버에 사전 발급되어 있는 제1 개인키에 기초하여 전자 서명된 제1 전자 서명 값이 수신되면, 상기 공개키 저장부로부터 상기 제1 클라우드 스토리지 서버에 대한 제1 공개키를 추출한 후, 상기 제1 공개키를 기초로 상기 제1 전자 서명 값에 대한 검증을 수행하는 검증 수행부; 및
상기 제1 전자 서명 값에 대한 검증이 완료되면, 상기 제1 클라우드 스토리지 서버로부터 상기 제1 전자 문서에 대한 데이터를 수신하고, 상기 제1 전자 문서에 대한 데이터를 사전 설정된 해시 함수 - 상기 해시 함수는 상기 복수의 회원들 각각이 보유하고 있는 클라이언트 단말에 사전 발급되어 있음 - 에 입력으로 인가하여 제1 해시 값을 생성하며, 상기 제1 해시 값을 상기 마스터 개인키 저장부에 저장되어 있는 상기 마스터 개인키로 전자 서명하여 제2 전자 서명 값을 생성한 후, 상기 제1 클라이언트 단말로 상기 제2 전자 서명 값과 상기 제1 전자 문서에 대한 데이터를 전송하는 정보 전송부
를 포함하는 인터페이싱 지원 서버.
In an interfacing support server supporting interfacing between a cloud storage and a client terminal for providing a cloud office service,
A master private key storage unit in which a master private key for electronic signature is stored - a master public key corresponding to the master private key is pre-issued to each client terminal of a plurality of members subscribed to the cloud office service ;
A pre-issued public key for each of a plurality of pre-designated cloud storage servers, wherein a private key corresponding to a public key for each of the plurality of cloud storage servers is pre-issued to each cloud storage server. public key storage unit;
Data for a first electronic document pre-stored in a first cloud storage server, which is any one of the plurality of cloud storage servers, from a first client terminal possessed by a first member, which is one of the plurality of members. When a transmission request is received, a signature requesting unit requesting an electronic signature to the first cloud storage server;
When a first electronic signature value electronically signed based on a first private key pre-issued in the first cloud storage server is received from the first cloud storage server, the first cloud storage server from the public key storage unit After extracting a first public key for , a verification performer performing verification on the first electronic signature value based on the first public key; and
When the verification of the first electronic signature value is completed, data on the first electronic document is received from the first cloud storage server, and the data on the first electronic document is converted to a preset hash function - the hash function is Is pre-issued to the client terminal possessed by each of the plurality of members - is applied as an input to generate a first hash value, and the master individual stored in the master private key storage unit generates a first hash value An information transmitter configured to generate a second electronic signature value by digitally signing with a key and then transmit the second electronic signature value and data on the first electronic document to the first client terminal.
Interfacing support server including a.
제1항에 있어서,
상기 서명 요청부는
상기 복수의 클라우드 스토리지 서버들 각각과 사전 공유하고 있는, 각 클라우드 스토리지 서버에 대응되는 서로 다른 복수의 매핑(Mapping) 행렬들 - 상기 복수의 매핑 행렬들 각각은, 1과 0의 성분으로 구성된 n x n(n은 2이상의 자연수임) 크기의 행렬로, 상기 복수의 매핑 행렬들 각각을 구성하는 n2개의 성분들 중 t(t는 2 이상 n2 미만의 자연수임)개의 성분들은 1로 지정되어 있고, 나머지 n2-t개의 성분들은 0으로 지정되어 있음 - 이 저장되어 있는 매핑 행렬 저장부;
상기 제1 클라이언트 단말로부터 상기 제1 클라우드 스토리지 서버에 저장되어 있는 상기 제1 전자 문서에 대한 데이터의 전송 요청이 수신되면, 상기 매핑 행렬 저장부로부터 상기 제1 클라우드 스토리지 서버에 대응되는 제1 매핑 행렬을 추출하는 매핑 행렬 추출부;
상기 제1 매핑 행렬이 추출되면, t개의 인증 코드들과 n2-t개의 더미(dummy) 코드들을 랜덤하게 생성하는 랜덤 코드 생성부;
상기 t개의 인증 코드들과 상기 n2-t개의 더미 코드들이 생성되면, 상기 제1 매핑 행렬에서, 상기 제1 매핑 행렬을 구성하는 n2개의 성분들 중 1이 지정되어 있는 성분들을, 상기 t개의 인증 코드들로 하나씩 치환하고, 0이 지정되어 있는 n2-t개의 성분들을, 상기 n2-t개의 더미 코드들로 하나씩 치환함으로써, n x n 크기의 제1 치환 행렬을 생성하는 치환 행렬 생성부; 및
상기 제1 치환 행렬이 생성되면, 상기 제1 클라우드 스토리지 서버로 상기 제1 치환 행렬을 전송하면서, 상기 제1 클라우드 스토리지 서버로 상기 제1 치환 행렬에 포함되어 있는 상기 t개의 인증 코드들을 기초로 한 전자 서명을 요청하는 요청부
를 포함하고,
상기 검증 수행부는
상기 제1 클라우드 스토리지 서버로부터 상기 제1 전자 서명 값 - 상기 제1 전자 서명 값은 상기 제1 클라우드 스토리지 서버에 수신된 상기 제1 치환 행렬을 구성하는 n2개의 성분들 중 상기 제1 매핑 행렬에서의 1의 성분이 위치하는 지점과 대응되는 지점에 위치하는 t개의 성분들이 추출된 후, 상기 t개 성분들로 구성되는 데이터 셋이 상기 제1 클라우드 스토리지 서버에 발급되어 있는 상기 제1 개인키로 전자 서명되어 생성된 값임 - 이 수신되면, 상기 공개키 저장부로부터 상기 제1 공개키를 추출한 후, 상기 제1 공개키로 상기 제1 전자 서명 값을 복호화함으로써, 상기 t개의 성분들로 구성되는 데이터 셋을 복원하는 복원부; 및
상기 t개의 성분들로 구성되는 데이터 셋이 복원되면, 상기 t개의 성분들이 상기 t개의 인증 코드들과 모두 일치하는지 확인하여, 상기 t개의 성분들이 상기 t개의 인증 코드들과 모두 일치하는 것으로 확인되면, 상기 제1 전자 서명 값에 대한 검증이 완료된 것으로 처리하는 검증부
를 포함하는 인터페이싱 지원 서버.
According to claim 1,
The signature request
A plurality of different mapping matrices corresponding to each cloud storage server that are pre-shared with each of the plurality of cloud storage servers - each of the plurality of mapping matrices is nxn composed of components of 1 and 0 ( n is a natural number greater than or equal to 2), and t (t is a natural number greater than or equal to 2 and less than n 2 ) elements among the n 2 elements constituting each of the plurality of mapping matrices are designated as 1, the remaining n 2 -t elements are designated as 0 - a mapping matrix storage unit in which n 2 -t elements are stored;
When a request for transmission of data for the first electronic document stored in the first cloud storage server is received from the first client terminal, a first mapping matrix corresponding to the first cloud storage server is received from the mapping matrix storage unit. a mapping matrix extractor for extracting ;
a random code generator randomly generating t authentication codes and n 2 -t dummy codes when the first mapping matrix is extracted;
When the t authentication codes and the n 2 -t dummy codes are generated, in the first mapping matrix, components to which 1 is designated among the n 2 components constituting the first mapping matrix are selected by the t A substitution matrix generation unit for generating a first substitution matrix having an n×n size by substituting one by one authentication codes and substituting n 2 -t elements designated with 0 with the n 2 -t dummy codes one by one. ; and
When the first substitution matrix is generated, while transmitting the first substitution matrix to the first cloud storage server, based on the t authentication codes included in the first substitution matrix to the first cloud storage server Requisition to request an electronic signature
including,
The verification unit
The first electronic signature value from the first cloud storage server - The first electronic signature value is obtained from the first mapping matrix among n 2 components constituting the first substitution matrix received at the first cloud storage server. After the t components located at the point corresponding to the point where the component 1 of is located, the data set consisting of the t components is electronically stored with the first private key issued to the first cloud storage server. A data set consisting of the t components is obtained by extracting the first public key from the public key storage unit and then decrypting the first electronic signature value with the first public key. Restoration unit for restoring; and
When the data set consisting of the t components is restored, it is checked whether the t components match all of the t authentication codes, and if it is confirmed that the t components match all of the t authentication codes, , Verification unit for processing that the verification of the first electronic signature value is completed
Interfacing support server including a.
제2항에 있어서,
상기 제1 클라우드 스토리지 서버는
메모리 상에 상기 제1 매핑 행렬과 상기 제1 개인키를 사전 저장하고 있고, 상기 인터페이싱 지원 서버로부터 상기 제1 치환 행렬이 수신되면서, 상기 인터페이싱 지원 서버로부터 상기 제1 치환 행렬에 포함되어 있는 상기 t개의 인증 코드들을 기초로 한 전자 서명 요청이 수신되면, 상기 제1 치환 행렬과 상기 제1 매핑 행렬 간의 아다마르 곱(Hadamard product)을 연산하여 n x n 크기의 제1 연산 행렬을 생성하고, 상기 제1 연산 행렬을 구성하는 n2개의 성분들 중 0이 아닌 상기 t개의 성분들을 추출한 후, 상기 t개의 성분들로 구성되는 데이터 셋에 대해 상기 제1 개인키로 전자 서명함으로써, 상기 제1 전자 서명 값을 생성하여 상기 인터페이싱 지원 서버로 전송하는 것을 특징으로 하는 인터페이싱 지원 서버.
According to claim 2,
The first cloud storage server
The first mapping matrix and the first private key are pre-stored in memory, and the first substitution matrix is received from the interfacing support server, and the t included in the first substitution matrix from the interfacing support server When an electronic signature request based on N authentication codes is received, a Hadamard product between the first substitution matrix and the first mapping matrix is calculated to generate a first operation matrix having an nxn size, and the first After extracting the t elements that are not zero among the n 2 elements constituting the operation matrix, digitally signing a data set composed of the t elements with the first private key, thereby obtaining the first electronic signature value An interfacing support server characterized in that it is generated and transmitted to the interfacing support server.
삭제delete 제1항에 있어서,
상기 제1 클라이언트 단말은
메모리 상에 상기 마스터 공개키와 상기 해시 함수를 사전 저장하고 있고, 상기 인터페이싱 지원 서버로부터 상기 제2 전자 서명 값과 상기 제1 전자 문서에 대한 데이터가 수신되면, 상기 제1 전자 문서에 대한 데이터를 상기 해시 함수에 입력으로 인가하여 상기 제1 해시 값을 생성하고, 상기 마스터 공개키로 상기 제2 전자 서명 값을 복호화하여 복호화 값을 생성하며, 상기 제1 해시 값이 상기 복호화 값과 서로 일치하는지 확인함으로써, 상기 제2 전자 서명 값에 대한 검증을 완료한 후, 상기 제1 클라이언트 단말에 사전 설치되어 있는 문서 작성 애플리케이션을 구동하여 상기 제1 전자 문서에 대한 데이터를 로드함으로써, 상기 제1 전자 문서를 상기 제1 클라이언트 단말에서 열람하는 것을 특징으로 하는 인터페이싱 지원 서버.
According to claim 1,
The first client terminal is
When the master public key and the hash function are stored in advance in a memory, and the second electronic signature value and the data for the first electronic document are received from the interfacing support server, the data for the first electronic document Applying the hash function as an input to generate the first hash value, decrypting the second electronic signature value with the master public key to generate a decryption value, and confirming whether the first hash value matches the decryption value After completing the verification of the second electronic signature value, the first electronic document is loaded by driving a document preparation application pre-installed in the first client terminal to load data for the first electronic document. Interfacing support server, characterized in that for browsing in the first client terminal.
클라우드 오피스 서비스를 제공하기 위한, 클라우드 스토리지와 클라이언트 단말 간의 인터페이싱을 지원하는 인터페이싱 지원 서버의 동작 방법에 있어서,
전자 서명을 위한 마스터 개인키 - 상기 마스터 개인키에 대응되는 마스터 공개키는 상기 클라우드 오피스 서비스에 가입되어 있는 복수의 회원들 각각의 클라이언트 단말에 사전 발급되어 있음 - 가 저장되어 있는 마스터 개인키 저장부를 유지하는 단계;
사전 지정된 복수의 클라우드 스토리지 서버들 각각에 대한 사전 발급된 공개키 - 상기 복수의 클라우드 스토리지 서버들 각각에 대한 공개키에 대응되는 개인키는, 각 클라우드 스토리지 서버에 사전 발급되어 있음 - 가 저장되어 있는 공개키 저장부를 유지하는 단계;
상기 복수의 회원들 중 어느 한 명인 제1 회원이 보유하고 있는 제1 클라이언트 단말로부터 상기 복수의 클라우드 스토리지 서버들 중 어느 하나인 제1 클라우드 스토리지 서버에 사전 저장되어 있는 제1 전자 문서에 대한 데이터의 전송 요청이 수신되면, 상기 제1 클라우드 스토리지 서버로 전자 서명을 요청하는 단계;
상기 제1 클라우드 스토리지 서버로부터, 상기 제1 클라우드 스토리지 서버에 사전 발급되어 있는 제1 개인키에 기초하여 전자 서명된 제1 전자 서명 값이 수신되면, 상기 공개키 저장부로부터 상기 제1 클라우드 스토리지 서버에 대한 제1 공개키를 추출한 후, 상기 제1 공개키를 기초로 상기 제1 전자 서명 값에 대한 검증을 수행하는 단계; 및
상기 제1 전자 서명 값에 대한 검증이 완료되면, 상기 제1 클라우드 스토리지 서버로부터 상기 제1 전자 문서에 대한 데이터를 수신하고, 상기 제1 전자 문서에 대한 데이터를 사전 설정된 해시 함수 - 상기 해시 함수는 상기 복수의 회원들 각각이 보유하고 있는 클라이언트 단말에 사전 발급되어 있음 - 에 입력으로 인가하여 제1 해시 값을 생성하며, 상기 제1 해시 값을 상기 마스터 개인키 저장부에 저장되어 있는 상기 마스터 개인키로 전자 서명하여 제2 전자 서명 값을 생성한 후, 상기 제1 클라이언트 단말로 상기 제2 전자 서명 값과 상기 제1 전자 문서에 대한 데이터를 전송하는 단계
를 포함하는 인터페이싱 지원 서버의 동작 방법.
In the operating method of an interfacing support server supporting interfacing between a cloud storage and a client terminal for providing a cloud office service,
A master private key storage unit in which a master private key for electronic signature - the master public key corresponding to the master private key is pre-issued to each client terminal of a plurality of members subscribed to the cloud office service - is stored maintaining;
A pre-issued public key for each of a plurality of pre-designated cloud storage servers, wherein a private key corresponding to a public key for each of the plurality of cloud storage servers is pre-issued to each cloud storage server. maintaining a public key storage unit;
Data for a first electronic document pre-stored in a first cloud storage server, which is any one of the plurality of cloud storage servers, from a first client terminal possessed by a first member, which is one of the plurality of members. requesting an electronic signature to the first cloud storage server when a transmission request is received;
When a first electronic signature value electronically signed based on a first private key pre-issued in the first cloud storage server is received from the first cloud storage server, the first cloud storage server from the public key storage unit After extracting a first public key for , performing verification on the first electronic signature value based on the first public key; and
When the verification of the first electronic signature value is completed, data on the first electronic document is received from the first cloud storage server, and the data on the first electronic document is converted to a preset hash function - the hash function is Is pre-issued to the client terminal possessed by each of the plurality of members - is applied as an input to generate a first hash value, and the master individual stored in the master private key storage unit generates a first hash value After digitally signing with a key to generate a second electronic signature value, transmitting the second electronic signature value and data for the first electronic document to the first client terminal.
Method of operating an interfacing support server comprising a.
제6항에 있어서,
상기 전자 서명을 요청하는 단계는
상기 복수의 클라우드 스토리지 서버들 각각과 사전 공유하고 있는, 각 클라우드 스토리지 서버에 대응되는 서로 다른 복수의 매핑(Mapping) 행렬들 - 상기 복수의 매핑 행렬들 각각은, 1과 0의 성분으로 구성된 n x n(n은 2이상의 자연수임) 크기의 행렬로, 상기 복수의 매핑 행렬들 각각을 구성하는 n2개의 성분들 중 t(t는 2 이상 n2 미만의 자연수임)개의 성분들은 1로 지정되어 있고, 나머지 n2-t개의 성분들은 0으로 지정되어 있음 - 이 저장되어 있는 매핑 행렬 저장부를 유지하는 단계;
상기 제1 클라이언트 단말로부터 상기 제1 클라우드 스토리지 서버에 저장되어 있는 상기 제1 전자 문서에 대한 데이터의 전송 요청이 수신되면, 상기 매핑 행렬 저장부로부터 상기 제1 클라우드 스토리지 서버에 대응되는 제1 매핑 행렬을 추출하는 단계;
상기 제1 매핑 행렬이 추출되면, t개의 인증 코드들과 n2-t개의 더미(dummy) 코드들을 랜덤하게 생성하는 단계;
상기 t개의 인증 코드들과 상기 n2-t개의 더미 코드들이 생성되면, 상기 제1 매핑 행렬에서, 상기 제1 매핑 행렬을 구성하는 n2개의 성분들 중 1이 지정되어 있는 성분들을, 상기 t개의 인증 코드들로 하나씩 치환하고, 0이 지정되어 있는 n2-t개의 성분들을, 상기 n2-t개의 더미 코드들로 하나씩 치환함으로써, n x n 크기의 제1 치환 행렬을 생성하는 단계; 및
상기 제1 치환 행렬이 생성되면, 상기 제1 클라우드 스토리지 서버로 상기 제1 치환 행렬을 전송하면서, 상기 제1 클라우드 스토리지 서버로 상기 제1 치환 행렬에 포함되어 있는 상기 t개의 인증 코드들을 기초로 한 전자 서명을 요청하는 단계
를 포함하고,
상기 검증을 수행하는 단계는
상기 제1 클라우드 스토리지 서버로부터 상기 제1 전자 서명 값 - 상기 제1 전자 서명 값은 상기 제1 클라우드 스토리지 서버에 수신된 상기 제1 치환 행렬을 구성하는 n2개의 성분들 중 상기 제1 매핑 행렬에서의 1의 성분이 위치하는 지점과 대응되는 지점에 위치하는 t개의 성분들이 추출된 후, 상기 t개 성분들로 구성되는 데이터 셋이 상기 제1 클라우드 스토리지 서버에 발급되어 있는 상기 제1 개인키로 전자 서명되어 생성된 값임 - 이 수신되면, 상기 공개키 저장부로부터 상기 제1 공개키를 추출한 후, 상기 제1 공개키로 상기 제1 전자 서명 값을 복호화함으로써, 상기 t개의 성분들로 구성되는 데이터 셋을 복원하는 단계; 및
상기 t개의 성분들로 구성되는 데이터 셋이 복원되면, 상기 t개의 성분들이 상기 t개의 인증 코드들과 모두 일치하는지 확인하여, 상기 t개의 성분들이 상기 t개의 인증 코드들과 모두 일치하는 것으로 확인되면, 상기 제1 전자 서명 값에 대한 검증이 완료된 것으로 처리하는 단계
를 포함하는 인터페이싱 지원 서버의 동작 방법.
According to claim 6,
The step of requesting the electronic signature is
A plurality of different mapping matrices corresponding to each cloud storage server that are pre-shared with each of the plurality of cloud storage servers - each of the plurality of mapping matrices is nxn composed of components of 1 and 0 ( n is a natural number greater than or equal to 2), and t (t is a natural number greater than or equal to 2 and less than n 2 ) elements among the n 2 elements constituting each of the plurality of mapping matrices are designated as 1, maintaining a mapping matrix storage unit in which the remaining n 2 -t elements are designated as 0;
When a request for transmission of data for the first electronic document stored in the first cloud storage server is received from the first client terminal, a first mapping matrix corresponding to the first cloud storage server is received from the mapping matrix storage unit. Extracting;
randomly generating t authentication codes and n 2 -t dummy codes when the first mapping matrix is extracted;
When the t authentication codes and the n 2 -t dummy codes are generated, in the first mapping matrix, components to which 1 is designated among the n 2 components constituting the first mapping matrix are selected by the t generating a first substitution matrix having a size of nxn by substituting each of the n 2 -t authentication codes with the n 2 -t number of authentication codes and substituting n 2 -t elements designated with 0 with the n 2 -t dummy codes one by one; and
When the first substitution matrix is generated, while transmitting the first substitution matrix to the first cloud storage server, based on the t authentication codes included in the first substitution matrix to the first cloud storage server Steps to request an electronic signature
including,
The step of performing the verification is
The first electronic signature value from the first cloud storage server - The first electronic signature value is obtained from the first mapping matrix among n 2 components constituting the first substitution matrix received at the first cloud storage server. After the t components located at the point corresponding to the point where the component 1 of is located, the data set consisting of the t components is electronically stored with the first private key issued to the first cloud storage server. A data set consisting of the t components is obtained by extracting the first public key from the public key storage unit and then decrypting the first electronic signature value with the first public key. restoring; and
When the data set consisting of the t components is restored, it is checked whether the t components match all of the t authentication codes, and if it is confirmed that the t components match all of the t authentication codes, , processing that the verification of the first electronic signature value is completed
Method of operating an interfacing support server comprising a.
제7항에 있어서,
상기 제1 클라우드 스토리지 서버는
메모리 상에 상기 제1 매핑 행렬과 상기 제1 개인키를 사전 저장하고 있고, 상기 인터페이싱 지원 서버로부터 상기 제1 치환 행렬이 수신되면서, 상기 인터페이싱 지원 서버로부터 상기 제1 치환 행렬에 포함되어 있는 상기 t개의 인증 코드들을 기초로 한 전자 서명 요청이 수신되면, 상기 제1 치환 행렬과 상기 제1 매핑 행렬 간의 아다마르 곱(Hadamard product)을 연산하여 n x n 크기의 제1 연산 행렬을 생성하고, 상기 제1 연산 행렬을 구성하는 n2개의 성분들 중 0이 아닌 상기 t개의 성분들을 추출한 후, 상기 t개의 성분들로 구성되는 데이터 셋에 대해 상기 제1 개인키로 전자 서명함으로써, 상기 제1 전자 서명 값을 생성하여 상기 인터페이싱 지원 서버로 전송하는 것을 특징으로 하는 인터페이싱 지원 서버의 동작 방법.
According to claim 7,
The first cloud storage server
The first mapping matrix and the first private key are pre-stored in memory, and the first substitution matrix is received from the interfacing support server, and the t included in the first substitution matrix from the interfacing support server When an electronic signature request based on N authentication codes is received, a Hadamard product between the first substitution matrix and the first mapping matrix is calculated to generate a first operation matrix having an nxn size, and the first After extracting the t elements that are not zero among the n 2 elements constituting the operation matrix, digitally signing a data set composed of the t elements with the first private key, thereby obtaining the first electronic signature value A method of operating an interfacing support server, characterized in that generating and transmitting to the interfacing support server.
삭제delete 제6항에 있어서,
상기 제1 클라이언트 단말은
메모리 상에 상기 마스터 공개키와 상기 해시 함수를 사전 저장하고 있고, 상기 인터페이싱 지원 서버로부터 상기 제2 전자 서명 값과 상기 제1 전자 문서에 대한 데이터가 수신되면, 상기 제1 전자 문서에 대한 데이터를 상기 해시 함수에 입력으로 인가하여 상기 제1 해시 값을 생성하고, 상기 마스터 공개키로 상기 제2 전자 서명 값을 복호화하여 복호화 값을 생성하며, 상기 제1 해시 값이 상기 복호화 값과 서로 일치하는지 확인함으로써, 상기 제2 전자 서명 값에 대한 검증을 완료한 후, 상기 제1 클라이언트 단말에 사전 설치되어 있는 문서 작성 애플리케이션을 구동하여 상기 제1 전자 문서에 대한 데이터를 로드함으로써, 상기 제1 전자 문서를 상기 제1 클라이언트 단말에서 열람하는 것을 특징으로 하는 인터페이싱 지원 서버의 동작 방법.
According to claim 6,
The first client terminal is
When the master public key and the hash function are stored in advance in a memory, and the second electronic signature value and the data for the first electronic document are received from the interfacing support server, the data for the first electronic document Applying the hash function as an input to generate the first hash value, decrypting the second electronic signature value with the master public key to generate a decryption value, and confirming whether the first hash value matches the decryption value After completing the verification of the second electronic signature value, the first electronic document is loaded by driving a document preparation application pre-installed in the first client terminal to load data for the first electronic document. The operating method of the interfacing support server, characterized in that for browsing in the first client terminal.
제6항, 제7항, 제8항 또는 제10항 중 어느 한 항의 방법을 컴퓨터와의 결합을 통해 실행시키기 위한 컴퓨터 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.Claim 6, claim 7, claim 8 or claim 10 of any one of the method through a combination with a computer to execute a computer program recorded on a computer-readable recording medium. 제6항, 제7항, 제8항 또는 제10항 중 어느 한 항의 방법을 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램.A computer program stored in a storage medium for executing the method of any one of claims 6, 7, 8 or 10 through a combination with a computer.
KR1020210139963A 2021-10-20 2021-10-20 Interfacing support server that supports the interfacing between a cloud storage and a client terminal to provide a cloud office service and operating method thereof KR102545272B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210139963A KR102545272B1 (en) 2021-10-20 2021-10-20 Interfacing support server that supports the interfacing between a cloud storage and a client terminal to provide a cloud office service and operating method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210139963A KR102545272B1 (en) 2021-10-20 2021-10-20 Interfacing support server that supports the interfacing between a cloud storage and a client terminal to provide a cloud office service and operating method thereof

Publications (2)

Publication Number Publication Date
KR20230056204A KR20230056204A (en) 2023-04-27
KR102545272B1 true KR102545272B1 (en) 2023-06-20

Family

ID=86100544

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210139963A KR102545272B1 (en) 2021-10-20 2021-10-20 Interfacing support server that supports the interfacing between a cloud storage and a client terminal to provide a cloud office service and operating method thereof

Country Status (1)

Country Link
KR (1) KR102545272B1 (en)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101863953B1 (en) * 2016-06-16 2018-06-29 주식회사 티모넷 System and method for providing electronic signature service
KR20190024613A (en) * 2017-08-30 2019-03-08 한국전자통신연구원 Apparatus and method for providing storage for providing cloud services

Also Published As

Publication number Publication date
KR20230056204A (en) 2023-04-27

Similar Documents

Publication Publication Date Title
US8077863B2 (en) Secret sharing apparatus, method, and program
CN101953113B (en) Secure and usable protection of a roamable credentials store
CN111475824B (en) Data access method, device, equipment and storage medium
US20160026817A1 (en) Secure data storage
KR102295263B1 (en) Data management device that enables distributed encryption management of data based on blockchain and operating method thereof
JP6142704B2 (en) Secret data verification device, secret data verification program, and secret data verification method
KR20200126061A (en) Node device that enables the deletion of a transaction in a block chain network and operating method thereof
CN111324902A (en) Data access method, device and system based on block chain
CN109088850B (en) Lot cloud auditing method for positioning error files based on Lucas sequence
KR102303431B1 (en) Blockchain-based electronic contract management system apparatus that supports electronic contracts between parties and operating method thereof
KR102328057B1 (en) Document security service server that supports encryption of document files based on terminal information and operating method thereof
KR102545272B1 (en) Interfacing support server that supports the interfacing between a cloud storage and a client terminal to provide a cloud office service and operating method thereof
CN110851851B (en) Authority management method, device and equipment in block chain type account book
KR102442674B1 (en) Access controlling server which controls the access to the private cloud server and the operating method thereof
KR102426621B1 (en) Application service server that handles the sending of an efficient push notification message to the client terminal where the application is installed and operating method thereof
KR20240009957A (en) Systems and methods for secure Internet communications
KR102575679B1 (en) Cloud service management server for managing cloud service, which is for providing virtual computing work environment based on cloud
KR20210001290A (en) Forward secure identity-based signature method and apparatus
KR102621146B1 (en) Service managing server for managing virtual computing working environment providing service based on cloud, which enables access to the data stored in a private cloud server
KR102394483B1 (en) Service providing server for providing an error determination service for judging whether there is an error in the electronic document and operating method thereof
KR102503471B1 (en) Service server capable of performing internet access management services according to grades and the operating method thereof
KR102215600B1 (en) Public data providing apparatus providing public data available as annotations inserted into documents through differential authentication processing based on security level and operating method thereof
KR20230036386A (en) Service managing server for managing metaverse service, which provides metaverse environment using avatar, and the operating method thereof
CN114826614B (en) Distributed storage method and device for authenticatable password library file and electronic equipment
KR102526406B1 (en) Access management system apparatus which manages access to the original contents data, which is to be a subject to an nft, and the operating method thereof

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant