KR20220055301A - 사설 클라우드 서버에 대한 액세스를 관리하는 액세스 관리 서버 및 그 동작 방법 - Google Patents

사설 클라우드 서버에 대한 액세스를 관리하는 액세스 관리 서버 및 그 동작 방법 Download PDF

Info

Publication number
KR20220055301A
KR20220055301A KR1020200139605A KR20200139605A KR20220055301A KR 20220055301 A KR20220055301 A KR 20220055301A KR 1020200139605 A KR1020200139605 A KR 1020200139605A KR 20200139605 A KR20200139605 A KR 20200139605A KR 20220055301 A KR20220055301 A KR 20220055301A
Authority
KR
South Korea
Prior art keywords
matrix
authentication
user
data
terminal
Prior art date
Application number
KR1020200139605A
Other languages
English (en)
Other versions
KR102442674B1 (ko
Inventor
김성중
Original Assignee
주식회사 에즈웰
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 에즈웰 filed Critical 주식회사 에즈웰
Priority to KR1020200139605A priority Critical patent/KR102442674B1/ko
Publication of KR20220055301A publication Critical patent/KR20220055301A/ko
Application granted granted Critical
Publication of KR102442674B1 publication Critical patent/KR102442674B1/ko

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/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • 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/604Tools and structures for managing or administering access control systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Power Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Computer And Data Communications (AREA)
  • Storage Device Security (AREA)

Abstract

사설 클라우드 서버에 대한 액세스를 관리하는 액세스 관리 서버 및 그 동작 방법이 개시된다. 본 발명은 사용자의 단말로부터 사설 클라우드 서버에 저장되어 있는 데이터에 대한 액세스 요청 신호가 수신되면, 사용자의 단말과 사전 공유하고 있는 인증 행렬을 기초로, 사용자의 단말에 대한 인증을 수행하고, 사용자의 단말에 대한 인증이 완료되면, 사설 클라우드 서버로부터 데이터를 수신하여 사용자의 단말로 전송하는 액세스 관리 서버 및 그 동작 방법에 대한 것이다.

Description

사설 클라우드 서버에 대한 액세스를 관리하는 액세스 관리 서버 및 그 동작 방법{ACCESS CONTROLLING SERVER WHICH CONTROLS THE ACCESS TO THE PRIVATE CLOUD SERVER AND THE OPERATING METHOD THEREOF}
본 발명은 사설 클라우드 서버에 대한 액세스를 관리하는 액세스 관리 서버 및 그 동작 방법에 대한 것이다.
최근, 기업이나 학교 등 다양한 분야에서, 클라우드 서비스의 도입이 증가하고 있다. 이러한 클라우드 서비스는 데이터를 각 전자 단말 장치가 아닌 클라우드 서버에 저장해 둠으로써, 사용자가 필요할 때에 데이터에 액세스하여 활용할 수 있도록 지원하는 서비스이다.
기업이나 기관에서는 이러한 클라우드 서비스를 업무용으로 활용하는 경우가 많다. 다만, 기업이나 기관에서는 사용자에게 클라우드 서비스를 제공할 때, 데이터의 보안을 유지하기 위해, 소정의 인증된 내부 네트워크를 통해서 접속한 사용자에 한해서 데이터에 액세스할 수 있도록 하기 위한 사설 클라우드 서버를 운영하는 경우가 많다.
한편, 전 세계적으로 COVID-19의 유행이 장기간 지속됨에 따라, 사람들 간의 이동 및 접촉이 제한되고, 재택 근무에 대한 수요가 증가하면서, 사용자가 내부 네트워크에 접속할 수 없는 환경에서도, 사설 클라우드 서버에 저장되어 있는 데이터에 액세스하여 원격지에서 업무를 수행할 수 있도록 지원해야 할 필요성이 증가하고 있다.
이와 관련해서, 외부의 공용 네트워크를 통해서도 사용자 단말의 사설 클라우드 서버에 대한 액세스가 가능하도록 하는 방안을 도입할 수 있지만, 이 경우, 인증되지 않은 사용자의 접근으로 인해 중요 데이터가 노출되는 문제가 발생할 수 있다.
이로 인해, 외부에서 사설 클라우드 서버에 액세스할 수 있도록 지원하는 경우, 데이터 유출 등의 보안 상의 문제를 해결하기 위한 강력한 사용자 인증 기술이 도입될 필요가 있다.
따라서, 강력한 인증 프로토콜을 기반으로 사설 클라우드 서버에 저장되어 있는 데이터에 액세스하고자 하는 사용자의 단말에 대한 인증을 수행함으로써, 외부의 공용 네트워크를 통해서도 사설 클라우드 서버에 대한 액세스가 가능하도록 하는 액세스 관리 기술에 대한 연구가 필요하다.
본 발명은 사용자의 단말로부터 사설 클라우드 서버에 저장되어 있는 데이터에 대한 액세스 요청 신호가 수신되면, 사용자의 단말과 사전 공유하고 있는 인증 행렬을 기초로, 사용자의 단말에 대한 인증을 수행하고, 사용자의 단말에 대한 인증이 완료되면, 사설 클라우드 서버에 의해 전송된 데이터를 수신하여 사용자의 단말로 전송하는, 사설 클라우드 서버에 대한 액세스를 관리하는 액세스 관리 서버 및 그 동작 방법을 제시함으로써, 사설 클라우드 서버에 저장되어 있는 데이터에 대한 보안을 강화할 수 있도록 지원하고자 한다.
본 발명의 일실시예에 따른 사설 클라우드 서버에 대한 액세스를 관리하는 액세스 관리 서버는 복수의 사용자들의 단말과 사전 공유하고 있는 k x k(k는 2 이상의 자연수임) 크기의 사전 설정된 인증 행렬이 저장되어 있는 인증 행렬 저장부, 상기 복수의 사용자들 중 어느 하나인 제1 사용자의 단말로부터, 인증된 사용자만이 액세스 가능하도록 지정된 사설 클라우드 서버에 저장되어 있는 데이터에 대한 액세스 요청 신호가 수신되면, 상기 제1 사용자의 단말에 대한 인증을 수행하기 위한 인증 이벤트를 발생시키는 인증 이벤트 발생부, 상기 인증 이벤트가 발생되면, (k+1) x k 크기의 랜덤 행렬을 랜덤하게 생성하는 랜덤 행렬 생성부, 상기 랜덤 행렬이 생성되면, 상기 제1 사용자의 단말로 상기 랜덤 행렬을 전송하면서, 상기 랜덤 행렬에 대응되는 피드백 행렬의 전송을 요청하는 피드백 행렬 전송 요청부, 상기 제1 사용자의 단말로부터, 상기 랜덤 행렬에 대응되는 피드백 행렬로 제1 피드백 행렬 - 상기 제1 피드백 행렬은 상기 랜덤 행렬에서 사전 설정된 제1 위치의 행의 성분들이 제거된 k x k 크기의 변형 행렬과, 상기 인증 행렬 간의 아다마르 곱(Hadamard product)이 연산되어 생성된 행렬임 - 이 수신되면, 상기 랜덤 행렬에서 상기 제1 위치의 행의 성분들을 제거함으로써 상기 변형 행렬을 생성한 후, 상기 변형 행렬과 상기 인증 행렬 간의 아다마르 곱을 연산하여 제1 연산 행렬을 생성하는 연산 행렬 생성부, 상기 제1 연산 행렬이 생성되면, 상기 제1 연산 행렬과 상기 제1 피드백 행렬이 서로 일치하는지 확인하여, 상기 제1 연산 행렬과 상기 제1 피드백 행렬이 서로 일치하는 것으로 확인되면, 상기 제1 사용자의 단말에 대한 인증을 완료 처리한 후, 상기 사설 클라우드 서버로 상기 데이터의 전송을 요청하는 데이터 전송 요청부 및 상기 사설 클라우드 서버로부터 상기 데이터가 수신되면, 상기 데이터를 상기 제1 사용자의 단말로 전송하는 데이터 전송부를 포함한다.
또한, 본 발명의 일실시예에 따른 사설 클라우드 서버에 대한 액세스를 관리하는 액세스 관리 서버의 동작 방법은 복수의 사용자들의 단말과 사전 공유하고 있는 k x k(k는 2 이상의 자연수임) 크기의 사전 설정된 인증 행렬이 저장되어 있는 인증 행렬 저장부를 유지하는 단계, 상기 복수의 사용자들 중 어느 하나인 제1 사용자의 단말로부터, 인증된 사용자만이 액세스 가능하도록 지정된 사설 클라우드 서버에 저장되어 있는 데이터에 대한 액세스 요청 신호가 수신되면, 상기 제1 사용자의 단말에 대한 인증을 수행하기 위한 인증 이벤트를 발생시키는 단계, 상기 인증 이벤트가 발생되면, (k+1) x k 크기의 랜덤 행렬을 랜덤하게 생성하는 단계, 상기 랜덤 행렬이 생성되면, 상기 제1 사용자의 단말로 상기 랜덤 행렬을 전송하면서, 상기 랜덤 행렬에 대응되는 피드백 행렬의 전송을 요청하는 단계, 상기 제1 사용자의 단말로부터, 상기 랜덤 행렬에 대응되는 피드백 행렬로 제1 피드백 행렬 - 상기 제1 피드백 행렬은 상기 랜덤 행렬에서 사전 설정된 제1 위치의 행의 성분들이 제거된 k x k 크기의 변형 행렬과, 상기 인증 행렬 간의 아다마르 곱이 연산되어 생성된 행렬임 - 이 수신되면, 상기 랜덤 행렬에서 상기 제1 위치의 행의 성분들을 제거함으로써 상기 변형 행렬을 생성한 후, 상기 변형 행렬과 상기 인증 행렬 간의 아다마르 곱을 연산하여 제1 연산 행렬을 생성하는 단계, 상기 제1 연산 행렬이 생성되면, 상기 제1 연산 행렬과 상기 제1 피드백 행렬이 서로 일치하는지 확인하여, 상기 제1 연산 행렬과 상기 제1 피드백 행렬이 서로 일치하는 것으로 확인되면, 상기 제1 사용자의 단말에 대한 인증을 완료 처리한 후, 상기 사설 클라우드 서버로 상기 데이터의 전송을 요청하는 단계 및 상기 사설 클라우드 서버로부터 상기 데이터가 수신되면, 상기 데이터를 상기 제1 사용자의 단말로 전송하는 단계를 포함한다.
본 발명은 사용자의 단말로부터 사설 클라우드 서버에 저장되어 있는 데이터에 대한 액세스 요청 신호가 수신되면, 사용자의 단말과 사전 공유하고 있는 인증 행렬을 기초로, 사용자의 단말에 대한 인증을 수행하고, 사용자의 단말에 대한 인증이 완료되면, 사설 클라우드 서버에 의해 전송된 데이터를 수신하여 사용자의 단말로 전송하는, 사설 클라우드 서버에 대한 액세스를 관리하는 액세스 관리 서버 및 그 동작 방법을 제시함으로써, 사설 클라우드 서버에 저장되어 있는 데이터에 대한 보안을 강화할 수 있다.
도 1은 본 발명의 일실시예에 따른 사설 클라우드 서버에 대한 액세스를 관리하는 액세스 관리 서버의 구조를 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 사설 클라우드 서버에 대한 액세스를 관리하는 액세스 관리 서버의 동작 방법을 도시한 순서도이다.
이하에서는 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명하기로 한다. 이러한 설명은 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였으며, 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 본 명세서 상에서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 사람에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다.
본 문서에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다. 또한, 본 발명의 다양한 실시예들에 있어서, 각 구성요소들, 기능 블록들 또는 수단들은 하나 또는 그 이상의 하부 구성요소로 구성될 수 있고, 각 구성요소들이 수행하는 전기, 전자, 기계적 기능들은 전자회로, 집적회로, ASIC(Application Specific Integrated Circuit) 등 공지된 다양한 소자들 또는 기계적 요소들로 구현될 수 있으며, 각각 별개로 구현되거나 2 이상이 하나로 통합되어 구현될 수도 있다.
한편, 첨부된 블록도의 블록들이나 흐름도의 단계들은 범용 컴퓨터, 특수용 컴퓨터, 휴대용 노트북 컴퓨터, 네트워크 컴퓨터 등 데이터 프로세싱이 가능한 장비의 프로세서나 메모리에 탑재되어 지정된 기능들을 수행하는 컴퓨터 프로그램 명령들(instructions)을 의미하는 것으로 해석될 수 있다. 이들 컴퓨터 프로그램 명령들은 컴퓨터 장치에 구비된 메모리 또는 컴퓨터에서 판독 가능한 메모리에 저장될 수 있기 때문에, 블록도의 블록들 또는 흐름도의 단계들에서 설명된 기능들은 이를 수행하는 명령 수단을 내포하는 제조물로 생산될 수도 있다. 아울러, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 명령들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 가능한 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 정해진 순서와 달리 실행되는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 실질적으로 동시에 수행되거나, 역순으로 수행될 수 있으며, 경우에 따라 일부 블록들 또는 단계들이 생략된 채로 수행될 수도 있다.
도 1은 본 발명의 일실시예에 따른 사설 클라우드 서버에 대한 액세스를 관리하는 액세스 관리 서버의 구조를 도시한 도면이다.
도 1을 참조하면, 본 발명의 일실시예에 따른 액세스 관리 서버(110)는 인증 행렬 저장부(111), 인증 이벤트 발생부(112), 랜덤 행렬 생성부(113), 피드백 행렬 전송 요청부(114), 연산 행렬 생성부(115), 데이터 전송 요청부(116) 및 데이터 전송부(117)를 포함한다.
먼저, 인증 행렬 저장부(111)에는 복수의 사용자들의 단말과 사전 공유하고 있는 k x k(k는 2 이상의 자연수임) 크기의 사전 설정된 인증 행렬이 저장되어 있다.
예컨대, k를 '5'라고 하는 경우, 인증 행렬 저장부(111)에는 '5 x 5' 크기의 '행렬 A'가 사전 설정된 인증 행렬로 저장되어 있을 수 있다.
인증 이벤트 발생부(112)는 상기 복수의 사용자들 중 어느 하나인 제1 사용자의 단말(130)로부터, 인증된 사용자만이 액세스 가능하도록 지정된 사설 클라우드 서버(140)에 저장되어 있는 데이터에 대한 액세스 요청 신호가 수신되면, 제1 사용자의 단말(130)에 대한 인증을 수행하기 위한 인증 이벤트를 발생시킨다.
랜덤 행렬 생성부(113)는 인증 이벤트 발생부(112)에 의해 상기 인증 이벤트가 발생되면, (k+1) x k 크기의 랜덤 행렬을 랜덤하게 생성한다.
피드백 행렬 전송 요청부(114)는 랜덤 행렬 생성부(113)에 의해 상기 랜덤 행렬이 생성되면, 제1 사용자의 단말(130)로 상기 랜덤 행렬을 전송하면서, 상기 랜덤 행렬에 대응되는 피드백 행렬의 전송을 요청한다.
이하에서는, 랜덤 행렬 생성부(113) 및 피드백 행렬 전송 요청부(114)의 동작을 예를 들어, 상세히 설명하기로 한다.
먼저, 전술한 예와 같이, k를 '5'라고 하고, 인증 이벤트 발생부(112)에 의해 상기 인증 이벤트가 발생되었다고 가정하자.
그러면, 랜덤 행렬 생성부(113)는 '6 x 5' 크기의 랜덤 행렬을 랜덤하게 생성할 수 있다. 이때, 랜덤 행렬 생성부(113)에 의해 생성된 상기 랜덤 행렬을 '행렬 B'라고 하는 경우, 피드백 행렬 전송 요청부(114)는 제1 사용자의 단말(130)로 '행렬 B'를 전송하면서, '행렬 B'에 대응되는 피드백 행렬의 전송을 요청할 수 있다.
이때, 본 발명의 일실시예에 따르면, 제1 사용자의 단말(130)은 메모리 상에 상기 인증 행렬을 저장하고 있을 수 있다. 또한, 제1 사용자의 단말(130)은 액세스 관리 서버(110)로부터, 상기 랜덤 행렬이 수신되면서, 상기 랜덤 행렬에 대응되는 피드백 행렬의 전송 요청이 수신되면, 상기 랜덤 행렬에서 사전 설정된 제1 위치의 행의 성분들을 제거하여 변형 행렬을 생성하고, 상기 변형 행렬과 상기 인증 행렬 간의 아다마르 곱(Hadamard product)을 연산함으로써, 제1 피드백 행렬을 생성한 후, 상기 제1 피드백 행렬을 상기 랜덤 행렬에 대응되는 피드백 행렬로 지정하여 액세스 관리 서버(110)로 전송할 수 있다.
여기서, 아다마르 곱이란, 같은 크기의 행렬에서 각 성분을 곱하는 연산을 의미한다. 예컨대, '[a b c]'와 '[x y z]'라는 행렬이 있을 때, 두 행렬 간의 아다마르 곱을 연산하면, '[ax by cz]'라는 행렬이 산출될 수 있다.
이하에서는, 제1 사용자의 단말(130)의 동작을 예를 들어, 상세히 설명하기로 한다.
먼저, 전술한 예와 같이, 상기 인증 행렬을 '행렬 A'라고 하는 경우, 제1 사용자의 단말(130)의 메모리 상에는 '행렬 A'가 저장되어 있을 수 있다.
이때, 전술한 예와 같이, 액세스 관리 서버(110)에 의해 상기 랜덤 행렬인 '행렬 B'가 전송되면서, '행렬 B'에 대응되는 피드백 행렬의 전송이 요청됨에 따라, 제1 사용자의 단말(130)에 '행렬 B'가 수신되면서, '행렬 B'에 대응되는 피드백 행렬의 전송 요청이 수신되었다고 가정하자.
그러면, 제1 사용자의 단말(130)은 '행렬 B'에서, 사전 설정된 제1 위치의 행의 성분들을 제거하여 상기 변형 행렬을 생성할 수 있다. 관련해서, 상기 사전 설정된 제1 위치의 행을 '2행'이라고 하는 경우, 제1 사용자의 단말(130)은 '행렬 B'에서, '2행'의 성분들을 제거하여 '5 x 5' 크기의 변형 행렬을 생성할 수 있다.
이때, 제1 사용자의 단말(130)에 의해 생성된 상기 변형 행렬을 '행렬 C'라고 하는 경우, 제1 사용자의 단말(130)은 '행렬 C'와 '행렬 A' 간의 아다마르 곱을 연산함으로써, '5 x 5' 크기의 제1 피드백 행렬을 생성할 수 있다.
이렇게, 제1 사용자의 단말(130)에 의해 생성된 상기 제1 피드백 행렬을 '행렬 D'라고 하는 경우, 제1 사용자의 단말(130)은 '행렬 D'를 '행렬 B'에 대응되는 피드백 행렬로 지정하여, 액세스 관리 서버(110)로 전송할 수 있다.
이러한 방식으로, 제1 사용자의 단말(130)에 의해 상기 랜덤 행렬에 대응되는 피드백 행렬로 상기 제1 피드백 행렬(상기 제1 피드백 행렬은 제1 사용자의 단말(130)에 의해, 상기 랜덤 행렬에서 상기 제1 위치의 행의 성분들이 제거된 k x k 크기의 상기 변형 행렬과, 상기 인증 행렬 간의 아다마르 곱이 연산되어 생성된 행렬임)이 전송됨에 따라, 액세스 관리 서버(110)에 상기 제1 피드백 행렬이 수신되면, 연산 행렬 생성부(115)는 상기 랜덤 행렬에서 상기 제1 위치의 행의 성분들을 제거함으로써 상기 변형 행렬을 생성한 후, 상기 변형 행렬과 상기 인증 행렬 간의 아다마르 곱을 연산하여 제1 연산 행렬을 생성한다.
데이터 전송 요청부(116)는 연산 행렬 생성부(115)에 의해 상기 제1 연산 행렬이 생성되면, 상기 제1 연산 행렬과 상기 제1 피드백 행렬이 서로 일치하는지 확인하여, 상기 제1 연산 행렬과 상기 제1 피드백 행렬이 서로 일치하는 것으로 확인되면, 제1 사용자의 단말(130)에 대한 인증을 완료 처리한 후, 사설 클라우드 서버(140)로 상기 데이터의 전송을 요청한다.
이하에서는, 연산 행렬 생성부(115) 및 데이터 전송 요청부(116)의 동작을 예를 들어, 상세히 설명하기로 한다.
먼저, 전술한 예와 같이, 상기 제1 위치의 행을 '2행'이라고 하고, 제1 사용자의 단말(130)에 의해 상기 랜덤 행렬인 '행렬 B'에 대응되는 피드백 행렬로 상기 제1 피드백 행렬인 '행렬 D'가 전송됨에 따라, 액세스 관리 서버(110)에 '행렬 D'가 수신되었다고 가정하자.
그러면, 연산 행렬 생성부(115)는 '행렬 B'에서 '2행'의 성분들을 제거함으로써, 상기 변형 행렬을 '행렬 C'와 같이 생성할 수 있고, '행렬 C'와 '행렬 A' 간의 아다마르 곱을 연산하여 제1 연산 행렬을 '행렬 D'와 같이 생성할 수 있다.
이때, 상기 제1 연산 행렬인 '행렬 D'는 상기 제1 피드백 행렬과 일치하므로, 데이터 전송 요청부(116)은 상기 제1 연산 행렬과 상기 제1 피드백 행렬이 서로 일치하는 것으로 확인할 수 있다.
여기서, 상기 제1 연산 행렬과 상기 제1 피드백 행렬이 서로 일치한다는 것은, 제1 사용자의 단말(130)에, 액세스 관리 서버(110)와 사전 공유하고 있는 상기 인증 행렬이 저장되어 있다는 것을 의미한다. 따라서, 데이터 전송 요청부(116)는 제1 사용자의 단말(130)에 대한 인증을 완료 처리할 수 있고, 그 이후, 사설 클라우드 서버(140)로 상기 데이터의 전송을 요청할 수 있다.
이때, 사설 클라우드 서버(140)는 상기 데이터의 전송 요청에 대응하여, 액세스 관리 서버(110)로 상기 데이터를 전송할 수 있고, 이렇게, 사설 클라우드 서버(140)로부터 액세스 관리 서버(110)에 상기 데이터가 수신되면, 데이터 전송부(117)는 상기 데이터를 제1 사용자의 단말(130)로 전송한다.
즉, 액세스 관리 서버(110)는 제1 사용자의 단말(130)로부터 사설 클라우드 서버(140)에 저장되어 있는 데이터에 대한 액세스 요청 신호가 수신되면, 제1 사용자의 단말(130)과 사전 공유하고 있는 상기 인증 행렬을 기초로, 제1 사용자의 단말(130)에 대한 인증을 수행하고, 제1 사용자의 단말(130)에 대한 인증이 완료되면, 사설 클라우드 서버(140)에 의해 전송된 상기 데이터를 수신하여 제1 사용자의 단말(130)로 전송할 수 있다.
본 발명의 일실시예에 따르면, 액세스 관리 서버(110)는 상기 데이터가 제1 사용자의 단말(130)로 전송 완료되면, 상기 인증 행렬을 갱신함으로써, 상기 인증 행렬에 대한 보안을 강화하기 위한 구성으로, 보정 행렬 생성부(118), 갱신 행렬 생성부(119), 인증 행렬 갱신부(120) 및 갱신 명령 전송부(121)를 더 포함할 수 있다.
보정 행렬 생성부(118)는 상기 데이터가 제1 사용자의 단말(130)로 전송 완료되면, 0 초과 2 미만의 보정 값들을 성분으로 갖는 k x k 크기의 보정 행렬을 랜덤하게 생성한다.
갱신 행렬 생성부(119)는 보정 행렬 생성부(118)에 의해 상기 보정 행렬이 생성되면, 상기 보정 행렬과 상기 인증 행렬을 서로 곱함으로써, 갱신 행렬을 생성한다.
인증 행렬 갱신부(120)는 갱신 행렬 생성부(119)에 의해 상기 갱신 행렬이 생성되면, 인증 행렬 저장부(111)에 저장되어 있는 상기 인증 행렬을 상기 갱신 행렬로 대체함으로써, 상기 인증 행렬을 갱신한다.
갱신 명령 전송부(121)는 상기 갱신 행렬을 제1 사용자의 단말(130)로 전송함과 동시에, 제1 사용자의 단말(130)에 대해, 제1 사용자의 단말(130)의 메모리 상에 저장되어 있는 상기 인증 행렬을 상기 갱신 행렬로 대체할 것을 지시하는 갱신 명령을 전송한다.
이하에서는, 보정 행렬 생성부(118), 갱신 행렬 생성부(119), 인증 행렬 갱신부(120) 및 갱신 명령 전송부(121)의 동작을 예를 들어, 상세히 설명하기로 한다.
먼저, 전술한 예와 같이, k를 '5'라고 하고, 상기 데이터가 제1 사용자의 단말(130)로 전송 완료되었다고 가정하자.
그러면, 보정 행렬 생성부(118)는 0 초과 2 미만의 보정 값들을 성분으로 갖는 '5 x 5' 크기의 보정 행렬을 랜덤하게 생성할 수 있다.
이때, 보정 행렬 생성부(118)에 의해 생성된 상기 보정 행렬을 '행렬 E'라고 하는 경우, 갱신 행렬 생성부(119)는 상기 보정 행렬인 '행렬 E'와 상기 인증 행렬인 '행렬 A'를 서로 곱함으로써, '5 x 5' 크기의 갱신 행렬을 생성할 수 있다.
이렇게, 갱신 행렬 생성부(119)에 의해 생성된 상기 갱신 행렬을 '행렬 F'라고 하는 경우, 인증 행렬 갱신부(120)는 인증 행렬 저장부(111)에 저장되어 있는 상기 인증 행렬인 '행렬 A'를 '행렬 F'로 대체함으로써, 상기 인증 행렬을 갱신할 수 있다.
그 이후, 갱신 명령 전송부(121)는 '행렬 F'를 제1 사용자의 단말(130)로 전송함과 동시에, 제1 사용자의 단말(130)에 대해, 제1 사용자의 단말(130)의 메모리 상에 저장되어 있는 상기 인증 행렬인 '행렬 A'를 '행렬 F'로 대체할 것을 지시하는 갱신 명령을 전송할 수 있다.
이때, 제1 사용자의 단말(130)은 상기 갱신 명령에 대응하여, 제1 사용자의 단말(130)의 메모리 상에 저장되어 있는 '행렬 A'를 '행렬 F'로 대체함으로써, 상기 인증 행렬을 갱신할 수 있을 것이다.
이러한 방식으로, 액세스 관리 서버(110)와 제1 사용자의 단말(130)에 저장되어 있는 상기 인증 행렬이 갱신된 이후, 제1 사용자의 단말(130)로부터 새로운 액세스 요청 신호가 수신되면, 액세스 관리 서버(110)는 갱신된 상기 인증 행렬을 기초로, 제1 사용자의 단말(130)에 대한 인증을 수행할 수 있을 것이다.
한편, 사설 클라우드 서버(140)에 의해 액세스 관리 서버(110)로 전송되는 상기 데이터에는 중요한 정보가 포함되어 있을 수 있다. 따라서, 상기 데이터에 포함되어 있는 중요한 정보가 외부로 누출되는 것을 방지하기 위해, 사설 클라우드 서버(140)는 상기 데이터를 암호화하여 액세스 관리 서버(110)로 전송할 수 있다.
이와 관련해서, 본 발명의 일실시예에 따르면, 사설 클라우드 서버(140)는 메모리 상에 액세스 관리 서버(110)와 사전 공유하고 있는 사전 설정된 n(n은 2 이상의 자연수임)개의 해시 함수들(상기 n개의 해시 함수들에는 각각 0 이상 n-1 이하의 서로 다른 정수 값이 사전 할당되어 있음)을 저장하고 있을 수 있다. 또한, 사설 클라우드 서버(140)는 액세스 관리 서버(110)로부터 상기 데이터의 전송 요청이 수신되면, 상기 데이터의 전송 요청이 수신된 현재 시점의 날짜 값을 피제수로 하고, n을 제수로 하는 모듈로(modulo) 연산을 수행함으로써 제1 연산 값을 산출하며, 상기 n개의 해시 함수들 중 상기 제1 연산 값이 정수 값으로 할당되어 있는 제1 해시 함수를 추출하고, 상기 데이터의 전송 요청이 수신된 현재 시점의 날짜 값을 상기 제1 해시 함수에 입력으로 인가하여 제1 해시 값을 산출한 후, 상기 데이터를 상기 제1 해시 값으로 암호화하여 액세스 관리 서버(110)로 전송할 수 있다.
여기서, 모듈로 연산은 피제수를 제수로 나누는 나눗셈을 수행하여 그에 대한 나머지(remainder)를 산출하는 연산을 의미한다.
이하에서는, 사설 클라우드 서버(140)의 동작을 예를 들어, 상세히 설명하기로 한다.
먼저, n을 '10'이라고 하는 경우, 사설 클라우드 서버(140)의 메모리 상에는 하기의 표 1과 같은 액세스 관리 서버(110)와 사전 공유하고 있는 사전 설정된 '10'개의 해시 함수들이 저장되어 있을 수 있다.
10개의 해시 함수들 정수 값
해시 함수 1 0
해시 함수 2 1
해시 함수 3 2
해시 함수 4 3
해시 함수 5 4
해시 함수 6 5
해시 함수 7 6
해시 함수 8 7
해시 함수 9 8
해시 함수 10 9
이때, 전술한 예와 같이, 액세스 관리 서버(110)에 의해 상기 데이터의 전송 요청이 전송됨에 따라, 사설 클라우드 서버(140)에 상기 데이터의 전송 요청이 수신되었다고 가정하자.
그러면, 사설 클라우드 서버(140)는 상기 데이터의 전송 요청이 수신된 현재 시점의 날짜 값을 피제수로 하고, '10'을 제수로 하는 모듈로 연산을 수행함으로써, 제1 연산 값을 산출할 수 있다. 관련해서, 상기 데이터의 전송 요청이 수신된 현재 시점의 날짜를 '2020년 10월 20일'이라고 하는 경우, 사설 클라우드 서버(140)는 '20201020'을 피제수로 하고, '10'을 제수로 하는 모듈로 연산을 수행함으로써, 제1 연산 값을 '0'으로 산출할 수 있다.
이때, 상기 표 1에 기록되어 있는 '10'개의 해시 함수들 중 '0'이 정수 값으로 할당되어 있는 해시 함수는 '해시 함수 1'이므로, 사설 클라우드 서버(140)는 '해시 함수 1'을 제1 해시 함수로 추출할 수 있다. 그러고 나서, 사설 클라우드 서버(140)는 '20201020'을 '해시 함수 1'에 입력으로 인가하여 제1 해시 값을 산출할 수 있다.
이렇게, 사설 클라우드 서버(140)에 의해 산출된 상기 제1 해시 값을 '해시 값 1'이라고 하는 경우, 사설 클라우드 서버(140)는 상기 데이터를 '해시 값 1'로 암호화하여 액세스 관리 서버(110)로 전송할 수 있다.
이때, 본 발명의 일실시예에 따르면, 데이터 전송부(117)는 사설 클라우드 서버(140)로부터 상기 데이터가 암호화된 상태로 수신되면, 상기 데이터를 복호화하여 제1 사용자의 단말(130)로 전송하기 위한 구성으로, 해시 함수 저장부(122), 연산 값 산출부(123), 해시 함수 추출부(124), 해시 값 산출부(125) 및 복호화 전송부(126)를 포함할 수 있다.
먼저, 해시 함수 저장부(122)에는 상기 n개의 해시 함수들이 저장되어 있다.
예컨대, 전술한 예와 같이, n을 '10'이라고 하는 경우, 해시 함수 저장부(122)에는 상기 표 1과 같은 '10'개의 해시 함수들이 저장되어 있을 수 있다.
연산 값 산출부(123)는 사설 클라우드 서버(140)로부터 상기 데이터가 상기 제1 해시 값으로 암호화된 상태로 수신되면, 상기 데이터가 수신된 현재 시점의 날짜 값을 피제수로 하고, n을 제수로 하는 모듈로 연산을 수행함으로써, 상기 제1 연산 값을 산출한다.
해시 함수 추출부(124)는 연산 값 산출부(123)에 의해 상기 제1 연산 값이 산출되면, 해시 함수 저장부(122)에 저장되어 있는 상기 n개의 해시 함수들 중 상기 제1 연산 값이 정수 값으로 할당되어 있는 상기 제1 해시 함수를 추출한다.
해시 값 산출부(125)는 해시 함수 추출부(124)에 의해 상기 제1 해시 함수가 추출되면, 상기 데이터가 수신된 현재 시점의 날짜 값을 상기 제1 해시 함수에 입력으로 인가하여, 상기 제1 해시 값을 산출한다.
복호화 전송부(126)는 해시 값 산출부(125)에 의해 상기 제1 해시 값이 산출되면, 상기 데이터를 상기 제1 해시 값으로 복호화한 후 복호화된 상기 데이터를 제1 사용자의 단말(130)로 전송한다.
이하에서는, 연산 값 산출부(123), 해시 함수 추출부(124), 해시 값 산출부(125) 및 복호화 전송부(126)의 동작을 예를 들어, 상세히 설명하기로 한다.
먼저, 전술한 예와 같이, n을 '10'이라고 하고, 사설 클라우드 서버(140)에 의해 상기 데이터가 '해시 값 1'로 암호화된 상태로 전송됨에 따라, 액세스 관리 서버(110)에 암호화된 상기 데이터가 수신되었다고 가정하자.
이때, 액세스 관리 서버(110)에 상기 데이터가 수신된 날짜를 '2020년 10월 20일'이라고 하는 경우, 연산 값 산출부(123)는 '20201020'을 피제수로 하고, '10'을 제수로 하는 모듈로 연산을 수행함으로써, 상기 제1 연산 값을 '0'으로 산출할 수 있다.
그리고, 해시 함수 추출부(124)는 상기 표 1에 기록되어 있는 '10'개의 해시 함수들 중 '0'이 정수 값으로 할당되어 있는 '해시 함수 1'을 추출할 수 있다.
이렇게, 해시 함수 추출부(124)에 의해 '해시 함수 1'이 추출되면, 해시 값 산출부(125)는 '20201020'을 '해시 함수 1'에 입력으로 인가하여, '해시 값 1'을 산출할 수 있다.
그러고 나서, 복호화 전송부(126)는 상기 데이터를 '해시 값 1'로 복호화한 후 복호화된 상기 데이터를 제1 사용자의 단말(130)로 전송할 수 있다.
여기서, 사설 클라우드 서버(140)와 액세스 관리 서버(110)에는 상기 표 1과 같은 사전 공유된 '10'개의 해시 함수들이 저장되어 있고, 사설 클라우드 서버(140)에 의해 암호화된 상태로 전송된 상기 데이터는 상기 '10'개의 해시 함수들을 기초로 하여 암호화된 것이므로, 액세스 관리 서버(110)는 상기 '10'개의 해시 함수들을 기초로 상기 데이터를 복호화함으로써, 상기 데이터에 대한 원본 데이터를 정상적으로 복원할 수 있다.
도 2는 본 발명의 일실시예에 따른 사설 클라우드 서버에 대한 액세스를 관리하는 액세스 관리 서버의 동작 방법을 도시한 순서도이다.
단계(S210)에서는 복수의 사용자들의 단말과 사전 공유하고 있는 k x k(k는 2 이상의 자연수임) 크기의 사전 설정된 인증 행렬이 저장되어 있는 인증 행렬 저장부를 유지한다.
단계(S220)에서는 상기 복수의 사용자들 중 어느 하나인 제1 사용자의 단말로부터, 인증된 사용자만이 액세스 가능하도록 지정된 사설 클라우드 서버에 저장되어 있는 데이터에 대한 액세스 요청 신호가 수신되면, 상기 제1 사용자의 단말에 대한 인증을 수행하기 위한 인증 이벤트를 발생시킨다.
단계(S230)에서는 상기 인증 이벤트가 발생되면, (k+1) x k 크기의 랜덤 행렬을 랜덤하게 생성한다.
단계(S240)에서는 상기 랜덤 행렬이 생성되면, 상기 제1 사용자의 단말로 상기 랜덤 행렬을 전송하면서, 상기 랜덤 행렬에 대응되는 피드백 행렬의 전송을 요청한다.
단계(S250)에서는 상기 제1 사용자의 단말로부터, 상기 랜덤 행렬에 대응되는 피드백 행렬로 제1 피드백 행렬(상기 제1 피드백 행렬은 상기 랜덤 행렬에서 사전 설정된 제1 위치의 행의 성분들이 제거된 k x k 크기의 변형 행렬과, 상기 인증 행렬 간의 아다마르 곱이 연산되어 생성된 행렬임)이 수신되면, 상기 랜덤 행렬에서 상기 제1 위치의 행의 성분들을 제거함으로써 상기 변형 행렬을 생성한 후, 상기 변형 행렬과 상기 인증 행렬 간의 아다마르 곱을 연산하여 제1 연산 행렬을 생성한다.
단계(S260)에서는 상기 제1 연산 행렬이 생성되면, 상기 제1 연산 행렬과 상기 제1 피드백 행렬이 서로 일치하는지 확인하여, 상기 제1 연산 행렬과 상기 제1 피드백 행렬이 서로 일치하는 것으로 확인되면, 상기 제1 사용자의 단말에 대한 인증을 완료 처리한 후, 상기 사설 클라우드 서버로 상기 데이터의 전송을 요청한다.
단계(S270)에서는 상기 사설 클라우드 서버로부터 상기 데이터가 수신되면, 상기 데이터를 상기 제1 사용자의 단말로 전송한다.
이때, 본 발명의 일실시예에 따르면, 상기 제1 사용자의 단말은 메모리 상에 상기 인증 행렬을 저장하고 있고, 상기 액세스 관리 서버로부터, 상기 랜덤 행렬이 수신되면서, 상기 랜덤 행렬에 대응되는 피드백 행렬의 전송 요청이 수신되면, 상기 랜덤 행렬에서 상기 제1 위치의 행의 성분들을 제거하여 상기 변형 행렬을 생성하고, 상기 변형 행렬과 상기 인증 행렬 간의 아다마르 곱을 연산함으로써, 상기 제1 피드백 행렬을 생성한 후, 상기 제1 피드백 행렬을 상기 랜덤 행렬에 대응되는 피드백 행렬로 지정하여 상기 액세스 관리 서버로 전송할 수 있다.
이때, 본 발명의 일실시예에 따르면, 상기 액세스 관리 서버의 동작 방법은 상기 데이터가 상기 제1 사용자의 단말로 전송 완료되면, 0 초과 2 미만의 보정 값들을 성분으로 갖는 k x k 크기의 보정 행렬을 랜덤하게 생성하는 단계, 상기 보정 행렬이 생성되면, 상기 보정 행렬과 상기 인증 행렬을 서로 곱함으로써, 갱신 행렬을 생성하는 단계, 상기 갱신 행렬이 생성되면, 상기 인증 행렬 저장부에 저장되어 있는 상기 인증 행렬을 상기 갱신 행렬로 대체함으로써, 상기 인증 행렬을 갱신하는 단계 및 상기 갱신 행렬을 상기 제1 사용자의 단말로 전송함과 동시에, 상기 제1 사용자의 단말에 대해, 상기 제1 사용자의 단말의 메모리 상에 저장되어 있는 상기 인증 행렬을 상기 갱신 행렬로 대체할 것을 지시하는 갱신 명령을 전송하는 단계를 더 포함할 수 있다.
또한, 본 발명의 일실시예에 따르면, 상기 사설 클라우드 서버는 메모리 상에 상기 액세스 관리 서버와 사전 공유하고 있는 사전 설정된 n(n은 2 이상의 자연수임)개의 해시 함수들(상기 n개의 해시 함수들에는 각각 0 이상 n-1 이하의 서로 다른 정수 값이 사전 할당되어 있음)을 저장하고 있고, 상기 액세스 관리 서버로부터 상기 데이터의 전송 요청이 수신되면, 상기 데이터의 전송 요청이 수신된 현재 시점의 날짜 값을 피제수로 하고, n을 제수로 하는 모듈로 연산을 수행함으로써 제1 연산 값을 산출하며, 상기 n개의 해시 함수들 중 상기 제1 연산 값이 정수 값으로 할당되어 있는 제1 해시 함수를 추출하고, 상기 데이터의 전송 요청이 수신된 현재 시점의 날짜 값을 상기 제1 해시 함수에 입력으로 인가하여 제1 해시 값을 산출한 후, 상기 데이터를 상기 제1 해시 값으로 암호화하여 상기 액세스 관리 서버로 전송할 수 있다.
이때, 본 발명의 일실시예에 따르면, 단계(S270)에서는 상기 n개의 해시 함수들이 저장되어 있는 해시 함수 저장부를 유지하는 단계, 상기 사설 클라우드 서버로부터 상기 데이터가 상기 제1 해시 값으로 암호화된 상태로 수신되면, 상기 데이터가 수신된 현재 시점의 날짜 값을 피제수로 하고, n을 제수로 하는 모듈로 연산을 수행함으로써, 상기 제1 연산 값을 산출하는 단계, 상기 제1 연산 값이 산출되면, 상기 해시 함수 저장부에 저장되어 있는 상기 n개의 해시 함수들 중 상기 제1 연산 값이 정수 값으로 할당되어 있는 상기 제1 해시 함수를 추출하는 단계, 상기 제1 해시 함수가 추출되면, 상기 데이터가 수신된 현재 시점의 날짜 값을 상기 제1 해시 함수에 입력으로 인가하여, 상기 제1 해시 값을 산출하는 단계 및 상기 제1 해시 값이 산출되면, 상기 데이터를 상기 제1 해시 값으로 복호화한 후 복호화된 상기 데이터를 상기 제1 사용자의 단말로 전송하는 단계를 포함할 수 있다.
이상, 도 2를 참조하여 본 발명의 일실시예에 따른 사설 클라우드 서버에 대한 액세스를 관리하는 액세스 관리 서버의 동작 방법에 대해 설명하였다. 여기서, 본 발명의 일실시예에 따른 상기 액세스 관리 서버의 동작 방법은 도 1을 이용하여 설명한 액세스 관리 서버(110)의 동작에 대한 구성과 대응될 수 있으므로, 이에 대한 보다 상세한 설명은 생략하기로 한다.
본 발명의 일실시예에 따른 사설 클라우드 서버에 대한 액세스를 관리하는 액세스 관리 서버의 동작 방법은 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램으로 구현될 수 있다.
또한, 본 발명의 일실시예에 따른 사설 클라우드 서버에 대한 액세스를 관리하는 액세스 관리 서버의 동작 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.
110: 사설 클라우드 서버에 대한 액세스를 관리하는 액세스 관리 서버
111: 인증 행렬 저장부 112: 인증 이벤트 발생부
113: 랜덤 행렬 생성부 114: 피드백 행렬 전송 요청부
115: 연산 행렬 생성부 116: 데이터 전송 요청부
117: 데이터 전송부 118: 보정 행렬 생성부
119: 갱신 행렬 생성부 120: 인증 행렬 갱신부
121: 갱신 명령 전송부 122: 해시 함수 저장부
123: 연산 값 산출부 124: 해시 함수 추출부
125: 해시 값 산출부 126: 복호화 전송부
130: 제1 사용자의 단말
140: 사설 클라우드 서버

Claims (12)

  1. 복수의 사용자들의 단말과 사전 공유하고 있는 k x k(k는 2 이상의 자연수임) 크기의 사전 설정된 인증 행렬이 저장되어 있는 인증 행렬 저장부;
    상기 복수의 사용자들 중 어느 하나인 제1 사용자의 단말로부터, 인증된 사용자만이 액세스 가능하도록 지정된 사설 클라우드 서버에 저장되어 있는 데이터에 대한 액세스 요청 신호가 수신되면, 상기 제1 사용자의 단말에 대한 인증을 수행하기 위한 인증 이벤트를 발생시키는 인증 이벤트 발생부;
    상기 인증 이벤트가 발생되면, (k+1) x k 크기의 랜덤 행렬을 랜덤하게 생성하는 랜덤 행렬 생성부;
    상기 랜덤 행렬이 생성되면, 상기 제1 사용자의 단말로 상기 랜덤 행렬을 전송하면서, 상기 랜덤 행렬에 대응되는 피드백 행렬의 전송을 요청하는 피드백 행렬 전송 요청부;
    상기 제1 사용자의 단말로부터, 상기 랜덤 행렬에 대응되는 피드백 행렬로 제1 피드백 행렬 - 상기 제1 피드백 행렬은 상기 랜덤 행렬에서 사전 설정된 제1 위치의 행의 성분들이 제거된 k x k 크기의 변형 행렬과, 상기 인증 행렬 간의 아다마르 곱(Hadamard product)이 연산되어 생성된 행렬임 - 이 수신되면, 상기 랜덤 행렬에서 상기 제1 위치의 행의 성분들을 제거함으로써 상기 변형 행렬을 생성한 후, 상기 변형 행렬과 상기 인증 행렬 간의 아다마르 곱을 연산하여 제1 연산 행렬을 생성하는 연산 행렬 생성부;
    상기 제1 연산 행렬이 생성되면, 상기 제1 연산 행렬과 상기 제1 피드백 행렬이 서로 일치하는지 확인하여, 상기 제1 연산 행렬과 상기 제1 피드백 행렬이 서로 일치하는 것으로 확인되면, 상기 제1 사용자의 단말에 대한 인증을 완료 처리한 후, 상기 사설 클라우드 서버로 상기 데이터의 전송을 요청하는 데이터 전송 요청부; 및
    상기 사설 클라우드 서버로부터 상기 데이터가 수신되면, 상기 데이터를 상기 제1 사용자의 단말로 전송하는 데이터 전송부
    를 포함하는 사설 클라우드 서버에 대한 액세스를 관리하는 액세스 관리 서버.
  2. 제1항에 있어서,
    상기 제1 사용자의 단말은
    메모리 상에 상기 인증 행렬을 저장하고 있고, 상기 액세스 관리 서버로부터, 상기 랜덤 행렬이 수신되면서, 상기 랜덤 행렬에 대응되는 피드백 행렬의 전송 요청이 수신되면, 상기 랜덤 행렬에서 상기 제1 위치의 행의 성분들을 제거하여 상기 변형 행렬을 생성하고, 상기 변형 행렬과 상기 인증 행렬 간의 아다마르 곱을 연산함으로써, 상기 제1 피드백 행렬을 생성한 후, 상기 제1 피드백 행렬을 상기 랜덤 행렬에 대응되는 피드백 행렬로 지정하여 상기 액세스 관리 서버로 전송하는 것을 특징으로 하는 사설 클라우드 서버에 대한 액세스를 관리하는 액세스 관리 서버.
  3. 제2항에 있어서,
    상기 데이터가 상기 제1 사용자의 단말로 전송 완료되면, 0 초과 2 미만의 보정 값들을 성분으로 갖는 k x k 크기의 보정 행렬을 랜덤하게 생성하는 보정 행렬 생성부;
    상기 보정 행렬이 생성되면, 상기 보정 행렬과 상기 인증 행렬을 서로 곱함으로써, 갱신 행렬을 생성하는 갱신 행렬 생성부;
    상기 갱신 행렬이 생성되면, 상기 인증 행렬 저장부에 저장되어 있는 상기 인증 행렬을 상기 갱신 행렬로 대체함으로써, 상기 인증 행렬을 갱신하는 인증 행렬 갱신부; 및
    상기 갱신 행렬을 상기 제1 사용자의 단말로 전송함과 동시에, 상기 제1 사용자의 단말에 대해, 상기 제1 사용자의 단말의 메모리 상에 저장되어 있는 상기 인증 행렬을 상기 갱신 행렬로 대체할 것을 지시하는 갱신 명령을 전송하는 갱신 명령 전송부
    를 더 포함하는 사설 클라우드 서버에 대한 액세스를 관리하는 액세스 관리 서버.
  4. 제1항에 있어서,
    상기 사설 클라우드 서버는
    메모리 상에 상기 액세스 관리 서버와 사전 공유하고 있는 사전 설정된 n(n은 2 이상의 자연수임)개의 해시 함수들 - 상기 n개의 해시 함수들에는 각각 0 이상 n-1 이하의 서로 다른 정수 값이 사전 할당되어 있음 - 을 저장하고 있고, 상기 액세스 관리 서버로부터 상기 데이터의 전송 요청이 수신되면, 상기 데이터의 전송 요청이 수신된 현재 시점의 날짜 값을 피제수로 하고, n을 제수로 하는 모듈로(modulo) 연산을 수행함으로써 제1 연산 값을 산출하며, 상기 n개의 해시 함수들 중 상기 제1 연산 값이 정수 값으로 할당되어 있는 제1 해시 함수를 추출하고, 상기 데이터의 전송 요청이 수신된 현재 시점의 날짜 값을 상기 제1 해시 함수에 입력으로 인가하여 제1 해시 값을 산출한 후, 상기 데이터를 상기 제1 해시 값으로 암호화하여 상기 액세스 관리 서버로 전송하는 것을 특징으로 하는 사설 클라우드 서버에 대한 액세스를 관리하는 액세스 관리 서버.
  5. 제4항에 있어서,
    상기 데이터 전송부는
    상기 n개의 해시 함수들이 저장되어 있는 해시 함수 저장부;
    상기 사설 클라우드 서버로부터 상기 데이터가 상기 제1 해시 값으로 암호화된 상태로 수신되면, 상기 데이터가 수신된 현재 시점의 날짜 값을 피제수로 하고, n을 제수로 하는 모듈로 연산을 수행함으로써, 상기 제1 연산 값을 산출하는 연산 값 산출부;
    상기 제1 연산 값이 산출되면, 상기 해시 함수 저장부에 저장되어 있는 상기 n개의 해시 함수들 중 상기 제1 연산 값이 정수 값으로 할당되어 있는 상기 제1 해시 함수를 추출하는 해시 함수 추출부;
    상기 제1 해시 함수가 추출되면, 상기 데이터가 수신된 현재 시점의 날짜 값을 상기 제1 해시 함수에 입력으로 인가하여, 상기 제1 해시 값을 산출하는 해시 값 산출부; 및
    상기 제1 해시 값이 산출되면, 상기 데이터를 상기 제1 해시 값으로 복호화한 후 복호화된 상기 데이터를 상기 제1 사용자의 단말로 전송하는 복호화 전송부
    를 포함하는 사설 클라우드 서버에 대한 액세스를 관리하는 액세스 관리 서버.
  6. 복수의 사용자들의 단말과 사전 공유하고 있는 k x k(k는 2 이상의 자연수임) 크기의 사전 설정된 인증 행렬이 저장되어 있는 인증 행렬 저장부를 유지하는 단계;
    상기 복수의 사용자들 중 어느 하나인 제1 사용자의 단말로부터, 인증된 사용자만이 액세스 가능하도록 지정된 사설 클라우드 서버에 저장되어 있는 데이터에 대한 액세스 요청 신호가 수신되면, 상기 제1 사용자의 단말에 대한 인증을 수행하기 위한 인증 이벤트를 발생시키는 단계;
    상기 인증 이벤트가 발생되면, (k+1) x k 크기의 랜덤 행렬을 랜덤하게 생성하는 단계;
    상기 랜덤 행렬이 생성되면, 상기 제1 사용자의 단말로 상기 랜덤 행렬을 전송하면서, 상기 랜덤 행렬에 대응되는 피드백 행렬의 전송을 요청하는 단계;
    상기 제1 사용자의 단말로부터, 상기 랜덤 행렬에 대응되는 피드백 행렬로 제1 피드백 행렬 - 상기 제1 피드백 행렬은 상기 랜덤 행렬에서 사전 설정된 제1 위치의 행의 성분들이 제거된 k x k 크기의 변형 행렬과, 상기 인증 행렬 간의 아다마르 곱(Hadamard product)이 연산되어 생성된 행렬임 - 이 수신되면, 상기 랜덤 행렬에서 상기 제1 위치의 행의 성분들을 제거함으로써 상기 변형 행렬을 생성한 후, 상기 변형 행렬과 상기 인증 행렬 간의 아다마르 곱을 연산하여 제1 연산 행렬을 생성하는 단계;
    상기 제1 연산 행렬이 생성되면, 상기 제1 연산 행렬과 상기 제1 피드백 행렬이 서로 일치하는지 확인하여, 상기 제1 연산 행렬과 상기 제1 피드백 행렬이 서로 일치하는 것으로 확인되면, 상기 제1 사용자의 단말에 대한 인증을 완료 처리한 후, 상기 사설 클라우드 서버로 상기 데이터의 전송을 요청하는 단계; 및
    상기 사설 클라우드 서버로부터 상기 데이터가 수신되면, 상기 데이터를 상기 제1 사용자의 단말로 전송하는 단계
    를 포함하는 사설 클라우드 서버에 대한 액세스를 관리하는 액세스 관리 서버의 동작 방법.
  7. 제6항에 있어서,
    상기 제1 사용자의 단말은
    메모리 상에 상기 인증 행렬을 저장하고 있고, 상기 액세스 관리 서버로부터, 상기 랜덤 행렬이 수신되면서, 상기 랜덤 행렬에 대응되는 피드백 행렬의 전송 요청이 수신되면, 상기 랜덤 행렬에서 상기 제1 위치의 행의 성분들을 제거하여 상기 변형 행렬을 생성하고, 상기 변형 행렬과 상기 인증 행렬 간의 아다마르 곱을 연산함으로써, 상기 제1 피드백 행렬을 생성한 후, 상기 제1 피드백 행렬을 상기 랜덤 행렬에 대응되는 피드백 행렬로 지정하여 상기 액세스 관리 서버로 전송하는 것을 특징으로 하는 사설 클라우드 서버에 대한 액세스를 관리하는 액세스 관리 서버의 동작 방법.
  8. 제7항에 있어서,
    상기 데이터가 상기 제1 사용자의 단말로 전송 완료되면, 0 초과 2 미만의 보정 값들을 성분으로 갖는 k x k 크기의 보정 행렬을 랜덤하게 생성하는 단계;
    상기 보정 행렬이 생성되면, 상기 보정 행렬과 상기 인증 행렬을 서로 곱함으로써, 갱신 행렬을 생성하는 단계;
    상기 갱신 행렬이 생성되면, 상기 인증 행렬 저장부에 저장되어 있는 상기 인증 행렬을 상기 갱신 행렬로 대체함으로써, 상기 인증 행렬을 갱신하는 단계; 및
    상기 갱신 행렬을 상기 제1 사용자의 단말로 전송함과 동시에, 상기 제1 사용자의 단말에 대해, 상기 제1 사용자의 단말의 메모리 상에 저장되어 있는 상기 인증 행렬을 상기 갱신 행렬로 대체할 것을 지시하는 갱신 명령을 전송하는 단계
    를 더 포함하는 사설 클라우드 서버에 대한 액세스를 관리하는 액세스 관리 서버의 동작 방법.
  9. 제6항에 있어서,
    상기 사설 클라우드 서버는
    메모리 상에 상기 액세스 관리 서버와 사전 공유하고 있는 사전 설정된 n(n은 2 이상의 자연수임)개의 해시 함수들 - 상기 n개의 해시 함수들에는 각각 0 이상 n-1 이하의 서로 다른 정수 값이 사전 할당되어 있음 - 을 저장하고 있고, 상기 액세스 관리 서버로부터 상기 데이터의 전송 요청이 수신되면, 상기 데이터의 전송 요청이 수신된 현재 시점의 날짜 값을 피제수로 하고, n을 제수로 하는 모듈로(modulo) 연산을 수행함으로써 제1 연산 값을 산출하며, 상기 n개의 해시 함수들 중 상기 제1 연산 값이 정수 값으로 할당되어 있는 제1 해시 함수를 추출하고, 상기 데이터의 전송 요청이 수신된 현재 시점의 날짜 값을 상기 제1 해시 함수에 입력으로 인가하여 제1 해시 값을 산출한 후, 상기 데이터를 상기 제1 해시 값으로 암호화하여 상기 액세스 관리 서버로 전송하는 것을 특징으로 하는 사설 클라우드 서버에 대한 액세스를 관리하는 액세스 관리 서버의 동작 방법.
  10. 제9항에 있어서,
    상기 데이터를 상기 제1 사용자의 단말로 전송하는 단계는
    상기 n개의 해시 함수들이 저장되어 있는 해시 함수 저장부를 유지하는 단계;
    상기 사설 클라우드 서버로부터 상기 데이터가 상기 제1 해시 값으로 암호화된 상태로 수신되면, 상기 데이터가 수신된 현재 시점의 날짜 값을 피제수로 하고, n을 제수로 하는 모듈로 연산을 수행함으로써, 상기 제1 연산 값을 산출하는 단계;
    상기 제1 연산 값이 산출되면, 상기 해시 함수 저장부에 저장되어 있는 상기 n개의 해시 함수들 중 상기 제1 연산 값이 정수 값으로 할당되어 있는 상기 제1 해시 함수를 추출하는 단계;
    상기 제1 해시 함수가 추출되면, 상기 데이터가 수신된 현재 시점의 날짜 값을 상기 제1 해시 함수에 입력으로 인가하여, 상기 제1 해시 값을 산출하는 단계; 및
    상기 제1 해시 값이 산출되면, 상기 데이터를 상기 제1 해시 값으로 복호화한 후 복호화된 상기 데이터를 상기 제1 사용자의 단말로 전송하는 단계
    를 포함하는 사설 클라우드 서버에 대한 액세스를 관리하는 액세스 관리 서버의 동작 방법.
  11. 제6항 내지 제10항 중 어느 한 항의 방법을 컴퓨터와의 결합을 통해 실행시키기 위한 컴퓨터 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.
  12. 제6항 내지 제10항 중 어느 한 항의 방법을 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램.
KR1020200139605A 2020-10-26 2020-10-26 사설 클라우드 서버에 대한 액세스를 관리하는 액세스 관리 서버 및 그 동작 방법 KR102442674B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200139605A KR102442674B1 (ko) 2020-10-26 2020-10-26 사설 클라우드 서버에 대한 액세스를 관리하는 액세스 관리 서버 및 그 동작 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200139605A KR102442674B1 (ko) 2020-10-26 2020-10-26 사설 클라우드 서버에 대한 액세스를 관리하는 액세스 관리 서버 및 그 동작 방법

Publications (2)

Publication Number Publication Date
KR20220055301A true KR20220055301A (ko) 2022-05-03
KR102442674B1 KR102442674B1 (ko) 2022-09-13

Family

ID=81591229

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200139605A KR102442674B1 (ko) 2020-10-26 2020-10-26 사설 클라우드 서버에 대한 액세스를 관리하는 액세스 관리 서버 및 그 동작 방법

Country Status (1)

Country Link
KR (1) KR102442674B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102513228B1 (ko) * 2022-08-25 2023-03-23 (주)나래데이터 데이터 변환 규칙에 따라 데이터의 표시 형식을 자동 변환하여 이관할 수 있는 전자 장치 및 그 동작 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120132708A (ko) * 2011-05-26 2012-12-10 동국대학교 경주캠퍼스 산학협력단 클라우드 컴퓨팅 환경에서의 접근 권한 분산 관리 장치 및 그 방법
KR102126998B1 (ko) * 2020-02-03 2020-06-25 주식회사 다날 생체 정보와 비밀번호 기반의 회원 인증을 통한 결제 처리를 지원하는 결제 처리 대행 서버 및 그 동작 방법
KR102168327B1 (ko) * 2019-10-28 2020-10-21 주식회사 한글과컴퓨터 차량용 단말의 위치 정보를 기초로 알림 메시지의 공유를 지원하는 알림 메시지 공유 서비스 장치 및 그 동작 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120132708A (ko) * 2011-05-26 2012-12-10 동국대학교 경주캠퍼스 산학협력단 클라우드 컴퓨팅 환경에서의 접근 권한 분산 관리 장치 및 그 방법
KR102168327B1 (ko) * 2019-10-28 2020-10-21 주식회사 한글과컴퓨터 차량용 단말의 위치 정보를 기초로 알림 메시지의 공유를 지원하는 알림 메시지 공유 서비스 장치 및 그 동작 방법
KR102126998B1 (ko) * 2020-02-03 2020-06-25 주식회사 다날 생체 정보와 비밀번호 기반의 회원 인증을 통한 결제 처리를 지원하는 결제 처리 대행 서버 및 그 동작 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102513228B1 (ko) * 2022-08-25 2023-03-23 (주)나래데이터 데이터 변환 규칙에 따라 데이터의 표시 형식을 자동 변환하여 이관할 수 있는 전자 장치 및 그 동작 방법

Also Published As

Publication number Publication date
KR102442674B1 (ko) 2022-09-13

Similar Documents

Publication Publication Date Title
CN111191286B (zh) Hyperledger Fabric区块链隐私数据存储与访问系统及其方法
Yan et al. Deduplication on encrypted big data in cloud
CN106664202B (zh) 提供多个设备上的加密的方法、系统和计算机可读介质
JP6547079B1 (ja) 登録・認可方法、装置及びシステム
US10284372B2 (en) Method and system for secure management of computer applications
US10320765B2 (en) Method and system for securing communication
EP4191430A1 (en) Data processing method and apparatus applied to blockchain system
Gao et al. BSSPD: A Blockchain‐Based Security Sharing Scheme for Personal Data with Fine‐Grained Access Control
KR102295263B1 (ko) 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치 및 그 동작 방법
US9641328B1 (en) Generation of public-private key pairs
US11321471B2 (en) Encrypted storage of data
KR102303431B1 (ko) 당사자 간의 전자 계약을 지원하는 블록체인 기반의 전자 계약 관리 시스템 장치 및 그 동작 방법
US20200403789A1 (en) Cryptographic key generation using external entropy generation
US20220407683A1 (en) Data extraction system, data extraction method, registration apparatus, and program
KR102442674B1 (ko) 사설 클라우드 서버에 대한 액세스를 관리하는 액세스 관리 서버 및 그 동작 방법
KR102328057B1 (ko) 단말 정보에 기반하여 문서 파일의 암호화가 수행되도록 지원하는 문서 보안 서비스 서버 및 그 동작 방법
CN115766173A (zh) 数据的处理方法、系统及装置
CN111639349B (zh) 一种数据加密处理方法、装置和存储介质
WO2022150386A1 (en) Decentralized multi-authority attribute-based encryption from bilinear diffie-hellman assumptions
JP7377487B2 (ja) 鍵交換システム、通信装置、鍵交換方法及びプログラム
KR102126295B1 (ko) 암호문 비교 방법 및 이를 수행하기 위한 장치
KR102602189B1 (ko) 클라우드 기반의 문서 공유 서비스를 운영하기 위한 문서 공유 서비스 서버 및 그 동작 방법
KR20210036700A (ko) 트랜잭션에 포함된 평문 데이터의 변경을 지원하는 블록체인 시스템
Xie et al. Assured Deletion: A Scheme Based on Strong Nonseparability
CN112400295A (zh) 管理与单个公共密钥相关联的多个用户设备的中央私密密钥

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant