KR101728945B1 - 사용자들간의 관계의 존재를 판단하는 시스템 및 방법 - Google Patents

사용자들간의 관계의 존재를 판단하는 시스템 및 방법 Download PDF

Info

Publication number
KR101728945B1
KR101728945B1 KR1020150080642A KR20150080642A KR101728945B1 KR 101728945 B1 KR101728945 B1 KR 101728945B1 KR 1020150080642 A KR1020150080642 A KR 1020150080642A KR 20150080642 A KR20150080642 A KR 20150080642A KR 101728945 B1 KR101728945 B1 KR 101728945B1
Authority
KR
South Korea
Prior art keywords
user
data
information
users
modulation data
Prior art date
Application number
KR1020150080642A
Other languages
English (en)
Other versions
KR20160144178A (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 KR1020150080642A priority Critical patent/KR101728945B1/ko
Publication of KR20160144178A publication Critical patent/KR20160144178A/ko
Application granted granted Critical
Publication of KR101728945B1 publication Critical patent/KR101728945B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/01Social networking
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/30Transportation; Communications

Abstract

사용자들간의 관계의 존재를 판단하는 시스템 및 방법이 개시된다. 컴퓨터로 구현되는 방법은, 전자 기기에서 구동되는 어플리케이션의 제어에 따라 상기 전자 기기에서 생성되어 네트워크를 통해 전송되는 변조 데이터를 수신하는 단계 상기 변조 데이터는 상기 전자 기기의 사용자와 인적 관계를 갖는 다른 사용자들의 정보를 상기 전자 기기가 상기 어플리케이션의 제어에 따라 일방향함수를 이용하여 기 정의된 형태로 변조한 데이터를 포함함 -; 수신된 변조 데이터를 상기 사용자 또는 상기 전자 기기와 연관하여 데이터베이스에 저장 및 관리하는 단계; 및 제공하고자 하는 서비스와 연관된 제1 사용자 및 제2 사용자에 대해, 상기 제1 사용자와 연관하여 상기 데이터베이스에 저장된 변조 데이터 및 상기 제2 사용자와 연관하여 상기 데이터베이스에 저장된 변조 데이터를 비교하고, 상기 비교의 결과에 기반하여 상기 제1 사용자와 상기 제2 사용자간의 인적 관계의 존재 여부를 결정하는 단계를 포함할 수 있다.

Description

사용자들간의 관계의 존재를 판단하는 시스템 및 방법{SYSTEM AND METHOD FOR DETERMINING EXISTENCE OF RELATIONSHIP BETWEEN USERS}
아래의 설명은 사용자들간에 친구나 지인과 같은 인적 관계가 존재하는지 여부를 판단하는 시스템 및 방법에 관한 것이다.
채팅 서비스나 송금 서비스 등과 같이, 둘 이상의 사용자들을 연계하여 서비스를 제공하는 시스템의 관점에서는 연계된 사용자들간에 친구나 지인과 같은 인적 관계가 존재하는지 여부를 판단해야 하는 요구가 존재한다. 예를 들어 제1 사용자에게 메시지를 전송하는 제2 사용자가 제1 사용자의 친구나 지인과 같은 인적 관계가 없는 제 3자인지 여부를 시스템 레벨에서 판단해야 할 필요성이 존재한다.
다만, 프라이버시 보호를 위해 시스템은 제1 사용자의 지인 정보를 특정하거나 알 수 없어야 하고 서로 통신하는 두 사용자들간의 인적 관계에 대한 직접적인 정보를 가지고 있지 않아야 한다. 다시 말해, 익명성이 보장되면서도 서비스의 제공을 위해 서로 연계되는 사용자들간의 관계를 판단할 수 있는 기술이 요구된다.
사용자들이 갖고 있는 친구나 지인과 같은 인적 관계에 대한 특정 정보(예를 들어, 이름, 전화번호, 이메일 주소 등)를 일방향함수를 포함하는 기설정된 메커니즘을 이용하여 기 정의된 형태(일례로 고정된 길이)의 데이터로 변조하고, 사용자들의 변조된 데이터들을 이용하여 사용자들간의 인적 관계의 존재 여부를 판단함으로써 익명성을 보장하여 사용자들의 프라이버시를 보호하면서도 서비스의 제공을 위해 연계되는 사용자들간의 관계 여부를 확인할 수 있는 시스템 및 방법을 제공한다.
컴퓨터로 구현되는 방법에 있어서, 전자 기기에서 구동되는 어플리케이션의 제어에 따라 상기 전자 기기에서 생성되어 네트워크를 통해 전송되는 변조 데이터를 수신하는 단계 - 상기 변조 데이터는 상기 전자 기기의 사용자와 인적 관계를 갖는 다른 사용자들의 정보를 상기 전자 기기가 상기 어플리케이션의 제어에 따라 일방향함수를 이용하여 기 정의된 형태로 변조한 데이터를 포함함 -; 수신된 변조 데이터를 상기 사용자 또는 상기 전자 기기와 연관하여 데이터베이스에 저장 및 관리하는 단계; 및 제공하고자 하는 서비스와 연관된 제1 사용자 및 제2 사용자에 대해, 상기 제1 사용자와 연관하여 상기 데이터베이스에 저장된 변조 데이터 및 상기 제2 사용자와 연관하여 상기 데이터베이스에 저장된 변조 데이터를 비교하고, 상기 비교의 결과에 기반하여 상기 제1 사용자와 상기 제2 사용자간의 인적 관계의 존재 여부를 결정하는 단계를 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법을 제공한다.
컴퓨터로 구현되는 방법에 있어서, 구동되는 어플리케이션의 제어에 따라 사용자와 인적 관계를 갖는 다른 사용자들의 정보를 일방향함수를 이용하여 기 정의된 형태로 변조하여 변조 데이터를 생성하는 단계; 및 상기 생성된 변조 데이터를 상기 어플리케이션의 제어에 따라 네트워크를 통해 서버로 전송하는 단계를 포함하고, 상기 서버에서 상기 사용자의 변조 데이터와 다른 사용자의 변조 데이터를 비교하고, 상기 비교의 결과에 기반하여 상기 사용자와 상기 다른 사용자간의 인적 관계의 존재 여부가 결정되는 것을 특징으로 하는 컴퓨터로 구현되는 방법을 제공한다.
하나 이상의 프로세서들을 포함하는 시스템에 있어서, 상기 하나 이상의 프로세서들은, 전자 기기에서 구동되는 어플리케이션의 제어에 따라 상기 전자 기기에서 생성되어 네트워크를 통해 전송되는 변조 데이터를 수신하는 변조 데이터 수신부 - 상기 변조 데이터는 상기 전자 기기의 사용자와 인적 관계를 갖는 다른 사용자들의 정보를 상기 전자 기기가 상기 어플리케이션의 제어에 따라 일방향함수를 이용하여 기 정의된 형태로 변조한 데이터를 포함함 -; 수신된 변조 데이터를 상기 사용자 또는 상기 전자 기기와 연관하여 데이터베이스에 저장 및 관리하는 변조 데이터 관리부; 및 제공하고자 하는 서비스와 연관된 제1 사용자 및 제2 사용자에 대해, 상기 제1 사용자와 연관하여 상기 데이터베이스에 저장된 변조 데이터 및 상기 제2 사용자와 연관하여 상기 데이터베이스에 저장된 변조 데이터를 비교하고, 상기 비교의 결과에 기반하여 상기 제1 사용자와 상기 제2 사용자간의 인적 관계의 존재 여부를 결정하는 인적 관계 결정부를 포함하는 것을 특징으로 하는 시스템을 제공한다.
하나 이상의 프로세서들을 포함하는 시스템에 있어서, 상기 하나 이상의 프로세서들은, 구동되는 어플리케이션의 제어에 따라 사용자와 인적 관계를 갖는 다른 사용자들의 정보를 일방향함수를 이용하여 기 정의된 형태로 변조하여 변조 데이터를 생성하는 변조 데이터 생성부; 및 상기 생성된 변조 데이터를 상기 어플리케이션의 제어에 따라 네트워크를 통해 서버로 전송하는 변조 데이터 전송부를 포함하고, 상기 서버에서 상기 사용자의 변조 데이터와 다른 사용자의 변조 데이터를 비교하고, 상기 비교의 결과에 기반하여 상기 사용자와 상기 다른 사용자간의 인적 관계의 존재 여부가 결정되는 것을 특징으로 하는 시스템을 제공한다.
사용자들이 갖고 있는 친구나 지인과 같은 인적 관계에 대한 특정 정보(예를 들어, 이름, 전화번호, 이메일 주소 등)를 일방향함수를 포함하는 기설정된 메커니즘을 이용하여 기 정의된 형태의 데이터로 변조하고, 사용자들의 변조된 데이터들을 이용하여 사용자들간의 인적 관계의 존재 여부를 판단함으로써 익명성을 보장하여 사용자들의 프라이버시를 보호하면서도 서비스의 제공을 위해 연계되는 사용자들간의 관계 여부를 확인할 수 있다.
도 1은 본 발명의 일실시예에 따른 시스템의 동작 환경의 예를 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 전자 기기와 서버의 내부 구성을 설명하기 위한 블록도이다.
도 3은 본 발명의 일실시예에 따른 서버가 포함하는 프로세서를 설명하기 위한 블록도이다.
도 4는 본 발명의 일실시예에 있어서, 서버가 수행하는 방법을 도시한 흐름도이다.
도 5는 본 발명의 일실시예에 있어서 전자 기기가 포함하는 프로세서를 설명하기 위한 블록도이다.
도 6은 본 발명의 일실시예에 있어서, 전자 기기가 수행하는 방법을 도시한 흐름도이다.
도 7은 본 발명의 일실시예에 있어서 변조 데이터의 생성 과정의 예를 도시한 도면이다.
도 8은 본 발명의 일실시예에 있어서, 비트스트림의 비트가 설정된 순서에 대한 정보를 설명하기 위한 도면이다.
도 9는 본 발명의 일실시예에 있어서 두 사용자의 변조 데이터들의 예를 도시한 도면이다.
도 10은 본 발명의 일실시예에 있어서 사용자들간의 인적 관계의 존재 여부를 판단하는 과정의 예를 도시한 도면이다.
이하, 실시예를 첨부한 도면을 참조하여 상세히 설명한다.
도 1은 본 발명의 일실시예에 따른 시스템의 동작 환경의 예를 도시한 도면이다. 본 실시예에 따른 시스템의 동작 환경은 전자 기기(110, 120, 130, 140), 서버(150, 160) 및 네트워크(170)를 포함할 수 있다. 도 1의 실시예에서는 4개의 전자 기기(110, 120, 130, 140)와 두 개의 서버(150, 160)를 도시하고 있으나 이는 설명의 편의를 위한 것일 뿐, 이에 한정되지 않는다.
전자 기기(110, 120, 130, 140)는 네트워크(170)를 통해 다른 전자 기기 및/또는 서버(150, 160)에 접속하여 서비스를 제공받을 수 있는 장치의 예로서 전자 기기(110, 120, 130, 140) 각각은 고정형 단말이거나 이동형 단말일 수 있다. 전자 기기(110, 120, 130, 140)의 예를 들면, 스마트폰(smart phone), 휴대폰, 내비게이션, 컴퓨터, 노트북, 디지털방송용 단말, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 태블릿 PC 등이 있다.
통신 방식은 제한되지 않으며, 네트워크(170)가 포함할 수 있는 통신망(일례로, 이동통신망, 유선 인터넷, 무선 인터넷, 방송망)을 활용하는 통신 방식뿐만 아니라 기기들간의 근거리 무선 통신 역시 포함될 수 있다.
네트워크(170)는 일례로, PAN(personal area network), LAN(local area network), CAN(campus area network), MAN(metropolitan area network), WAN(wide area network), BBN(broadband network), 인터넷 등의 네트워크 중 하나 이상의 임의의 네트워크를 포함할 수 있다. 또한, 네트워크(170)는 버스 네트워크, 스타 네트워크, 링 네트워크, 메쉬 네트워크, 스타-버스 네트워크, 트리 또는 계층적(hierarchical) 네트워크 등을 포함하는 네트워크 토폴로지 중 임의의 하나 이상을 포함할 수 있으나, 이에 제한되지 않는다.
서버(150, 160) 각각은 전자 기기(110, 120, 130, 140)와 네트워크(170)를 통해 통신하여 서비스나 컨텐츠를 제공하는 장치 또는 복수의 장치들로 구현될 수 있다. 서버(150, 160)는 전자 기기(110, 120, 130, 140)로 서비스나 컨텐츠를 제공하기 위한 하나의 시스템을 구성하도록 구축될 수도 있고, 또는 각기 서로 다른 서비스나 컨텐츠를 제공하는 개별 시스템들일 수도 있다. 예를 들어, 서버(150)는 전자 기기(110, 120, 130, 140)로 서비스를 제공하면서 사용자들간의 인적 관계를 결정하는 시스템일 수 있고, 서버(160)는 서버(150)가 제공하는 서비스를 위한 어플리케이션의 설치 파일을 배포하는 파일 배포 시스템일 수 있다.
서버(150, 160)는 전자 기기(110, 120, 130, 140)를 통한 사용자의 요청에 따라 전자 기기(110, 120, 130, 140)로 서비스나 컨텐츠를 제공할 수 있다. 일례로 전자 기기(110, 120, 130, 140)는 서버(150, 160)가 제공하는 코드, 파일 데이터 등을 수신하고, 전자 기기(110, 120, 130, 140)에 설치된 프로그램(어플리케이션)과 수신된 코드, 파일, 데이터 등을 이용하여 서버(150, 160)가 제공하는 서비스나 컨텐츠를 제공받을 수 있게 된다.
이하에서는 스마트폰과 같은 하나의 전자 기기(110)와 서버(150)의 관점에서 본 발명의 다양한 실시예들에 대해 설명한다.
도 2는 본 발명의 일실시예에 따른 전자 기기와 서버의 내부 구성을 설명하기 위한 블록도이다. 전자 기기(110)는 메모리(211), 프로세서(212), 통신 모듈(213) 및 입출력 인터페이스(214)를 포함할 수 있다. 유사하게 서버(150)도 메모리(221), 프로세서(222), 통신 모듈(223) 및 입출력 인터페이스(224)를 포함할 수 있다.
메모리(211, 221)는 컴퓨터에서 판독 가능한 기록 매체로서, RAM(random access memory), ROM(read only memory) 및 디스크 드라이브와 같은 비소멸성 대용량 기록장치(permanent mass storage device)를 포함할 수 있다. 또한, 메모리(211, 221)에는 운영체제와 적어도 하나의 프로그램 코드가 저장될 수 있다. 예를 들어, 전자 기기(110)의 메모리(211)에 저장되는 적어도 하나의 프로그램 코드는 서버(150)의 서비스를 제공받기 위해 전자 기기(110)에 설치되는 어플리케이션의 코드를 포함할 수 있다. 이러한 소프트웨어 구성요소들은 드라이브 메커니즘(drive mechanism)을 이용하여 메모리(211, 221)와는 별도의 컴퓨터에서 판독 가능한 기록 매체로부터 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독 가능한 기록 매체는 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독 가능한 기록 매체를 포함할 수 있다. 다른 실시예에서 소프트웨어 구성요소들은 컴퓨터에서 판독 가능한 기록 매체가 아닌 통신 모듈(213, 223)을 통해 메모리(211, 221)에 로딩될 수도 있다. 예를 들어, 적어도 하나의 프로그램 코드는 개발자들이 네트워크(170)를 통해 제공하는 파일들에 의해 설치되는 프로그램에 기반하여 메모리(211, 221)에 로딩될 수 있다.
프로세서(212, 222)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램(일례로 상술한 적어도 하나의 프로그램 코드)의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(211, 221) 또는 통신 모듈(213, 223)에 의해 프로세서(212, 222)로 제공될 수 있다.
통신 모듈(213, 223)은 네트워크(170)를 통해 다른 기기(전자 기기(110)의 관점에서는 서버(150), 서버(150)의 관점에서는 전자 기기(110))와 통신하기 위한 기능을 제공할 수 있다. 일례로, 전자 기기(110)의 프로세서(212)에서 사용자의 입력에 따라 발생한 요청 메시지가 통신 모듈(213)의 제어에 따라 네트워크(170)를 통해 서버(150)로 전달될 수 있다. 역으로, 서버(150)가 통신 모듈(223)과 네트워크(170)를 통해 전송하는 데이터가 통신 모듈(213)을 통해 전자 기기(110)로 수신될 수 있다.
입출력 인터페이스(214, 224)는 전자 기기(110)나 서버(150)가 더 포함하거나 또는 전자 기기(110)나 서버(150)와 연관된 입출력 장치와의 연결을 위한 기능을 제공할 수 있다. 예를 들어 입력 장치로는 마우스, 키보드, 터치패널, 마이크 등이 포함될 수 있고 출력 장치로는 스피커, 디스플레이, 터치스크린 등이 포함될 수 있다. 예를 들어, 전자 기기(110)의 프로세서(212)를 통해 렌더링된 서비스 화면(215)이 구성되어 전자 기기(110)에 연결된 디스플레이를 통해 표시될 수 있다.
또한, 다른 실시예들에서 전자 기기(110) 또는 서버(150)는 도 2의 구성요소들보다 더 많은 구성요소들을 포함할 수도 있다. 그러나, 대부분의 종래기술적 구성요소들을 명확하게 도시할 필요성은 없다. 예를 들어, 전자 기기(110) 또는 서버(150)는 터치스크린과 같은 디스플레이나 트랜시버(transceiver), GPS(Global Positioning System) 모듈 등과 같은 다른 구성요소들을 더 포함할 수도 있다.
서버(150)는 전자 기기(110)뿐만 아니라 도 2에 도시된 다른 전자 기기(230)와도 통신할 수 있고, 두 전자 기기들(110, 230)에 연관된 서비스(예를 들어, 채팅 서비스나 송금 서비스, 소셜 네트워크 서비스 등)를 제공할 수 있다.
도 3은 본 발명의 일실시예에 따른 서버가 포함하는 프로세서를 설명하기 위한 블록도이고, 도 4는 본 발명의 일실시예에 있어서, 서버가 수행하는 방법을 도시한 흐름도이다. 서버(150)에 포함된 프로세서(222)는 도 3에 도시된 바와 같이 변조 데이터 수신부(310), 변조 데이터 관리부(320) 및 인적 관계 결정부(330)를 포함할 수 있고, 이러한 구성요소들은 도 4의 방법이 포함하는 단계들(410 내지 430)을 메모리(221)가 포함하는 운영체제와 적어도 하나의 프로그램 코드를 통해 실행하도록 구현될 수 있다.
단계(410)에서 변조 데이터 수신부(310)는 전자 기기에서 구동되는 어플리케이션의 제어에 따라 전자 기기에서 생성되어 네트워크를 통해 전송되는 변조 데이터를 수신할 수 있다.
예를 들어 상기 어플리케이션이 설치되는 전자 기기들은 모두 어플리케이션의 제어에 따라 변조 데이터를 생성하여 서버(150)로 전송할 수 있다. 이때, 변조 데이터를 생성하여 전송하는 시점은 어플리케이션이 구동되는 시점, 어플리케이션을 통해 서버(150)로부터 서비스를 제공받는 시점, 전자 기기가 서버(150)로 데이터나 메시지 등을 전송하는 시점, 서버(150)로부터 데이터나 메시지를 수신하는 시점 등과 같이 매우 다양한 시점들 중 적어도 하나의 시점을 포함할 수 있다. 예를 들어 전자 기기는 어플리케이션이 구동될 때마다 변조 데이터를 생성하여 서버(150)로 전송할 수 있다. 다른 예로 전자 기기는 채팅 어플리케이션을 통해 메시지를 서버(150)로 전송하는 시점마다 변조 데이터를 생성하여 서버(150)로 전송할 수 있다. 또 다른 예로 전자 기기는 금융 어플리케이션을 통해 금액을 송금하고자 할 때마다 변조 데이터를 생성하여 서버(150)로 전송할 수 있다. 이처럼 변조 데이터의 생성 및 전송의 시점은 매우 다양할 수 있으며 서버(150)가 제공하는 서비스나 정책에 따라 기설정될 수 있다.
변조 데이터는 전자 기기의 사용자와 인적 관계를 갖는 다른 사용자들의 정보를 전자 기기가 어플리케이션의 제어에 따라 변조한 데이터일 수 있다. 이때, 어플리케이션은 기설정된 일방향함수(일례로 기설정된 해쉬 함수)를 이용하여 정보들을 기 정의된 형태의 데이터로 변조할 수 있다. 예를 들어, 정보들은 일방향함수의 입력 파라미터로 적용될 수 있고, 일방향함수의 출력은 고정된 길이를 갖는 데이터일 수 있다. 구체적인 예로 이메일 주소와 같이 서로 다른 길이의 정보들이 입력되더라도 일방향함수의 출력은 항상 동일한 자리수의 이진수를 출력할 수 있다. 다른 예로 일방향함수의 출력은 십진수 값이거나 문자값, 또는 문자값들의 배열일 수도 있다. 다시 말해 일방향함수는 해쉬 함수와 같이 다른 사용자들의 정보에 대한 익명성을 위해 원래의 정보를 복원할 수 없도록 변조 가능한 함수라면 그 종류나 변조 방식과 무관하게 활용될 수 있다. 다만 동일한 입력값에 대해 항상 동일한 출력값을 가져야 함은 보장되어야 한다. 사용자와 인적 관계를 갖는 다른 사용자들은 일례로 사용자의 컨택 리스트(contact list)에 포함된 사용자들일 수 있고, 다른 사용자들의 정보는 컨택 리스트에 포함된 이름, 전화번호, 이메일 주소 등과 같이 다른 사용자를 나타낼 수 있는 어떠한 정보라도 상관 없다. 전자 기기는 전자 기기의 저장 공간에 저장된 컨택 리스트를 활용할 수도 있고, 사용자와 연관된 웹 상의 저장 공간에 저장된 컨택 리스트를 활용할 수도 있다. 예를 들어, 상기 어플리케이션이 메신저 어플리케이션이라면, 사용자의 메신저 친구들에 대한 정보가 저장된 웹 상의 저장 공간에서 컨택 리스트를 수신하여 이용할 수도 있다.
전자 기기는 어플리케이션의 제어에 따라 확인되는 정보를 일방향함수를 통해 기 정의된 형태의 데이터로 변조하여 변조 데이터를 생성한 후 서버(150)로 전송할 수 있다. 이때 변조 데이터 수신부(310)는 전자 기기가 전송하는 변조 데이터를 수신할 수 있다.
다른 사용자들의 정보를 일방향함수로 변조하는 것은 익명성을 보장하기 위함이다. 예를 들어 다른 사용자들의 정보를 그대로 전송하는 경우 서버에는 사용자마다의 인적 관계에 대한 정보가 누적되어 사용자의 프라이버시를 침해할 소지가 있다. 일방향함수의 출력값은 입력을 재현할 수 없다는 특징을 갖고 있기 때문에 중간에서 이러한 변조 데이터를 얻게 된다 하더라도 변조 데이터를 통해 다른 사용자들의 정보를 얻는 것은 극히 어렵다. 따라서 변조 데이터를 전송함으로 인해 익명성이 보장될 수 있다.
단계(420)에서 변조 데이터 관리부(320)는 수신된 변조 데이터를 사용자 또는 전자 기기와 연관하여 데이터베이스에 저장 및 관리할 수 있다. 예를 들어 제1 사용자의 전자 기기로부터 수신된 변조 데이터는 제1 사용자의 식별자나 제1 사용자의 전자 기기의 식별자와 연관하여 데이터베이스에 저장될 수 있다. 데이터베이스는 서버(150)가 포함할 수도 있고, 서버(150)의 외부에서 서버(150)와 네트워크(170)를 통해 통신하는 별도의 구조로 구축될 수도 있다. 앞서 설명한 바와 같이 어플리케이션을 설치하여 구동하거나 서버(150)의 서비스를 이용하는 모든 전자 기기들로부터 변조 데이터가 서버(150)로 수신될 수 있고, 변조 데이터 관리부(320)는 이러한 변조 데이터들을 사용자나 전자 기기와 연관하여 데이터베이스에 저장 및 관리할 수 있다.
단계(430)에서 인적 관계 결정부(330)는 제공하고자 하는 서비스와 연관된 제1 사용자 및 제2 사용자에 대해, 제1 사용자와 연관하여 데이터베이스에 저장된 변조 데이터 및 제2 사용자와 연관하여 데이터베이스에 저장된 변조 데이터를 비교하고, 비교의 결과에 기반하여 제1 사용자와 제2 사용자간의 인적 관계의 존재 여부를 결정할 수 있다.
일실시예로 변조 데이터는 다른 사용자들의 정보를 각각 변조한 데이터들의 집합을 포함할 수 있다. 이때, 인적 관계 결정부(330)는 제1 사용자의 변조 데이터가 포함하는 집합의 원소와 제2 사용자의 변조 데이터가 포함하는 집합의 원소를 서로 비교할 수 있다. 동일한 정보가 동일한 어플리케이션에 의해 동일한 일방향함수로 변조되는 경우, 일방향함수의 출력값은 같아진다. 따라서 동일한 원소를 포함한다면, 제1 사용자와 제2 사용자가 동일한 사람을 서로 알고 있을 확률이 존재할 가능성이 존재한다. 또한 동일한 원소의 수가 많을수록 제1 사용자와 제2 사용자가 동일한 사람을 서로 알고 있을 확률은 상대적으로 증가하게 된다. 다시 말해, 제1 사용자와 제2 사용자간에 인적 관계가 존재할 확률이 있다는 것을 의미할 수 있다. 역으로 동일한 원소가 존재하지 않는다면, 제1 사용자와 제2 사용자는 인적 관계가 존재하지 않는 것으로 결정될 수 있다. 다시 말해, 인적 관계 설정부(330)는 제1 사용자의 변조 데이터가 포함하는 집합의 원소와 제2 사용자의 변조 데이터가 포함하는 집합의 원소를 서로 비교하여 서로 동일한 원소가 존재하지 않는 경우 제1 사용자와 제2 사용자간의 인적 관계가 존재하지 않는 것으로 결정하거나 또는 서로 동일한 원소의 개수에 기반하여 제1 사용자와 제2 사용자간의 인적 관계가 존재할 확률을 계산할 수 있다. 계산되는 확률은 상대적인 값으로 서로 동일한 원소의 개수가 증가할수록 상대적으로 증가할 수 있다. 이처럼 인적 관계 설정부(330)는 제1 사용자의 변조 데이터가 포함하는 집합의 원소와 제2 사용자의 변조 데이터가 포함하는 집합의 원소를 서로 비교하여 두 사용자간의 인적 관계의 존재 여부를 결정할 수 있다.
다른 실시예로, 다른 사용자들의 정보 각각은 N(상기 N은 자연수)개의 서로 다른 일방향함수의 입력으로 적용되고, 상기 N개의 서로 다른 일방향함수의 출력값에 대응하는 비트가 1(또는 0)로 설정되는 t(상기 t는 자연수)비트의 비트스트림에 대응될 수 있다. 예를 들어, 사용자의 컨택 리스트의 전화번호들 각각은 10 개의 서로 다른 일방향함수의 입력 파라미터가 될 수 있다. 이때 10 개의 서로 다른 일방향함수의 출력값들 각각은 블룸 필터(bloom filter)와 같은 20개의 비트로 구성되는 비트스트림의 특정 비트를 나타낼 수 있다. 비트스트림에서 출력값들이 나타내는 비트들은 1(또는 0)으로 설정되고 나머지 비트들은 0(또는 1)로 설정될 수 있다. 이러한 비트스트림들은 컨택 리스트의 모든 전화번호들 각각에 대해 생성될 수 있다. 이 경우 변조 데이터는, 다른 사용자들의 정보 각각에 대응하는 비트스트림들의 집합으로 구성될 수 있다. 이러한 실시예에서 인적 관계 결정부(330)는 제1 사용자의 변조 데이터에 포함되는 비트스트림과 제2 사용자의 변조 데이터에 포함되는 비트스트림을 비교하고, 서로 동일한 비트스트림이 존재하지 않는 경우 제1 사용자와 제2 사용자간의 인적 관계가 존재하지 않는 것으로 결정하거나 또는 서로 동일한 비트스트림의 개수에 기반하여 제1 사용자와 제2 사용자간의 인적 관계가 존재할 확률을 계산할 수 있다. 이 경우에도 계산되는 확률은 상대적인 값으로 서로 동일한 원소의 개수가 증가할수록 상대적으로 증가할 수 있다.
예를 들어, 제1 사용자가 제2 사용자에게 채팅 어플리케이션을 통해 메시지를 전송하는 경우를 가정하자. 채팅 서비스를 제공하는 서버(150)는 제1 사용자와 제2 사용자가 서로 친구와 같은 인적 관계가 존재하는 사용자들인지 아니면 전혀 아무런 관련이 없는 제3자들인지 여부를 판단해야 할 필요성이 존재한다. 이때, 서버(150)는 상술한 바와 같이 제1 사용자의 변조 데이터와 제2 사용자의 변조 데이터를 비교함으로써 두 사용자들의 인적 관계의 존재 여부를 판단할 수 있다. 또한 변조 데이터는 일방향함수를 통해 원래의 정보를 얻기 힘든 상태로 생성되기 때문에 두 사용자들 및 그 친구들에 대한 익명성이 보장될 수 있다.
또한 변조 데이터는 비트스트림의 비트가 1(또는 0)으로 설정된 순서에 대한 정보를 더 포함할 수 있다. 예를 들어, 10개의 일방향함수의 출력값에 따라 순차적으로 비트스트림의 비트를 1로 설정하는 경우 1로 설정된 비트들의 순서는 비트스트림이 포함하는 비트들의 순서와는 무관할 수 있다. 따라서 변조 데이터는 이러한 순서에 대한 정보를 더 포함할 수 있다. 동일한 정보를 동일한 일방향함수들로 순차적으로 변조하는 경우 그 출력값은 동일하고 동일한 출력값에 따라 비트스트림에서 비트가 1로 설정되는 순서 역시 동일해진다. 따라서 인적 관계 설정부(330)는 단계(430)에서 제1 사용자의 변조 데이터와 제2 사용자의 변조 데이터에서 상기 순서에 대한 정보를 먼저 비교하여 서로 동일한 순서에 대한 정보가 존재하지 않는 경우 제1 사용자와 제2 사용자간의 인적 관계가 존재하지 않는 것으로 결정할 수 있다. 서로 동일한 순서에 대한 정보가 존재하지 않는다는 것은 서로 동일한 정보를 갖고 있지 않다는 것을 의미하기 때문에 이 경우에는 비트스트림이 동일한지 여부를 판단하는 과정은 생략될 수 있다.
이러한 인적 관계의 존재 여부는 두 사용자가 친구나 지인 등의 관계인지 여부를 판단하기 위해 이용될 수도 있고, 두 사용자간에 친구 추천을 위해 이용될 수도 있다. 예를 들어, 서버(150)는 소셜 네트워크 서비스상에서 서로 친구 관계가 등록되어 있지 않더라도 인적 관계가 존재하는 것으로 판단된 사용자들을 소셜 네트워크 서비스상의 친구로서 추천할 수 있다. 이를 위해 도 4의 방법은 인적 관계가 존재하는 것으로 판단된 경우, 제1 사용자에게 제2 사용자를 친구로 추천하거나 또는 제2 사용자에게 제1 사용자를 친구로 추천하는 단계(미도시)를 더 포함할 수 있다. 프로세서(222)는 친구 추천부(미도시)를 더 포함할 수 있으며, 다른 사용자를 친구로 추천하는 단계(미도시)를 수행할 수 있다.
도 5는 본 발명의 일실시예에 있어서 전자 기기가 포함하는 프로세서를 설명하기 위한 블록도이고, 도 6은 본 발명의 일실시예에 있어서, 전자 기기가 수행하는 방법을 도시한 흐름도이다. 전자 기기(110)에 포함된 프로세서(212)는 도 5에 도시된 바와 같이 변조 데이터 생성부(510) 및 변조 데이터 전송부(520)를 포함할 수 있고, 이러한 구성요소들은 도 6의 방법이 포함하는 단계들(610 및 620)을 메모리(211)가 포함하는 운영체제와 적어도 하나의 프로그램 코드를 통해 실행하도록 구현될 수 있다.
단계(610)에서 변조 데이터 생성부(510)는 구동되는 어플리케이션의 제어에 따라 사용자와 인적 관계를 갖는 다른 사용자들의 정보를 일방향함수를 이용하여 기 정의된 형태로 변조하여 변조 데이터를 생성할 수 있다. 이러한 변조 데이터의 생성에 대해서는 이미 자세히 설명한 바 있다.
단계(620)에서 변조 데이터 전송부(520)는 생성된 변조 데이터를 어플리케이션의 제어에 따라 네트워크를 통해 서버로 전송할 수 있다. 여기서 서버는 앞서 설명한 서버(150)에 대응할 수 있다. 서버에서는 사용자의 변조 데이터와 다른 사용자의 변조 데이터를 비교하고, 비교의 결과에 기반하여 사용자와 다른 사용자간의 인적 관계의 존재 여부가 결정될 수 있다. 이러한 인적 관계의 존재 여부를 결정하는 방법에 대해서도 앞서 설명하였기에 반복적인 설명은 생략한다.
이하에서는 변조 데이터를 생성하고 생성된 변조 데이터를 이용하여 사용자들간의 인적 관계의 존재 여부를 판단하는 보다 구체적인 실시예들에 대해 설명한다.
도 7은 본 발명의 일실시예에 있어서 변조 데이터의 생성 과정의 예를 도시한 도면이다. 도 7은 사용자 A의 전화 번호 리스트에서 다른 사용자들의 m개의 전화번호를 이용하여 변조 데이터를 생성하는 예를 나타내고 있다. 변조데이터의 일 예로, 하나의 전화번호는 t비트의 비트스트림으로 표현되는 블룸 필터(Bloom Filter, BF) 형식으로 변환될 수 있다. 우선 하나의 전화번호(예를 들어, 사용자 B의 전화번호) 가 n개의 해쉬함수(F1(x), F2(x), …, Fn(x))의 입력 파라미터로 적용되어 n개의 해쉬값(H1, H2, …, Hn)이 생성되고, 이 데이터에 대한 블룸 필터, t 비트의 비트스트림) 에서 각각의 해쉬값에 대응하는 n개의 비트가 1로 설정될 수 있다. 예를 들어, 도 7은 B의 전화번호에 대한 첫 번째 해쉬함수의 해쉬값(H1) 이 비트스트림의 첫 번째 비트에 대응하여 첫 번째 비트가 1로 설정되는 예를 나타내고 있다. 이때, 해쉬함수에 따라 동일한 해쉬값이 생성되는 경우에는 n개 이하의 비트가 1로 설정될 수도 있다. 다만 해쉬함수가 동일한 입력에 대해서는 다른 해쉬값을 출력할 수 있도록 서로 다른 해쉬함수를 사용하는 것이 바람직하다.
이때 m 개의 전화번호 모두에 대해 비트스트림을 생성하게 되면, t개의 매트릭스 컬럼(matrix column)과 m개의 매트릭스 로우(matrix row)를 갖는 매트릭스(매트릭스 블룸 필터(Matrix Bloom Filter, MBF))가 변조 데이터로서 생성될 수 있다.
또한, MBF에서 첫 번째 로우는 해당 사용자의 정보를 변조한 데이터일 수 있다. 예를 들어, 도 7 에서 첫 번째 로우는 사용자 A의 첫 번째 지인이 아닌 사용자 A에 대한 정보를 변조한 데이터이다. 이 경우 m 개의 지인 정보를 보유한 사용자 A에 대한 변조 데이터는, t개의 매트릭스 컬럼(matrix column)과 m+1개의 매트릭스 로우(matrix row)를 갖는 매트릭스(매트릭스 블룸 필터(Matrix Bloom Filter, MBF))가 된다.
도 8은 본 발명의 일실시예에 있어서, 비트스트림의 비트가 설정된 순서에 대한 정보를 설명하기 위한 도면이다. 도 8은 변조 데이터가 도 7을 통해 설명한 매트릭스 블룸 필터(Matrix Bloom Filter, MBF)와 함께 순서에 대한 정보(sequence data)를 더 포함할 수 있음을 나타내고 있다. 순서에 대한 정보는 해쉬함수의 출력값에 따라 비트스트림(블룸 필터)의 비트가 1로 설정된 순서에 대한 정보를 포함할 수 있다. 다시 말해 비트스트림이 동일한 값을 갖는다고 하더라도 비트스트림의 비트가 1로 설정된 순서는 서로 다를 수 있기 때문에 이러한 순서에 대한 정보의 비교를 통해 두 비트스트림이 동일한지 여부를 판별함에 있어 정확성을 향상시킬 수 있다. 또한, 두 비트스트림에 대해 순서에 대한 정보가 서로 다르다는 것은 두 비트스트림이 서로 다름을 의미하기 때문에 서버(150)는 MBF의 각 로우를 비교하기 전에 순서에 대한 정보를 먼저 비교하고 순서에 대한 정보가 서로 다르다면 두 로우를 서로 다른 것으로 판단할 수 있다.
도 9는 본 발명의 일실시예에 있어서 두 사용자의 변조 데이터들의 예를 도시한 도면이다. 두 개의 MBF에 대한 비교는 일례로 블룸 필터들에 대한 AND 연산을 통해 이루어질 수 있다. 먼저 사용자 A의 MBF_A에서 첫 번째 로우(MBF_A_row_1)를 사용자 B의 MBF_B의 로우들과 비교할 수 있다. 예를 들어, MBF_A의 첫 번째 로우(MBF_A_row_1 = '10010')와 MBF_B의 첫 번째 로우(MBF_B_row_1 = '00011')부터 시작해서 MBF_A의 첫 번째 로우(MBF_A_row_1 = '10010')와 MBF_B의 마지막 로우(MBF_B_row_end = '11000')까지 각각 비교가 수행될 수 있다. 이때, 각각의 비교 결과에서 MBF_A_row_1과 동일하거나 또는 각각의 AND 연산 결과가 MBF_A_row_1과 동일한 MBF_B의 로우가 하나라도 있으면 사용자 B의 컨택 리스트에 사용자 A의 첫 번째 지인(첫 번째 로우(MBF_A_row_1)에 대응하는 지인)이 존재할 가능성이 있는 것으로 판단될 수 있다. 반대로, 첫 번째 로우(MBF_A_row_1)와 동일한 MBF_B의 로우가 하나도 존재하지 않는다면(일례로 AND 연산의 값들이 모두 0인 경우) 사용자 B의 컨택 리스트에는 사용자 A의 첫 번째 지인이 100% 존재하지 않는다고 판단될 수 있다. 도 9의 예에서 MBF_A의 첫 번째 로우(MBF_A_row_1 = '10010')와 동일한 MBF_B의 로우들은 존재하지 않기 때문에 사용자 A의 첫 번째 지인은 사용자 B의 컨택 리스트에 존재하지 않는다고 판단될 수 있다.
이후 MBF_A의 다른 로우들에 대해서도 위와 동일한 작업을 수행하여 사용자 A와 사용자 B간의 인적 관계의 존재 여부를 판단할 수 있다. 도 9의 예에서 MBF_A의 두 번째 로우(MBF_A_row_1 = '01010')는 MBF_B의 두 번째 로우(MBF_B_row_2 = '01010')와 동일함을 알 수 있다. 따라서 비교 결과에 따라 사용자 A의 두 번째 지인은 사용자 B의 컨택 리스트에 존재할 가능성이 있음을 알 수 있다.
또한, 앞서 설명한 바와 같이 MBF에서 첫 번째 로우는 해당 사용자의 정보를 변조한 데이터일 수 있다. 예를 들어, 도 9의 MBF_A에서 첫 번째 로우(MBF_A_row_1 = '10010')는 사용자 A의 첫 번째 지인이 아닌 사용자 A에 대한 정보를 변조한 데이터일 수 있다. 또한, MBF_B에서 첫 번째 로우(MBF_B_row_1 = '00011')는 사용자 B에 대한 정보가 변조된 데이터일 수 있다. 이 경우 MBF_A의 첫 번째 로우와 동일한 값이 MBF_B의 로우들 중에 존재하는 경우 사용자 A가 사용자 B의 컨택 리스트에 존재한다고 판단될 수 있다. 역으로 MBF_B의 첫 번째 로우와 동일한 값이 MBF_A의 로우들 중에 존재하는 경우 사용자 B가 사용자 A의 컨택 리스트에 존재한다고 판단될 수 있다. 물론 MBF에 대응하는 사용자의 정보를 변조한 데이터가 꼭 MBF에서의 첫 번째 로우일 필요는 없다. MBF는 사용자들간의 관계가 존재하는지 여부를 판단하기 위한 것이기 때문에 해당 사용자의 정보를 변조한 데이터가 MBF 내에 포함되기만 하면 그 위치는 상관 없을 수도 있다.
도 10은 본 발명의 일실시예에 있어서 사용자들간의 인적 관계의 존재 여부를 판단하는 과정의 예를 도시한 도면이다.
일례로 서버(150)가 채팅 서비스를 제공하는 시스템이고, 사용자 A(1010)와 사용자 B(1020) 및 사용자 C(1030)가 채팅 어플리케이션이 설치된 단말기들을 이용하여 채팅 서비스를 제공받는다고 가정한다. 채팅 어플리케이션이 구동되면, 사용자들(1010, 1020, 1030)은 각각 자신의 변조 데이터인 MBF를 생성하여 서버(150)로 전송할 수 있다. 실질적으로는 사용자들(1010, 1020, 1030)의 단말기가 채팅 어플리케이션의 제어에 따라 변조 데이터를 생성하여 서버(150)로 전송할 수 있다. 이때, 변조 데이터는 추가 변조를 막기 위해 암호화되거나 또는 서명되어 서버(150)로 전송될 수 있다. 서버(150)는 전송된 변조 데이터를 최신으로 갱신하여 관리할 수 있다. 만약 사용자 A(1010)가 사용자 B(1020)에게 메시지를 전송하고자 하는 경우 서버(150)는 사용자 A(1010)의 변조 데이터와 사용자 B(1020)의 변조 데이터를 비교하여 사용자 A(1010)와 사용자 B(1020)간에 인적 관계가 존재하는지 여부를 판단할 수 있다. 만약 인적 관계가 존재하지 않는다면, 사용자 A(1010)의 메시지를 스팸처리하거나 사용자 A(1010)의 메시지의 변조 가능성 등에 대해 체크하는 등 정책에 따라 다양한 처리를 수행할 수 있다.
다른 실시예로 서버(150)가 소셜 네트워크 서비스이고, 사용자 A(1010)와 사용자 B(1020) 및 사용자 C(1030)가 소셜 어플리케이션이 설치된 단말기들을 이용하여 채팅 서비스를 제공받는다고 가정한다. 이 경우에도 서버(150)는 사용자들(1010, 1020, 1030)로부터 변조 데이터를 수신하여 관리할 수 있다. 이때 서버(150)는 사용자들(1010, 1020, 1030)의 변조 데이터를 비교하여 인적 관계의 존재 여부를 판단할 수 있다. 만약 사용자들(1010, 1020, 1030)이 소셜 네트워크 서비스의 친구 관계가 아니고 인적 관계가 존재하는 것으로 판단된 경우 서버(150)는 사용자들(1010, 1020, 1030)을 서로 친구로서 추천할 수 있다.
이처럼 본 발명의 실시예들에 따르면, 사용자들이 갖고 있는 친구나 지인과 같은 인적 관계에 대한 특정 정보(예를 들어, 이름, 전화번호, 이메일 주소 등)를 일방향함수를 포함하는 기설정된 메커니즘을 이용하여 기 정의된 형태의 데이터로 변조하고, 사용자들의 변조된 데이터들을 이용하여 사용자들간의 인적 관계의 존재 여부를 판단함으로써 익명성을 보장하여 사용자들의 프라이버시를 보호하면서도 서비스의 제공을 위해 연계되는 사용자들간의 관계 여부를 확인할 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (20)

  1. 컴퓨터로 구현되는 관계 존재 판단 방법에 있어서,
    전자 기기에서 구동되는 어플리케이션의 제어에 따라 상기 전자 기기에서 생성되어 네트워크를 통해 전송되는 변조 데이터를 수신하는 단계 - 상기 변조 데이터는 상기 전자 기기의 사용자와 인적 관계를 갖는 다른 사용자들의 정보를 상기 전자 기기가 상기 어플리케이션의 제어에 따라 일방향함수를 이용하여 기 정의된 형태로 변조한 데이터를 포함함 -;
    수신된 변조 데이터를 상기 사용자 또는 상기 전자 기기와 연관하여 데이터베이스에 저장 및 관리하는 단계; 및
    제공하고자 하는 서비스와 연관된 제1 사용자 및 제2 사용자에 대해, 상기 제1 사용자와 연관하여 상기 데이터베이스에 저장된 변조 데이터 및 상기 제2 사용자와 연관하여 상기 데이터베이스에 저장된 변조 데이터를 비교하고, 상기 비교의 결과에 기반하여 상기 제1 사용자와 상기 제2 사용자간의 인적 관계의 존재 여부를 결정하는 단계
    를 포함하고,
    상기 다른 사용자들의 정보 각각은 N(상기 N은 자연수)개의 서로 다른 일방향함수의 입력으로 적용되고, 상기 N개의 서로 다른 일방향함수의 출력값에 대응하는 비트가 1(또는 0)로 설정되는 t(상기 t는 자연수)비트의 비트스트림에 대응되며,
    상기 변조 데이터는, 상기 다른 사용자들의 정보 각각에 대응하는 비트스트림들의 집합으로 구성되는 것을 특징으로 하는 컴퓨터로 구현되는 관계 존재 판단 방법.
  2. 제1항에 있어서,
    상기 사용자와 인적 관계를 갖는 다른 사용자들의 정보는, 상기 전자 기기의 저장 공간 또는 상기 사용자와 연관된 웹 상의 저장 공간에 저장된 컨택 리스트(contact list)에 포함된 정보로서 상기 다른 사용자들의 이름, 전화번호 및 이메일 주소 중 적어도 하나의 정보를 포함하고,
    상기 전자 기기에서 상기 어플리케이션의 제어에 따라 상기 적어도 하나의 정보가 확인되어 상기 기 정의된 형태의 데이터로 변조되는 것을 특징으로 하는 컴퓨터로 구현되는 관계 존재 판단 방법.
  3. 제1항에 있어서,
    상기 변조 데이터는, 상기 다른 사용자들의 정보를 각각 변조한 데이터들의 집합을 포함하고,
    상기 결정하는 단계는,
    상기 제1 사용자의 변조 데이터가 포함하는 집합의 원소와 상기 제2 사용자의 변조 데이터가 포함하는 집합의 원소를 서로 비교하여 서로 동일한 원소가 존재하지 않는 경우 상기 제1 사용자와 상기 제2 사용자간의 인적 관계가 존재하지 않는 것으로 결정하거나 또는 서로 동일한 원소의 개수에 기반하여 상기 제1 사용자와 상기 제2 사용자간의 인적 관계가 존재할 확률을 계산하는 것을 특징으로 하는 컴퓨터로 구현되는 관계 존재 판단 방법.
  4. 삭제
  5. 제1항에 있어서,
    상기 결정하는 단계는,
    상기 제1 사용자의 변조 데이터에 포함되는 비트스트림과 상기 제2 사용자의 변조 데이터에 포함되는 비트스트림을 비교하고, 서로 동일한 비트스트림이 존재하지 않는 경우 상기 제1 사용자와 상기 제2 사용자간의 인적 관계가 존재하지 않는 것으로 결정하거나 또는 서로 동일한 비트스트림의 개수에 기반하여 상기 제1 사용자와 상기 제2 사용자간의 인적 관계가 존재할 확률을 계산하는 것을 특징으로 하는 컴퓨터로 구현되는 관계 존재 판단 방법.
  6. 제1항에 있어서,
    상기 변조 데이터는, 상기 비트스트림의 비트가 1(또는 0)으로 설정된 순서에 대한 정보를 더 포함하고,
    상기 결정하는 단계는,
    상기 제1 사용자의 변조 데이터와 상기 제2 사용자의 변조 데이터에서 상기 순서에 대한 정보를 먼저 비교하여 서로 동일한 순서에 대한 정보가 존재하지 않는 경우 상기 제1 사용자와 상기 제2 사용자간의 인적 관계가 존재하지 않는 것으로 결정하는 것을 특징으로 하는 컴퓨터로 구현되는 관계 존재 판단 방법.
  7. 제1항에 있어서,
    상기 인적 관계가 존재하는 것으로 판단된 경우, 상기 제1 사용자에게 상기 제2 사용자를 친구로 추천하거나 또는 상기 제2 사용자에게 상기 제1 사용자를 친구로 추천하는 단계
    를 더 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 관계 존재 판단 방법.
  8. 컴퓨터로 구현되는 방법에 있어서,
    구동되는 어플리케이션의 제어에 따라 제1 사용자와 인적 관계를 갖는 다른 사용자들의 정보를 일방향함수를 이용하여 기 정의된 형태로 변조하여 변조 데이터를 생성하는 단계; 및
    상기 생성된 변조 데이터를 상기 어플리케이션의 제어에 따라 네트워크를 통해 서버로 전송하는 단계
    를 포함하고,
    상기 서버에서 상기 제1 사용자의 변조 데이터와 제2 사용자의 변조 데이터를 비교하고, 상기 비교의 결과에 기반하여 상기 제1 사용자와 상기 제2 사용자간의 인적 관계의 존재 여부가 결정되고,
    상기 생성하는 단계는,
    상기 다른 사용자들의 정보 각각을 N(상기 N은 자연수)개의 서로 다른 일방향함수의 입력으로 적용하고, t(상기 t는 자연수)비트의 비트스트림에서 상기 N개의 서로 다른 일방향함수의 출력값에 대응하는 비트를 1(또는 0)로 설정하여 상기 다른 사용자들의 정보 각각에 대응하는 비트스트림들의 집합을 상기 변조 데이터로서 생성하는 것을 특징으로 하는 컴퓨터로 구현되는 관계 존재 판단 방법.
  9. 제8항에 있어서,
    상기 사용자와 인적 관계를 갖는 다른 사용자들의 정보는, 상기 컴퓨터의 저장 공간 또는 상기 사용자와 연관된 웹 상의 저장 공간에 저장된 컨택 리스트(contact list)에 포함된 정보로서 상기 다른 사용자들의 이름, 전화번호 및 이메일 주소 중 적어도 하나의 정보를 포함하고,
    상기 생성하는 단계는,
    상기 어플리케이션의 제어에 따라 상기 적어도 하나의 정보를 확인하여 상기 기 정의된 형태의 데이터로 변조하는 것을 특징으로 하는 컴퓨터로 구현되는 관계 존재 판단 방법.
  10. 제8항에 있어서,
    상기 변조 데이터는, 상기 다른 사용자들의 정보를 각각 변조한 데이터들의 집합을 포함하고,
    상기 서버에서 상기 사용자의 변조 데이터가 포함하는 집합의 원소와 상기 다른 사용자의 변조 데이터가 포함하는 집합의 원소를 서로 비교한 결과에 따라 서로 동일한 원소가 존재하지 않는 경우 상기 사용자와 상기 다른 사용자간의 인적 관계가 존재하지 않는 것으로 결정되거나 또는 서로 동일한 원소의 개수에 기반하여 상기 사용자와 상기 다른 사용자간의 인적 관계가 존재할 확률이 계산되는 것을 특징으로 하는 컴퓨터로 구현되는 관계 존재 판단 방법.
  11. 삭제
  12. 제8항에 있어서,
    상기 서버에서 상기 사용자의 변조 데이터에 포함되는 비트스트림과 상기 다른 사용자의 변조 데이터에 포함되는 비트스트림이 비교되어, 서로 동일한 비트스트림이 존재하지 않는 경우 상기 사용자와 상기 다른 사용자간의 인적 관계가 존재하지 않는 것으로 결정되거나 또는 서로 동일한 비트스트림의 개수에 기반하여 상기 사용자와 상기 다른 사용자간의 인적 관계가 존재할 확률이 계산되는 것을 특징으로 하는 컴퓨터로 구현되는 관계 존재 판단 방법.
  13. 제1항 내지 제3항, 제5항 내지 제10항 또는 제12항 중 어느 한 항의 방법을 실행하기 위한 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터에서 판독 가능한 기록 매체.
  14. 하나 이상의 프로세서들을 포함하는 관계 존재 판단 시스템에 있어서,
    상기 하나 이상의 프로세서들은,
    전자 기기에서 구동되는 어플리케이션의 제어에 따라 상기 전자 기기에서 생성되어 네트워크를 통해 전송되는 변조 데이터를 수신하는 변조 데이터 수신부 - 상기 변조 데이터는 상기 전자 기기의 사용자와 인적 관계를 갖는 다른 사용자들의 정보를 상기 전자 기기가 상기 어플리케이션의 제어에 따라 일방향함수를 이용하여 기 정의된 형태로 변조한 데이터를 포함함 -;
    수신된 변조 데이터를 상기 사용자 또는 상기 전자 기기와 연관하여 데이터베이스에 저장 및 관리하는 변조 데이터 관리부; 및
    제공하고자 하는 서비스와 연관된 제1 사용자 및 제2 사용자에 대해, 상기 제1 사용자와 연관하여 상기 데이터베이스에 저장된 변조 데이터 및 상기 제2 사용자와 연관하여 상기 데이터베이스에 저장된 변조 데이터를 비교하고, 상기 비교의 결과에 기반하여 상기 제1 사용자와 상기 제2 사용자간의 인적 관계의 존재 여부를 결정하는 인적 관계 결정부
    를 포함하고,
    상기 다른 사용자들의 정보 각각은 N(상기 N은 자연수)개의 서로 다른 일방향함수의 입력으로 적용되고, 상기 N개의 서로 다른 일방향함수의 출력값에 대응하는 비트가 1(또는 0)로 설정되는 t(상기 t는 자연수)비트의 비트스트림에 대응되며,
    상기 변조 데이터는, 상기 다른 사용자들의 정보 각각에 대응하는 비트스트림들의 집합으로 구성되는 것을 특징으로 하는 관계 존재 판단 시스템.
  15. 제14항에 있어서,
    상기 사용자와 인적 관계를 갖는 다른 사용자들의 정보는, 상기 전자 기기의 저장 공간 또는 상기 사용자와 연관된 웹 상의 저장 공간에 저장된 컨택 리스트(contact list)에 포함된 정보로서 상기 다른 사용자들의 이름, 전화번호 및 이메일 주소 중 적어도 하나의 정보를 포함하고,
    상기 전자 기기에서 상기 어플리케이션의 제어에 따라 상기 적어도 하나의 정보가 확인되어 상기 기 정의된 형태의 데이터로 변조되는 것을 특징으로 하는 관계 존재 판단 시스템.
  16. 제14항에 있어서,
    상기 변조 데이터는, 상기 다른 사용자들의 정보를 각각 변조한 데이터들의 집합을 포함하고,
    상기 인적 관계 결정부는,
    상기 제1 사용자의 변조 데이터가 포함하는 집합의 원소와 상기 제2 사용자의 변조 데이터가 포함하는 집합의 원소를 서로 비교하여 서로 동일한 원소가 존재하지 않는 경우 상기 제1 사용자와 상기 제2 사용자간의 인적 관계가 존재하지 않는 것으로 결정하거나 또는 서로 동일한 원소의 개수에 기반하여 상기 제1 사용자와 상기 제2 사용자간의 인적 관계가 존재할 확률을 계산하는 것을 특징으로 하는 관계 존재 판단 시스템.
  17. 삭제
  18. 제14항에 있어서,
    상기 인적 관계 결정부는,
    상기 제1 사용자의 변조 데이터에 포함되는 비트스트림과 상기 제2 사용자의 변조 데이터에 포함되는 비트스트림을 비교하고, 서로 동일한 비트스트림이 존재하지 않는 경우 상기 제1 사용자와 상기 제2 사용자간의 인적 관계가 존재하지 않는 것으로 결정하거나 또는 서로 동일한 비트스트림의 개수에 기반하여 상기 제1 사용자와 상기 제2 사용자간의 인적 관계가 존재할 확률을 계산하는 것을 특징으로 하는 관계 존재 판단 시스템.
  19. 하나 이상의 프로세서들을 포함하는 관계 존재 판단 시스템에 있어서,
    상기 하나 이상의 프로세서들은,
    구동되는 어플리케이션의 제어에 따라 제1 사용자와 인적 관계를 갖는 다른 사용자들의 정보를 일방향함수를 이용하여 기 정의된 형태로 변조하여 변조 데이터를 생성하는 변조 데이터 생성부; 및
    상기 생성된 변조 데이터를 상기 어플리케이션의 제어에 따라 네트워크를 통해 서버로 전송하는 변조 데이터 전송부
    를 포함하고,
    상기 서버에서 상기 제1 사용자의 변조 데이터와 제2 사용자의 변조 데이터를 비교하고, 상기 비교의 결과에 기반하여 상기 제1 사용자와 상기 제2 사용자간의 인적 관계의 존재 여부가 결정되고,
    상기 변조 데이터 생성부는,
    상기 다른 사용자들의 정보 각각을 N(상기 N은 자연수)개의 서로 다른 일방향함수의 입력으로 적용하고, t(상기 t는 자연수)비트의 비트스트림에서 상기 N개의 서로 다른 일방향함수의 출력값에 대응하는 비트를 1(또는 0)로 설정하여 상기 다른 사용자들의 정보 각각에 대응하는 비트스트림들의 집합을 상기 변조 데이터로서 생성하는 것을 특징으로 하는 관계 존재 판단 시스템.
  20. 제19항에 있어서,
    저장 공간을 더 포함하고,
    상기 사용자와 인적 관계를 갖는 다른 사용자들의 정보는, 상기 시스템이 더 포함하는 저장 공간 또는 상기 사용자와 연관된 웹 상의 저장 공간에 저장된 컨택 리스트(contact list)에 포함된 정보로서 상기 다른 사용자들의 이름, 전화번호 및 이메일 주소 중 적어도 하나의 정보를 포함하고,
    상기 변조 데이터 생성부는,
    상기 어플리케이션의 제어에 따라 상기 적어도 하나의 정보를 확인하여 상기 기 정의된 형태의 데이터로 변조하는 것을 특징으로 하는 관계 존재 판단 시스템.
KR1020150080642A 2015-06-08 2015-06-08 사용자들간의 관계의 존재를 판단하는 시스템 및 방법 KR101728945B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150080642A KR101728945B1 (ko) 2015-06-08 2015-06-08 사용자들간의 관계의 존재를 판단하는 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150080642A KR101728945B1 (ko) 2015-06-08 2015-06-08 사용자들간의 관계의 존재를 판단하는 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20160144178A KR20160144178A (ko) 2016-12-16
KR101728945B1 true KR101728945B1 (ko) 2017-04-20

Family

ID=57735925

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150080642A KR101728945B1 (ko) 2015-06-08 2015-06-08 사용자들간의 관계의 존재를 판단하는 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR101728945B1 (ko)

Also Published As

Publication number Publication date
KR20160144178A (ko) 2016-12-16

Similar Documents

Publication Publication Date Title
US10341344B2 (en) Methods and systems for persistent cross-application mobile device identification
US10891383B2 (en) Validating computer resource usage
US10148635B2 (en) Systems, apparatuses, methods, and non-transitory computer readable media for authenticating user using history of user
US20170371625A1 (en) Content delivery method
CN106664308B (zh) 注册之前的设备验证
CN109521956B (zh) 一种基于区块链的云存储方法、装置、设备及存储介质
CN109154968B (zh) 用于组织内的安全且高效的通信的系统和方法
CN105592011A (zh) 一种账号登录方法及装置
US11928605B2 (en) Techniques for cyber-attack event log fabrication
US10601580B2 (en) Secure order preserving string compression
JP2017045462A (ja) コンタクトリストを利用してユーザを認証するシステムおよび方法
CN109522462B (zh) 一种基于区块链的云查询方法、装置、设备及存储介质
CN111339547B (zh) 用于生成数据标签的方法、电子设备及计算机存储介质
CN113542405A (zh) 基于区块链的网络通信系统、方法、设备及存储介质
KR101728945B1 (ko) 사용자들간의 관계의 존재를 판단하는 시스템 및 방법
CN110232570A (zh) 一种信息监管方法及装置
US20230388120A1 (en) Client-Side Device Bloom Filter Mapping
CN113485731A (zh) 一种用于区块链的智能合约升级方法和系统
US9858423B2 (en) Application modification based on a security vulnerability
US20230251905A1 (en) Synchronizing computing resources to proceed with a task
CN111787019B (zh) 一种基于区块链的信息获取方法及装置
CN110781523B (zh) 用于处理信息的方法和装置
CN111444242B (zh) 用于数据等价性校验的方法、电子设备及计算机存储介质
US20220376924A1 (en) Header for conveying trustful client address
CN110262756B (zh) 用于缓存数据的方法和装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right