KR20200132999A - Single device multiple authentication system - Google Patents

Single device multiple authentication system Download PDF

Info

Publication number
KR20200132999A
KR20200132999A KR1020207032492A KR20207032492A KR20200132999A KR 20200132999 A KR20200132999 A KR 20200132999A KR 1020207032492 A KR1020207032492 A KR 1020207032492A KR 20207032492 A KR20207032492 A KR 20207032492A KR 20200132999 A KR20200132999 A KR 20200132999A
Authority
KR
South Korea
Prior art keywords
user
access code
code
access
index
Prior art date
Application number
KR1020207032492A
Other languages
Korean (ko)
Inventor
래기 파루크 엘레이쉬
Original Assignee
레그웨즈 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US15/952,533 external-priority patent/US20180278600A1/en
Application filed by 레그웨즈 인코포레이티드 filed Critical 레그웨즈 인코포레이티드
Publication of KR20200132999A publication Critical patent/KR20200132999A/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/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • 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
    • G06F21/36User authentication by graphic or iconic representation
    • 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
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • G06F21/6254Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0861Network architectures or network communication protocols for network security for authentication of entities using biometrical features, e.g. fingerprint, retina-scan
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0877Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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
    • H04L9/3239Cryptographic 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 involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/082Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying multi-factor authentication

Abstract

다중 인증 시스템은 여러 애플리케이션/웹 사이트 대상에 액세스하기 위해 사용자를 인증하는 데 사용할 수 있는 다양한 패스워드 입력 메커니즘(예를 들어, 영숫자, 시각, 음성 등)을 지원한다. 예시적인 방법 및 시스템에는 로컬 또는 네트워크 메모리(예를 들어, 비밀번호 보관소)에 패스워드를 저장하지 않고 여러 다른 서비스 공급 업체(예를 들어, 사용자 인증을 포함하는 제 3자 애플리케이션, 클라우드 서비스, 웹 사이트 등)에 대한 인터넷 연결과 관계없이 고유하고 복잡한 패스워드를 생성하는 실시간 패스워드 생성기가 포함된다. 로그인 요청을 수신한 데 응답해, 사용자 장치는 사용자가 액세스 코드를 제공하도록 프롬프트하고, 안전하게 저장된 식별자 코드를 기반으로 대상 키를 생성한다. 저장된 식별자 코드와 액세스 코드를 사용하여 대상 키를 다시 생성할 수 있다. 동일한 저장된 식별자 코드와 수신된 액세스 코드를 사용하여 서로 다른 애플리케이션 또는 서비스에 대해 서로 다른 대상 키를 다시 생성할 수 있다.Multiple authentication systems support a variety of password entry mechanisms (eg, alphanumeric, visual, voice, etc.) that can be used to authenticate users to access multiple application/website targets. Exemplary methods and systems include several different service providers (e.g., third-party applications, cloud services, websites, etc. that include user authentication) without storing passwords in local or network memory (e.g., password vault). ), it includes a real-time password generator that generates unique and complex passwords regardless of your internet connection. In response to receiving the login request, the user device prompts the user to provide an access code and generates a target key based on the securely stored identifier code. The target key can be regenerated using the stored identifier code and access code. The same stored identifier code and received access code can be used to regenerate different target keys for different applications or services.

Figure P1020207032492
Figure P1020207032492

Description

단일 장치의 다중 인증 시스템Single device multiple authentication system

본 명세서에 기술된 다양한 실시예는 사용자 인증에 관한 것으로, 보다 상세하게는 시각적 액세스 코드를 위한 시스템 및 방법에 관한 것이다.Various embodiments described herein relate to user authentication, and more particularly, to systems and methods for visual access codes.

종래의 미디어 객체 인덱싱 기술은 제한적이다. 예를 들어, 미디어 객체의 라이브러리는 각 노드가 별도의 레이블에 해당하는 트리 계층구조(예를 들어, 폴더 및 하위 폴더 또는 앨범 및 하위 앨범)에 따라 구성될 수 있다. 트리의 노드(예를 들어, 폴더 또는 앨범)에 있는 미디어 객체의 구성원 자격은 수동으로 유지된다. 따라서, 미디어 객체를 한 유형의 분류(예를 들어, 위치)에서 다른 유형(예를 들어, 이벤트)으로 재분류하려면 라이브러리의 모든 미디어 객체를 다시 분류해야 한다.The conventional media object indexing technology is limited. For example, the library of media objects may be configured according to a tree hierarchy (eg, folders and subfolders or albums and subalbums) in which each node corresponds to a separate label. Membership of media objects in nodes of the tree (eg, folders or albums) is maintained manually. Thus, to reclassify a media object from one type of classification (eg, location) to another type (eg, event), all media objects in the library must be reclassified.

키워드 기반 분류(예를 들어, 텍스트 태깅)가 동적 앨범 또는 폴더를 생성하고 유지하는 데 더 적합할 수 있다. 그러나, 키워드 기반 분류 기술에는 가능한 모든 태그 순열을 추가하는 수동 입력이 포함된다. 따라서, 단지 단일 위치(예를 들어, 자연, 공원, 나무, 잔디)에 대해 여러 태그를 추가해야 할 수 있다. 또한, 일부 태그는 모호한 경향이 있다(예를 들어, "Paris"는 도시명이거나 사람 이름일 수 있다).Keyword-based classification (e.g., text tagging) may be more suitable for creating and maintaining dynamic albums or folders. However, keyword-based classification techniques involve manual entry to add all possible tag permutations. Thus, you may just need to add multiple tags for a single location (eg nature, parks, trees, grass). Also, some tags tend to be ambiguous (eg "Paris" could be a city name or a person's name).

직접 속성(예를 들어, Apple® iPhoto®)에 기반한 분류는 사용자가 구성 미디어 객체와 관련된 직접 속성에 기반한 동적 앨범을 생성할 수 있도록 한다. 예를 들어, 앨범에는 특정 기간(예를 들어, 2013년 4월 11일부터 2014년 5월 5일까지)의 모든 사진이 포함될 수 있다. 그러나, 직접 속성 시스템은 열악한 사용자 인터페이스(UI)를 제공하고 직접 속성을 기반으로 수행되는 검색에 상당한 제한을 부과한다.Classification based on direct attributes (eg Apple® iPhoto®) allows users to create dynamic albums based on direct attributes associated with the constituent media objects. For example, an album may contain all photos of a specific period (eg, from April 11, 2013 to May 5, 2014). However, the direct attribute system provides a poor user interface (UI) and imposes significant restrictions on searches performed based on direct attributes.

제한된 시맨틱 태깅(예를 들어, Facebook® 태깅)은 제한된 간접 속성 세트에 기초하여 미디어 객체의 동적 분류를 제공한다. 특히, 태그는 미디어 객체와 관련하여 있을 수 있는 서로 다른 유형의 관계를 구분하지 않는다. 예를 들어, 사진에 태그된 사람이 사진에 나타날 수 있거나, 사진의 컨텐츠에 관심이 있거나, 사진을 만든 사람일 수 있다.Limited semantic tagging (eg Facebook® tagging) provides dynamic classification of media objects based on a limited set of indirect attributes. In particular, tags do not distinguish between the different types of relationships that may exist with media objects. For example, the person tagged in the photo may appear in the photo, may be interested in the content of the photo, or may be the person who created the photo.

완전 자동화된 미디어 객체 인덱싱 기술은 일반적으로 부정확하다. 예를 들어, 이미지 인식 시스템은 미디어 객체에 묘사된 일반 객체(예를 들어, 신발)를 식별하는 데 성공률이 70%에 불과한다. 이러한 시스템은 또한 미디어 객체(예를 들어, 신발의 소유자, 디자이너 및/또는 소매 업체)와 관련하여 관계를 결정할 수 없다. 대조적으로, 미디어 객체를 인덱싱하는 수동 방법은 사용자 인센티브를 거의 제공하지 않으면서 지루하고 오류가 발생하기 쉽다.Fully automated media object indexing techniques are generally inaccurate. For example, image recognition systems only have a 70% success rate in identifying generic objects (eg, shoes) depicted in media objects. Such systems are also unable to determine relationships with respect to media objects (eg, owners, designers and/or retailers of shoes). In contrast, the manual method of indexing media objects is tedious and error prone with little user incentive.

고급 검색 및 브라우징 기능을 지원할 수 있는 미디어 객체를 인덱싱하기 위한 시스템 및 방법이 필요하다.There is a need for a system and method for indexing media objects that can support advanced search and browsing functions.

시각적 액세스 코드를 사용한 인증 시스템 및 방법이 제공된다. 다양한 실시예에 따르면, 사용자 등록 및 인증 시스템은 시각적 접근 코드를 기반으로 한다. 이 방법은 사용자에게 이미지를 제시하는 단계, 제 1 이미지의 선택을 수신하는 단계, 제 1 이미지에 포함된 복수의 핫스팟으로부터 적어도 제 1 핫스팟 세트의 선택을 수신하는 단계; 및 제 1 이미지 및 제 1 핫스팟 세트의 선택에 적어도 부분적으로 기초하여 시각적 액세스 코드를 생성하는 단계를 포함한다.An authentication system and method using a visual access code is provided. According to various embodiments, the user registration and authentication system is based on a visual access code. The method includes presenting an image to a user, receiving a selection of a first image, receiving a selection of at least a first set of hotspots from a plurality of hotspots included in the first image; And generating a visual access code based at least in part on the selection of the first image and the first hotspot set.

본 발명 개념의 다른 특징 및 장점은 본 발명 개념의 예시적인 측면을 기술한 다음의 설명으로부터 명백해질 것이다.Other features and advantages of the inventive concept will become apparent from the following description describing exemplary aspects of the inventive concept.

본 발명의 내용에 포함됨.Included in the context of the present invention.

본 발명의 상기 및 다른 측면 및 특징은 첨부도면을 참조로 예시적인 실시예를 설명함으로써보다 보다 더 명백해질 것이다.
도 1은 다양한 네트워크 환경을 예시하는 네트워크 다이어그램이다.
도 2는 다양한 실시예에 따른 시맨틱 인덱싱을 도시한다.
도 3은 다양한 실시예에 따른 스탬핑 사용자 인터페이스를 도시한다.
도 4는 다양한 프로세스에 따른 스탬핑 프로세스를 나타내는 흐름도이다.
도 5는 다양한 실시예에 따른 스탬프에 연관을 추가하는 프로세스를 도시한다.
도 6은 다양한 실시예에 따른 객체 선택기를 도시한다.
도 7a는 다양한 실시예에 따른 연관 선택기를 도시한다.
도 7b는 다양한 실시예에 따른 단일 및 다중 연관 피킹을 도시한다.
도 8은 다양한 실시예에 따른 시각적 인터페이스를 도시한다.
도 9는 다양한 실시예에 따른 시각적 브라우징 메뉴를 도시한다.
도 10은 다양한 실시예에 따른 선택 기준을 도시한다.
도 11은 다양한 실시예에 따른 새로운 검색 선택기를 추가하는 과정을 도시한다.
도 12는 다양한 실시예에 따른 패싯 네이게이션 인터페이스를 도시한다.
도 13은 다양한 실시예에 따른 패싯 디스플레이 섹션을 도시한다.
도 14는 다양한 실시예에 따른 패싯 표현을 도시한다.
도 15는 다양한 실시예에 따른 제한된 이산 인덱스를 도시한다.
도 16은 다양한 실시예에 따른 단순 파생 인덱스를 도시한다.
도 17은 다양한 실시예에 따른 퍼지 파생 인덱스를 도시한다.
도 18은 다양한 실시예에 따른 다중 모드 제어 스위치를 도시한다.
도 19a-c는 다양한 실시예에 따른 다중 모드 UI를 도시한다.
도 20은 다양한 실시예에 따른 데이터 액세스 계산을 도시한다.
도 21은 다양한 실시예에 따른 액세스 제어를 시행하는 프로세스를 도시한다.
도 22는 다양한 실시예에 따른 액세스 제어 규칙 상태의 자동 변경을 도시한다.
도 23은 다양한 실시예에 따른 액세스 제어 규칙 상태에 대한 수동 변경을 도시한다.
도 24는 다양한 실시예에 따른 중앙 서버 기반의 동기화를 도시한다.
도 25는 다양한 실시예에 따른 피어-투-피어 동기화를 도시한다.
도 26은 다양한 실시예에 따른 계층적 동기화를 도시한다.
도 27은 다양한 실시예에 따른 액세스 제어 규칙 캐스케이드를 도시한다.
도 28은 다양한 실시예에 따른 피어-투-피어 브라우징 세션을 도시한다.
도 29는 다양한 실시예에 따라 피어-투-피어 브라우징 세션을 시작하기 위한 프로세스를 도시한다.
도 30은 다양한 실시예에 따른 시각적 접근 코드를 구성하는 프로세스를 도시한다.
도 31은 시각적 액세스 코드와 함께 사용하기 위한 예시적인 락 코드 관리 인터페이스를 도시한다.
도 32는 예시적인 실시예에 따른 시각적 액세스 코드를 구성하기 위한 예시적인 흐름을 도시한다.
도 33은 다양한 실시예에 따른 사용자 식별자를 사진 선택 맵핑에 맵핑하는 예시적인 프로세스를 도시한다.
도 34는 다양한 실시예에 따른 예시적인 고유 사용자 16진수(hex digest)를 도시한다.
도 35는 예시적인 실시예에 따른 시각적 액세스 코드를 할당하기 위한 예시적인 등록 프로세스를 도시한다.
도 36은 예시적인 실시예에 따른 패스워드를 사용하여 시각적 액세스 코드를 인코딩하는 예시적인 프로세스를 도시한다.
도 37은 다양한 실시예에 따른 예시적인 모바일 인터페이스를 도시한다
도 38은 예시적인 실시예에 따른 시각적 액세스 코드를 입력하는 예시적인 구현을 도시한다.
도 39a-c는 다양한 실시예에 따른 웹 사이트에서의 가상 입력 방법의 예시적인 구현을 도시한다.
도 40은 다양한 실시예에 따른 이미지 블렌딩 프로세스를 예시한다.
도 41은 다양한 실시예에 따른 핫스팟 위치 시프팅의 예시적인 구현을 도시한다.
도 42는 다양한 실시예에 따른 유선 또는 무선 시스템을 나타낸 블록도이다.
도 43은 다양한 실시예에 따른 예시적인 ID 설정 프로세스를 도시한다.
도 44는 다양한 실시예에 따른 예시적인 디폴트 키 생성기 프로세스를 도시한다.
도 45는 다양한 실시예에 따른 예시적인 고스트패스워드(ghostPassword) 키보드 인터페이스를 도시한다.
도 46은 다양한 실시예에 따른 예시적인 사용자 이름 입력 프로세스를 도시한다.
도 47은 다양한 실시예에 따른 모멘트 인터페이스를 정의하는 예를 도시한다.
도 48은 예시적인 브라우저 고스트패스워드 엔트리 프로세스를 도시한다.
도 49는 다양한 실시예에 따른 예시적인 고스트패스워드 관리 프로세스를 도시한다.
도 50은 다양한 실시예에 따른 고스트패스워드 요소의 예시적인 흐름을 도시한다.
The above and other aspects and features of the present invention will become more apparent by describing exemplary embodiments with reference to the accompanying drawings.
1 is a network diagram illustrating various network environments.
2 illustrates semantic indexing according to various embodiments.
3 illustrates a stamping user interface according to various embodiments.
4 is a flow chart showing a stamping process according to various processes.
5 illustrates a process of adding an association to a stamp according to various embodiments.
6 illustrates an object selector according to various embodiments.
7A illustrates an association selector according to various embodiments.
7B illustrates single and multiple association peaking according to various embodiments.
8 illustrates a visual interface according to various embodiments.
9 is a diagram illustrating a visual browsing menu according to various embodiments.
10 illustrates selection criteria according to various embodiments.
11 illustrates a process of adding a new search selector according to various embodiments.
12 illustrates a facet navigation interface according to various embodiments.
13 illustrates a faceted display section according to various embodiments.
14 illustrates facet representation according to various embodiments.
15 illustrates a limited discrete index according to various embodiments.
16 illustrates a simple derivation index according to various embodiments.
17 illustrates a fuzzy derivation index according to various embodiments.
18 illustrates a multi-mode control switch according to various embodiments.
19A-C illustrate a multi-mode UI according to various embodiments.
20 illustrates data access calculations according to various embodiments.
21 illustrates a process for enforcing access control according to various embodiments.
22 illustrates an automatic change of an access control rule state according to various embodiments.
23 illustrates a manual change to an access control rule state according to various embodiments.
24 illustrates synchronization based on a central server according to various embodiments.
25 illustrates peer-to-peer synchronization according to various embodiments.
26 illustrates hierarchical synchronization according to various embodiments.
27 illustrates an access control rule cascade according to various embodiments.
28 illustrates a peer-to-peer browsing session according to various embodiments.
29 illustrates a process for initiating a peer-to-peer browsing session according to various embodiments.
30 illustrates a process of constructing a visual access code according to various embodiments.
31 shows an exemplary lock code management interface for use with a visual access code.
Fig. 32 shows an exemplary flow for configuring a visual access code according to an exemplary embodiment.
33 illustrates an exemplary process of mapping a user identifier to photo selection mapping according to various embodiments.
34 illustrates an exemplary unique user hex digest according to various embodiments.
35 shows an exemplary registration process for assigning a visual access code according to an exemplary embodiment.
Fig. 36 shows an exemplary process for encoding a visual access code using a password according to an exemplary embodiment.
37 illustrates an exemplary mobile interface according to various embodiments.
Fig. 38 shows an exemplary implementation of entering a visual access code according to an exemplary embodiment.
39A-C illustrate exemplary implementations of a virtual input method in a web site according to various embodiments.
40 illustrates an image blending process according to various embodiments.
41 illustrates an example implementation of hotspot location shifting according to various embodiments.
42 is a block diagram illustrating a wired or wireless system according to various embodiments.
43 illustrates an exemplary ID setting process according to various embodiments.
44 illustrates an exemplary default key generator process in accordance with various embodiments.
45 illustrates an exemplary ghostPassword keyboard interface according to various embodiments.
46 illustrates an exemplary user name input process according to various embodiments.
47 illustrates an example of defining a moment interface according to various embodiments.
48 shows an exemplary browser ghost password entry process.
49 illustrates an exemplary ghost password management process according to various embodiments.
50 illustrates an exemplary flow of a ghost password element according to various embodiments.

특정 실시예를 기술하였으나, 이들은 단지 예로서 제시된 것이며, 보호 범위를 제한하려는 의도가 아니다. 본 명세서에 기술된 방법 및 시스템은 다양한 다른 형태로 구현될 수 있다. 또한, 본 명세서에 기술된 예시적인 방법 및 시스템의 형태에 있어 다양한 생략, 대체 및 변경이 보호 범위를 벗어나지 않고 이루어질 수 있다.Although specific embodiments have been described, these are presented by way of example only, and are not intended to limit the scope of protection. The methods and systems described herein can be implemented in a variety of different forms. In addition, various omissions, substitutions, and changes in the form of the exemplary method and system described herein may be made without departing from the scope of protection.

도 1은 다양한 실시예에 따른 네트워크 환경(100)을 나타낸 네트워크 다이어그램이다. 도 1을 참조하면, 사용자 장치(110)가 미디어 플랫폼(120)과 통신한다. 사용자 장치(110)는 유선 또는 무선 연결을 통해 미디어 플랫폼(120)과 통신할 수 있거나 통신을 유발할 수 있는 임의의 장치일 수 있다. 예를 들어, 사용자 장치(110)는, 예를 들어, 스마트 폰, 웨어러블 장치, 태블릿 PC, 랩톱, 데스크톱 PC, 개인 엔터테인먼트 시스템 및 임베디드 프로세싱 시스템을 포함 하나 이에 국한되지 않는 유선 또는 무선 통신 장치일 수 있다.1 is a network diagram illustrating a network environment 100 according to various embodiments. Referring to FIG. 1, a user device 110 communicates with a media platform 120. User device 110 may be any device capable of communicating with or causing communication with media platform 120 via a wired or wireless connection. For example, the user device 110 may be a wired or wireless communication device including, but not limited to, a smart phone, a wearable device, a tablet PC, a laptop, a desktop PC, a personal entertainment system, and an embedded processing system. have.

사용자 장치(110)는 통신 네트워크(130)를 통해 미디어 플랫폼(120)과 통신 할 수 있다. 다양한 경우, 통신 네트워크(130)는 하나 이상의 유선 및/또는 무선 연결을 나타낸다. 예를 들어, 통신 네트워크(130)는 가령 유선 및/또는 무선 근거리 통신망(LAN), 유선 및/또는 무선 광역 네트워크(WAN) 및 이들의 임의의 조합을 포함할 수 있으나, 이에 국한되지는 않는다.The user device 110 may communicate with the media platform 120 through the communication network 130. In various cases, communication network 130 represents one or more wired and/or wireless connections. For example, the communication network 130 may include, for example, a wired and/or wireless local area network (LAN), a wired and/or wireless wide area network (WAN), and any combination thereof, but is not limited thereto.

미디어 플랫폼(120)은 로컬 데이터 저장소(125)와 통신 가능하게 결합될 수 있다. 또한, 미디어 플랫폼(120)은 가령, 제 1 데이터 소스(140) 및 제 2 데이터 소스(150)를 포함하나 이에 국한되지 않는 복수의 원격 및/또는 제 3 자 데이터 소스와 더 통신할 수 있다. Media platform 120 may be communicatively coupled with local data storage 125. Further, the media platform 120 may further communicate with a plurality of remote and/or third party data sources including, but not limited to, the first data source 140 and the second data source 150, for example.

연관 모델Association model

시맨틱 인덱싱Semantic indexing

다양한 실시예에서, 미디어 플랫폼(120)은 예를 들어 속성, 관계 및 분류를 포함하나 이에 국한되지 않는 의미 정보와 미디어 객체를 연관시킬 수 있다. 의미 정보는 각각 속성, 관계 및/또는 분류의 개별 세트를 제공하는 (즉, 다른 미디어 객체 포함하는) 하나 이상의 다른 객체로부터 상속될 수 있다.In various embodiments, the media platform 120 may associate a media object with semantic information including, but not limited to, attributes, relationships, and classifications. Semantic information may be inherited from one or more other objects (ie, including other media objects) each providing a separate set of attributes, relationships and/or classifications.

예를 들어, 하나의 미디어 객체(예를 들어, 사진)는 웃는 빌 게이츠를 묘사 할 수 있다. 미디어 객체는 사람으로서 빌 게이츠의 모든 속성과 빌 게이츠가 다른 사람들과 맺은 관계(예를 들어, 나이, 기업가, 인플루언서, 억만장자, 자선가, 아버지, 가족, 기술자, 미국인 등)를 상속할 수 있다. 미소는 빌 게이츠가 사진에 나타났고 기분이 좋았다는 것을 의미한다.For example, a media object (eg, a photo) could depict a smiling Bill Gates. Media objects can inherit all the attributes of Bill Gates as a person and the relationships Bill Gates has with others (e.g., age, entrepreneur, influencer, billionaire, philanthropist, father, family, technologist, American, etc.). have. A smile means that Bill Gates appeared in the picture and was in a good mood.

존 스미스는 빌 게이츠를 묘사하는 미디어 객체(예를 들어, 사진)의 컨텐츠에 관심이 있을 수 있다. 따라서, 미디어 객체는 사람으로서 존 스미스의 모든 속성과 존 스미스가 사진에 묘사되어 있지 않더라도 존 스미스가 다른 사람과 맺은 관계를 상속할 수 있다.John Smith may be interested in the content of a media object (eg, a photo) depicting Bill Gates. Thus, a media object can inherit all the attributes of John Smith as a person and the relationship John Smith has with others, even if John Smith is not depicted in the photograph.

또 다른 예로서, 미디어 객체(예를 들어, 비디오)는 사고 후 앨리스에게 속한 차량을 묘사할 수 있다. 미디어 객체는 제 3 자 소스(예를 들어, Carfax®)를 통해 확인할 수 있는 앨리스의 자동차의 모든 속성(예를 들어, 제조사, 모델, 연도, 마일리지 및 유지 관리 기록)을 상속할 수 있다. 미디어 객체는 예를 들어 앨리스의 운전 기록, 직업 활동 및 신상 정보를 포함하나 이에 국한되지 않는 앨리스에 대한 모든 속성을 더 상속할 수 있다. 또한, 미디어 객체는 특정 사고에 대한 모든 속성(예를 들어, 경미한 사고 또는 대형 사고로서 분류)을 상속할 수도 있다.As another example, a media object (eg, a video) can depict a vehicle belonging to Alice after an accident. The media object can inherit all the attributes of Alice's car (eg, make, model, year, mileage, and maintenance records) that can be viewed through a third-party source (eg, Carfax®). The media object may further inherit all of the attributes for Alice, including, but not limited to, Alice's driving record, job activity, and personal information. In addition, a media object may inherit all of the attributes for a particular incident (eg, categorized as minor or large incident).

다양한 실시예에서, 미디어 플랫폼(120)은 대응하는 의미 정보 중 어느 하나를 통해 미디어 객체가 검색되도록 할 수 있다. 예를 들어, 빌 게이츠를 묘사한 미디어 객체는 웃고 있는 50 세 남성의 사진을 검색하여 찾을 수 있다. 마찬가지로, 앨리스의 교통 사고 영상은 사고에 연루된 여성 소유의 자동차 영상 검색을 통해 찾을 수 있다.In various embodiments, the media platform 120 may enable a media object to be searched through any one of corresponding semantic information. For example, a media object depicting Bill Gates can be found by searching for a picture of a smiling 50-year-old man. Similarly, images of Alice's car accident can be found through a search for images of cars owned by a woman involved in the accident.

미디어 객체는 예를 들어 텍스트 및 멀티미디어(예를 들어, 사진, 비디오) 파일을 포함하지만 이에 국한되지 않는 임의의 종류의 컴퓨터 저장 파일일 수 있음을 이해해야 한다.It should be understood that the media object can be any kind of computer storage file including, but not limited to, text and multimedia (eg, photo, video) files, for example.

도 2는 다양한 실시예에 따른 시맨틱 인덱싱을 도시한다. 도 2를 참조하면, 미디어 객체(예를 들어, 차량의 사진)는 예를 들어 수동 연관(2) 및 자동 연관(4)를 포함하나 이에 국한되지 않는 복수의 의미 정보와 연결될 수 있다. 다양한 실시예에서, 미디어 플랫폼(120)은 미디어 객체의 메타 데이터에 포함된 지리적 위치 정보에 기초하여 자동 연관(2)를 생성하고 추가할 수 있다. 수동 연관(2) 및 자동 연관(4)을 기반으로, 미디어 객체는 예를 들어 소유권(예를 들어, 밥 스미스) 및 위치(예를 들어, 요르단 중학교 주차장)를 포함하나 이에 국한되지 않는 복수의 다른 관계를 상속할 수 있다. 2 illustrates semantic indexing according to various embodiments. Referring to FIG. 2, a media object (eg, a picture of a vehicle) may be connected to a plurality of semantic information including, but not limited to, manual association 2 and automatic association 4. In various embodiments, the media platform 120 may create and add an automatic association 2 based on geographic location information included in metadata of a media object. Based on manual association (2) and automatic association (4), a media object can be a number of media objects including, but not limited to, ownership (e.g., Bob Smith) and location (e.g., Jordan Middle School parking lot). Other relationships can be inherited.

자동 연관 모델Automatic associative model

다양한 실시예에서, 자동 연관이 미디어 객체에 추가될 수 있다. 예를 들어 지리적 위치 및/또는 타임스탬프를 기반으로 자동 연관을 생성할 수 있다. 현재 이벤트(예를 들어, 박람회, 공휴일, 개인 생일 등) 및 날씨(예를 들어, 비, 눈, 폭풍)를 기반으로 자동 연관을 또한 생성하여 미디어 객체에 추가할 수 있다. 어떤 실시예에서, 자동 연관의 확실성이 특정 임계치 미만이면, 확인을 위해 사용자에게 자동 연관이 제공될 수 있다.In various embodiments, automatic associations may be added to media objects. For example, you can create automatic associations based on geographic location and/or timestamps. Automatic associations can also be created and added to media objects based on current events (eg, fairs, holidays, personal birthdays, etc.) and weather (eg, rain, snow, storm). In some embodiments, if the certainty of the automatic association is below a certain threshold, an automatic association may be provided to the user for confirmation.

증강된 의미 정보Augmented semantic information

다양한 실시예에서, 미디어 플랫폼(120)은 미디어 객체에 새로운 의미 정보를 추가할 수 있으며, 이를 통해 새로운 의미 정보를 기반으로 미디어 객체를 검색 할 수 있다. 예를 들어, 밥 스미스가 은퇴한 경우, 밥 스미스의 차량을 묘사하는 미디어 객체는 '은퇴한 사람들이 소유한 자동차 사진'으로 검색할 수 있다.In various embodiments, the media platform 120 may add new semantic information to a media object, and through this, may search for a media object based on the new semantic information. For example, if Bob Smith retired, the media object depicting Bob Smith's vehicle could be searched for'cars owned by retired people'.

미디어 객체는 상기 미디어 객체와의 기존 연관을 갖는 객체에 추가된 새로운 의미 정보에 기초하여 더 검색될 수 있다. 예를 들어, 밥 스미스의 아들 찰리 스미스가 객체로 추가되고 찰리 스미스가 요르단 중학교 학생인 경우, 밥 스미스의 차량을 묘사하는 미디어 객체는 '학생의 부모가 소유한 자동차 사진'으로도 검색 될 수 있다.The media object may be further searched based on new semantic information added to an object having an existing association with the media object. For example, if Bob Smith's son Charlie Smith is added as an object and Charlie Smith is a Jordanian middle school student, then the media object depicting Bob Smith's vehicle can also be searched for'cars owned by the student's parents'. .

시맨틱 인덱싱을 위한 시스템은 미디어 플랫폼을 포함한다. 다양한 실시예에서, 미디어 플랫폼은 제 1 의미 정보 세트와 연관된 제 1 미디어 객체를 수신하고; 제 1 미디어 객체를 제 2 의미 정보 세트와 연관된 제 2 미디어 객체와 연관시키도록 구성된 하나 이상의 하드웨어 프로세서를 포함할 수 있다. The system for semantic indexing includes a media platform. In various embodiments, the media platform receives a first media object associated with a first set of semantic information; It may include one or more hardware processors configured to associate the first media object with a second media object associated with a second set of semantic information.

예시적인 구현에 따르면, 제 1 미디어 객체는 제 2 미디어 객체와 연관된 제 2 의미 정보 세트를 상속한다. 제 1 및 제 2 의미 정보 세트는 각각 속성, 관계 및 분류 중 적어도 하나를 포함할 수 있다. 하나 이상의 하드웨어 프로세서는 추가 의미 정보를 자동으로 생성하고 자동으로 생성된 의미 정보를 제 1 미디어 객체와 연관시키도록 구성될 수 있다. 하나 이상의 하드웨어 프로세서는 제 1 미디어 객체와 연관된 지리 위치 및 타임스탬프 중 하나 이상에 적어도 부분적으로 기초하여 추가 의미 정보를 자동으로 생성하도록 구성될 수 있다.According to an exemplary implementation, the first media object inherits a second set of semantic information associated with the second media object. Each of the first and second semantic information sets may include at least one of an attribute, a relationship, and a classification. One or more hardware processors may be configured to automatically generate additional semantic information and to associate the automatically generated semantic information with the first media object. The one or more hardware processors may be configured to automatically generate additional semantic information based at least in part on one or more of a geographic location and a timestamp associated with the first media object.

다른 예시적인 구현에 따르면, 하나 이상의 하드웨어 프로세서는 사용자로부터 추가 의미 정보를 수신하고 사용자로부터 수신된 추가 의미를 제 1 미디어 객체와 연관시키도록 구성된다. 예를 들어, 사용자는 제 3 의미 정보 세트와 관련된 제 1 미디어 객체와 제 3 미디어 객체 간의 연관을 표시함으로써 적어도 부분적으로 추가 의미 정보를 제공할 수 있다. 다른 예에서, 사용자는 제 1 미디어 객체와 하나 이상의 속성, 관계 및 분류 사이의 연관을 표시함으로써 적어도 부분적으로 추가 의미 정보를 제공한다.According to another exemplary implementation, the one or more hardware processors are configured to receive additional semantic information from the user and to associate the additional semantic received from the user with the first media object. For example, the user may provide additional semantic information at least partially by displaying an association between the first media object and the third media object related to the third semantic information set. In another example, the user provides additional semantic information, at least in part, by displaying an association between the first media object and one or more attributes, relationships, and classifications.

인간 중심 연관 인터페이스Human-centered association interface

다양한 실시예에서, 미디어 플랫폼(120)은 사용자가 미디어 객체에 신속하게 정보를 첨부할 수 있도록 하는 사용자 인터페이스(UI)를 제공한다.In various embodiments, media platform 120 provides a user interface (UI) that allows a user to quickly attach information to a media object.

사용자 인터페이스 스탬핑User interface stamping

미디어 플랫폼(120)은 사용자가 스탬핑 UI(300)를 이용하여 미디어 컨텐츠에 의미 정보를 할당할 수 있도록 한다. 다양한 실시예에서, 스탬핑 UI(300)는 사용자가 한 번의 클릭으로 여러 미디어 객체에 의미 정보를 할당할 수 있도록 한다. 스탬핑 UI(300)는 추가될 의미 정보의 카테고리, 소스 또는 값을 표시하는 스탬프 영역(4)을 제공한다. 하나의 예시적인 구현에서, 사용자는 리스트(2)에서 타겟 미디어 객체를 클릭하고, 스탬프 영역(4)은 상기 타겟 미디어 객체의 분석에 기초한 의미 정보 리스트를 추천한다. 대상 미디어 객체의 분석에는 대상 미디어 항목과 관련된 다른 미디어 항목의 의미 정보를 검사하는 것뿐만 아니라 객체 인식, 메타 데이터 분석이 포함될 수 있다. 사용자는 스탬프 영역(4)에서 권장된 의미 정보 리스트를 편집할 선택을 갖거나 전체 권장 세트를 수락할 수 있다. 예를 들어, 사용자가 한 번의 클릭으로 스탬프 영역(4)에 도시된 의미 정보 세트와 함께 대상 미디어 객체를 스탬프할 수 있다.The media platform 120 allows a user to allocate semantic information to media content using the stamping UI 300. In various embodiments, the stamping UI 300 allows a user to allocate semantic information to multiple media objects with one click. The stamping UI 300 provides a stamp area 4 that displays a category, source, or value of semantic information to be added. In one exemplary implementation, the user clicks on a target media object in the list 2, and the stamp area 4 recommends a semantic information list based on the analysis of the target media object. Analysis of the target media object may include object recognition and metadata analysis, as well as examining semantic information of other media items related to the target media item. The user may have a choice to edit the recommended semantic information list in the stamp area 4 or may accept the entire recommended set. For example, the user can stamp the target media object together with the semantic information set shown in the stamp area 4 with one click.

스탬프 영역(4)은 다른 연관과 별개로 추가될 수 있는 개별 연관(6)을 포함할 수 있다. 스탬프 영역(4)은 연관 템플릿(8)을 더 포함할 수 있다. 스탬프 연관 템플릿(8)은 일반적으로 사용되는 연관에 기초하여 구성된 시맨틱 카테고리 그룹을 포함할 수 있다. 스탬프 연관 템플릿(8)을 선택하면 템플릿의 각 카테고리에 대한 의미 정보 세트가 할당된다. 예를 들어, 홈 스탬프 연관 템플릿은 대상 미디어 객체를 집과 관련된 다른 미디어 객체와 연관시키하고, 집의 지리적 위치에 대한 의미 정보를 추가하며, 또한 홈 카테고리의 일부인 사람과의 관계를 추가하는 등을 수행할 수 있다. 스탬프 연관 템플릿(8)은 일반적으로 사용되는 연관에 대해 반복적으로 사용되도록 미리 구성될 수 있다.The stamp area 4 may contain individual associations 6 that can be added separately from other associations. The stamp area 4 may further include an associated template 8. The stamp association template 8 may include a semantic category group configured based on a commonly used association. When the stamp-related template 8 is selected, a set of semantic information for each category of the template is allocated. For example, the home stamp association template associates the target media object with other media objects related to the house, adds semantic information about the geographic location of the house, and also adds a relationship with a person who is part of the home category. Can be done. The stamp association template 8 can be pre-configured to be used repeatedly for commonly used associations.

예시적인 실시예에 따르면, 시맨틱 인덱싱을 위한 시스템은, 각각의 미디어 객체의 의미 정보를 식별하기 위해 미디어 플랫폼의 미디어 객체를 인덱싱하고; 일치하는 의미 정보에 기초하여 복수의 미디어 객체를 연관시키도록 구성된 하나 이상의 처리 장치를 갖는 미디어 플랫폼을 포함할 수 있다. 예에서, 처리 장치는 스탬프 템플릿과 공통된 의미 정보에 대해 미디어 객체의 인덱스를 검색하고, 상기 검색에 기초하여, 처리 장치는 공통 의미 정보에 기초하여 대응하는 미디어 객체를 분류하며; 사용자가 큐레이션할 수 있도록 분류된 미디어 객체를 표시한다. 일부 실시예에서, 처리 장치는 하나 이상의 미디어 객체에 연관을 적용하기 위해 공통 의미 정보를 포함하는 연관 스탬프 템플릿을 생성한다. 예를 들어, 큐레이션에는 스탬프 템플릿 또는 하나 이상의 다른 연관 적용이 포함될 수 있다. 스탬프 템플릿은 연관의 의미 정보를 수정하고 여러 연관을 포함하도록 편집될 수 있다. 일부 실시예에서, 시스템은 한 번의 선택에 기초하여 선택된 스탬프 템플릿으로부터의 연관을 다수의 미디어 객체에 적용함으로써 사용자가 미디어 플랫폼의 미디어 객체를 큐레이팅할 수 있도록 하는 스탬프 템플릿이 달린 인터페이스를 포함한다. 예에서, 처리 장치는 하나 이상의 미디어 객체와 연관시키기 위해 사용자 입력으로부터 추가적인 의미 정보를 수신한다.According to an exemplary embodiment, a system for semantic indexing includes: indexing a media object of a media platform to identify semantic information of each media object; It may include a media platform having one or more processing devices configured to associate a plurality of media objects based on matching semantic information. In an example, the processing device searches an index of the media object for semantic information common to the stamp template, and based on the search, the processing device classifies the corresponding media object based on the common semantic information; Displays classified media objects so that users can curate. In some embodiments, the processing device generates an association stamp template including common semantic information to apply association to one or more media objects. For example, curation may include stamp templates or one or more other associated applications. The stamp template can be edited to modify the semantic information of the association and include multiple associations. In some embodiments, the system includes an interface with stamp templates that allows a user to curate media objects of a media platform by applying associations from the selected stamp template to multiple media objects based on a single selection. In an example, the processing device receives additional semantic information from user input to associate with one or more media objects.

스탬핑 워크 플로우Stamping workflow

도 4는 다양한 실시예에 따른 스탬핑 프로세스(400)를 예시하는 흐름도이다. 도 4를 참조하면, 다양한 실시예에서, 프로세스(400)는 미디어 플랫폼(120)에 의해 수행될 수 있다.4 is a flow diagram illustrating a stamping process 400 in accordance with various embodiments. Referring to FIG. 4, in various embodiments, process 400 may be performed by media platform 120.

다양한 실시예에서, 프로세스(400)는 데이터 수집 모드가 선택될 때 수행된다. 이와 같이, 미디어 플랫폼(120)은 스탬프에서 적어도 일부 특정 연관에 대한 추가 정보를 수집할 수 있다. 즉, 공통 의미 정보를 갖는 객체를 식별하고 공통 의미 정보를 연관으로서 그룹핑할 수 있다. 공통 의미 정보 그룹핑으로 템플릿이 형성될 수 있다. 스탬핑 동작을 통해 의미 정보의 그룹핑이 첨부되고 실제 미디어 객체가 시스템에 정의된다. 연관은 또한 수정 사항을 전파할 수 있는 공통 의미 정보가 있는 객체들 간의 관계를 형성할 수 있다.In various embodiments, process 400 is performed when a data collection mode is selected. As such, the media platform 120 may collect additional information on at least some specific associations from the stamp. That is, objects having common semantic information can be identified and the common semantic information can be grouped as association. A template may be formed by grouping common semantic information. Grouping of semantic information is attached through the stamping operation, and the actual media object is defined in the system. Associations can also form relationships between objects with common semantic information that can propagate modifications.

예를 들어, 사용자가 스크린 디스플레이(6)에 나타난 미디어 객체를 클릭하면, 스탬프가 음식 아이템 연관을 포함한다고 결정한 데 응답하여 스크린 디스플레이(8)가 나타난다. 스크린 디스플레이(8)에서, UI는 음식에 대한 정보를 수집할 수 있도록 한다. 스크린 디스플레이(8)는 객체 템플릿 유형에 따라 다르다. 사용자가 저장 기능을 활성화하면, 새 객체가 생성(또는 저장)되고 연관이 해당 개체에 할당된다.For example, if a user clicks on a media object shown on screen display 6, screen display 8 appears in response to determining that the stamp contains a food item association. In the screen display 8, the UI makes it possible to collect information about food. The screen display 8 differs depending on the object template type. When the user activates the save function, a new object is created (or saved) and an association is assigned to that object.

대안으로, 데이터 수집 모드가 선택되지 않은 경우, 사용자는 미디어 객체를 클릭할 수 있고 스탬프 영역(4)의 다른 객체가 미디어 객체와 연관된다.Alternatively, if the data collection mode is not selected, the user can click on the media object and another object in the stamp area 4 is associated with the media object.

다양한 실시예에서, 2개의 워크플로우는 미디어 플랫폼(120)의 과부하 접근 방식의 일부이다. 미디어 플랫폼(120)은 사용자에 의해 지정된대로 점진적으로 정보를 수집할 수 있다. 유리하게는, 사용자는 시각적 검색을 사용해 해당 정보를 기반으로 검색하는 향상된 기능으로 인해 추가 정보를 입력하도록 노력을 기울이게 장려된다.In various embodiments, the two workflows are part of the overload approach of media platform 120. The media platform 120 may gradually collect information as specified by the user. Advantageously, the user is encouraged to make an effort to enter additional information due to the improved ability to search based on that information using visual search.

연관 선택 인터페이스Association selection interface

다양한 실시예에서, 사용자는 미디어 객체의 컨텐츠를 식별하고, 의미 정보를 미디어 객체와 연관시키고, 연관 유형을 선택할 수 있다. 사용자가 다른 미디어 객체의 컨텐츠를 대상 미디어 객체와 연관시키면, 대상 미디어 객체는 다른 미디어 객체의 컨텐츠에 대한 다른 연관을 상속한다. 유리하게는, 사용자는 높은 정확도로 컨텐츠를 효율적으로 식별하고 미디어 객체와 연관시킬 수 있다. 도 4는 월드 객체(world object)를 미디어 컨텐츠와 연관시키기 위한 예시적인 데이터 수집 프로세스에 대한 흐름도를 도시한다.In various embodiments, the user may identify the content of the media object, associate semantic information with the media object, and select an association type. When a user associates the content of another media object with the target media object, the target media object inherits another association with the content of the other media object. Advantageously, the user can efficiently identify the content and associate it with the media object with high accuracy. 4 shows a flow diagram for an exemplary data collection process for associating a world object with media content.

도 5는 다양한 실시예에 따른 스탬프에 연관을 추가하기 위한 프로세스(500)를 도시한다. 도 5를 참조하면, 프로세스(500)는 미디어 플랫폼(120)에 의해 수행될 수 있다. 스크린 디스플레이(2)에서, 사용자는 큐레이팅될 미디어 객체를 검사 할 수 있다. 스탬프 뷰로부터, 사용자는 추가될 연관을 볼 수 있다. 스탬프 뷰에서, 사용자는 사진을 선택(예를 들어, 클릭, 터치 등)하여 미디어 객체에 스탬핑할 수 있으며, 스탬프의 모든 연결이 사진에 추가된다. 대안으로, 사용자는 스탬프에 새 연결을 추가하도록 선택할 수 있다.5 shows a process 500 for adding an association to a stamp according to various embodiments. Referring to FIG. 5, the process 500 may be performed by the media platform 120. On the screen display 2, the user can inspect the media object to be curated. From the stamp view, the user can see the association to be added. In the stamp view, the user can select a photo (eg, click, touch, etc.) and stamp it on a media object, and all connections of the stamp are added to the photo. Alternatively, the user can choose to add a new connection to the stamp.

사용자가 스탬핑 모드 버튼을 클릭하는 것에 응답하여, 메뉴는 새로운 연관을 추가하기 위해 사용자가 다른 프로세스 중에서 선택할 수 있도록 하는 스크린 디스플레이(4)로 프로세스가 진행한다. 예를 들어, 일부 실시예에서, 사용자는 스크린 디스플레이(6)를 통해 객체 유형을 선택함으로써 새 연관을 추가할 수 있다. 사용자가 객체 유형을 선택하면, UI가 스크린 디스플레이(8)(즉, 객체 선택 스크린)으로 전환되어 선택한 객체 유형에 따라 검색 가능한 객체의 리스트를 나타낸다. 사용자는 추가할 객체를 검색할 수 있다. 일부 실시예에서, 스크린 디스플레이(8)는 쉬운 네비게이션을 제공하기 위한 스탬프 아이콘을 포함한다.In response to the user clicking the stamping mode button, the menu proceeds to a screen display 4 that allows the user to select from different processes to add a new association. For example, in some embodiments, the user can add a new association by selecting the object type via the screen display 6. When the user selects an object type, the UI is switched to the screen display 8 (ie, an object selection screen) to display a list of searchable objects according to the selected object type. Users can search for an object to add. In some embodiments, the screen display 8 includes a stamp icon to provide easy navigation.

특정 객체를 선택하면, 연관 선택 스크린 디스플레이(10)가 제공되어 사용자가 객체에 대한 연관을 추가로 선택할 수 있도록 한다. 사용자는 연관 작업을 완료하지 않고 취소하고 돌아갈 수 있는 옵션이 있다. 대안으로, 사용자는 스탬핑 동작을 완료하기 위해 연관 선택 스크린 디스플레이(10)에서 하나 이상의 연관을 선택할 수 있다. 연관 선택 화면(10)에 후속으로 또는 대안으로, UI는 스크린 디스플레이(12)에 묘사된 것과 같이 연관을 완료하기 위해 추가 확인 제어(예를 들어, 저장, 취소 등)를 제공한다.When a specific object is selected, an association selection screen display 10 is provided to allow a user to additionally select an association for the object. The user has the option to cancel and return without completing the associated task. Alternatively, the user may select one or more associations in the association selection screen display 10 to complete the stamping operation. Subsequent to or alternatively to the association selection screen 10, the UI provides additional confirmation controls (eg, save, cancel, etc.) to complete the association as depicted on the screen display 12.

도 6은 다양한 실시예에 따른 객체 선택기(600)를 도시한다. 사용자는 객체 유형을 선택하고 연결할 다양한 객체에 대한 검색을 시작할 수 있다. UI(600)는 객체가 이미 스탬프에 로드된 사용자와 통신하기 위해 기존 스탬프를 디스플레이하는 연관 스탬프를 표시한다.6 illustrates an object selector 600 according to various embodiments. Users can select an object type and start searching for various objects to connect to. The UI 600 displays an associated stamp displaying an existing stamp in order to communicate with a user whose object has already been loaded into the stamp.

연관 선택Association selection

사용자가 연관 편집 모드를 시작하기 위해 메뉴 버튼을 클릭하면, 사용자는 다양한 방법으로 스탬프에 연관을 추가하도록 선택할 수 있다. 예를 들어, 사용자는 최근 연결 리스트에서 선택할 수 있다. 다른 예에서, 사용자는 이전에 구성된 연관 템플릿에서 선택할 수 있다. 각 템플릿은 사용자가 입력한 연관 그룹이다. 예를 들어, 템플릿에는 "baby Jim playing", "Project X" 또는 "Project Y에 대한 비용 영수증"이 포함될 수 있다. 일부 실시예에서, 미디어 플랫폼(120)은 사용자가 고정된 개수의 템플릿을 정의하고 편집할 수 있게 한다. 제한된 수의 구성 가능한 템플릿을 사용하면 템플릿 관리 시스템 없이도 사용자가 미리 구성된 템플릿에 쉽게 액세스할 수 있다.When the user clicks the menu button to start the association editing mode, the user can choose to add associations to the stamp in various ways. For example, the user can select from a list of recent connections. In another example, the user can select from previously configured association templates. Each template is an association group entered by the user. For example, the template could include "baby Jim playing", "Project X" or "receipt for Project Y." In some embodiments, the media platform 120 allows a user to define and edit a fixed number of templates. With a limited number of configurable templates, users can easily access preconfigured templates without a template management system.

대안으로, 사용자는 연관을 선택하기 위해 사용자가 객체 유형을 탐색할 수 있게 하는 월드 객체 유형을 선택할 수 있다. 또한, 사용자는 애플리케이션 작성자가 구성한 일반 연관과 같이 공통 연관에서 선택할 수 있다. 예를 들어, 썸네일을 사용하는 애플리케이션이 임시 사진 연관을 사용할 수 있다.Alternatively, the user can select a world object type that allows the user to navigate the object type to select an association. In addition, users can select from common associations, such as general associations configured by application authors. For example, an application that uses thumbnails can use temporary photo associations.

연관 피커 플로우Associated Picker Flow

월드 객체와 미디어 객체 사이의 연관 유형 선택을 간소화하기 위해, 미디어 플랫폼(120)은 사용자가 하나 이상의 연관을 피킹할 수 있게 하는 최적화된 연관 선택기를 제공한다. 도 7a는 예시적인 실시예에 따른 연관 선택기(700)를 도시한다.To simplify selection of the type of association between world objects and media objects, media platform 120 provides an optimized association selector that allows a user to pick one or more associations. Fig. 7A shows an association selector 700 according to an exemplary embodiment.

예를 들어, 하나의 연관을 선택하기 위해, 사용자는 연관 선택을 완료하는 연관 버튼 또는 체크박스(예를 들어, 선택)를 클릭할 수 있다. 여러 연관을 선택하려면, 사용자가 체크박스(예를 들어, 선택)를 클릭할 수 있고 이 연관 대화 상자가 다중 선택 대화 상자로 작동한다. 도 7b는 예시적인 실시예에 따른 단일 및 다중 연관 선택을 도시한다.For example, to select one association, the user may click an association button or checkbox (eg, select) to complete the association selection. To select multiple associations, the user can click a checkbox (for example, select), and this association dialog acts as a multiple selection dialog. Fig. 7B shows single and multiple association selections according to an exemplary embodiment.

연관 검색Association search

미디어 플랫폼(120)은 사용자가 연관을 점진적으로 추가할 수 있게 한다. 더욱이, 미디어 플랫폼(120)은 사용자가 더 빠른 연관을 위해 공통 파라미터를 갖는 아티팩트를 신속하게 그룹화할 수 있게 한다. 다양한 실시예에서, 미디어 플랫폼(120)은 다중 모드 사용자 인터페이스를 통해 검색 프로세스로 연관 프로세스를 연결한다. 다중 모드 사용자 인터페이스를 사용하여, 사용자는 연관과 검색 사이를 빠르게 전환할 수 있으며 그 반대도 마찬가지이다. 이 빠른 전환을 통해 다음과 같은 시나리오가 가능하다:The media platform 120 allows a user to add associations incrementally. Moreover, the media platform 120 allows users to quickly group artifacts with common parameters for faster association. In various embodiments, media platform 120 connects the associative process to the search process through a multi-mode user interface. Using a multi-mode user interface, users can quickly switch between association and search and vice versa. With this quick transition, the following scenarios are possible:

사용자가 연관을 추가하는 동안, 사용자는 사용 가능한 미디어 객체의 개수를 제한하거나 필터링하기 위해 검색 모드로 전환할 수 있다. 따라서, 사용자는 이미 추가된 의미 정보 또는 타임스탬프와 같은 간단한 속성에 대해 검색한다.While the user is adding an association, the user can switch to the search mode to limit or filter the number of available media objects. Thus, the user searches for a simple attribute such as a timestamp or semantic information that has already been added.

사용자가 검색하는 동안, 사용자는 일부 의미 정보가 누락되었다고 판단할 수 있다. 그런 다음 사용자는 제 1 단계 메뉴를 통해 스탬핑 모드로 빠르게 전환하고 미디어 객체에 더 많은 연관을 추가할 수 있다.While the user is searching, the user may determine that some semantic information is missing. The user can then quickly switch to the stamping mode through the first level menu and add more associations to the media object.

인터페이스는 사용자가 원하는만큼의 정보를 점진적 방식으로 추가할 수 있게하며, 이는 인지된 작업량과 노력을 줄인다. 더욱이, UI를 통해 사용자는 새로 추가된 의미 정보를 사용해 검색을 시작할 수 있기 때문에 새로 추가된 정보의 이점을 즉시 인식할 수 있다.The interface allows the user to add as much information as desired in an incremental manner, which reduces the perceived amount of work and effort. Moreover, the UI allows users to start searching with the newly added semantic information, so they can immediately recognize the benefits of the newly added information.

계층적 비주얼 패싯 검색Hierarchical Visual Facet Search

다양한 실시예에서, 미디어 플랫폼(120)은 사용자가 제시된 미디어가 충족하는 기준을 빠르게 볼 수 있도록 하는 시각적 인터페이스를 제공한다. 선택 기준은 특정 영역에 디스플레이될 수 있다. 또한, 인터페이스는 사용자에게 더 많은 공간을 제공하기 위해 정상 모드와 최소 모드를 가질 수 있다. 도 8은 다양한 실시예에 따른 시각적 인터페이스(800)를 도시한다. 최소 모드에서, 사용자는 읽기 전용 모드에 있으며 다양한 선택기와 상호 작용할 수 없다.In various embodiments, the media platform 120 provides a visual interface that allows a user to quickly view the criteria that the presented media meets. The selection criteria may be displayed in a specific area. In addition, the interface may have a normal mode and a minimum mode to provide more space to the user. 8 illustrates a visual interface 800 according to various embodiments. In minimal mode, the user is in read-only mode and cannot interact with the various selectors.

다양한 실시예에서, 선택기 그룹으로서 쿼리를 제시하는 것이 최종 사용자에게 개념을 단순화한다. 또한, 서로에 대한 선택기의 위치가 중요하며 사용자는 이를 재정렬할 수 있다.In various embodiments, presenting the query as a group of selectors simplifies the concept to the end user. In addition, the position of the selectors relative to each other is important and the user can rearrange them.

도 9는 다양한 실시예에 따른 비주얼 브라우징 메뉴(900)를 도시한다. 도 9를 참조하면, 다양한 실시예에서, 사용자가 정상 모드에서 중앙 메뉴 버튼을 클릭하면, 미디어 플랫폼(120)은 제 1 단계 메뉴 보기(2)를 제공한다. 이 메뉴는 사용자가 2개의 레벨 계층적 패싯 분류를 브라우징할 수 있게 한다. 메뉴 버튼을 한 번 클릭하면 제 1 단계 패싯 카테고리가 표시되어 사용자가 제 2 단계 메뉴 보기(4)로 네비게이션할 수 있다. 제 2 단계 메뉴 보기(4)에서, 사용자에게 다양한 미디어 객체에 대한 정보가 제공된다. 사용자는 여러 연도(예를 들어, 2008, 2010 및 2012, 2011은 제외)의 여러 미디어 객체가 있는지 확인하고 필터링하여 3 월부터 8 월까지의 미디어 객체를 볼 수 있다. 동시에, 인터페이스는 데이터를 픽(pick)하는 데 사용되는 선택기를 표시한다.9 illustrates a visual browsing menu 900 according to various embodiments. Referring to FIG. 9, in various embodiments, when the user clicks the center menu button in the normal mode, the media platform 120 provides a first-level menu view 2. This menu allows the user to browse two level hierarchical facet classifications. When the menu button is clicked once, the first-stage facet category is displayed so that the user can navigate to the second-stage menu view (4). In the second level menu view 4, the user is presented with information on various media objects. Users can view media objects from March to August by checking for multiple media objects from multiple years (except for example 2008, 2010 and 2012, 2011) and filtering. At the same time, the interface displays a selector used to pick data.

선택기Selector

도 10은 다양한 연도에 따른 선택 기준(1000)을 도시한다. 도 10을 참조하면, 선택 기준(1000)이 사용자에 의해 구축될 수 있다. 도 10에 도시된 바와 같이, 각 패싯에 대해 여러 선택기(2)가 있을 수 있다. 선택기(2)는 검색에 사용되는 패싯값을 지정할 수 있다. 선택 기준(1000)은 NOT 기준(4) 및 MUST 기준(6)을 포함할 수 있으며, 둘 다 단일 값 선택기일 수 있다. 선택 기준(1000)은 둘 다 OR 기준일 수 있는 지도 위치 기준(8) 및 값 범위 기준(10)을 더 포함할 수 있다(즉, 지도 위치 기준(8) 및 값 범위 기준(10) 중 적어도 하나가 참이어야 한다). 유리하게, 사용자는 검색에 사용되는 기준을 빠르게 훑어보고 이해할 수 있다.10 shows selection criteria 1000 according to various years. Referring to FIG. 10, a selection criterion 1000 may be established by a user. As shown in Fig. 10, there may be several selectors 2 for each facet. The selector 2 can designate a facet value used for search. The selection criterion 1000 may include the NOT criterion 4 and MUST criterion 6, and both may be single value selectors. The selection criterion 1000 may further include a map location criterion 8 and a value range criterion 10 which may both be OR criteria (ie, at least one of the map location criterion 8 and the value range criterion 10). Must be true). Advantageously, the user can quickly navigate and understand the criteria used in the search.

새로운 검색 선택기 추가Add new search selector

도 11은 다양한 실시예에 따른 새로운 검색 선택기를 추가하는 프로세스(1100)를 도시한다. 도 11을 참조하면, 사용자가 오픈 메뉴(2)를 클릭하고, 상기 메뉴는 사용자를 패싯 브라우징 모드(4)로 안내한다. 사용자가 특정 패싯을 사용하여 검색하기로 결정하면, 사용자는 해당 패싯을 선택기 영역으로 드래그할 수 있다. 드래깅 동작은 사용자가 기존의 선택기들에 대해 선택기를 배치할 수 있기 때문에 중요하다. 선택기를 드래그 앤 드롭하면, 대화 상자(6)가 표시되어 사용자가 선택 사항을 더 자세히 편집할 수 있다. 대화 상자(6)는 패싯 유형마다 다른 UI를 나타낼 수 있다. 큰 인터페이스를 디스플레이하는 목적은 컴퓨터 애플리케이션 디자이너가 사용자에게 다양한 옵션을 표시하도록 더 많은 공간을 제공하기 위한 것이다. 또한, 큰 인터페이스는 사용자가 작은 공간을 처리해야 하는 불편함을 덜어준다. 대화 상자(6)에서, 사용자는 AND, OR 및 MUST 기준을 다른 패싯값 또는 값 범위에 지정할 수 있다. 사용자가 수락을 클릭하면, 새로 추가된 선택기가 스크린 디스플레이(8)에 표시된다.11 illustrates a process 1100 of adding a new search selector according to various embodiments. Referring to FIG. 11, the user clicks the open menu 2, and the menu guides the user to the faceted browsing mode 4. If the user decides to search using a specific facet, the user can drag that facet to the selector area. The dragging operation is important because the user can place the selector over existing selectors. By dragging and dropping the selector, a dialog box (6) is displayed, allowing the user to further edit the selection. The dialog box 6 may display a different UI for each facet type. The purpose of displaying a large interface is to give the computer application designer more space to present various options to the user. In addition, the large interface relieves the user from having to deal with a small space. In the dialog box 6, the user can assign AND, OR and MUST criteria to different facet values or value ranges. When the user clicks Accept, the newly added selector is displayed on the screen display 8.

패싯 네비게이션Faceted navigation

도 12는 다양한 실시예에 따른 패싯 네비게이션 인터페이스(1200)를 도시한다.12 illustrates a faceted navigation interface 1200 according to various embodiments.

사용자는 제 1 단계 패싯 카테고리 중 하나를 선택하여 패싯 사이를 네비게이션할 수 있다. 예를 들어, 제 1 단계 패싯 카테고리는 여러(예를 들어, 5개) 기본 그룹으로 나눌 수 있다. 상기 그룹은 예를 들어, 누가, 무엇을, 언제, 어디서, 어떻게에 대해 검색될 미디어 객체에 따라 다르다. 사용자가 제 1 레벨의 패싯 카테고리 중 하나를 클릭하면, 제 2 단계 패싯 카테고리가 디스플레이되어 사용자의 검색을 단순화할 수 있다. 예를 들어, "언제"라는 제 1 단계 패싯 카테고리 아래에는, 특정 날짜, 기상 조건, 이벤트 유형 및 이벤트 이름을 포함하나 이에 국한되지 않는 여러 제 2 단계 패싯 카테고리가 있을 수 있다. 하나의 예시적인 실시예에서, 각각의 최상위 카테고리는 상기 카테고리를 강조하고 식별하는 데 도움이 되는 상이한 색상을 갖는다.The user may navigate between facets by selecting one of the first-level facet categories. For example, the first level facet category can be divided into several (eg, 5) basic groups. The group depends on the media object to be searched for, for example, who, what, when, where and how. When the user clicks one of the facet categories of the first level, the second stage facet category is displayed to simplify the user's search. For example, under the first stage facet category "When", there may be several second stage facet categories including, but not limited to, specific dates, weather conditions, event types, and event names. In one exemplary embodiment, each top-level category has a different color to help highlight and identify the category.

사용자가 제 2 단계 패싯 카테고리를 클릭하면, 인터페이스는 사용자의 미디어 객체에 있는 사용 가능한 패싯 및 패싯값을 표시한다. 일부 실시예에서, 제 2 단계 패싯 카테고리에 무제한 값이 있는 단일 패싯이 포함될 수 있다. 유리하게, 패싯 네비게이션 인터페이스는 미디어 객체의 메타 데이터를 빠르게 볼 수 있는 방법을 제공한다. 패싯 네비게이션 인터페이스를 통해 사용자는 호기심으로 인한 메타 정보를 기반으로 미디어 컬렉션을 탐색할 수 있다. 사용자는 누락된 메타 정보를 식별하도록 더 권장받을 수 있다(예를 들어, 사용자는 스탬핑 모드로 전환하고 누락된 정보를 추가할 수 있다). 또한, 패싯 네비게이션 인터페이스는 사용자가 미디어 라이브러리에서 사용할 수 없는 미디어 요청을 시작할 수 있는 통합 인터페이스를 제공한다. 예를 들어, 사용자가 미디어 라이브러리에 특정 미디어 객체(예를 들어, 작년 사용자 사촌의 생일 사진)가 누락된 것을 발견하면, 해당 인터페이스를 사용하여 누락된 미디어 객체에 대한 요청을 시작할 수 있다.When the user clicks on the second stage facet category, the interface displays available facets and facet values in the user's media object. In some embodiments, a single facet with an unlimited value may be included in the second stage facet category. Advantageously, the faceted navigation interface provides a quick way to view the metadata of a media object. Through the faceted navigation interface, users can explore media collections based on meta-information caused by curiosity. The user may be further encouraged to identify the missing meta-information (for example, the user can switch to stamping mode and add the missing information). In addition, the faceted navigation interface provides a unified interface for users to initiate media requests that are not available in the media library. For example, if a user finds that a particular media object (eg, last year's user cousin's birthday photo) is missing from the media library, he can use that interface to initiate a request for the missing media object.

패싯 디스플레이 섹션Faceted display section

도 13은 다양한 실시예에 따른 패싯 표시부(1300)를 나타낸다. 도 13을 참조하면, 패싯 표시부(1300)는 패싯이 해당 값을 갖는지 여부에 관계없이 특정 패싯 카테고리의 패싯을 표시한다. 값이 없는 패싯을 표시함으로써, 사용자는 사용자가 현재 보고 있는 미디어 객체 컬렉션에 대해 누락된 것이 무엇인지 알 수 있다. 예를 들어, 사용자는 패싯 표시부(1300)로부터 직업 패싯이나 성별 패싯이 어떤 값도 제공되지 않았음을 관찰할 수 있다.13 illustrates a facet display unit 1300 according to various embodiments. Referring to FIG. 13, the facet display unit 1300 displays facets of a specific facet category regardless of whether the facets have a corresponding value. By displaying facets with no values, the user can see what is missing for the collection of media objects the user is currently viewing. For example, the user may observe that no value is provided for the occupation facet or the gender facet from the facet display unit 1300.

시스템은 패싯과 관련된 값이 없다는 결정에 응답하여 패싯을 표시할 수 있다. 값이 비어 있거나 검색 적중이 없는 패싯을 제공하면 백그라운드 검색에서 패싯이 데이터 세트에서 유용하지 않다고 판단했음을 사용자에게 알린다. 빈 패싯은 하나 이상의 데이터 객체에서 의미 데이터가 누락되었거나 데이터 객체를 사용할 수 없음을 사용자에게 알릴 수도 있다. 그런 다음 사용자는 미디어 객체를 찾아 누락된 메타 데이터를 추가하거나 사용할 수 없는 미디어 객체를 얻을 수 있다.The system can display the facets in response to determining that there are no values associated with the facets. If you provide a facet with an empty value or no search hit, background search notifies the user that the facet has determined that it is not useful in the data set. The empty facet may inform the user that semantic data is missing from one or more data objects or that the data object is unavailable. The user can then find the media object and add the missing metadata or get the unusable media object.

패싯 표현Facet expression

다양한 실시예에서, 미디어 플랫폼(120)은 패싯값과 연관된 유형에 기초하여 다른 방식으로 사용자에게 패싯을 표시한다. 유리하게는, 패싯값과 연관된 유형을 기반으로 패싯을 표시하면 사용 가능한 데이터 유형에 관한 사용자와의 커뮤니케이션이 향상된다.In various embodiments, the media platform 120 presents facets to the user in different ways based on the type associated with the facet value. Advantageously, displaying facets based on the type associated with the facet value improves communication with the user about the available data types.

이산값은 개별 값이다. 이산값에는 제한된 이산값과 무제한 이산값의 두 가지 유형이 있다. 제한된 이산값(예를 들어, 성별)은 제한된 수의 가능한 값을 갖는 값이다. 제한된 이산값을 가진 패싯은 제 2 단계 패싯 카테고리의 일부이다. 대조적으로, 무제한 이산값(예를 들어, 사람들, 이벤트들)은 별개의 제 2 단계 패싯 카테고리로 표시된다.Discrete values are individual values. There are two types of discrete values: limited discrete values and unlimited discrete values. A limited discrete value (eg gender) is a value with a limited number of possible values. Facets with limited discrete values are part of the second level facet category. In contrast, unlimited discrete values (eg, people, events) are represented as separate second level facet categories.

범위 값은 범위로 그룹화될 수 있는 값이다. 일부 범위 값은 무제한의 가능한 값들(예를 들어, 타임스탬프)을 포함하는 연속 범위이다. 연속 범위 값은 항상 범위 또는 범위 그룹으로 표시된다. 반대로, 정수 범위는 이산값(예를 들어, 요일)으로 구성된다. 정수 범위는 이산값의 그룹으로 표시될 수 있다. 맵값은 상기 맵값이 특수 값인 특수 맵 프레젠테이션에 표시될 수 있다.Range values are values that can be grouped into ranges. Some range values are contiguous ranges containing an unlimited number of possible values (eg, timestamps). Continuous range values are always expressed as a range or group of ranges. Conversely, an integer range consists of discrete values (eg, days of the week). Integer ranges can be expressed as groups of discrete values. The map value may be displayed in a special map presentation in which the map value is a special value.

도 14는 다양한 실시예에 따른 패싯 표현을 도시한다. 도 14에 도시된 바와 같이, 패싯 표현은 제한된 이산 패싯(12), 정수 범위 패싯(4) 및 무제한 이산 패싯(14)의 표현을 포함할 수 있다. 무제한 이산 패싯(14)은 다른 패싯 표현(예를 들어, 제한된 이산 패싯(12) 및 정수 범위 패싯(4))이 함께 그룹화될 수 있는 곳을 표시하기 위해 전체 서브카테고리를 필요로 할 수 있다.14 illustrates facet representation according to various embodiments. As shown in FIG. 14, the facet representation may include a representation of a limited discrete facet 12, an integer range facet 4, and an unlimited discrete facet 14. Unlimited discrete facets 14 may require an entire subcategory to indicate where different facet representations (eg, limited discrete facets 12 and integer range facets 4) can be grouped together.

미디어 컨텐츠에 대한 계층적 패싯Hierarchical facets for media content

다양한 실시예에서, 패싯은 2 단계 계층구조로 구성될 수 있다. 계층구조는 데이터 구조(예를 들어, 트리)에 저장된다. 트리의 각 리프 노드는 개별 패싯값의 인덱스를 가리킬 수 있다. 이와 같이, 미디어 플랫폼(120)은 사용자에 기초하여 상이한 패싯 계층을 처리할 수 있다. 예를 들어, 패싯 계층은 사용자 수준의 전문성 또는 관심사를 기반으로 설정될 수 있다.In various embodiments, facets may be organized in a two-level hierarchy. Hierarchies are stored in data structures (eg, trees). Each leaf node in the tree can point to an index of an individual facet value. As such, the media platform 120 may process different facet layers based on a user. For example, the facet hierarchy may be set based on user-level expertise or interests.

예를 들어, 계층은 다음을 포함할 수 있다:For example, a layer can contain:

1) 누구?1) Who?

a. 이름a. name

b. 관계b. relation

c. 관심c. Attention

d. 직업d. job

2) 언제?2) When?

a. 날짜a. date

b. 이벤트b. event

c. 이벤트 유형c. Event type

d. 기상 조건d. Weather conditions

3) 어디?3) Where?

a. 장소 이름a. Place name

b. 지도b. map

c. 장소 유형c. Place type

4) 어떻게?4) How?

a. 사진 작가a. photographer

b. 카메라 유형b. Camera type

c. 미디어 유형c. Media type

5) 무엇?5) What?

a. 객체a. Object

b. 객체 유형b. Object type

부록 B는 다양한 유형에 따른 계층적 패싯 검색 엔진을 추가로 도시한다.Appendix B further shows hierarchical faceted search engines according to various types.

다양한 실시예에 따르면, 하나 이상의 미디어 객체에 대한 계층적 비주얼 패싯 검색을 수행하기 위한 시스템이 미디어 플랫폼을 포함한다. 다양한 실시예에서, 미디어 플랫폼은 복수의 선택 기준을 수신하도록 적응된 선택기 사용자 인터페이스(UI)를 사용자 장치에 제공하고; 제 1 선택 기준을 포함하는 복수의 제 1 단계 선택 기준을 포함하는 제 1 단계 메뉴를 사용자 장치에 제공하며; 사용자 장치로부터, 적어도 상기 제 1 선택 기준을 선택기(UI)에 추가하라는 표시를 수신하고; 사용자 장치에, 제 1 선택 기준에 대응하는 복수의 제 2 단계 선택 기준을 포함하는 제 2 단계 메뉴를 제공하며, 여기서 복수의 제 2 단계 선택 기준은 제 2 선택 기준을 포함하고; 사용자 장치로부터, 적어도 상기 제 2 선택 기준을 선택기(UI)에 추가하라는 표시를 수신하며; 제 1 선택 기준 및 제 2 선택 기준을 선택기(UI)에 추가하고; 선택기(UI)의 컨텐츠에 적어도 부분적으로 기초하여 제 1 선택 기준 및 제 2 선택 기준을 만족하는 하나 이상의 미디어 객체를 식별하기 위해 검색을 실행하도록 구성된 하나 이상의 하드웨어 프로세서를 포함할 수 있다.According to various embodiments, a system for performing hierarchical visual facet search for one or more media objects includes a media platform. In various embodiments, the media platform provides a user device with a selector user interface (UI) adapted to receive a plurality of selection criteria; Providing a first level menu including a plurality of first level selection criteria including first selection criteria to a user device; Receive, from a user device, an indication to add at least the first selection criteria to a selector (UI); Providing a user device with a second level menu including a plurality of second level selection criteria corresponding to the first selection criteria, wherein the plurality of second level selection criteria includes a second selection criteria; Receive, from a user device, an indication to add at least the second selection criterion to a selector (UI); Add a first selection criterion and a second selection criterion to a selector (UI); It may include one or more hardware processors configured to perform a search to identify one or more media objects that satisfy the first selection criterion and the second selection criterion based at least in part on the content of the selector UI.

예시적인 구현에서, 제 1 선택 기준은 ID 기준, 위치 기준을 포함할 수 있고, 제 2 선택 기준은 미디어 객체와 관련된 개인의 이름, 관계, 관심 및 직업 중 하나를 포함할 수 있다. 예를 들어, 제 1 선택 기준은 시간 기준을 포함할 수 있고 제 2 선택 기준은 미디어 객체와 관련된 날짜, 이벤트, 이벤트 유형 및 기상 조건 중 하나를 포함한다. 다른 예에서, 제 1 선택 기준은 위치 기준을 포함하고 제 2 선택 기준은 미디어 객체와 연관된 맵 좌표, 위치 이름 및 위치 유형 중 하나를 포함할 수 있다. 다른 예에서, 제 1 선택 기준은 방식 또는 수단 기준을 포함하고, 제 2 선택 기준은 사진 작가, 카메라 유형 및 미디어 객체와 연관된 미디어 유형 중 하나를 포함할 수 있다. 다른 예에서, 제 1 선택 기준은 식별 기준을 포함하고, 제 2 선택 기준은 미디어 객체와 연관된 객체 및 객체 유형 중 하나를 포함할 수 있다.In an exemplary implementation, the first selection criterion may include an ID criterion, a location criterion, and the second selection criterion may include one of the name, relationship, interest, and occupation of an individual associated with the media object. For example, the first selection criterion may include a time criterion and the second selection criterion includes one of a date, event, event type, and weather condition associated with the media object. In another example, the first selection criterion may include a location criterion and the second selection criterion may include one of a map coordinate, a location name, and a location type associated with the media object. In another example, the first selection criterion may include a method or means criterion, and the second selection criterion may include one of a photographer, a camera type, and a media type associated with the media object. In another example, the first selection criterion may include an identification criterion, and the second selection criterion may include one of an object and an object type associated with the media object.

하이브리드 인-메모리 패싯 엔진Hybrid in-memory facet engine

다양한 실시예에서, 패싯 검색 엔진이 사용자 장치(110) 상에 배치될 수 있다. 이와 같이, 패싯 검색 엔진은 검색되는 패싯에 기초하여 온 디맨드로 로드될 수 있는 인-메모리 검색 인덱스에 의존할 수 있다. 검색 인덱스는 실제 개체 속성 값 위에 구축된다.In various embodiments, a faceted search engine may be deployed on user device 110. As such, the faceted search engine can rely on an in-memory search index that can be loaded on demand based on the facets being searched. The search index is built on top of the actual object property values.

패싯은 하나 이상의 미디어 객체를 검색하는 방법이다. 패싯은 다양한 패싯값과 연관될 수 있다. 더욱이, 각 패싯은 인덱싱되는 데이터의 특정 필드에 해당한다. 필드에는 데이터 유형과 예상 값이 있다. 검색을 수행하기 위해, 패싯 검색 엔진은 각 파일에 있는 모든 값의 인덱스를 구축할 수 있다. 유리하게도, 패싯 검색 엔진은 모든 쿼리를 매우 빠르게 실행할 수 있다. 대조적으로, 기존의 패싯 검색 엔진은 고정된 쿼리의 미리 계산된 보기에 의존하며 동적 복합 쿼리를 처리할 수 없다.Facets are a way to search for one or more media objects. Facets can be associated with various facet values. Moreover, each facet corresponds to a specific field of data being indexed. Fields have data types and expected values. To perform a search, the faceted search engine can build an index of all values in each file. Advantageously, faceted search engines can run all queries very quickly. In contrast, traditional faceted search engines rely on precomputed views of fixed queries and cannot handle dynamic compound queries.

예시적인 실시예에서, 시스템은 하나 이상의 디지털 객체에 대한 하이브리드 인-메모리 패싯 검색을 수행한다. 시스템은 하나 이상의 인덱싱 프로세스를 사용하여 생성된 데이터 세트에 대한 인덱스를 저장하고, 여기서 인덱스는 데이터 세트의 각 디지털 객체에 대한 식별자에 대한 값들의 맵핑을 포함하며; 인덱스에 대한 업데이트를 수신하고; 저장된 인덱스와 별개인 타임스탬프를 사용하여 인덱스 업데이트를 저장하며; 저장된 인덱스에 대한 요청에 응답하여 인덱스 업데이트를 인덱스에 적용하도록 구성된 하나 이상의 처리 장치가 있는 미디어 플랫폼을 포함할 수 있다. 예에서, 처리 장치는 데이터 세트와 관련된 특성을 결정한다; 인덱스는 데이터 세트의 특성에 기반한 프로세스이며, 인덱스에는 데이터 세트의 각 디지털 객체에 대한 식별자에 대한 값들의 맵핑이 포함된다.In an exemplary embodiment, the system performs a hybrid in-memory facet search for one or more digital objects. The system stores an index for a data set created using one or more indexing processes, wherein the index includes a mapping of values to an identifier for each digital object in the data set; Receive an update to the index; Store index updates using a timestamp separate from the stored index; It may include a media platform having one or more processing devices configured to apply index updates to the index in response to a request for a stored index. In an example, the processing device determines characteristics associated with the data set; An index is a process based on the characteristics of a data set, and the index includes the mapping of values to identifiers for each digital object in the data set.

예를 들어, 데이터 세트는 이산 데이터를 포함할 수 있으며 인덱스는 이산 데이터 및 식별자의 분류된 값들 중 적어도 하나를 포함하는 각 디지털 객체에 대한 멀티 어레이를 포함한다. 예를 들어, 식별자는 순서가 지정된 그룹으로 그룹화될 수 있다. 예시적인 실시예에서, 데이터 세트는 연속 데이터를 포함하고 각각의 디지털 객체는 고유한 타임스탬프에 맵핑된다.For example, the data set may include discrete data and the index includes multiple arrays for each digital object including at least one of the discrete data and classified values of the identifier. For example, the identifiers may be grouped into ordered groups. In an exemplary embodiment, the data set contains continuous data and each digital object is mapped to a unique timestamp.

데이터 세트의 각 디지털 객체에 대한 식별자로의 값들의 맵핑이 중첩 값을 포함할 때, 처리 장치는 각 디지털 객체에 대한 각 값과 연관된 확신 인자를 결정하고 상기 확신 인자에 기초하여 식별자의 순위를 매길 수 있다.When the mapping of values to the identifier for each digital object in the data set includes overlapping values, the processing unit determines a confidence factor associated with each value for each digital object and ranks the identifier based on the confidence factor. I can.

저장된 인덱스에 대한 요청은 쿼리 기준을 갖는 검색 요청일 수 있으며, 처리 장치는 쿼리 기준을 인덱스의 식별자에 일치시키는 선택기 객체를 생성하고; 선택기 객체에 기초하여 각 쿼리 기준과 관련된 수정되지 않은 식별자의 개수를 계산하며; 쿼리 기준의 가장 수정되지 않은 식별자와 연관된 쿼리 기준으로 시작하여 검색을 실행할 수 있다.The request for the stored index may be a search request having a query criterion, and the processing device generates a selector object matching the query criterion to an identifier of the index; Calculate the number of unmodified identifiers associated with each query criterion based on the selector object; You can run a search starting with the query criteria associated with the most unmodified identifier of the query criteria.

인덱스의 유형Type of index

데이터를 인덱싱하기 위해, 패싯 검색 엔진은 인덱싱되는 데이터의 유형 및 특성에 따라 다른 유형의 인덱스를 사용할 수 있다. 각 인덱스 유형은 다르게 작성되며 특정 목적이 있다.To index data, faceted search engines can use different types of indexes depending on the type and characteristics of the data being indexed. Each index type is written differently and has a specific purpose.

인덱스는 기본 인덱스 또는 파생 인덱스일 수 있다. 각 인덱스 유형은 다른 방식으로 구현되나, 모든 인덱스에는 실제 값을 인덱싱하는 미디어 객체의 특정 행에 맵핑하는 기능이 있다.The index may be a base index or a derived index. Each index type is implemented in a different way, but every index has the ability to map the actual value to a specific row of the indexing media object.

기본 인덱스Primary index

기본 인덱스는 월드 객체의 원시값으로부터 직접 계산된다. 원시값의 각 유형은 다르게 처리되므로 원시값의 특성에 따라 다른 유형의 기본 인덱스가 계산될 수 있다.The base index is calculated directly from the primitive value of the world object. Each type of primitive value is treated differently, so different types of base indexes can be calculated depending on the characteristics of the primitive value.

도 15는 다양한 실시예에 따른 제한된 이산 인덱스(1500)를 도시한다. 도 15를 참조하면, 제한된 이산 인덱스(1500)는 이산 및 무제한을 포함하는 기본 유형의 인덱스이다. 제한된 이산 인덱스(1500)는 항상 (예를 들어, 사용자 장치(110)의) 메모리에 유지되고 제한된 이산 인덱스(1500)가 필요할 때마다 배치된다. 다양한 실시예에서, 제한된 이산 인덱스(1500)는 2개의 배열로 구현될 수 있다. 제 1 배열은 오름차순 정렬 순서로 인덱싱된 값과 제 2 인덱스의 시작 위치를 보유할 수 있다. 제 2 배열은 원시값에 따라 그룹화되고 각 그룹에서 정렬된 순서로 있는 미디어 행 식별자를 보유할 수 있다. 유리하게는, 제한된 이산 인덱스(1500)를 저장하는 것이 적은 양의 메모리를 필요로 한다.15 illustrates a limited discrete index 1500 according to various embodiments. Referring to FIG. 15, the limited discrete index 1500 is a basic type of index including discrete and unlimited. The limited discrete index 1500 is always maintained in memory (eg, of the user device 110) and is placed whenever a limited discrete index 1500 is needed. In various embodiments, the constrained discrete index 1500 may be implemented in two arrangements. The first array may hold a value indexed in an ascending sort order and a start position of the second index. The second arrangement can hold media row identifiers grouped according to their original values and in sorted order in each group. Advantageously, storing the limited discrete index 1500 requires a small amount of memory.

큰 이산 인덱스는 매우 많은 수의 이산값을 포함한다.Large discrete indices contain a very large number of discrete values.

연속 인덱스는 값(예를 들어, 타임스탬프)과 거의 일대일 맵핑을 갖는 무제한의 가능한 값들을 포함한다. 예를 들어, 거의 모든 사진은 다른 타임스탬프를 가질 수 있다. 연속 범위 값은 특수 인덱스 구조로 처리될 수 있다. 예를 들어, 연속 인덱스는 데이터베이스 인덱스와 유사한 일반 B-트리를 사용하여 처리될 수 있다.The continuous index contains an unlimited number of possible values with a value (eg, timestamp) and an almost one-to-one mapping. For example, almost all photos can have different timestamps. Continuous range values can be processed with a special index structure. For example, a continuous index can be processed using a normal B-tree similar to a database index.

맵 인덱스는 지리적 위치 데이터를 포함한다. 지리적 위치 데이터는 전체적으로 처리되는 3차원 데이터(예를 들어, 경도, 위도 및 고도)일 수 있다. 일부 실시예에서, 데이터베이스 엔진(예를 들어, SQLite®)을 사용하여 맵 인덱스를 처리할 수 있다.The map index contains geographic location data. The geographic location data may be three-dimensional data (eg, longitude, latitude and altitude) that is processed as a whole. In some embodiments, a database engine (eg, SQLite®) may be used to process the map index.

파생 인덱스Derived index

파생 인덱스는 다른 인덱스(예를 들어, 기본 또는 파생된)에 기초하고 분류 및/또는 함축을 제공한다. 다양한 실시예에서, 파생 인덱스는 단순 파생 인덱스 또는 퍼지 파생 인덱스가 될 수 있다.Derived indices are based on other indices (eg, base or derived) and provide classification and/or implications. In various embodiments, the derived index may be a simple derived index or a fuzzy derived index.

도 16은 다양한 실시예에 따른 단순 파생 인덱스(1600)를 도시한다. 도 16을 참조하면, 단순 파생 인덱스(1600)의 인덱스 값은 다른 인덱스에 의해 인덱싱된 값을 기반으로 한다. 예를 들어, 연령 그룹은 가령 아기, 유아, 어린이, 십대, 청년, 성인, 중년 및 노인을 포함하나 이에 국한되지 않는 복수의 패싯값으로 인덱싱될 수 있다. 실제 인덱싱된 값은 나이 원시값에서 파생된다. 예를 들어, 유아는 나이가 2세에서 5세 사이의 사람이다. 다양한 실시예에서, 단순 파생 인덱스(1600)는 기본 인덱스에서 상기 값과 해당 원시값을 보유한 하나의 배열을 이용해 작성된다. 이와 같이, 단순 파생 인덱스(1600)는 메모리에서 매우 제한된 공간을 차지하고 기본 인덱스에 대한 변경 사항을 쉽게 수용할 수 있다.16 illustrates a simple derivation index 1600 according to various embodiments. Referring to FIG. 16, the index value of the simple derivation index 1600 is based on a value indexed by another index. For example, an age group may be indexed with a plurality of facet values including, but not limited to, babies, infants, children, teenagers, young adults, adults, middle-aged and elderly people. The actual indexed value is derived from the raw age value. For example, an infant is a person between 2 and 5 years of age. In various embodiments, the simple derived index 1600 is created using an array holding the value and the corresponding primitive value in the base index. As such, the simple derived index 1600 occupies a very limited space in memory and can easily accommodate changes to the base index.

도 17은 다양한 실시예에 따른 퍼지 파생 인덱스(1700)를 도시한다. 도 17을 참조하면, 퍼지 파생 인덱스(1700)는 원시값과 겹치는 다중 인덱스 값을 포함할 수 있다. 따라서, 각 맵핑에는 이와 관련된 확신 인자가 있다. 예를 들어, 연령 그룹에 퍼지 인덱스가 있는 경우, 1.8세인 사람은 아기와 유아일 수 있다. 그러나, 그 사람은 유아일 가능성이 더 높다. 이와 같이, 유아의 확신 인자는 90%인 반면, 아기의 확신 인자는 15%이다. 확신 인자는 각 값에 적합하도록 선택된다. 이러한 퍼지 인덱싱의 이점은 동일한 정보를 다른 방식으로 찾고 확실 인자를 사용하여 검색 결과의 순위를 매길 수 있다는 것이다.17 illustrates a fuzzy derivation index 1700 according to various embodiments. Referring to FIG. 17, the fuzzy derivation index 1700 may include multiple index values overlapping the original value. Therefore, each mapping has a certainty factor associated with it. For example, if there is a fuzzy index in the age group, a person who is 1.8 years old could be a baby and an infant. However, the person is more likely to be an infant. As such, the confidence factor for infants is 90%, while the confidence factor for babies is 15%. The confidence factor is chosen to be appropriate for each value. The advantage of such fuzzy indexing is that you can find the same information in different ways and use certainty factors to rank the search results.

인덱스 수명주기Index life cycle

인덱스는 원시 데이터를 반복함으로써 메모리에 생성될 수 있다. 인덱스는 메모리에서 가장 간결한 형태로 유지된다. 반대로, 원시 데이터는 직교 연산에서 다르게 액세스된다. 메모리 사용량을 작게 유지하기 위해, 원시 데이터의 볼륨이 큰 경우 원시 데이터를 배치(batches)로 반복할 수 있다. 데이터가 정렬된 순서로로드되기 때문에, 프로세스에는 여러 반복 패스(예를 들어, 각 인덱스에 대해 하나의 패스)가 포함될 수 있다. 따라서, 원시 데이터의 양이 적으면, 원시 데이터를 한 번에 메모리에 로드하고 인덱스 생성 중에 정렬할 수 있다.Indexes can be created in memory by iterating over the raw data. Indexes are kept in memory in the most compact form. Conversely, raw data is accessed differently in orthogonal operations. In order to keep the memory usage small, raw data can be repeated in batches when the volume of raw data is large. Because the data is loaded in sorted order, the process can involve multiple iteration passes (e.g., one pass for each index). Thus, if the amount of raw data is small, the raw data can be loaded into memory at once and sorted during index creation.

인덱스가 가장 간결한 형태로 생성되면, 인덱스는 그 형태로 파일에 저장된다. 2개 이상의 배열이 있는 인덱스의 경우, 개별 배열은 특정 순서, 예를 들어, 행 id 배열 앞의 인덱스 데이터 배열로, 동일한 파일에 저장된다. When the index is created in the most concise form, the index is stored in the file in that form. In the case of an index with more than one array, the individual arrays are stored in the same file in a specific order, e.g., an array of index data before the row id array.

인덱스에 값을 추가 또는 삭제하는 것을 포함하여 인덱스를 업데이트할 수도 있다. 다양한 실시예에서, 인덱스가 이미 메모리에 있는 경우, 업데이트가 인덱스에 적용되고 업데이트가 완료되면 인덱스가 디스크에 저장된다.You can also update the index, including adding or deleting values to the index. In various embodiments, if the index is already in memory, the update is applied to the index and when the update is complete, the index is stored on disk.

인덱스가 디스크에 있으면, 업데이트가 해당 특정 인덱스에 대한 업데이트 파일에 추가된다. 업데이트 파일에는 타임스탬프별로 정렬된 모든 업데이트가 포함된다. 업데이트 작업을 위해 인덱스가 업로드되지 않는다. 하나 이상의 업데이트를 적용하기 위해 인덱스를 로드하는 대신, 패싯 검색 엔진이 인덱스에 적용할 변경 사항을 저장한다. 검색에 인덱스가 필요한 경우, 인덱스는 디스크에서 메모리로 로드되고 저장된 업데이트는 로드되어 인덱스에 적용되며, 인덱스는 메모리에 저장되어 검색에 사용될 수 있다.If the index is on disk, the update is added to the update file for that particular index. The update file contains all updates sorted by timestamp. Indexes are not uploaded for update. Instead of loading the index to apply one or more updates, the faceted search engine saves the changes to apply to the index. When an index is required for a search, the index is loaded from disk into memory, the stored update is loaded and applied to the index, and the index is stored in memory and can be used for search.

유리하게는, 업데이트 프로세스는 인덱스가 업데이트될 때마다 수행되는 불필요한 계산을 감소시킨다. 업데이트 프로세스는 업데이트 사이에 사용되지 않는 인덱스에 대한 계산 능력을 보존한다. 인덱스가 호출(예를 들어, 검색 수행)되면 인덱스가 업데이트된다.Advantageously, the update process reduces unnecessary computations performed each time the index is updated. The update process preserves the computational power of unused indexes between updates. When the index is called (eg, performing a search), the index is updated.

쿼리 모델Query model

패싯 검색 엔진은 사용자에게 기업 검색 인터페이스의 능력과 제어를 제공하지만 가파른 학습 곡선이 없는 이해하기 쉬운 방식으로 제공한다. 쿼리를 수행하기 위해, 사용자는 하나 이상의 패싯값을 선택하고 결과가 선택된 패싯값을 가지면 안되는지, 가질 수 없는 지, 가지지 않아야 하는지 여부를 표시한다. 예를 들어, 사용자가 추수 감사절이 아닌 휴일에 찍은 미디어 객체를 찾고 신발, 드레스, 가방 또는 선글라스를 묘사하려고 한다고 가정해 보자. 사용자는 다음 쿼리를 정의할 수 있다:The faceted search engine gives users the power and control of the corporate search interface, but in an easy-to-understand manner without a steep learning curve. To perform the query, the user selects one or more facet values and indicates whether the result should, cannot, or should not have the selected facet value. For example, suppose a user is looking for a media object taken on a holiday other than Thanksgiving and wants to depict a shoe, dress, bag, or sunglasses. Users can define the following query:

MUST : 휴일 유형 이벤트 MUST: Holiday type event

NOT : 추수 감사절 이벤트NOT: Thanksgiving event

OR : 신발 등장 객체 OR: shoe appearance object

OR : 드레스 등장 객체 OR: Dress appearance object

OR : 잘못된 등장 객체.OR: Invalid appearance object.

사용자는 또한 아내가 사진을 찍었던 동안 가을에만 집 주변의 상기 사용자 아들의 사진에 대해 복잡한 쿼리를 지정할 수 있다. 쿼리는 다음과 같이 지정할 수 있다:The user can also specify a complex query for a picture of the user's son around the house only in the fall while his wife was taking pictures. The query can be specified as follows:

MUST : 사람 아들 등장MUST: The appearance of a human son

MUST : 사람 아내 사진사MUST: Man Wife Photographer

MUST : 집 위치MUST: home location

MUST : 가을 이벤트MUST: Autumn event

NOT : 집 내부NOT: inside the house

NOT : 사람 모든 이 등장NOT: Everyone appears

쿼리 메커니즘Query mechanism

사용자에 의해 정의된 각 기준에 대해, 패싯 검색 엔진은 패싯 인덱스에서 작동하는 선택기 객체를 생성할 수 있다. 선택기의 목적은 기준을 원시 미디어 객체 식별자와 일치시키는 것이다. 또한 주어진 기준과 일치하는 가능한 미디어 객체 식별자의 개수를 반환할 수 있으며, 차례로 가능한 일치를 반환한다. 패싯 검색 엔진은 가능한 일치를 기준으로 오름차순으로 인덱스를 정렬한다. 이와 같이, 일치 수가 가장 적은 인덱스가 먼저 실행되고, 패싯 검색 엔진은 인덱스 리스트를 반복하여 전체 기준과 일치하는 값을 계산한다.For each criterion defined by the user, the facet search engine can create a selector object that operates on the facet index. The purpose of the selector is to match the criteria with the original media object identifier. Also, the number of possible media object identifiers matching a given criterion can be returned, and possible matches are returned in turn. The faceted search engine sorts the index in ascending order based on possible matches. In this way, the index with the least number of matches is executed first, and the faceted search engine iterates through the index list to calculate a value that matches all criteria.

MustSelectors []MustSelectors []

CanSelectors []CanSelectors []

NotSelectors []NotSelectors []

mustSelectorsIdx = 0mustSelectorsIdx = 0

canSelectorsIdx = 0canSelectorsIdx = 0

notSelectorsIdx = 0notSelectorsIdx = 0

For each user criteria For each user criteria

If criteria is MUSTIf criteria is MUST

MustSelectors[mustSelectorsIdx] = new Selector(criteria)MustSelectors[mustSelectorsIdx] = new Selector(criteria)

mustSelectorsIdx++mustSelectorsIdx++

else If criteria is CANelse If criteria is CAN

CanSelectors[canSelectorsIdx] = new Selector(criteria)CanSelectors[canSelectorsIdx] = new Selector(criteria)

canSelectorsIdx ++canSelectorsIdx++

else If criteria is NOTelse If criteria is NOT

NotSelectors [notSelectorsIdx] = new Selector(criteria)NotSelectors [notSelectorsIdx] = new Selector(criteria)

notSelectorsIdx ++notSelectorsIdx++

For each MustSelectors For each MustSelectors

calculate the number of resulting row idscalculate the number of resulting row ids

Sort the MustSelectors selectors by the number of resulting row ids in ascending orderSort the MustSelectors selectors by the number of resulting row ids in ascending order

Result = MustSelectors[0].rowIdsResult = MustSelectors[0].rowIds

For each mustSeletor in MustSelectors<1 to mustSelectorsIdx-1>For each mustSeletor in MustSelectors<1 to mustSelectorsIdx-1>

Result = Result AND mustSeletor.rowIdsResult = Result AND mustSeletor.rowIds

For each NotSelectorsFor each NotSelectors

calculate number of possible row idscalculate number of possible row ids

Sort the NotSelectors by the number of row ids in ascending orderSort the NotSelectors by the number of row ids in ascending order

For each notSeletor in NotSelectors <0 to notSelectorsIdx -1>For each notSeletor in NotSelectors <0 to notSelectorsIdx -1>

Result = Result NOT notSeletor.rowIdsResult = Result NOT notSeletor.rowIds

ORResult = CanSelectors[0].rowIdORResult = CanSelectors[0].rowId

For each canSeletor in CanSelectors <1 to canSelectorsIdx-1>For each canSeletor in CanSelectors <1 to canSelectorsIdx-1>

ORResult = ORResult OR canSeletor.rowIdsORResult = ORResult OR canSeletor.rowIds

Result = Result AND ORResultResult = Result AND ORResult

유리하게는, 다중 쿼리 알고리즘은 동시에 실행될 수 있다. 따라서, 각 선택기는 독립적이며 경쟁 조건을 피한다. 선택기는 가장 엄격한 순서에서 가장 엄격하지 않은 순서(예를 들어, AND 다음에 NOT 다음에 OR)로 추가 실행된다. 선택기 순서는 결과 세트가 비어 있는 경우 덜 엄격한 선택기의 실행을 건너 뛰는 기능을 제공한다.Advantageously, multiple query algorithms can be executed simultaneously. Thus, each selector is independent and avoids race conditions. Selectors are additionally executed in the strictest to least strict order (eg, AND followed by NOT followed by OR). Selector order provides the ability to skip execution of less stringent selectors if the result set is empty.

또한, 알고리즘은 다음과 같이 최적화될 수 있다:Also, the algorithm can be optimized as follows:

메모리에 인덱스가 있는 기준을 사용하여 쿼리의 AND 및 NOT 부분을 수행.Performing the AND and NOT parts of a query using criteria that have an index in memory.

결과에 행 ID가 있는 경우,If the result has a row ID,

수정되지 않은 인덱스가 있는 기준에 대해 쿼리를 수행.Perform queries against criteria with unmodified indexes.

결과에 행 ID가 있는 경우,If the result has a row ID,

나머지 기준에 대해 쿼리를 수행.Query the rest of the criteria.

상기 최적화는 쿼리 결과가 0개의 레코드를 포함한다는 것을 안다면 인덱스의 불필요한 로딩의 필요성을 감소시킨다.This optimization reduces the need for unnecessary loading of the index if we know that the query result contains 0 records.

선택 동작Selection behavior

특정 선택 기준에 대해 일치하는 행 식별자를 선택하기 위해 선택 동작이 수행된다. 각 인덱스 유형은 특정 인덱스 유형의 구조에 해당하는 특정 방식으로 선택기를 구현한다.A selection operation is performed to select matching row identifiers for specific selection criteria. Each index type implements a selector in a specific way that corresponds to the structure of a specific index type.

이산값 인덱스Discrete index

이산값 인덱스는 숫자 또는 숫자가 아닐 수 있다. 숫자 이산값 인덱스는 예를 들어 범위 선택, 보다 큰, 보다 작은 등을 포함하나 이에 국한되지 않는 수학적 연산을 제공한다.The discrete index can be numeric or non-numeric. Numerical discrete indexes provide mathematical operations including, but not limited to, range selection, greater than, less than, for example.

·X 보다 작은:Less than X:

-패싯값 배열을 이진 검색하여 X보다 작은 인덱스에서 최대값의 위치를 찾는다. 최대값의 위치는 원시 레코드 ID 배열의 위치를 나타낸다. 그런 다음, 최대값 위치 앞의 이전 행 ID를 수집할 수 있다.-Binary search the facet value array to find the position of the maximum value at an index less than X. The position of the maximum value indicates the position of the original record ID array. Then, you can collect the previous row ID before the maximum value position.

·X 보다 큰:· Greater than X:

-패싯값 인덱스를 이진 검색하여 X보다 큰 최소값의 위치를 찾는다. 최소값의 위치는 원시 레코드 ID 배열의 위치를 나타낸다. 그런 다음, 최소값의 위치 뒤의 행 ID를 수집할 수 있다.-Binary search the facet value index to find the location of the minimum value greater than X. The position of the minimum value indicates the position of the original record ID array. Then, you can collect the row ID after the position of the minimum value.

·X와 같은:·X like:

-패싯값 인덱스를 이진 검색하여 값이 X와 같은 위치를 찾는다. 값이 동일한 위치는 원시 레코드 ID 배열의 위치를 나타낸다. 원시 레코드 ID 배열에는 시작 위치가 있다. 끝 위치는 패싯값 인덱스의 다음 인덱스에서 결정된다.-Binary search the facet value index to find the position where the value equals X. Positions with the same value indicate positions in the original record ID array. The raw record ID array has a starting position. The end position is determined at the next index of the facet value index.

파생된 값 인덱스는 또한 숫자 또는 숫자가 아닐 수 있으며, 여기서 숫자 파생된 값 인덱스는 수학적 연산을 지원할 수 있다.The derived value index may also be numeric or non-numeric, where the numeric derived value index may support mathematical operations.

·X 보다 작은:Less than X:

-패싯값 배열을 이진 검색하여 X보다 작은 인덱스에서 최대값의 위치를 찾는다. 최대의 위치는 기본 인덱스 값 arraRaw 레코드 ID 배열에서 나타낸다. 그런 다음, 최대값 위치 앞의 행 ID가 수집된다.-Binary search the facet value array to find the position of the maximum value at an index less than X. The maximum position is indicated in the base index value arraRaw record ID array. Then, the row ID before the maximum value position is collected.

·X 보다 큰:· Greater than X:

-패싯값 인덱스를 이진 검색하여 X보다 큰 최소값의 위치를 찾는다. 최소값의 위치는 원시 레코드 ID 배열의 위치를 나타낸다. 그런 다음, 최소값 위치 이후의 행 ID가 수집된다.-Binary search the facet value index to find the location of the minimum value greater than X. The position of the minimum value indicates the position of the original record ID array. Then, the row ID after the minimum value position is collected.

·X와 같은:·X like:

-패싯값 인덱스를 이진 검색하여 값이 X와 같은 위치를 찾는다. 값이 동일한 위치는 원시 레코드 ID 배열의 위치를 나타낸다. 원시 레코드 ID 배열에는 시작 위치가 있다. 끝 위치는 패싯값 인덱스의 다음 인덱스에서 취해진다.-Binary search the facet value index to find the position where the value equals X. Positions with the same value indicate positions in the original record ID array. The raw record ID array has a starting position. The end position is taken at the next index of the facet value index.

쿼리 기본 연산Query basic operations

쿼리 연산(예를 들어, AND, NOT 및 OR)은 여러 실시예에서 수행될 수 있다. 대형 어레이의 경우, 압축된 비트 벡터 어레이를 사용하여 행 식별자(예를 들어, 로어링 어레이)를 저장하고 이진 비트마스크를 사용하여 이러한 데이터 구조에 적합한 작업을 수행한다. 작은 크기의 어레이의 경우, 다음과 같은 알고리즘이 적용된다:Query operations (eg, AND, NOT, and OR) may be performed in various embodiments. For large arrays, a compressed bit vector array is used to store row identifiers (e.g., a lowering array) and binary bitmasks are used to perform operations suitable for these data structures. For small arrays, the following algorithm is applied:

AND 연산은 행 식별자의 두 어레이, 즉 rowIDs1 및 rowID2에서 작동한다. 결과는 resultsID에 포함된다. AND 연산에 대한 알고리즘은 선형 시간(즉, O(n))으로 작동하며 다음을 포함한다:The AND operation works on two arrays of row identifiers, rowIDs1 and rowID2. The results are included in the resultsID. The algorithm for the AND operation operates in linear time (i.e. O(n)) and includes:

Sort rowIDs1 and rowIDs2 in an ascending order. Using radix sortSort rowIDs1 and rowIDs2 in an ascending order. Using radix sort

Assign rowIDs1 to the array of fewer elementsAssign rowIDs 1 to the array of fewer elements

Pointer1 = 0Pointer1 = 0

Pointer2 = 0Pointer2 = 0

ResultsPointer = 0ResultsPointer = 0

while Pointer1< number of count rowIDs1 && Pointer2< number of count rowIDs2while Pointer1< number of count rowIDs1 && Pointer2< number of count rowIDs2

if rowIDs1[Pointer1] == rowIDs2[Pointer2]if rowIDs1[Pointer1] == rowIDs2[Pointer2]

resultingIDs[ResultsPointer] = rowIDs1[Pointer1]resultingIDs[ResultsPointer] = rowIDs1[Pointer1]

ResultsPointer++ResultsPointer++

Pointer1++Pointer1++

Pointer2++Pointer2++

else if rowIDs1[Pointer1] > rowIDs2[Pointer2]else if rowIDs1[Pointer1]> rowIDs2[Pointer2]

Pointer2++Pointer2++

elseelse

Pointer1++Pointer1++

NOT 연산은 세트 감산 연산과 유사한다. 결과에서 한 세트의 행 ID가 빼진다. NOT 연산에 대한 알고리즘은 선형 시간(즉, O(n))에서도 또한 작동하며 다음을 포함한다:The NOT operation is similar to the set subtraction operation. A set of row IDs is subtracted from the result. The algorithm for the NOT operation also works in linear time (i.e. O(n)) and includes:

Sort rowIDs1 and rowIDs2 in an ascending order. Using radix sortSort rowIDs1 and rowIDs2 in an ascending order. Using radix sort

Pointer1 = 0Pointer1 = 0

Pointer2 = 0Pointer2 = 0

ResultsPointer = 0ResultsPointer = 0

while Pointer1< number of count rowIDs1 && Pointer2< number of count rowIDs2while Pointer1< number of count rowIDs1 && Pointer2< number of count rowIDs2

if rowIDs1[Pointer1] == rowIDs2[Pointer2]if rowIDs1[Pointer1] == rowIDs2[Pointer2]

Pointer1++Pointer1++

Pointer2++Pointer2++

else if rowIDs1[Pointer1] > rowIDs2[Pointer2]else if rowIDs1[Pointer1]> rowIDs2[Pointer2]

Pointer2++Pointer2++

elseelse

resultingIDs[ResultsPointer] = rowIDs1[Pointer1]resultingIDs[ResultsPointer] = rowIDs1[Pointer1]

ResultsPointer++ResultsPointer++

Pointer1++Pointer1++

while Pointer1< number of count rowIDs1 while Pointer1< number of count rowIDs1

resultingIDs[ResultsPointer] = rowIDs1[Pointer1]resultingIDs[ResultsPointer] = rowIDs1[Pointer1]

ResultsPointer++ResultsPointer++

Pointer1++Pointer1++

OR 연산은 행 식별자의 두 어레이, 즉 rowIDs1 및 rowID2에서 작동한다; 그 결과를 resultsID라고 한다. 결과는 resultsID에 포함된다. AND 연산에 대한 알고리즘은 선형 시간(즉, O(n))으로 작동하며 다음을 포함한다:The OR operation works on two arrays of row identifiers, rowIDs1 and rowID2; The result is called resultsID. The results are included in the resultsID. The algorithm for the AND operation operates in linear time (i.e. O(n)) and includes:

Sort rowIDs1 and rowIDs2 in an ascending order. Using radix sortSort rowIDs1 and rowIDs2 in an ascending order. Using radix sort

Assign rowIDs1 to the array of fewer elementsAssign rowIDs 1 to the array of fewer elements

Pointer1 = 0Pointer1 = 0

Pointer2 = 0Pointer2 = 0

ResultsPointer = 0ResultsPointer = 0

while Pointer1< number of count rowIDs1 && Pointer2< number of count rowIDs2while Pointer1< number of count rowIDs1 && Pointer2< number of count rowIDs2

if rowIDs1[Pointer1] == rowIDs2[Pointer2]if rowIDs1[Pointer1] == rowIDs2[Pointer2]

resultingIDs[ResultsPointer] = rowIDs1[Pointer1]resultingIDs[ResultsPointer] = rowIDs1[Pointer1]

ResultsPointer++ResultsPointer++

Pointer1++Pointer1++

Pointer2++Pointer2++

else if rowIDs1[Pointer1] > rowIDs2[Pointer2]else if rowIDs1[Pointer1]> rowIDs2[Pointer2]

if resultingIDs[ResultsPointer] < rowIDs2[Pointer2]if resultingIDs[ResultsPointer] <rowIDs2[Pointer2]

resultingIDs[ResultsPointer] = rowIDs2[Pointer2]resultingIDs[ResultsPointer] = rowIDs2[Pointer2]

ResultsPointer++ResultsPointer++

Pointer2++Pointer2++

elseelse

if resultingIDs[ResultsPointer] < rowIDs1[Pointer1]if resultingIDs[ResultsPointer] <rowIDs1[Pointer1]

resultingIDs[ResultsPointer] = rowIDs1[Pointer1]resultingIDs[ResultsPointer] = rowIDs1[Pointer1]

ResultsPointer++ResultsPointer++

Pointer1++Pointer1++

다중 모드 사용자 인터페이스Multimode user interface

다양한 실시예에서, 미디어 플랫폼(120)은 다양한 주요 활동 유형에 적응할 수 있는 다중 모드 UI를 지원한다. 예를 들어, UI는 시각적 검색 모드, 객체 연결 모드 또는 객체 조작 모드로 있을 수 있다. 따라서, UI는 끝없는 옵션 세트로 화면을 어지럽히지 않고 주요 활동에 집중할 수 있다. 다양한 실시예에서, 명령이 스크린에서 실질적으로 동일한 상대적 위치 또는 영역에 배치되어, 사용자가 메모리로 명령에 액세스할 수 있다. UI는 상기 UI가 어떤 모드에 있는지 사용자에게 알려주고 사용자가 다른 모드로 빠르게 전환할 수 있도록 하는 모드 전환 컨트롤에 의해 제어될 수 있다.In various embodiments, the media platform 120 supports a multi-mode UI that can adapt to various major types of activities. For example, the UI may be in a visual search mode, an object connection mode, or an object manipulation mode. Thus, the UI is an endless set of options so you can focus on your main activities without cluttering the screen. In various embodiments, the commands are placed in substantially the same relative location or area on the screen, so that the user can access the commands into memory. The UI may be controlled by a mode switching control that informs the user of which mode the UI is in and allows the user to quickly switch to another mode.

예시적인 실시예에서, 미디어 플랫폼과 상호 작용하기 위한 시스템은: 사용자 장치에, 사용자 인터페이스(UI)를 제공하여 미디어 플랫폼의 다중 모드 애플리케이션을 제어하도록 구성된 처리 장치가 있는 미디어 플랫폼을 포함하고, 상기 사용자 인터페이스는 다중 모드 네비게이션 영역을 포함하며 각 모드 네비게이션 영역은 다중 모드 애플리케이션의 한 모드와 연관되고, 각 모드 네비게이션 영역은 모드 네비게이션 영역과 연관된 모드를 제어하기 위한 특정 기능 세트를 포함한다. UI는 장치 활동을 감지한 데 기초하여 활성 모드에 대한 네비게이션 영역을 표시하는 것으로, UI는 비활성 모드로 전환하기 위한 전역 네비게이션 메뉴를 포함하고 비활성 모드와 연관된 기능을 억제한다.In an exemplary embodiment, a system for interacting with a media platform comprises: a media platform having a processing device configured to control a multi-mode application of the media platform by providing a user interface (UI) to a user device, the user The interface includes a multi-mode navigation area, each mode navigation area is associated with a mode of a multi-mode application, and each mode navigation area includes a specific set of functions for controlling a mode associated with the mode navigation area. The UI displays a navigation area for an active mode based on detecting device activity, and the UI includes a global navigation menu for switching to an inactive mode and suppresses functions associated with the inactive mode.

예를 들어, 각각의 모드 내비게이션 영역은 모드 내비게이션 영역과 연관된 모드를 제어하기 위한 특정 기능 세트를 포함할 수 있고; 내비게이션 영역이 표시되면, 특정 기능 세트가 모드 내비게이션 영역에 유지된다. 예시적인 실시예에서, 글로벌 내비게이션 메뉴는 사용자의 제스처 입력에 의해 제어될 수 있다. 특정 기능 세트를 표시하기 위해, UI에는 하나 이상의 확장 가능한 하위 모드 네비게이션 영역이 포함될 수 있다. 하나 이상의 확장 가능한 하위 모드 내비게이션 영역은 감지된 장치 활동을 기반으로 표시될 수 있는 반면 UI는 비활성 하위 모드와 관련된 기능을 억제한다.For example, each mode navigation area may include a specific set of functions for controlling a mode associated with the mode navigation area; When the navigation area is displayed, a specific set of functions is maintained in the mode navigation area. In an exemplary embodiment, the global navigation menu may be controlled by a user's gesture input. In order to display a specific set of functions, the UI may include one or more expandable sub-mode navigation areas. One or more expandable sub-mode navigation areas may be displayed based on detected device activity, while the UI suppresses functions associated with inactive sub-modes.

UI는 글로벌 내비게이션 메뉴에 활성 모드 표시자를 포함할 수 있다. 일부 실시예에서, 처리 장치는 사용자의 활동 패턴을 추적함으로써 장치 작동을 감지해 전역 네비게이션 메뉴에서 바로 가기를 강조 표시하여 다음 모드를 제안한다. 다중 모드 애플리케이션은 시각적 검색 모드, 객체 조작 모드 또는 데이터 입력 모드 중 적어도 하나를 포함할 수 있다.The UI may include an active mode indicator in the global navigation menu. In some embodiments, the processing device detects device activity by tracking the user's activity pattern and suggests the next mode by highlighting a shortcut in the global navigation menu. The multi-mode application may include at least one of a visual search mode, an object manipulation mode, or a data input mode.

다중 모드 제어 스위치Multimode control switch

도 18은 다양한 실시예에 따른 다중 모드 제어 스위치(1800)를 도시한다. 도 18을 참조하면, 다중 모드 제어 스위치(1800)는 사용자 장치(110)(예를 들어, 스마트 폰)에 표시될 수 있다. 다중 모드 제어 스위치(1800)는 현재 모드 "시각적 검색"뿐만 아니라 사용자가 전환할 수 있는 추가 모드를 표시한다. 대안으로, 사용자는 (예를 들어, 터치 스크린상에서) 스와이프 제스처를 사용하여 다른 모드간에 전환하거나 추가 모드를 표시할 수 있다.18 illustrates a multi-mode control switch 1800 according to various embodiments. Referring to FIG. 18, a multi-mode control switch 1800 may be displayed on a user device 110 (eg, a smart phone). The multi-mode control switch 1800 displays the current mode "visual search" as well as additional modes that the user can switch. Alternatively, the user can use a swipe gesture (eg, on a touch screen) to switch between different modes or display additional modes.

다중 모드 개요Multimode overview

도 19a-c는 다양한 실시예에 따른 다중 모드 UI를 나타낸다. 도 19a-c를 참조하면, 다중 모드 UI는 의미 정보를 미디어 객체에 연관시키고 상기 미디어 객체를 검색하는 데 사용될 수 있다. 스탬핑 모드는 미디어 객체에 대한 연관을 결정하는 인터페이스를 제공한다. UI는 사용자가 배치 연관을 수행할 수 있게 하는 매우 효과적인 방법으로 연관될 수 있는 미디어 객체를 효율적으로 검색할 수 있도록 구성된다. 스탬핑 UI의 컨트롤은 연관 기능과 관련이 있다. 검색을 위해, 사용자는 시각적 검색 모드(오른쪽)로 전환할 수 있다. 다중 모드 제어 스위치는, 도 18에 기술된 바와 같이, 모드 간 빠른 네비게이션이 가능하다. 검색 모드에서, 시각적 검색 UI는 미디어 라이브러리 검색에 초점을 맞춘 제어 옵션을 제공한다.19A-C illustrate a multi-mode UI according to various embodiments. 19A-C, the multi-mode UI may be used to associate semantic information with a media object and search for the media object. The stamping mode provides an interface for determining association with media objects. The UI is structured to enable users to efficiently search for media objects that can be associated in a very effective way that allows them to perform batch association. The stamping UI controls are related to related functions. For search, the user can switch to the visual search mode (right). The multi-mode control switch, as described in FIG. 18, enables quick navigation between modes. In search mode, the visual search UI provides control options focused on searching the media library.

유리하게는, 다중 모드 UI는 사용자가 서로 다른 활동(예를 들어, 검색, 스탬핑, 공유 등)에 사용할 수 있는 동작을 추측하지 못하게 한다. 다중 모드 UI는 각 활동 모드와 관련된 활동을 효율적으로 카테고리화하고 표시한다. UI 명령은 주어진 모드에 대해 스크린의 동일한 위치 또는 영역에 배치된다. 따라서, 다중 모드 UI는 애플리케이션의 기능을 저하시키지 않고도 개별 사용자에 대한 인지 요건을 줄이다.Advantageously, the multi-mode UI prevents the user from guessing which actions can be used for different activities (eg, search, stamping, sharing, etc.). The multi-mode UI efficiently categorizes and displays activities related to each activity mode. UI commands are placed in the same location or area of the screen for a given mode. Thus, the multi-mode UI reduces the cognitive requirements for individual users without compromising the functionality of the application.

마스킹 액세스 제어Masking access control

다양한 실시예에서, 미디어 플랫폼(120)은 사용자 계정을 필요로 하지 않는 방식으로 저장된 데이터 객체(예를 들어, 데이터 저장소(125)에 저장된 미디어 객체)에 대한 액세스를 제어한다. 반대로, 액세스는 사용자 계정 메커니즘과 직교하는 자동 또는 수동 데이터 객체 보호 규칙을 기반으로 제어된다. 각 데이터 보호 규칙은 보호될 특정 데이터 객체를 선택하고 상기 객체를 각각 액세스할 수 없거나 액세스할 있도록 온오프될 수 있다. 데이터 보호 규칙 상태를 결합하여 효과적인 데이터 마스킹 계층을 계산할 수 있다. 데이터 마스킹 계층은 주어진 데이터 객체에 액세스할 수 있는지 여부를 결정한다. 데이터 보호를 간단한 데이터 선택 규칙으로 제시하면 복잡한 액세스 제어 메커니즘이 단순화된다.In various embodiments, media platform 120 controls access to stored data objects (eg, media objects stored in data store 125) in a manner that does not require a user account. Conversely, access is controlled based on automatic or manual data object protection rules orthogonal to user account mechanisms. Each data protection rule selects a specific data object to be protected and can be turned on or off to make the object inaccessible or accessible respectively. By combining the data protection rule states, an effective data masking layer can be calculated. The data masking layer determines whether a given data object can be accessed. Presenting data protection as simple data selection rules simplifies complex access control mechanisms.

데이터 액세스 계산Data access calculation

도 20은 다양한 실시예에 따른 데이터 액세스 계산을 도시한다. 다양한 실시예에서, 미디어 플랫폼(120)은 효과적인 데이터 마스킹 계산을 수행함으로써 데이터 객체 가시성을 계산할 수 있다. 액세스 제어 규칙을 결합하여 마스킹 메커니즘을 만들 수 있다. 각 규칙은 액세스할 수 없는(예를 들어, 숨겨진) 데이터 객체를 식별한다. 여러 규칙이 결합되면, 어느 한 규칙에 의해 가려지지 않은 데이터 객체가 사용자에게 보이게 된다.20 illustrates data access calculations according to various embodiments. In various embodiments, the media platform 120 may calculate data object visibility by performing an effective data masking calculation. You can combine access control rules to create a masking mechanism. Each rule identifies an inaccessible (eg hidden) data object. When multiple rules are combined, data objects not covered by any one rule are visible to the user.

일부 실시예에서, 미디어 플랫폼(120)은 락 카운트(lock count)를 생성함으로써 마스킹 메커니즘을 구현하고 락 카운트를 각 데이터 객체에 첨부한다. 액세스 제어 규칙이 활성화되면, 규칙은 상기 규칙과 연관된 데이터 객체를 식별하고, (예를 들어, 1씩) 증가하는 해당 락 카운트를 결정하며, 연관된 데이터 객체에 대한 액세스를 제한한다. 사용자가 검색을 수행하면, 시스템은 락 카운트가 0보다 큰 데이터 객체에 대한 액세스를 제한한다(예를 들어, 검색 결과에서 데이터 객체를 숨기거나 데이터 객체에 대한 액세스를 방지한다). 반대로, 락 카운트가 0인 데이터 객체가 표시되고 사용자가 액세스할 수 있다. 일부 실시예에서, 미디어 플랫폼(120)은 선택된 데이터 객체가 임의의 활성 액세스 제어 규칙과 연관되는지에 대한 검사를 수행함으로써 마스킹 메커니즘을 구현할 수 있다.In some embodiments, media platform 120 implements a masking mechanism by generating a lock count and attaches the lock count to each data object. When an access control rule is activated, the rule identifies the data object associated with the rule, determines a corresponding lock count (e.g., by one), and limits access to the associated data object. When a user performs a search, the system restricts access to data objects with lock counts greater than zero (eg, hiding data objects from search results or preventing access to data objects). Conversely, a data object with a lock count of 0 is displayed and can be accessed by the user. In some embodiments, media platform 120 may implement a masking mechanism by performing a check as to whether the selected data object is associated with any active access control rules.

액세스 제어 워크플로우Access control workflow

도 21은 다양한 실시예에 따라 액세스 제어를 시행하기 위한 프로세스(2100)를 도시한다.21 shows a process 2100 for enforcing access control in accordance with various embodiments.

도 21을 참조하면, 규칙을 편집하기 전에 사용자에게 사용자 ID를 재설정하도록 요청하는 제 1 UI가 제공된다(1). 사용자가 새 액세스 제어 규칙을 만들거나 기존 규칙을 편집할 수 있도록 제 2 UI가 제공된다(2). 제 2 UI는 관련 태그를 픽하기 위해 이용가능한 메타 데이터를 기반으로 하는 동적 UI이다. 또한, 제 2 UI는 두 가지 서비스를 협의한다. 첫째, 제 2 UI는 사용자에 의한 관련 태그의 추가를 용이하게 하도록 액세스 제어 편집기 인터페이스를 지원하기 위해 온톨로지 기반의 태그 검색 엔진 서비스와 협의할 수 있다. 예를 들어, 사용자는 이탈리아의 도시에 대한 태그를 픽하고 싶을 수 있으며 온톨로지 기반 태그 검색 엔진은 사용자가 이를 효율적으로 찾을 수 있도록 도와준다.Referring to FIG. 21, a first UI requesting a user to reset a user ID before editing a rule is provided (1). A second UI is provided so that the user can create a new access control rule or edit an existing rule (2). The second UI is a dynamic UI based on metadata available for picking a related tag. Also, the 2nd UI negotiates two services. First, the second UI may negotiate with an ontology-based tag search engine service to support an access control editor interface to facilitate the addition of related tags by the user. For example, a user may want to pick tags for cities in Italy, and an ontology-based tag search engine helps users find them efficiently.

둘째, 제 2 UI는 특정 객체 유형에 대해 어떤 종류의 메타 데이터가 이용 가능한지를 나타내는 적절한 메타 데이터 추천 엔진과 협의할 수 있다. 예를 들어, 비디오는 메타 데이터로서 기간을 가질 수 있지만 텍스트 문서는 단어 또는 문자 카운트를 가질 수 있다. 엔진은 사용자가 쉽게 편집할 수 있도록 선택 범위를 좁히는 데 도움이 된다.Second, the second UI may negotiate with an appropriate meta data recommendation engine indicating what kind of meta data is available for a specific object type. For example, a video may have a duration as metadata, but a text document may have a word or character count. The engine helps narrow the selection so that users can easily edit it.

사용자가 액세스 제어 규칙의 최종 버전을 확인한 후, 액세스 제어 규칙은 효율적인 저장 및 운송을 위해 패키징된다(3). 규칙은 미디어 플랫폼(120)에 의해 실행될 준비가 된다. 그 다음 액세스 제어 규칙이 (예를 들어, 기존 규칙과 데이터베이스화된 규칙에) 저장된다.After the user confirms the final version of the access control rules, the access control rules are packaged for efficient storage and transport (3). The rules are ready to be executed by the media platform 120. The access control rules are then stored (for example, in existing rules and databased rules).

규칙의 효과는 런타임에 효율적인 시행을 위해 미리 계산되며 이러한 효과는 각 데이터 객체와 함께 저장된다(4).The effect of the rule is pre-calculated for efficient enforcement at run time, and these effects are stored with each data object (4).

대안으로, 액세스 제어 규칙은 심볼릭 링크 액세스 제어 규칙일 수 있으며, 상기 규칙은 손으로 선택한 데이터 객체의 간단한 그룹이다. 일 실시예에서, 심볼릭 링크는 락되는 파일 시스템에서의 파일을 식별하는 데 사용된다. 따라서, 심볼릭 링크 그룹이 락되면 실제 파일도 또한 락된다. 심볼릭 링크를 사용하여 구현된 데이터 제어 락은 조직 구조와 분리된다.Alternatively, the access control rule may be a symbolic link access control rule, which is a simple group of hand-selected data objects. In one embodiment, symbolic links are used to identify files in the locked file system. Therefore, when the symbolic link group is locked, the actual file is also locked. Data control locks implemented using symbolic links are separate from the organizational structure.

액세스 제어 규칙은 또한 상기 액세스 제어 규칙이 태그 대신 메타 데이터를 기반으로 하는 메타 데이터 액세스 제어 규칙일 수 있다.The access control rule may also be a meta data access control rule in which the access control rule is based on meta data instead of a tag.

액세스 제어 규칙은 또한 태그가 온톨로지 기반 태그가 아닌 키워드 매칭 태그인 키워드 기반 태그 액세스 제어 규칙일 수도 있다.The access control rule may also be a keyword based tag access control rule in which the tag is a keyword matching tag rather than an ontology based tag.

액세스 제어 규칙은 또한 태그 액세스 제어 규칙에 기반한 온톨로지일 수 있다.The access control rule may also be an ontology based on tag access control rules.

액세스 제어 규칙 상태 변경Access control rule state change

액세스 제어 규칙 상태는 수동 또는 자동으로 변경될 수 있다.The access control rule state can be changed manually or automatically.

도 22는 다양한 실시예에 따른 액세스 제어 규칙 상태 자동 변경을 도시한다. 도 22를 참조하면, 외부 시스템은 마스킹 액세스 제어 시스템과 결부해 작동할 수 있다. 외부 시스템은 어떤 액세스 제어 규칙이 효과적인지 어떤 액세스 제어 규칙이 유효하지 않은지 담당한다. 예를 들어, 운영 시스템은 물리적 스토리지 시스템 컨트롤러(예를 들어, 하드 드라이브 또는 솔리드 스테이트 드라이브(SSD) 컨트롤러)에 구현된 액세스 제어 규칙을 제어할 수 있다. 이 경우, 운영 시스템은 기본 운영 시스템 레벨과 결부하여 작동하는 가외의 보호 레벨을 추가할 수 있다. 도 22에 도시된 바와 같이, 상태 1에서, 외부 시스템은 명령이 하나 이상의 규칙을 턴오프하도록 지시하는 명령을 설명된 시스템에 전송한다. 시스템은 해당 규칙 상태를 변경한 후 액세스 제어 규칙의 새 상태를 확인하여 상태 2에서 응답한다.22 illustrates an automatic change of an access control rule state according to various embodiments. Referring to FIG. 22, an external system can operate in conjunction with a masking access control system. The external system is responsible for which access control rules are effective and which access control rules are not. For example, the operating system may control access control rules implemented on a physical storage system controller (eg, a hard drive or solid state drive (SSD) controller). In this case, the operating system can add an extra level of protection that works in conjunction with the base operating system level. As shown in Fig. 22, in state 1, the external system sends a command to the described system instructing the command to turn off one or more rules. After changing the state of the corresponding rule, the system checks the new state of the access control rule and responds in state 2.

도 23은 다양한 실시예에 따른 액세스 제어 규칙 상태에 대한 수동 변경을 도시낸다. 도 23을 참조하면, 수동 모드로, 사용자가 액세스 제어 규칙의 상태를 제어한다. 사용자가 액세스 제어 규칙 상태를 변경하려는 경우, 시스템은 사용자가 액세스 제어 규칙을 편집할 수 있는 UI를 제공한다. 예를 들어, 사용자가 사용자 ID을 확인하기 위해 로그인 스크린으로 인증을 요구받는 경우, 로그인 스크린은 패스워드 양식, 사진 코드 양식, 락 키 양식 또는 기타 인증 양식을 취할 수 있다. 액세스 제어 규칙과 각 액세스 제어 규칙의 상태(예를 들어, 인에이블, 디스에이블, 활성화, 비활성화 등)를 나열하는 UI가 표시될 수 있다. 사용자가 규칙 중 하나를 클릭하면, 사용자에게 규칙의 상태(예를 들어, 인에이블, 디스에이블, 활성화, 비활성화 등)를 변경할 수 있는 UI가 표시된다.23 illustrates a manual change to an access control rule state according to various embodiments. Referring to FIG. 23, in a manual mode, a user controls the state of an access control rule. When the user wants to change the access control rule state, the system provides a UI through which the user can edit the access control rule. For example, when a user is requested to authenticate with a login screen to confirm a user ID, the login screen may take a password form, a photo code form, a lock key form, or other authentication form. A UI listing the access control rules and the status of each access control rule (eg, enable, disable, enable, disable, etc.) may be displayed. When the user clicks on one of the rules, a UI is displayed to the user to change the status of the rule (eg, enable, disable, enable, disable, etc.).

다양한 실시예에 따라, 미디어 객체 세트에 대한 제한적인 액세스 제어를 시행하는 시스템은 단일 장치를 포함한다. 단일 장치는: 제 1 액세스 제어 규칙에 적어도 부분적으로 기초하여, 미디어 객체 세트에 포함된 적어도 하나의 제 1 미디어 객체에 대한 액세스를 차단하도록 결정하고; 제 2 액세스 제어 규칙에 적어도 부분적으로 기초하여, 미디어 객체 세트에 포함된 적어도 하나의 제 2 미디어 객체에 대한 액세스를 차단하도록 결정하며; 단일 장치의 사용자에게, 미디어 객체 세트에 포함되지만 제 1 미디어 객체 및 제 2 미디어 객체가 아닌 적어도 제 3 미디어 객체를 제공하도록 구성될 수 있다. 상기 장치는 제 1 미디어 객체, 제 2 미디어 객체 및 제 3 미디어 객체 각각과 연관된 락 카운트에 적어도 부분적으로 기초하여 제 1 미디어 객체 및 제 2 미디어 객체가 아닌 제 3 미디어 객체를 제공하도록 구성될 수 있다. In accordance with various embodiments, a system that enforces restrictive access control to a set of media objects includes a single device. The single device is configured to: determine, based at least in part on the first access control rule, to block access to at least one first media object included in the media object set; Determine to block access to at least one second media object included in the media object set based at least in part on the second access control rule; It may be configured to present to a user of a single device at least a third media object that is included in the set of media objects but is not a first media object and a second media object. The apparatus may be configured to provide a third media object other than the first media object and the second media object based at least in part on a lock count associated with each of the first media object, the second media object, and the third media object. .

독립 및 분산 다중 시스템 환경에서의 제한적 액세스 제어Limited access control in independent and distributed multi-system environments

일부 실시예에서, 데이터는 예를 들어, 사용자 장치(110), 데이터 저장소(125), 제 1 데이터 소스(140) 및 제 2 데이터 소스(150)를 포함하나 이에 국한되지 않는 다중 독립 시스템에 분산될 수 있다. 미디어 플랫폼(120)은 데이터 동기화를 위한 것보다 별도의 더 높은 우선 순위 동기화 채널에서 별도의 시스템들 상에 액세스 제어 규칙을 동기화할 수 있다. 추가로, 데이터 객체 메타 데이터는 또한 별도의 동기화 메커니즘 및/또는 채널을 사용할 수 있으므로, 각 시스템이 중앙 집중식 시스템과 별개로 규칙을 적용할 수 있다.In some embodiments, the data is distributed across multiple independent systems, including, but not limited to, user device 110, data store 125, first data source 140 and second data source 150. Can be. Media platform 120 may synchronize access control rules on separate systems in a separate higher priority synchronization channel than for data synchronization. In addition, data object metadata can also use separate synchronization mechanisms and/or channels, so that each system can apply rules separately from the centralized system.

동기화synchronization

다중 시스템 생태계에서, 서로 다른 시스템(예를 들어, 데이터 저장소(125), 제 1 데이터 소스(140) 및 제 2 데이터 소스(150))은 함께 연결되어 사용자가 어느 한 시스템에 대해 동일한 액세스 제어 규칙을 재사용할 수 있도록 한다. 미디어 플랫폼(120)은 액세스 제어 규칙, 데이터 객체 및 상기 데이터 객체에 대한 메타 데이터를 동기화하여 각 시스템이 독립적으로 작동할 수 있도록 한다. 다수의 동기화 네트워크가 독립적으로 작동할 수 있다. 예를 들어, 액세스 제어 규칙 동기화 네트워크는 높은 우선 순위 레벨에서 실질적으로 실시간 방식으로 작동할 수 있다. 메타 데이터 동기화 네트워크는 높은 우선 순위 수준에서도 작동할 수 있다. 데이터 객체 동기화 네트워크는 제 3의 독립 네트워크일 수 있다.In a multi-system ecosystem, different systems (e.g., data store 125, first data source 140 and second data source 150) are connected together so that users can access the same access control rules for any one system. Make them reusable. The media platform 120 synchronizes an access control rule, a data object, and metadata for the data object so that each system can operate independently. Multiple synchronization networks can operate independently. For example, an access control rule synchronization network can operate in a substantially real-time manner at a high priority level. Metadata synchronization networks can also operate at high priority levels. The data object synchronization network may be a third independent network.

예시적인 구현에 따르면, 시스템은 사용자의 제 1 장치 및 제 2 장치에 의해 액세스 가능한 디지털 객체 세트에 대해 제한적인 액세스 제어를 시행할 수 있다. 시스템은 제 1 시스템 액세스 제어 규칙과 관련된 업데이트를 감지하도록 구성된 사용자의 제 1 장치를 포함하며, 상기 제 1 시스템 액세스 제어 규칙은 제 1 장치 상의 디지털 객체 세트에 포함된 적어도 하나의 제 1 디지털 객체에 대한 액세스를 차단하고; 제 1 시스템 액세스 제어 규칙에 대한 업데이트에 적어도 부분적으로 기초하여, 제 2 장치 상의 디지털 객체 세트에 포함된 적어도 제 2 디지털 객체에 대한 액세스를 차단하도록 결정하고; 제 2 장치에, 제 2 장치상의 디지털 객체 세트에 대한 제한적인 액세스 제어를 유지하기 위해 제 1 시스템 액세스 제어 규칙과 연관된 업데이트를 제공하는 것이다. According to an exemplary implementation, the system may enforce restrictive access control on the set of digital objects accessible by the user's first device and the second device. The system includes a user's first device configured to detect an update associated with a first system access control rule, wherein the first system access control rule applies to at least one first digital object included in a set of digital objects on the first device. Block access to; Determine to block access to at least a second digital object included in the set of digital objects on the second device based, at least in part, on the update to the first system access control rule; To provide the second device with an update associated with the first system access control rule to maintain limited access control to the set of digital objects on the second device.

예시적인 구현에 따르면, 미디어 객체 세트에 대한 제한적인 액세스 제어를 시행하기 위한 시스템은 단일 사용자에 대한 다중 장치를 포함한다. 제 1 장치는: 제 1 액세스 제어 규칙에 적어도 부분적으로 기초하여, 미디어 객체 세트에 포함된 적어도 하나의 제 1 미디어 객체에 대한 액세스를 차단하도록 결정하고; 제 2 액세스 제어 규칙에 적어도 부분적으로 기초하여, 미디어 객체 세트에 포함된 적어도 하나의 제 2 미디어 객체에 대한 액세스를 차단하도록 결정하고; 제 1 장치의 사용자에게, 미디어 객체 세트에 포함되지만 제 1 미디어 객체 및 제 2 미디어 객체가 아닌 적어도 제 3 미디어 객체를 제공하도록 구성될 수 있다. 시스템은 사용자의 제 2 장치를 포함할 수 있으며, 제 1 액세스 제어 규칙은 제 1 장치 및 제 2 장치에 적용 가능한 범용 규칙을 포함할 수 있으며, 제 2 액세스 제어 규칙은 제 1 장치에 적용 가능하나 제 2 장치에 적용 불가능한 장치 특정 규칙을 포함할 수 있다.According to an exemplary implementation, a system for enforcing restricted access control to a set of media objects includes multiple devices for a single user. The first device further comprises: determining, based at least in part on the first access control rule, to block access to at least one first media object included in the media object set; Determine to block access to at least one second media object included in the media object set based at least in part on the second access control rule; It may be configured to provide a user of the first device with at least a third media object included in the set of media objects but not the first media object and the second media object. The system may include a user's second device, the first access control rule may include a general rule applicable to the first device and the second device, and the second access control rule may be applied to the first device. It may include device specific rules that are not applicable to the second device.

예시적인 구현에 따르면, 제 1 장치 및 제 2 장치는 제 2 장치의 사용자가 제 1 장치를 통해 미디어 객체 세트를 브라우징하는 브라우징 세션에 참여하도록 구성된다. 예를 들어, 제 1 장치 및 제 2 장치는 사용자를 위한 제 1 장치와 제 2 장치 사이의 브라우징 세션에 적용 가능한 제 3 액세스 제어 규칙에 기초하여 브라우징 세션을 수행하도록 구성될 수 있다. 제 3 액세스 제어 규칙은 미디어 객체 세트에 포함된 제 3 미디어 객체에 대한 액세스를 차단할 수 있다. 예를 들어, 제 1 장치는 제 2 장치의 사용자에게 적어도 하나의 제 2 미디어 객체를 제공하지만 제 1 미디어 객체 및 제 3 미디어 객체는 제공하지 않도록 구성될 수 있다.According to an exemplary implementation, the first device and the second device are configured to participate in a browsing session in which a user of the second device browses a set of media objects through the first device. For example, a first device and a second device may be configured to perform a browsing session based on a third access control rule applicable to a browsing session between a first device and a second device for a user. The third access control rule may block access to the third media object included in the media object set. For example, the first device may be configured to provide at least one second media object to a user of the second device, but not the first media object and the third media object.

중앙 서버Central server

일부 실시예에서, 마에스트로서 역할을 하는 중앙 서버 또는 클라우드와 동기화가 발생할 수 있다. 모든 변경 사항은 변경 사항이 다른 시스템에 전파되기 전에 먼저 중앙 서버 또는 클라우드로 전송된다. 도 24는 다양한 실시예에 따른 중앙 서버 기반 동기화를 도시한다.In some embodiments, synchronization may occur with a central server or cloud acting as a Maest. All changes are first transmitted to a central server or cloud before the changes are propagated to other systems. 24 illustrates central server-based synchronization according to various embodiments.

피어-투-피어Peer-to-peer

일부 실시예에서, 피어-투-피어 패러다임은 다중 시스템을 동기화하는 데 적용된다. 예를 들어, 피어-투-피어 동기화는 독립 버전 관리를 사용하여 최신 업데이트를 추적할 수 있다. 도 25는 다양한 실시예에 따른 피어-투-피어 동기화를 도시한다.In some embodiments, the peer-to-peer paradigm is applied to synchronize multiple systems. For example, peer-to-peer synchronization can use independent versioning to keep track of the latest updates. 25 illustrates peer-to-peer synchronization according to various embodiments.

계층적 동기화 네트워크Hierarchical synchronization network

일부 실시예에서, 일부 시스템은 로컬 장치 간의 상태를 조정하는 로컬 동기화 서버로 작동할 수 있다. 로컬 동기화 서버는 중앙 집중식 서버와의 통신을 담당한다. 예를 들어, 모바일 네트워크가 없는 경우, WiFi 핫스팟이 상기 핫스팟에 연결된 다양한 시스템들 간의 동기화를 조정할 뿐만 아니라 중앙 서버와 통신하는 서버를 호스트할 수 있다. 도 26은 다양한 실시예에 따른 계층적 동기화를 도시한다.In some embodiments, some systems may act as a local synchronization server that coordinates state between local devices. The local synchronization server is responsible for communication with the centralized server. For example, if there is no mobile network, the WiFi hotspot can host a server that communicates with a central server as well as coordinates synchronization between various systems connected to the hotspot. 26 illustrates hierarchical synchronization according to various embodiments.

데이터 액세스 계산Data access calculation

다양한 실시예에서, 데이터 객체 가시성은 액세스 제어 규칙 상태 캐스케이드에 의해 계산되고 데이터 마스킹 계산에 영향을 미친다.In various embodiments, data object visibility is calculated by the access control rule state cascade and affects the data masking calculation.

액세스 제어 규칙 상태 캐스케이드Access control rule state cascade

액세스 제어 규칙 분배 및 피어-투-피어 브라우징을 지원하기 위해, 액세스 제어 규칙이 온오프될 수 있는 다중 계층이 정의될 수 있다. 상기 계층은 예를 들어 범용 계층(즉, 전체 생태계용), 시스템 또는 장치 계층(즉, 각 개별 장치 또는 시스템용), 애플리케이션 계층(즉, 플랫폼 수준에서 구현된 시스템용) 및 세션 계층(즉, 피어-투-피어 또는 임시 변경용)을 포함할 수 있으나 이에 국되지는 않는다. In order to support access control rule distribution and peer-to-peer browsing, multiple layers can be defined in which access control rules can be turned on and off. Such layers may be, for example, a general purpose layer (i.e. for the entire ecosystem), a system or device layer (i.e. for each individual device or system), an application layer (i.e. for a system implemented at the platform level) and a session layer (i.e. Peer-to-peer or for temporary change), but is not limited thereto.

다양한 실시예에서, 액세스 제어 규칙은 각 계층에서 온오프될 수 있다. 각 규칙의 상태를 계산하기 위해, 규칙 상태는 가장 덜한 특정(즉, 범용) 계층에서 가장 구체적인(즉, 세션) 계층으로 계단식으로 배열된다. 각 규칙의 상태는 보다 일반적인 계층의 규칙 상태가 보다 구체적인 계층의 규칙 상태를 재정의하도록 허용하여 계산된다. 도 27은 다양한 실시예에 따른 액세스 제어 규칙 캐스케이드를 도시한다. In various embodiments, access control rules may be turned on and off at each layer. To compute the state of each rule, rule states are cascaded from the least specific (i.e. general) layer to the most specific (i.e. session) layer. The state of each rule is calculated by allowing the rule state of a more general layer to redefine the rule state of a more specific layer. 27 illustrates an access control rule cascade according to various embodiments.

효과적인 데이터 마스킹 컴퓨팅Effective data masking computing

효과적인 데이터 마스킹 계산은 전술한 바와 유사한 방식으로 수행되나, 각 타겟 세션에 대해 프로세스가 반복된다.Effective data masking calculations are performed in a manner similar to that described above, but the process is repeated for each target session.

액세스 제어를 이용한 피어-투-피어 브라우징 세션Peer-to-peer browsing session using access control

피어-투-피어 브라우징 모드에서, 다른 시스템은 액세스 제어 규칙을 유지하면서 임시 방식으로 호스트 장치에 저장된 데이터 객체를 브라우징할 수 있다. 호스팅 브라우징을 요청하는 각 위성 시스템에 대해, 시스템은 브라우징 세션을 만들고 특정 브라우징 세션에 대한 액세스 제어 규칙의 상태를 변경할 수 있다. 세션 규칙은 상술한 바와 같이 규칙 상태 캐스케이드 계산에 포함될 수 있다. 일부 실시예에서, 피어-투-피어 브라우징은 데이터 브라우징을 위해 호스트 장치를 임시 서버로 변환한다. 도 28은 다양한 실시예에 따른 피어-투-피어 브라우징 세션을 도시한다.In the peer-to-peer browsing mode, other systems can browse data objects stored in the host device in a temporary manner while maintaining access control rules. For each satellite system requesting hosted browsing, the system can create a browsing session and change the state of the access control rules for a particular browsing session. Session rules may be included in the rule state cascade calculation as described above. In some embodiments, peer-to-peer browsing transforms the host device into a temporary server for data browsing. 28 illustrates a peer-to-peer browsing session according to various embodiments.

브라우징 세션 시작Start browsing session

도 29는 다양한 실시예에 따른 피어-투-피어 브라우징 세션을 시작하기 위한 프로세스(2900)를 도시한다. 사용자가 피어-투-피어 브라우징 세션을 시작하려면, 사용자가 자신의 장치를 브라우징하도록 초대할 수 있는 게스트 세트가 사용자에게 제공된다(1). 사용자는 원하는 게스트를 선택한 다음 계속해서 액세스 제어 규칙을 검사한다. 새 세션에 대한 액세스 제어 규칙의 유효 상태가 사용자에게 표시되어 사용자가 해당 특정 세션에 대한 각 규칙의 유효 상태를 변경할 수 있다(2). 사용자는 특정 게스트 세션에 대해 각 액세스 제어 규칙을 활성화 및 비활성화할 수 있다(3). 사용자에게는 각 세션에 참여하는 게스트와 함께 현재 활성 브라우징 세션을 볼 수 있는 UI가 표시된다(4). 사용자는 UI를 통해 게스트 추가, 게스트 제거 및/또는 세션 종료를 수행할 수 있다.29 shows a process 2900 for initiating a peer-to-peer browsing session in accordance with various embodiments. In order for the user to initiate a peer-to-peer browsing session, the user is presented with a set of guests that the user can invite to browse their device (1). The user selects the desired guest and then continues checking the access control rules. The valid status of the access control rules for the new session is displayed to the user, allowing the user to change the valid status of each rule for that particular session (2). Users can enable and disable each access control rule for a specific guest session (3). The user is presented with a UI for viewing the currently active browsing sessions with guests participating in each session (4). The user can add a guest, remove a guest, and/or terminate a session through the UI.

예시적인 구현에 따르면, 시스템은 다른 사용자의 장치를 브라우징하는 동안 사용자에 대한 제한적인 액세스 제어를 시행할 수 있다.According to an example implementation, the system may enforce limited access control for a user while browsing another user's device.

시각적 액세스 코드Visual access code

다양한 실시예에서, 액세스는 가능한 조합을 증가시킴으로써 향상된 보안을 제공하면서 사용자가 기억하기 쉽게 하는 시각적 액세스 코드 메커니즘을 통해 제어될 수 있다. 시각적 액세스 코드 메커니즘은 두 가지 진입 단계가 있는 UI를 통해 제공된다. 제 1 진입 단계에서는 시스템 관리자가 사전 구성할 수 있는 일련의 사진 또는 이미지에서 한 장의 사진을 선택하도록 사용자에게 요청된다. 사진 세트는 모든 사용자에 대해 동일하거나 사용자별로 다를 수 있다. 또한, 사진 세트는 모든 장치에 대해 동일하거나 장치별로 다를 수 있다.In various embodiments, access may be controlled through a visual access code mechanism that makes it easier for users to remember while providing improved security by increasing the possible combinations. The visual access code mechanism is provided through a UI with two entry levels. In the first entry step, the system administrator is asked to select a picture from a series of pictures or images that can be pre-configured. The set of photos can be the same for all users or can be different for each user. Also, the set of photos may be the same for all devices or may differ from device to device.

도 30은 다양한 실시예에 따른 시각적 액세스 코드를 구성하는 프로세스(3000)를 도시한다. 사용자는 단계 1에서 이미지(예를 들어, 사진)를 제공받을 수 있다. 단계 2에서, 사용자는 가능한 (예를 들어, 16, 25, 36 등의) 핫스팟 그룹에서 (예를 들어, 4, 5, 등의) 핫스팟 그룹의 서브 세트를 (가령, 클릭, 터치, 제스처 등에 의해) 선택하도록 요구받는다. 예를 들어, 사용자는 임의의 순서로 핫스팟을 터치하여 사진에 표시된 16개의 핫스팟에서 4개의 핫스팟의 서브 세트를 선택할 수 있다. 일부 실시예에서, 이미지에는 핫스팟을 보이게 하고 사용자가 선택한 핫스팟을 선택하고 호출하는 데 도움이 되는 오버레이 또는 마킹이 있을 수 있다. 시각적 액세스 코드는 1 단계에서 선택한 사진과 관련된 사진 인덱스와 2 단계에서 선택한 핫스팟 값의 서브 세트로 구성된다. 핫스팟의 서브 세트와 관련된 사진 인덱스 및 좌표는 암호화된 다이제스트(digest)로 저장될 수 있다.30 illustrates a process 3000 of constructing a visual access code according to various embodiments. The user may be provided with an image (eg, a photo) in step 1. In step 2, the user creates a subset of the hotspot groups (e.g., 4, 5, etc.)in the possible (e.g., 16, 25, 36, etc.) hotspot groups (e.g., clicks, touches, gestures, etc.). By) being asked to choose. For example, a user may select a subset of 4 hotspots from 16 hotspots displayed in a photo by touching the hotspots in a random order. In some embodiments, the image may have an overlay or marking that makes the hotspot visible and helps the user select and invoke the selected hotspot. The visual access code consists of a photo index associated with the photo selected in step 1 and a subset of the hotspot values selected in step 2. The picture index and coordinates associated with the subset of hotspots may be stored as an encrypted digest.

사용자의 시각적 메모리는 이미지의 시각적 큐를 사용하여 등록된 이미지와 핫스팟을 저장하고 불러오는 데 사용된다. 시각적 기억은 시각적 경험과 관련된 감각의 일부 특성을 보존하는 기억의 한 형태이다. 시각적 기억은 인지 처리와 결과적인 신경 표현의 인코딩, 저장 및 검색 간의 관계를 설명한다. 시각적 기억은 이전에 방문한 위치를 시각적으로 탐색하기 위해 눈 움직임에서 시간 범위에 걸쳐 발생한다. 등록된 이미지의 핫스팟 서브 세트를 포함하는 시각적 액세스 코드는 인증을 제공하기 위해 더 오래 저장되고 더 쉽게 불러올 수 있다. 또한. 사용 가능한 핫스팟이 사진마다 다르기 때문에 사소한 시각적 액세스 코드를 선택할 가능성이 사소한 영숫자 암호(예를 들어, "1111", "1234", "암호" 등)보다 적다. 사용자는 객체, 장소, 동물 또는 사람과 닮은 시각적 정보를 시각적 액세스 코드의 정신적 이미지로 기억할 수 있다. 사용자는 전두엽 피질과 전측 대상피질의 다른 영역을 사용하여 장기 시각적 기억에서 시각적 액세스 코드를 패턴으로 회상할 수 있다.The user's visual memory is used to store and retrieve registered images and hotspots using the image's visual cue. Visual memory is a form of memory that preserves some characteristics of the senses associated with the visual experience. Visual memory describes the relationship between cognitive processing and the encoding, storage and retrieval of the resulting neural representation. Visual memory occurs over a range of time in eye movements to visually navigate to previously visited locations. Visual access codes containing a subset of the hotspots of registered images can be stored longer and more easily recalled to provide authentication. In addition. Because the available hotspots vary from photo to photo, you are less likely to choose a trivial visual access code than a trivial alphanumeric password (eg, "1111", "1234", "password", etc.). The user can memorize visual information resembling an object, place, animal, or person as a mental image of the visual access code. The user can recall visual access codes as patterns in long-term visual memory using different areas of the prefrontal and anterior cortex.

다양한 실시예에 따라, 시각적 액세스 코드 처리를 위한 시스템은 제 1 장치 또는 서비스의 사용자에게, 복수의 이미지를 제공하고; 사용자로부터, 복수의 이미지 중 제 1 이미지의 선택을 수신하며; 사용자로부터, 제 1 이미지에 포함된 복수의 핫스팟 중 적어도 하나의 제 1 선택을 수신하고; 제 1 이미지 및 제 1 핫스팟의 선택에 적어도 부분적으로 기초하여 시각적 액세스 코드를 생성하도록 구성된 제 1 장치를 포함할 수 있다.According to various embodiments, a system for processing a visual access code is configured to provide, to a user of a first device or service, a plurality of images; Receive, from the user, a selection of a first image from among the plurality of images; Receive, from a user, a first selection of at least one of a plurality of hotspots included in the first image; And a first device configured to generate a visual access code based at least in part on the selection of the first image and the first hotspot.

예시적인 구현에 따르면, 시각적 액세스 프로세스의 등록 프로세스는 이미지 그리드(예를 들어, 사진, 그림, 복잡한 모양, 이미지 등)로부터의 제 1 선택과 제 1 선택된 이미지의 일련의 핫스팟 위치(예를 들어, 픽셀 위치, 스크린 좌표, 오버레이 포인트 등)에 대한 제 2 선택을 포함할 수 있다. 예를 들어, 사용자는 다양한 랜드마크를 묘사하는 사진의 그리드를 제공받을 수 있고, 그리드에서 랜드마크를 묘사하는 사진을 선택할 수 있다. 그런 다음 선택한 랜드마크 사진에서, 사용자는 선택한 사진의 일련의 핫스팟 위치를 선택할 수 있다. 예를 들어, 선택된 핫스팟 위치는 랜드마크, 배경, 그림의 테두리 등의 다른 부분에 대응하는 그림 또는 이미지상의 위치일 수 있다. 그림 또는 이미지에 묘사된 특징은 시각적 단서가 선택한 핫스팟 위치에 해당하는 시각적 단서로서 사용자에게 역할한다. 따라서, 사진에 묘사된 특징은 기존의 영숫자 조합보다 사용자의 기억에 더 쉽게 저장될 수 있다.According to an exemplary implementation, the registration process of the visual access process includes a first selection from an image grid (e.g., photo, picture, complex shape, image, etc.) and a series of hotspot locations of the first selected image (e.g., Pixel location, screen coordinates, overlay point, etc.). For example, the user may be provided with a grid of photos depicting various landmarks, and may select a photo depicting the landmark from the grid. Then, from the selected landmark photo, the user can select a series of hotspot locations in the selected photo. For example, the selected hot spot location may be a location on a picture or image corresponding to another part such as a landmark, a background, or a border of the picture. The features depicted in the picture or image serve the user as a visual cue corresponding to the hotspot location selected by the visual cue. Thus, features depicted in photos can be more easily stored in the user's memory than conventional alphanumeric combinations.

시스템은 도 32-41을 참조하여 더 상세히 설명된 바와 같이 등록 프로세스 동안에 사진 및 핫스팟 세트의 사용자 선택을 효율적으로 저장할 수 있다. 예를 들어, 복수의 사진 각각은 대응하는 인덱스 번호와 연관될 수 있다. 예를 들어, 각 인덱스 번호에는 전역에 고유한 사진 식별자가 포함될 수 있다. 일 실시예에서, 이미지 그리드로부터 이미지의 제 1 위상 선택은 다수의 이미지 그리드의 추가 페이지를 포함할 수 있다. 사용자는 이미지 그리드의 여러 페이지를 스크롤하여 제 1 위상 이미지 선택을 위해 등록된 이미지를 식별할 수 있다. 이미지의 여러 그리드에 있는 각각의 이미지는 각 이미지의 전역에 고유한 사진 식별자를 기반으로 하는 인덱스 번호를 포함할 수 있다.The system can efficiently store user selections of a set of photos and hotspots during the registration process as described in more detail with reference to FIGS. 32-41. For example, each of the plurality of photos may be associated with a corresponding index number. For example, each index number may contain a globally unique picture identifier. In one embodiment, the first phase selection of an image from an image grid may include additional pages of multiple image grids. The user can scroll through several pages of the image grid to identify the image registered for the first phase image selection. Each image in multiple grids of images may contain an index number based on a picture identifier that is unique across each image.

각각의 이미지는 사용자가 핫스팟의 제 2 위상 세트에 대한 서브 세트를 선택하기 위한 다수의 미리 정의된 핫스팟을 포함할 수 있다. 예시적인 구현에 따르면, 복수의 핫스팟 각각은 이미지 인덱스 번호와 함께 암호화로 저장될 수 있는 대응하는 핫스팟 식별자와 연관된다. 다른 예시적인 구현에 따르면, 복수의 핫스팟 각각은 사진에서 대응하는 픽셀의 2 차원 좌표와 연관될 수 있다.Each image may include a number of predefined hotspots for the user to select a subset for the second phase set of hotspots. According to an exemplary implementation, each of the plurality of hotspots is associated with a corresponding hotspot identifier that may be encryptedly stored along with an image index number. According to another exemplary implementation, each of the plurality of hot spots may be associated with a 2D coordinate of a corresponding pixel in the photo.

일 실시예에 따르면, 시각적 액세스 코드는 예를 들어 대상 장치 또는 서비스 상의 인증 서비스에 의해 구현될 수 있다. 예를 들어, 웹 사이트는 사용자를 인증하기 위해 기존의 영숫자 로그인 양식을 시각적 액세스 코드 2 단계 입력 방법으로 대체할 수 있다. 사용자가 인증 서비스에 시각적 액세스 코드를 등록한 후, 인증 서비스(예를 들어, 모바일 장치 또는 웹 사이트)는 시각적 액세스 코드의 후속 입력을 저장된 등록된 액세스 코드와과 일치시키기 위해 사용자의 시각적 액세스 코드를 안전하게 저장하는 다양한 기술을 사용할 수 있다. 예를 들어, 사용자 등록의 시각적 액세스 코드 후에, 인증 서비스는 제 1 단계와 관련된 식별자 및 제 2 단계와 관련된 좌표를 텍스트 문자열로 변환하고 해당 문자열을 암호화하여 저장할 수 있다. 그런 다음, 사용자가 목적지를 다시 방문하여 시각적 액세스 코드를 입력하면, 인증 서비스가 저장된 문자열을 해독하여 목적지에 액세스할 수 있는 사용자의 권한을 확인할 수 있다.According to one embodiment, the visual access code may be implemented by, for example, an authentication service on the target device or service. For example, a website could replace the existing alphanumeric login form with a two-step method of entering a visual access code to authenticate the user. After the user registers the visual access code with the authentication service, the authentication service (e.g., mobile device or website) securely stores the user's visual access code to match subsequent inputs of the visual access code with the stored registered access code. You can use a variety of techniques. For example, after the visual access code of user registration, the authentication service may convert the identifier associated with the first step and the coordinates associated with the second step into a text string, and encrypt the corresponding string and store it. Then, when the user visits the destination again and enters the visual access code, the authentication service can decrypt the stored string to verify the user's permission to access the destination.

다른 실시예에 따르면, 시각적 액세스 코드는 사용자로부터 시각적 액세스 코드를 수신하고 다양한 목적지에 영숫자 패스워드를 출력하는 클라이언트 측 VAI(Visual Authorization Interface)에 의해 구현될 수 있다. 이 실시예에서, VAI는 목적지에 기초하여 영숫자 패스워드를 재생성하는 알고리즘을 포함한다. 일 예로, 사용자는 VAI와 함께 종래 영숫자 로그인 양식을 사용하는 웹 사이트에 액세스할 수 있다. 목적지와 함께 VAI를 사용하려면, 사용자는 VAI를 사용하여 영숫자 패스워드를 설정하거나 등록한다.According to another embodiment, the visual access code may be implemented by a client-side Visual Authorization Interface (VAI) that receives a visual access code from a user and outputs an alphanumeric password to various destinations. In this embodiment, the VAI includes an algorithm to regenerate the alphanumeric password based on the destination. As an example, a user can access a web site using a conventional alphanumeric login form with VAI. To use VAI with a destination, users use VAI to set or register an alphanumeric password.

시각적 액세스 코드 시스템은 온-스크린 가상 입력 메커니즘 또는 시각적 인증 인터페이스(VAI)를 통해 시각적 액세스 코드를 입력하기 위한 시스템 및 방법을 더 포함할 수 있다. VAI는 다른 애플리케이션이나 웹 사이트의 지원이 필요하지 않은 클라이언트 측 시각적 패스워드 입력 소프트웨어로서 역할한다. VAI는 사용자에게 패스워드를 시각적으로 입력할 수 있는 사용자 인터페이스를 제공하고 그런 다음 소프트웨어는 이러한 시각적 액세스 코드를 현재 웹 사이트 및 애플리케이션에 적합한 일반 영숫자 문자로 인코딩한다. 시스템은 패스워드를 어디에도 저장하지 않으며 사용자가 시각적 액세스 코드를 입력할 때마다 일관되게 생성한다.The visual access code system may further include a system and method for entering a visual access code via an on-screen virtual input mechanism or a visual authentication interface (VAI). VAI acts as a client-side visual password entry software that does not require support from other applications or websites. VAI provides the user with a user interface to visually enter a password, and the software then encodes these visual access codes into regular alphanumeric characters suitable for current websites and applications. The system does not store passwords anywhere, and consistently generates them every time a user enters a visual access code.

예를 들어, 가상 키보드는 시각적 액세스 코드를 입력하기 위한 전용 VAI일 수 있다. VAI는 시각적 액세스 코드 프로세스를 통해 시각적 패스워드 입력을 위한 클라이언트 측 인증을 수행할 수 있다. VAI는 사용자에게 장치 하드웨어와 관계없이 시각적 액세스 코드를 입력할 수 있는 인터페이스를 제공한다. 즉, VAI는 지문 판독기와 같은 하드웨어가 필요없는 보안 인증을 위한 호환성을 제공하고 로컬에 저장된 암호와 관계없이 시각적 액세스 코드의 무결성을 유지한다.For example, the virtual keyboard may be a dedicated VAI for entering a visual access code. VAI can perform client-side authentication for visual password input through a visual access code process. VAI provides the user with an interface to enter a visual access code regardless of the device hardware. In other words, VAI provides compatibility for secure authentication that does not require hardware such as fingerprint readers, and maintains the integrity of visual access codes regardless of locally stored passwords.

사용자는 자신의 패스워드 재설정 양식으로 이동하여 VAI를 시작해 목적지의 패스워드 양식에 영숫자 패스워드를 채울 수 있다. 후술된 바와 같이, VAI는 사용자가 입력한 시각적 액세스 코드를 기반으로 목적지의 영숫자 패스워드를 일관되게 재생성한다. 또한, 동일한 시각적 액세스 코드가 다른 목적지의 VAI에 입력되면, VAI는 다른 영숫자 암호를 생성한다. 따라서, VAI는 종래 목적지 로그인 방식과 호환되는 시각적 액세스 코드를 사용하여 사용자를 인증할 수 있다. 사용자가 VAI를 사용하여 목적지에 등록한 후, 목적지는 VAI의 출력(예를 들어, 영숫자 패스워드)을 저장한다. VAI의 출력은 대상 측 인증 키로 사용되는 반면 시각적 액세스 코드는 클라이언트 측 인증 키이다.Users can go to their own password reset form to launch VAI and fill in the destination's password form with an alphanumeric password. As described later, the VAI consistently regenerates the alphanumeric password of the destination based on the visual access code input by the user. Also, if the same visual access code is entered into a VAI of a different destination, the VAI generates a different alphanumeric password. Accordingly, the VAI can authenticate the user using a visual access code compatible with the conventional destination login method. After the user registers for a destination using VAI, the destination stores the output of the VAI (eg, an alphanumeric password). The output of the VAI is used as the target-side authentication key, while the visual access code is the client-side authentication key.

예를 들어, 목적지가 VAI의 출력을 기록한 후, 사용자는 목적지를 재방문해 VAI를 시작하고 사용자의 시각적 액세스 코드를 입력할 수 있으며, VAI는 목적지에 이전에 저장된 비밀번호와 일치하는 비밀번호를 출력한다. 다양한 실시예에서, VAI의 출력은 사용자의 고유 식별자, 제 1 이미지의 선택, 제 1 이미지의 고유 식별자, 이미지 블렌딩 알고리즘, 핫스팟의 선택, 핫스팟 좌표의 이동 및/또는 하나 이상의 단방향 암호화 알고리즘을 사용하는 16진 다이제스트를 기반으로 할 수 있다.For example, after the destination records the output of the VAI, the user can revisit the destination to start the VAI and enter the user's visual access code, and the VAI outputs a password that matches the password previously stored at the destination. In various embodiments, the output of the VAI is a unique identifier of the user, selection of the first image, a unique identifier of the first image, an image blending algorithm, selection of a hotspot, movement of the hotspot coordinates, and/or using one or more one-way encryption algorithms. It can be based on a hexadecimal digest.

사용자가 선택된 이미지의 일련의 핫스팟 또는 핫스팟 세트를 등록한 후, 사용자에게 장치 또는 서비스에 대한 사용자 인증을 위한 시각적 액세스 코드 프로세스가 제공될 수 있다. 예를 들어, 사용자는 장치 또는 서비스의 액세스 인터페이스를 네비게이션할 수 있으며, 시각적 액세스 프로세스의 제 1 단계 동안 여러 사진 또는 이미지가 제공될 수 있다. 사용자는 제시된 여러 사진 중 등록 과정 중에 이전에 선택한 올바른 사진을 불러와야 한다. 예를 들어, 사용자에게 다양한 유명한 랜드마크를 묘사하는 그림 그리드가 제공될 수 있다. 사용자의 등록 이미지는 등록 과정 중에 나온 동일한 복수의 사진들로 그룹화되거나 등록 과정에서 제시된 이미지와 다른 사진들로 그룹화될 수 있다. 사용자는 먼저 복수의 이미지에서 등록된 이미지를 선택한다. 예를 들어, 사용자가 선택한 이미지는 사진의 전역에 고유한 사진 식별자의 인덱스 번호와 일치될 수 있다.After the user registers a series of hotspots or hotspot sets of the selected image, the user may be presented with a visual access code process for user authentication to the device or service. For example, a user may navigate the access interface of a device or service, and several photos or images may be presented during the first step of the visual access process. The user must retrieve the correct one previously selected during the registration process from among the several pictures presented. For example, the user may be presented with a grid of pictures depicting various famous landmarks. The user's registered image may be grouped into a plurality of identical photos generated during the registration process, or may be grouped into photos different from the image presented during the registration process. The user first selects a registered image from a plurality of images. For example, the image selected by the user may be matched with an index number of a photo identifier that is unique throughout the photo.

도 31은 시각적 액세스 코드와 함께 사용하기 위한 예시적인 락 코드 관리 인터페이스를 도시한다. 락 코드 관리 인터페이스(3100)는 사용자가 시각적 액세스 코드를 관리하고, 시각적 액세스 코드 환경 설정을 구성하고, 사용자 프로필을 할당하는 등의 작업을 허용한다. 예시적인 실시예에서, 락 코드 관리 인터페이스는 사용자가 미디어 애플리케이션, 금융 애플리케이션, 업무 애플리케이션 등과 같은 애플리케이션 카테고리에 기초하여 상이한 시각적 액세스 코드를 구성하도록 허용한다. 마스터 사용자는 서비스 또는 장치의 여러 하위 사용자에 대해 여러 시각적 액세스 코드를 구성할 수 있다. 예를 들어, 부모는 어린이가 게임 애플리케이션에 액세스할 수 있도록 게스트 시각적 액세스 코드를 구성할 수 있다. 또 다른 예에서, 배우자는 배우자의 파트너가 금융 계정에 액세스할 수 있도록 허용하지만 배우자의 소셜 미디어 또는 메시징 계정에 액세스할 수 없도록 하는 파트너의 시각적 액세스 코드를 구성할 수 있다.31 shows an exemplary lock code management interface for use with a visual access code. The lock code management interface 3100 allows a user to manage visual access codes, configure visual access code preferences, assign user profiles, and the like. In an exemplary embodiment, the lock code management interface allows a user to configure different visual access codes based on application categories such as media applications, financial applications, business applications, and the like. The master user can configure multiple visual access codes for multiple sub-users of a service or device. For example, parents can configure guest visual access codes to allow children to access gaming applications. In another example, the spouse may configure the partner's visual access code to allow the spouse's partner to access the financial account, but not the spouse's social media or messaging account.

도 32는 예시적인 실시예에 따라 시각적 액세스 코드를 구성하기 위한 예시적인 흐름(3200)을 도시한다. 프로세스는 사용자로부터 고유한 식별자를 수집하는 것으로 시작된다. 프로세스(3200)는, 도 33을 참조하여 추가로 설명된 바와 같이, 사용자에 대한 일관된 이미지 세트를 생성하기 위해 단방향 암호화 인코딩을 사용한다. 워크 플로우(3200)는, 도 36을 참조하여 더 설명된 바와 같이, 사용자가 마스터 패스워드를 설정하기를 원하는지 결정하기 위해 진행된다. Fig. 32 shows an exemplary flow 3200 for configuring a visual access code according to an exemplary embodiment. The process begins with collecting a unique identifier from the user. Process 3200 uses one-way cryptographic encoding to generate a consistent set of images for the user, as further described with reference to FIG. 33. Workflow 3200 proceeds to determine if the user wants to set a master password, as further described with reference to FIG. 36.

도 33은 다양한 실시예에 따른 사용자 식별자를 사진 선택 맵핑에 맵핑하기 위한 예시적인 프로세스(3300)를 도시한다. 프로세스(3300)는 사용자가 고유 식별자를 제공하는 것으로 시작할 수 있다. 프로세스(3300)는, 도 35-36을 참조하여 더 설명된 바와 같이, 단방향 암호화 코드를 결정하고 고유한 사용자 16진 다이제스트를 생성할 수 있다. 그 다음, 고유 사용자 16진 다이제스트는, 도 40-41을 참조하여 더 상세히 설명된 바와 같이, 고유한 사진 및 핫스팟 목록을 생성하는 데 사용될 수 있다. 그 다음, 프로세스(3300)는, 도 37-39를 참조하여 더 상세히 설명된 바와 같이, 사용자에게 암호를 등록하기 위해 사진 목록을 제시한다. 33 illustrates an exemplary process 3300 for mapping a user identifier to photo selection mapping according to various embodiments. Process 3300 may begin with the user providing a unique identifier. Process 3300 may determine a one-way encryption code and generate a unique user hexadecimal digest, as further described with reference to FIGS. 35-36. The unique user hexadecimal digest can then be used to create a unique photo and hotspot listing, as described in more detail with reference to FIGS. 40-41. The process 3300 then presents the list of photos to the user to register the password, as described in more detail with reference to FIGS. 37-39.

콤팩트 인코딩Compact encoding

일부 실시예에서, 시각적 액세스 코드는 컴팩트 인코딩을 사용하여 인코딩될 수 있다. 예를 들어, 압축 인코딩에서, 각 사진은 0에서 8까지의 인덱스를 가질 수 있고 각 핫스팟은 0에서 15까지의 인덱스를 가질 수 있다. 핫스팟에 할당된 인덱스와 사진에서 핫스팟의 위치 사이에는 고정된 상관관계가 없을 수 있다. 핫스팟에 할당된 인덱스와 사진에서 핫스팟의 위치 간의 상관 관계는 사진에 따라 다르다. 일 실시예에서, 핫스팟과 관련된 인덱스 값은 랜덤하게 할당된다. 따라서, 핫스팟에 대한 랜덤 인덱스 할당이 보안 액세스 암호를 생성한다.In some embodiments, the visual access code may be encoded using compact encoding. For example, in compression encoding, each picture can have an index from 0 to 8 and each hotspot can have an index from 0 to 15. There may be no fixed correlation between the index assigned to the hotspot and the location of the hotspot in the picture. The correlation between the index assigned to the hotspot and the location of the hotspot in the picture varies depending on the picture. In one embodiment, the index value associated with the hotspot is randomly assigned. Thus, random index assignment to the hotspot creates a secure access password.

위의 예에서, 컴팩트 인코딩은 16개의 가능한 값을 생성한다. 이 값 중 4개가 임의의 순서로 여러 번 선택되어 3,876 개의 가능성이 발생된다. 추가로 9개의 다른 사진이 있기 때문에. 가능한 조합의 수는 9×3,876 = 34,884로 증가한다. 이는 기존의 4자리 숫자 암호로 제공되는 가능성 수의 3 배 이상이다.In the example above, compact encoding produces 16 possible values. Four of these values are chosen multiple times in random order, resulting in 3,876 possibilities. Because there are an additional 9 different photos. The number of possible combinations increases to 9×3,876 = 34,884. This is more than three times the number of possibilities offered by conventional 4-digit cryptography.

위치 인코딩Position encoding

일부 실시예에서, 시각적 액세스 코드는 각각의 선택된 핫스팟의 좌표에 기초하여 위치 지정 인코딩을 사용하여 생성될 수 있다. 동일한 사진의 경우, 각 핫스팟의 좌표는 고정될 수 있지만 해당 좌표는 사진마다 이동될 수 없다. 표 1은 이전 섹션에서 설명한 바와 같이 간단한 핫스팟 인덱스 인코딩이 좌표 인덱스에 맵핑되는 방법을 보여준다. 예를 들어, 핫스팟 인덱스 2는 사진 1의 값(140 및 59)과 사진 2의 값(89 및 147)에 해당한다. 압축 인코딩을 사용하면, 값 2가 사진 간에 공유되지만 동일한 핫스팟에 대한 좌표 값은 사진 간에 공유되지 않는다. 또한, 저장된 자릿수도 (예를 들어, 4개 값 대신 8개로) 증가한다. 따라서, 위치 지정 인코딩은 더 많은 가능성을 생성하고 해당하는 시각적 액세스 코드를 더 깨뜨리기 어렵게 만든다.In some embodiments, the visual access code may be generated using positioning encoding based on the coordinates of each selected hotspot. In the case of the same picture, the coordinates of each hotspot may be fixed, but the coordinates cannot be moved for each picture. Table 1 shows how a simple hotspot index encoding maps to a coordinate index as described in the previous section. For example, the hot spot index 2 corresponds to the values 140 and 59 of photo 1 and the values 89 and 147 of photo 2. With compressed encoding, the value 2 is shared between photos, but the coordinate values for the same hotspot are not shared between photos. Also, the number of digits stored is also increased (for example, to 8 instead of 4 values). Thus, positional encoding creates more possibilities and makes the corresponding visual access code more difficult to break.

일부 실시예에서, 시각적 액세스 코드는 사진의 크기 및/또는 해상도에 의존 할 수 있다. 예를 들어, 500×500 픽셀 사진에서, 각 핫스팟은 가로축에서 0에서 499까지, 세로축에서 0에서 499까지의 코드를 생성할 수 있다. 이와 같이, 4개의 핫스팟은 8자리수와 동일하며, 1.02432860e+17개의 가능성을 제공한다. 이 숫자에 사진 수(예를 들어, 9)를 더 곱하면, 특수 문자(예를 들어, 2.02095455e+11개의 가능성)가 있는 종래 8자 길이의 영숫자 대소문자의 민감한 암호보다 훨씬 더 강력한 패스워드용의 ~ 9e + 17개의 가능성을 산출한다.In some embodiments, the visual access code may depend on the size and/or resolution of the photo. For example, in a 500×500 pixel photo, each hotspot may generate codes from 0 to 499 on the horizontal axis and 0 to 499 on the vertical axis. As such, 4 hotspots are equal to 8 digits, providing 1.02432860e+17 possibilities. Multiplying this number further by the number of pictures (e.g. 9), for a password that is much stronger than a conventional 8-character long alphanumeric case sensitive password with special characters (e.g. 2.02095455e+11 possibilities). Yields ~9e + 17 possibilities of

핫스팟 인덱스 Hotspot index 사진 1 좌표 Photo 1 coordinates 사진 2 좌표 Photo 2 coordinates 00 (0,0)(0,0) (100,100)(100,100) 1One (40,50)(40,50) (24,135)(24,135) 22 (140,59)(140,59) (89,147)(89,147) 33 (240,15)(240,15) (29,225)(29,225) 44 (370,50)(370,50) (54,135)(54,135) 55 (140,150)(140,150) (214,335)(214,335) 66 (78,150)(78,150) (334,235)(334,235) 77 (67,20)(67,20) (344,185)(344,185) 88 (80,500)(80,500) (124,195)(124,195) 99 (90,310)(90,310) (249,435)(249,435) 1010 (140,240)(140,240) (214,235)(214,235) 1111 (400,150)(400,150) (314,135)(314,135) 1212 (230,60)(230,60) (245,135)(245,135) 1313 (312,70)(312,70) (124,235)(124,235) 1414 (32,80)(32,80) (274,535)(274,535) 1515 (42,98)(42,98) (214,335)(214,335)

고유한 사진 식별자를 사용한 위치 인코딩Location encoding with unique photo identifier

일부 실시예에서, 모든 사진은 전역에 고유한 식별자와 연관될 수 있다. 이와 같이, 암호 저장은 시스템 또는 사용자에 따라 다르다. 사용자는 서로 다른 두 시스템에 대해 동일한 패스워드를 선택할 수 없다. 예를 들어, 위치 코딩을 사용하여 인코딩된 (0,100,101,200,201,300,301,400,401)의 암호는 제 1 사진(즉, 사진 0)에 해당한다. 하지만, 고유한 사진 식별자를 통합하면 (38A52BE4-9352-453E-AF97 5C3B448652F 0,100,101,200,201,300,301,400,401)의 패스워드가 생성되고, '38A52BE4-9352-453E-AF97-5C3B448652F0'은 사진 전역에 고유한 사진 식별자이다. 다양한 실시예에서, 전역 고유 식별자는 추측하기 어려운 길이의 값(예를 들어, 16자의 긴 숫자)이 될 수 있다.In some embodiments, all photos may be associated with a globally unique identifier. As such, password storage is system or user specific. Users cannot choose the same password for two different systems. For example, the password of (0,100,101,200,201,300,301,400,401) encoded using location coding corresponds to the first picture (i.e., picture 0). However, by incorporating a unique photo identifier, a password of (38A52BE4-9352-453E-AF97 5C3B448652F 0,100,101,200,201,300,301,400,401) is generated, and '38A52BE4-9352-453E-AF97-5C3B448652F0' is a unique photo identifier throughout the photo. In various embodiments, the globally unique identifier may be a value of length that is difficult to guess (eg, a 16-character long number).

도 34는 다양한 실시예에 따른 예시적인 고유 사용자 16진 다이제스트를 도시한다. 16진 다이제스트에는 사진 선택 인덱스, 필터 블렌딩 알고리즘 식별자, 최종 패스워드 맵핑 알고리즘 식별자, 사진 필터 비트맵 및 핫스팟 식별자가 포함될 수 있다. 예를 들어, 고유한 사용자 16진 다이제스트는 사진 선택 인덱스용으로 지정된 8 바이트로 시작하여 1 바이트의 필터 블렌딩 알고리즘 식별자와 최종 패스워드 맵핑 알고리즘에 대한 표시자가 이어질 수 있다. 예시적인 실시예에서, 포토 필터 비트맵은 27 바이트로 구성될 수 있다. 예시적인 실시예에 따르면, 고유한 사용자 16진 다이제스트는 핫스팟 시프팅 인덱스를 표시하기 위해 25 바이트를 포함할 수 있다.34 illustrates an exemplary unique user hexadecimal digest in accordance with various embodiments. The hexadecimal digest may include a photo selection index, a filter blending algorithm identifier, a final password mapping algorithm identifier, a photo filter bitmap, and a hot spot identifier. For example, a unique user hexadecimal digest may start with 8 bytes designated for the photo selection index followed by a 1 byte filter blending algorithm identifier followed by an indicator for the final password mapping algorithm. In an exemplary embodiment, the photo filter bitmap may consist of 27 bytes. According to an exemplary embodiment, the unique user hexadecimal digest may include 25 bytes to indicate the hotspot shifting index.

도 35는 예시적인 실시예에 따른 시각적 액세스 코드를 할당하기 위한 예시적인 등록 프로세스를 도시한다. 등록 프로세스(3500)는 인증이 필요한 목적지로 네비게이션하는 사용자로 시작할 수 있다. 가상 입력(예를 들어, VAI) 방법은 사용자 이름과 패스워드가 필요한 종래 로그인 양식을 감지할 수 있다. 사용자가 종래 로그인 양식에 사용자 이름을 입력한 후, 등록 프로세스(3500) 방법은 16진 다이제스트를 사용하여 목적지에 시각적 액세스 코드를 할당하기 위한 등록 인터페이스를 제공할 수 있다. 사용자는 상술한 바와 같이 목적지에 대한 새로운 시각적 액세스 코드를 등록하기 위해 제 1 이미지 및 일련의 핫스팟을 선택하여 VAI를 통해 진행될 수 있다.35 shows an exemplary registration process for assigning a visual access code according to an exemplary embodiment. The registration process 3500 may begin with a user navigating to a destination requiring authentication. The virtual input (eg, VAI) method can detect conventional login forms that require a username and password. After the user has entered a user name in a conventional login form, the registration process 3500 method may provide a registration interface for assigning a visual access code to a destination using a hexadecimal digest. As described above, the user may proceed through the VAI by selecting the first image and a series of hotspots to register a new visual access code for the destination.

제공된 사용자 이름 및 목적지 식별자에 기초하여, VAI는 저장된 패스워드를 목적지와 일치시키기 위해 16진 다이제스트에 기초하여 비밀번호를 재생성할 수 있다.Based on the provided username and destination identifier, the VAI can regenerate the password based on the hexadecimal digest to match the stored password with the destination.

등록 프로세스(3500)는 16진 다이제스트에 기초한 패스워드로 종래 로그인 양식을 완성하는 것으로 진행될 수 있다. 예를 들어, 등록 프로세스(3500)는 단방향 암호화 인코딩을 사용하여 영숫자 패스워드를 생성하고 목적지 식별자로 패스워드를 시드(seed)할 수 있다. 패스워드 시드는 도 36을 참조하여 설명된 바와 같이 영숫자 패스워드를 생성하기 전에 단방향 암호화 알고리즘을 공급하는 데 사용된다. 시드에는 사용자가 선택한 핫스팟과 시드 간에 직접적인 일대일 맵핑이 있다. 이 프로세스는 단방향 암호화 이전에 애플리케이션/웹 사이트 목적지 이름으로 시드된 패스워드를 생성하여 동일한 시각적 암호를 사용하더라도 다른 애플리케이션/웹 사이트 목적지들이 다른 암호를 갖도록 한다. 따라서, 액세스 코드 프로세스는 사용자 입력을 기반으로 패스워드 생성을 일관되게 복제하므로, 사용자 시스템은 각 사이트에 대한 패스워드를 저장할 필요가 없다.The registration process 3500 may proceed with completing a conventional login form with a password based on a hexadecimal digest. For example, registration process 3500 may generate an alphanumeric password using one-way encryption encoding and seed the password with the destination identifier. The password seed is used to supply a one-way encryption algorithm before generating an alphanumeric password, as described with reference to FIG. 36. In the seed, there is a direct one-to-one mapping between the seed and the hotspot selected by the user. This process generates a password seeded with the application/website destination name prior to one-way encryption so that different application/website destinations have different passwords even if the same visual password is used. Thus, the access code process consistently replicates password generation based on user input, so the user system does not need to store passwords for each site.

예시적인 실시예에 따르면, 시각적 액세스 코드를 설정하기 위한 알고리즘은 다음을 포함할 수 있다:According to an exemplary embodiment, the algorithm for setting the visual access code may include:

Encode the phrase with one-way cryptography i.e. sha-512Encode the phrase with one-way cryptography i.e. sha-512

let uniqueUserHexDigest = onewayCryptography(user phrase)let uniqueUserHexDigest = onewayCryptography(user phrase)

save uniqueUserHexDigest to hostsystem Keystoresave uniqueUserHexDigest to hostsystem Keystore

Use the cryptography to generate the list of photosUse the cryptography to generate the list of photos

let basePhotoIndex = getByteAtIndex(0,8, uniqueUserHexDigest)let basePhotoIndex = getByteAtIndex(0,8, uniqueUserHexDigest)

Repeat index i 0 to(number of Photos to use for key) - 1Repeat index i 0 to(number of Photos to use for key)-1

Let photoIndex =(basePhotoIndex + i)modulus(total number of photos in the system)Let photoIndex =(basePhotoIndex + i) modulus(total number of photos in the system)

let photo = getPhotoWithIndex(photoIndex)let photo = getPhotoWithIndex(photoIndex)

let blendingAlgorithmIndex= getByteAtIndex(8, uniqueUserHexDigest)let blendingAlgorithmIndex= getByteAtIndex(8, uniqueUserHexDigest)

let photoFilterBitmap = getNumberOfBytesFromPosition(27,12, uniqueUserHexDigest)let photoFilterBitmap = getNumberOfBytesFromPosition(27,12, uniqueUserHexDigest)

let photoBlendingFilter = generateFullPhotoFromBitmap(photoFilterBitmap)let photoBlendingFilter = generateFullPhotoFromBitmap(photoFilterBitmap)

let finalPhoto = blendPhotoWithFilterUsingAlgorithm(photo, photoBlendingFilter, blendingAlgorithmIndex)let finalPhoto = blendPhotoWithFilterUsingAlgorithm(photo, photoBlendingFilter, blendingAlgorithmIndex)

let hotspots = getPhotoHotSpotsForIndex(photoIndex)let hotspots = getPhotoHotSpotsForIndex(photoIndex)

let h=0let h=0

let shiftedHotSpots = Array of size of 25let shiftedHotSpots = Array of size of 25

for each hotspotfor each hotspot

let hotspotShift = getByteAtIndex(h+38, uniqueUserHexDigest)let hotspotShift = getByteAtIndex(h+38, uniqueUserHexDigest)

let adjustedHotSpot = adjustHotSpotCenterByShift(hotspots[h], hotspotShift)let adjustedHotSpot = adjustHotSpotCenterByShift(hotspots[h], hotspotShift)

shiftedHotSpots.add(adjustedHotSpot)shiftedHotSpots.add(adjustedHotSpot)

목적지를 방문하면, VAI는 연관된 시각적 액세스 코드를 결정하고 사용자를 인증하기 위한 가상 입력 방법을 사용자에게 제시할 수 있다. 가상 입력 방법을 통한 성공적인 시각적 액세스 코드 인증에 대한 응답으로, 시스템은 목적지 인증을 완료하기 위해 할당된 영숫자 패스워드로 기존 로그인 양식을 채울 수 있다.Upon visiting the destination, the VAI may determine an associated visual access code and present a virtual input method to the user to authenticate the user. In response to successful visual access code authentication through the virtual input method, the system can fill in an existing login form with an alphanumeric password assigned to complete destination authentication.

도 36은 예시적인 실시예에 따라 패스워드로 시각적 액세스 코드를 인코딩하기 위한 예시적인 프로세스(3600)를 도시한다. 프로세스(3600)는 X축으로 핫스팟 위치를 분류한 SHA-512 사진과 애플리케이션/웹 사이트 목적지 식별자를 입력하여 암호 시드를 생성할 수 있다. 프로세스(3600)는 단방향 암호화 알고리즘과 함께 인코딩된 암호를 사용하여 영숫자 패스워드를 맵핑하는 데 사용되는 16진 다이제스트를 생성한다. 예시적인 실시예에서, 결과적인 패스워드는 대문자 및 소문자 영어 알파벳과 숫자뿐만 아니라 특수 문자를 포함할 수 있는 안전한 ASCII 패스워드를 생성할 것이다. 예시적인 실시예에 따르면, 알고리즘은 다음을 포함할 수 있다:36 shows an exemplary process 3600 for encoding a visual access code with a password according to an exemplary embodiment. The process 3600 may generate a cryptographic seed by inputting the SHA-512 picture of the hotspot location classified by the X-axis and the application/website destination identifier. Process 3600 generates a hexadecimal digest that is used to map the alphanumeric password using the encrypted password with a one-way encryption algorithm. In an exemplary embodiment, the resulting password will generate a secure ASCII password that may contain uppercase and lowercase English alphabets and numbers as well as special characters. According to an exemplary embodiment, the algorithm may include:

input passwordHexDigestinput passwordHexDigest

let passwordBytes = getNumberOfBytesFromPosition(0,16, passwordHexDigest)let passwordBytes = getNumberOfBytesFromPosition(0,16, passwordHexDigest)

let finalPassword = ""let finalPassword = ""

For each byte in passwordBytesFor each byte in passwordBytes

If(If( byte == 45 OR byte == 45 OR

(byte >=48 AND byte <=57) OR (byte >=48 AND byte <=57) OR

(byte >=65 AND byte <=90) OR(byte >=65 AND byte <=90) OR

(byte >=97 AND byte <=122)){(byte >=97 AND byte <=122))(

// take the value as is// take the value as is

finalPassword.append(byte)finalPassword.append(byte)

continue to next bytecontinue to next byte

}}

let modByte = byte modulus 63let modByte = byte modulus 63

if(modByte == 0){if(modByte == 0){

modByte += 45modByte += 45

} else if(byte >=1 AND byte <=11){} else if(byte >=1 AND byte <=11){

modByte += 47modByte += 47

} else if(byte >=12 AND byte <=37){} else if(byte >=12 AND byte <=37){

modByte+= 53modByte+= 53

}else{}else{

modByte+= 59modByte+= 59

}}

finalPassword.append(modByte)finalPassword.append(modByte)

도 37은 다양한 실시예에 따른 예시적인 모바일 인터페이스를 도시한다. 가상 입력 방법에 대한 시각적 액세스 코드를 설정하기 위해, 사용자는 이름, 어머니의 결혼 전 성(姓), 생년월일 또는 즐겨 찾는 위치 등과 같은 고유 패스프레이즈(passphrase)를 선택하여 시작한다. 2 단계 시스템은 사용자가 등록 이미지를 선택할 수 있도록 이미지 세트를 생성한다. 예시적인 실시예에 따르면, 알고리즘은 다음을 포함할 수 있다:37 illustrates an exemplary mobile interface in accordance with various embodiments. To set up a visual access code for the virtual input method, the user starts by selecting a unique passphrase, such as first name, mother's pre-marriage last name, date of birth or favorite location. The two-stage system creates a set of images so that the user can select a registered image. According to an exemplary embodiment, the algorithm may include:

Let photoHexDigest = generateOneWayCryptographyFrom(photoBitmpa)Let photoHexDigest = generateOneWayCryptographyFrom(photoBitmpa)

Let selectedHotspotsXY = ""Let selectedHotspotsXY = ""

For each selected hotspotFor each selected hotspot

Let hotspotXY=getXYForHotspotLet hotspotXY=getXYForHotspot

selectedHotspotsXY.append(hotspotXY)selectedHotspotsXY.append(hotspotXY)

End End

Let siteOrAppId = collectCurrentSiteOrAppIdLet siteOrAppId = collectCurrentSiteOrAppId

Let finalPasswordSeed = concat(photoHexDigest, selectedHotspotsXY, siteOrAppId)Let finalPasswordSeed = concat(photoHexDigest, selectedHotspotsXY, siteOrAppId)

Let passwordHexDigest = generateOneWayCryptographyFrom(finalPasswordSeed)Let passwordHexDigest = generateOneWayCryptographyFrom(finalPasswordSeed)

Let passordMappingAlgorithmIndex= Let passordMappingAlgorithmIndex=

getByteAtIndex(9, uniqueUserHexDigest)getByteAtIndex(9, uniqueUserHexDigest)

let asciiPassword= generateAsciiPasswordWithAlgorithm(passwordHexDigest, passordMappingAlgorithmIndex)let asciiPassword= generateAsciiPasswordWithAlgorithm(passwordHexDigest, passordMappingAlgorithmIndex)

도 38은 예시적인 실시예에 따른 시각적 액세스 코드를 입력하는 예시적인 구현을 도시한다. 1 단계에서, 사용자는 인증이 필요한 목적지 웹 사이트나 애플리케이션 또는 로그인 스크린으로 네비게이션한다. VAI는 목적지의 인증 양식을 감지하고 목적지 식별자와 관련된 시각적 액세스 코드를 검색할 수 있다. VAI는 사용자가 목적지에 대해 이전에 등록한 이미지를 포함하는 이미지 세트를 사용자에게 제공한다. 사용자가 등록된 이미지와 일치하는 이미지를 선택하면, VAI는 2 단계로 진행하여 등록된 이미지의 사용자 핫스팟을 제시한다. 예를 들어, 등록된 이미지는 16개의 가능한 핫스팟을 포함하는 집의 이미지일 수 있다.Fig. 38 shows an exemplary implementation of entering a visual access code according to an exemplary embodiment. In step 1, the user navigates to a destination website or application that requires authentication or a login screen. The VAI can detect the destination's authentication form and retrieve the visual access code associated with the destination identifier. VAI provides the user with a set of images that include images previously registered by the user for the destination. When the user selects an image that matches the registered image, VAI proceeds to step 2 and presents the user hot spot of the registered image. For example, the registered image may be an image of a house including 16 possible hot spots.

사용자가 이전에 등록된 핫스팟과 일치하는 일련의 핫스팟을 선택하면, 시각적 입력 방법은 3 단계로 진행한다. 예를 들어, 사용자는 등록 프로세스 동안 사용자가 선택한 핫스팟과 일치하는 묘사된 집의 다른 부분에 대응하는 이미지상의 다른 위치를 터치함으로써 4개의 핫스팟을 식별할 수 있다. 3 단계에서, 가상 입력 방법은 시각적 액세스 코드와 함께 저장된 영숫자 패스워드를 목적지의 인증 양식에 입력한다. 일부 실시예에서, 가상 입력 방법은 사용자가 시각적 액세스 코드를 성공적으로 입력했다는 확인 메시지를 제시할 수 있다. 사용자는 영숫자 패스워드를 타이핑하지 않고도 목적지의 인증 양식을 클릭하여 로그인을 완료하도록 진행할 수 있다.When the user selects a series of hotspots that match the previously registered hotspots, the visual input method proceeds to step 3. For example, the user may identify four hotspots during the registration process by touching different locations on the image corresponding to different parts of the depicted house that match the hotspot selected by the user. In step 3, the virtual input method enters the alphanumeric password stored with the visual access code into the authentication form of the destination. In some embodiments, the virtual input method may present a confirmation message that the user has successfully entered the visual access code. Users can proceed to complete the login by clicking on the destination authentication form without typing an alphanumeric password.

도 39a-c는 다양한 실시예에 따른 웹 사이트에서의 가상 입력 방법의 예시적인 구현을 도시한다. 도 39a는 이전에 등록된 이미지를 포함하는 여러 이미지를 사용자에게 제시하는 가상 입력 방법의 제 1 단계를 도시한다. 사용자는 등록된 이미지를 클릭하거나 터치하여 이전에 등록된 이미지를 확인할 수 있다. 사용자가 등록된 이미지와 일치하는 이미지를 선택한데 응답하여, 사용자에게 등록된 이미지가 제시되고 등록된 이미지의 일련의 핫스팟을 식별하도록 지시할 수 있다.39A-C illustrate exemplary implementations of a virtual input method in a web site according to various embodiments. 39A shows a first step of a virtual input method for presenting to a user several images including previously registered images. The user can click or touch the registered image to check the previously registered image. In response to the user selecting an image that matches the registered image, the registered image may be presented and instructed to identify a series of hotspots of the registered image.

도 39b에서, 사용자에게 가상 입력 방법에 대한 핫스팟 선택 스크린이 제시된다. 인터페이스는 사용자에게 선택한 이미지에 대한 여러 핫스팟을 제공할 수 있다. 사용자가 등록된 일련의 핫스팟과 일치하는 등록된 이미지를 일련의 핫스팟을 선택하는 것에 응답하여, 시각적 액세스 코드 프로세스가 장치 또는 서비스에 대해 사용자를 인증할 수 있다. 예를 들어, 사용자는 등록 과정에서 사용자가 선택한 핫스팟 위치에 해당하는 사진의 네 위치를 클릭하거나 터치할 수 있다. 예를 들어, 시각적 액세스 프로세스는 사용자가 선택한 위치가 등록 프로세스 중에 저장된 해당 인덱스 번호를 충족하는지 판단한다. 다른 구현 예에 따르면, 시각적 액세스 프로세스는 사용자가 선택한 위치가 등록 프로세스에서 사진에서 해당 픽셀의 2차원 좌표를 충족하는지 여부를 판단한다.In Fig. 39B, the user is presented with a hotspot selection screen for the virtual input method. The interface can provide the user with multiple hotspots for the selected image. In response to the user selecting the series of hotspots with registered images that match the registered series of hotspots, the visual access code process may authenticate the user to the device or service. For example, the user may click or touch four locations of a photo corresponding to the hotspot location selected by the user during the registration process. For example, the visual access process determines whether the location selected by the user meets the corresponding index number stored during the registration process. According to another implementation example, the visual access process determines whether the location selected by the user satisfies the two-dimensional coordinates of the corresponding pixel in the photo in the registration process.

예시적인 구현에서, 사용자 인증을 위한 시각적 액세스 코드 프로세스의 제 2 단계를 충족시키기 위해, 등록된 이미지상의 일련의 핫스팟이 등록 프로세스 동안 선택된 핫스팟과 동일한 순서로 식별될 수 있다. 다른 예시적인 구현에서, 등록된 이미지상의 일련의 핫스팟은 사용자 인증을 위한 시각적 액세스 코드 프로세스의 제 2 단계를 만족시키기 위해 임의의 순서로 식별될 수 있다. 기존의 영숫자 조합에 비해 위치 및 시각적 단서의 순열이 크게 증가하기 때문에, 사용자는 먼저 올바른 이미지를 기억한 다음 올바른 이미지에서 일련의 핫스팟 위치를 식별하면 사용자를 인증하는 데 충분할 수 있다.In an exemplary implementation, to satisfy the second step of the visual access code process for user authentication, a series of hotspots on the registered image may be identified in the same order as the hotspots selected during the registration process. In another example implementation, the series of hotspots on the registered image may be identified in any order to satisfy the second step of the visual access code process for user authentication. Because the permutation of location and visual cues is greatly increased compared to traditional alphanumeric combinations, the user first remembering the correct image and then identifying a series of hotspot locations in the correct image may be sufficient to authenticate the user.

사용자가 등록된 이미지와 일치하지 않는 이미지를 선택하는 것에 응답하여, 사용자에게 일치하지 않는 이미지가 제시되고 일치하지 않는 이미지의 일련의 핫스팟을 식별하도록 지시될 수 있다. 사용자를 인증하기 위해, 시각적 액세스 코드 프로세스는 복수의 이미지로부터 이미지의 제 1 선택에 관한 피드백을 사용자에게 제공하거나 억제할 수 있다. 따라서, 미인가 사용자는 이미지의 제 1 선택 또는 일련의 핫스팟의 제 2 식별이 시각적 액세스 코드 프로세스를 만족못하는지 여부를 통지받지 못할 수 있다. 이미지 그룹과 핫스팟 위치에서 여러 이미지 조합을 추측하는 반복된 시도는 무차별 대입 공격으로 감지될 수 있다.In response to the user selecting an image that does not match the registered image, the user is presented with a non-matching image and may be instructed to identify a series of hotspots of the non-matching image. To authenticate the user, the visual access code process may provide or suppress feedback to the user regarding a first selection of images from a plurality of images. Thus, the unauthorized user may not be notified whether the first selection of images or the second identification of a series of hotspots does not satisfy the visual access code process. Repeated attempts to guess multiple image combinations from image groups and hotspot locations can be detected as brute force attacks.

올바른 핫스팟이 선택되면, 가상 입력 방법은 도 39c로 진행하여 사용자에게 확인 메시지를 제시하고 목적지의 로그인 양식에 영숫자 최종 패스워드를 입력할 수 있다.When the correct hotspot is selected, the virtual input method proceeds to FIG. 39C to present a confirmation message to the user and input a final alphanumeric password in the login form of the destination.

각 사용자에 대한 보안 시각적 액세스 코드를 생성하기 위해, 프로세스는 시각적으로 식별할 수 없는 것처럼 보이는 각 사용자에 대해 고유한 수정된 이미지를 사용할 수 있다. 일 실시예에서, 프로세스는 핫스팟의 좌표를 수정하고 이미지 데이터를 보호하는 혼합 텍스처를 추가하기 위해 원본 이미지의 중심점을 이동하는 것을 포함할 수 있다.To generate a secure visual access code for each user, the process can use a modified image that is unique for each user that appears to be visually unidentifiable. In one embodiment, the process may include moving the center point of the original image to modify the coordinates of the hotspot and add a blended texture that protects the image data.

도 40은 다양한 실시예에 따른 이미지 블렌딩 프로세스를 도시한다. 각 사용자의 사진을 혼합하면 사용자의 이미지 선택을 단순히 관찰하는 것만으로는 감지 할 수 없는 상이한 패스워드가 각 사용자에게 제공된다. 일 실시예에서, 시스템은 블렌딩 알고리즘을 통해 텍스처 마스킹을 원본 사진과 결합하여 보안 시각적 액세스 코드를 생성하기 위한 수정된 사진을 생성한다. 포토 블렌딩 알고리즘의 예는 다음을 포함할 수 있다:40 illustrates an image blending process according to various embodiments. Mixing each user's picture provides each user with a different password that simply cannot be detected by simply observing the user's image selection. In one embodiment, the system combines the texture masking with the original photo via a blending algorithm to generate a modified photo to generate a secure visual access code. Examples of photo blending algorithms may include:

Let resultingPhoto = copyPhoto(originalPhotoSize)Let resultingPhoto = copyPhoto(originalPhotoSize)

For each x in 0 to photoWidthFor each x in 0 to photoWidth

For each y in 0 to photoHeightFor each y in 0 to photoHeight

resultingPhotoPixelAt(x,y) = resultingPhotoPixelAt(x,y) + setTransparencyTo(photoBlendingFilterPixelAt(x,y),20%)resultingPhotoPixelAt(x,y) = resultingPhotoPixelAt(x,y) + setTransparencyTo(photoBlendingFilterPixelAt(x,y),20%)

EndEnd

EndEnd

예시적인 실시예에서, 시스템은 고유한 사용자 16진 다이제스트에 저장된 데이터에 기초하여 블렌딩 알고리즘 및 포토 필터 비트맵을 선택한다. 예를 들어, 16진 다이제스트에는 수정된 사진을 만들기 위한 간단한 오버랩 블렌딩 알고리즘을 나타내는 값이 포함될 수 있다. 다중 블렌딩 및 패스워드 맵핑 알고리즘이 액세스 코드의 보안을 향상시킨다.In an exemplary embodiment, the system selects a blending algorithm and photo filter bitmap based on data stored in a unique user hexadecimal digest. For example, the hexadecimal digest may contain a value representing a simple overlap blending algorithm to create a modified photo. Multiple blending and password mapping algorithms improve the security of the access code.

도 41은 다양한 실시예에 따른 핫스팟 위치 이동의 예시적인 구현을 도시한다. 원본 사진 좌표의 중심점을 이동하여 이미지의 핫스팟 위치 값을 변경하여 동일한 시각적 이미지를 사용하고 이미지의 시각적 모양을 유지하면서 각 사용자에 대해 서로 다른 패스워드를 생성할 수 있다.41 illustrates an exemplary implementation of hotspot location movement according to various embodiments. You can use the same visual image by moving the center point of the original photo coordinates to change the hot spot location value of the image and create a different password for each user while maintaining the visual shape of the image.

예시적인 핫스팟 이동 알고리즘은 다음을 포함할 수 있다:An exemplary hotspot movement algorithm may include:

Input hotspotShiftingIndex Input hotspotShiftingIndex

For each hotspotFor each hotspot

hotspot.x =(hotspot.x - 2) +(hotspotShiftingIndex remainder 5)hotspot.x =(hotspot.x-2) +(hotspotShiftingIndex remainder 5)

hotspot.y =(hotspot.y - 2) +(hotspotShiftingIndex modulus 5)hotspot.y =(hotspot.y-2) +(hotspotShiftingIndex modulus 5)

EndEnd

예를 들어, 등록 단계 동안 제공된 고유 사용자 문구에 기초하여, 16진 다이제스트는 핫스팟 중심을 이동시키기 위한 이동값을 제공하여 사용자용 이미지에 대한 핫스팟 좌표를 구별할 수 있다. 예를 들어, 고유한 사용자 16진 다이제스트에서 이동값 9를 기반으로 이동했을 때 위치 좌표(30, 50)를 갖는 원래 핫스팟 중심이 상기 핫스팟 중심을 위치 좌표(301, 49)로 이동시킨다.For example, based on the unique user phrase provided during the registration step, the hexadecimal digest may provide a movement value for moving the center of the hotspot to distinguish the hotspot coordinates for the image for the user. For example, when moving based on the movement value 9 in the unique user hexadecimal digest, the original hot spot center having the location coordinates 30 and 50 moves the hot spot center to the location coordinates 301 and 49.

다른 예시적인 구현에 따르면, 다중 인증 시스템(MFA)은 사용자가 다중 애플리케이션/웹 사이트 목적지에 액세스하도록 인증하는 데 사용될 수 있는 다양한 패스워드 입력 메커니즘(예를 들어, 영숫자, 시각, 음성 등)을 지원한다. MFA에는 로컬 또는 네트워크 메모리(예를 들어, 비밀번호 보관소)에 패스워드를 저장하지 않고 여러 다른 서비스 공급 업체(예를 들어, 사용자 인증을 포함하는 제 3 자 애플리케이션, 클라우드 서비스, 웹 사이트 등)에 대한 인터넷 연결과 관계없이 고유하고 안전한 암호를 생성하는 실시간 패스워드 생성기가 포함되어 있다.According to another exemplary implementation, a multiple authentication system (MFA) supports a variety of password entry mechanisms (e.g., alphanumeric, visual, voice, etc.) that can be used to authenticate users to access multiple application/website destinations. . MFA does not store passwords in local or network memory (e.g. password vaults), and the Internet to several different service providers (e.g., third-party applications, cloud services, websites, etc. that contain user authentication). It includes a real-time password generator that generates unique and secure passwords regardless of the connection.

MFA는 고유하고 복잡한 패스워드를 생성하고, 패스워드를 서비스 공급 업체에 등록하고, 이를 사용자가 액세스할 수 있는 개인화된 리콜 도구와 연관시킨다. 예를 들어, 개인화된 리콜 도구는 일반적으로 사용자가 공개적으로 사용 가능하거나 은밀하게 획득한 정보(예를 들어, 소셜 미디어, 공개 기록, 은밀하게 획득한 정보 등)로부터 해킹에 취약한 기존 패스워드 및/또는 복구 질문보다는 사용자 자신의 개인 기억에 기초할 수 있다. MFA generates a unique and complex password, registers the password with a service provider, and associates it with a personalized recall tool that users can access. For example, personalized recall tools are generally vulnerable to hacking from information that is publicly available or secretly obtained by the user (e.g., social media, public records, confidential information, etc.) and/or It can be based on the user's own personal memory rather than a recovery question.

MFA는 개인 및 기업 시스템(예를 들어, 금융 기관, 대학교, 건강 보험 기관, 병원 등)과 호환되고 확장 가능하여 패스워드 재설정과 관련된 직접 비용뿐만 아니라 법률 및 보안 침해로 인한 공공 관계 책임을 줄인다. MFA는 몇 가지 고유한 패스워드 상기, 장치 간 패스워드 저장소 동기화, 클라우드 기반 솔루션의 가용성, 누출 및 남용이 치명적일 수 있는 변경 불가능한 생체 인식 패스워드와 같은 기존의 패스워드 문제를 방지한다.MFA is compatible and extensible with personal and corporate systems (e.g. financial institutions, universities, health insurance agencies, hospitals, etc.), reducing the direct costs associated with password resets, as well as public relations liability due to legal and security breaches. MFA avoids traditional password problems such as several unique password reminders, synchronization of password storage between devices, availability of cloud-based solutions, and immutable biometric passwords that can be fatal to leaks and abuses.

예시적인 태양에 따르면, MFA는 서비스 공급 업체(예를 들어, 애플리케이션, 웹 사이트, 디지털 목적지 등)의 인증 모듈로부터 분리된 사용자 장치상의 인증 메커니즘이다. 다중 인증 시스템을 통해 사용자는 사용자가 액세스할 수 있는 개인화된 리콜 도구를 기반으로 식별자 코드와 액세스 코드를 생성할 수 있다. 다중 인증 시스템은 식별자 코드와 액세스 코드를 사용하여 각 서비스 공급 업체에 대한 고유한 대상 키를 생성한다. 예를 들어, 액세스 코드는 영숫자, 패턴 및/또는 시각적 포맷일 수 있다. 다중 인증 시스템은 공통 저장소없이(예를 들어, 비밀번호 저장소없이) 사용자 장치에서 작동할 수 있으며 각 서비스 공급 업체의 고유한 대상 키에 액세스하기 위해 인터넷 연결이 필요하지 않다.According to an exemplary aspect, MFA is an authentication mechanism on the user device that is separate from the authentication module of the service provider (eg, application, web site, digital destination, etc.). The multiple authentication system allows users to generate identifier codes and access codes based on personalized recall tools that users can access. Multiple authentication systems use an identifier code and an access code to generate a unique target key for each service provider. For example, the access code can be in alphanumeric, pattern and/or visual format. Multiple authentication systems can operate on user devices without common storage (eg, without password storage) and do not require an Internet connection to access each service provider's unique target key.

구현에 따르면, 식별자 코드는 각 사용자 장치에 한 번 안전하게 저장되고 액세스 코드는 각 서비스 공급 업체(예를 들어, 애플리케이션, 웹 사이트, 디지털 목적지 등)와의 인증시 사용자에 의해 제공된다. 동일한 식별자 코드 및 액세스 코드가 여러 개의 다른 고유 대상 키와 연관된다. 각 고유 대상 키는 다른 애플리케이션/웹 사이트 목적지에 등록하는 데 사용된다. 애플리케이션/웹 사이트 목적지는 일반적으로 로그인시 수신된 대상 키를 목적지에 의해 사용자에게 등록한 대상 키와 일치시켜 액세스 권한을 부여한다. 따라서, 저장된 식별자 코드가 있는 장치의 사용자는 로그인할 때마다 단일 액세스 코드를 입력하여 여러 목적지에 로그인할 수 있으며 각 목적지는 다른 대상 키를 받는다.According to the implementation, the identifier code is securely stored once on each user device and the access code is provided by the user upon authentication with each service provider (eg, application, website, digital destination, etc.). The same identifier code and access code are associated with several different unique target keys. Each unique target key is used to register with a different application/website destination. The application/website destination generally grants access rights by matching the target key received at login with the target key registered to the user by the destination. Thus, a user of a device with a stored identifier code can log in to multiple destinations by entering a single access code each time they log in, and each destination receives a different destination key.

애플리케이션/웹 사이트 목적지에 대한 대상 키는 사용자 측(예를 들어, 사용자 장치, 비밀번호 보관소, 사용자의 클라우드 저장소, 하드웨어 키 등)에 저장되지 않고 식별자 코드와 액세스 코드를 사용하는 다중 인증 시스템을 기반으로 재생성된다. 즉, 대상 키가 사용자 측에 저장되지 않은 액세스 코드 및 식별자 코드를 기반으로 일관되게 생성된다.The target key for the application/website destination is not stored on the user side (e.g. user device, password vault, user's cloud storage, hardware key, etc.), but based on a multi-factor authentication system using identifier codes and access codes. Is regenerated. That is, the target key is consistently generated based on the access code and the identifier code that are not stored on the user side.

식별자 코드는 사용자 장치에 안전하게 저장될 수 있다. 식별자 코드는 강력한 최소 요건(예를 들어, 길이 요건, 복잡성 테스트, 중복 감지 등)의 적용을 받을 수 있으며 사용자가 쉽게 기억할 수 있는 기억에 남는 정보(예를 들어, 좋아하는 영화 인용문 또는 인생의 결정적인 순간)를 사용하여 생성될 수 있다.The identifier code can be securely stored on the user device. Identifier codes can be subject to strong minimum requirements (e.g. length requirement, complexity test, duplicate detection, etc.) and memorable information that can be easily remembered by the user (e.g. favorite movie quotes or life's crucial Moment).

예를 들어, 식별자는 영숫자 패스프레이즈 또는 문장, 시각적 액세스 코드(예를 들어, VAI를 통해 이미지 또는 핫스팟 선택), 패턴 등일 수 있다. 식별자 코드는 장치에 한 번 입력할 수 있으며 장치에서 표시되거나 전송되지 않도록 보호된다. 예를 들어, 식별자 코드는 보안 포맷(예를 들어, 암호화, 해싱 등)으로 저장될 수 있으며 장치의 보안 메커니즘(예를 들어, 보안 하드웨어 공간, 보호된 메모리, 읽기 전용 메모리, 웜스토리지(write once read many secure storage) 등)을 사용할 수 있다. For example, the identifier may be an alphanumeric passphrase or sentence, a visual access code (eg, selecting an image or hotspot through VAI), a pattern, and the like. The identifier code can be entered once into the device and is protected from being displayed or transmitted on the device. For example, the identifier code may be stored in a secure format (e.g., encryption, hashing, etc.) and the device's security mechanisms (e.g., secure hardware space, protected memory, read-only memory, write once read many secure storage), etc.) can be used.

액세스 코드는 서비스 공급 업체가 보안 로그인을 요청할 때마다 사용자에 의해 장치에 제공된다. 단일 액세스 코드는 여러 다른 서비스 공급 업체에 액세스하기 위해 다양한 포맷(예를 들어, 영숫자, 시각, 음성 등)으로 입력될 수 있으며 장치 외부로 전송되지 않는다.The access code is provided to the device by the user whenever the service provider requests a secure login. A single access code can be entered in a variety of formats (eg, alphanumeric, visual, audio, etc.) to access different service providers and is not transmitted outside the device.

예시적인 구현에서, 텍스트 패스워드, 시각적 패스워드, 패턴, 생체 인식, 사용자 행동 등과 같은 다른 사용자 중심 인증 메커니즘이 대상 키를 일관되게 생성하기 위해 식별자 코드와 함께 사용되는 액세스 코드를 수신한다. 액세스 코드에는 강력한 보안 요건(예를 들어, 길이 요건, 복잡성 테스트, 중복 감지 등)이 필요할 수 있으며 장치에 효율적으로 입력할 수 있다.In an exemplary implementation, other user-centric authentication mechanisms such as text passwords, visual passwords, patterns, biometrics, user actions, etc. receive an access code that is used with an identifier code to consistently generate a target key. Access codes may require strong security requirements (e.g. length requirements, complexity testing, duplicate detection, etc.) and can be efficiently entered into the device.

예시적인 구현에서, 액세스 코드는 영숫자 문자열, 시각적 액세스 시퀀스, 안전 락, 패턴, 제스처, 숨겨진 락, 다이스 워드 중 적어도 하나이고, 액세스 코드가 생체 정보(예를 들어, 지문, 얼굴 스캔, 망막 스캔 등)를 사용해 더 암호화된다. 생체 인식 정보는 장치에 저장되어 빠른 인증을 통해 대상 키를 다시 생성할 수 있는 추가 로컬 보안 계층을 제공하며, 생체 인식 정보를 외부 서비스나 구성요소로 전송할 필요가 없다. 애플리케이션 또는 서비스의 후속 로그인 요청은 대상 키를 다시 생성하기 위해 액세스 코드를 해독도록 생체 인식 정보를 제공하게 사용자에게 프롬프트할 수 있다.In an exemplary implementation, the access code is at least one of an alphanumeric string, a visual access sequence, a safety lock, a pattern, a gesture, a hidden lock, and a dice word, and the access code is biometric information (e.g., fingerprint, face scan, retina scan, etc.). ) To further encrypt. The biometric information is stored in the device to provide an additional local security layer that can regenerate the target key through fast authentication, and there is no need to transmit the biometric information to an external service or component. Subsequent login requests from the application or service may prompt the user to provide biometric information to decrypt the access code to regenerate the target key.

또한, 사용자는 액세스 코드를 기억하고 있는지 확인하기 위해 때때로 (예를 들어, 랜덤하게, 카운트다운 시계, 매 x회 로그인 횟수 등) 액세스 코드를 입력하라는 요청을 받을 수 있다. 애플리케이션 또는 서비스의 추가 로그인 요청은 생체 인식 정보 이외에 액세스 코드를 입력함으로써 사용자에게 액세스 코드를 확인하라는 메시지를 프롬프트할 수 있다.In addition, the user may be asked to enter the access code from time to time (eg, randomly, countdown clock, number of logins every x times, etc.) to ensure that the access code is remembered. An additional login request from an application or service may prompt the user to confirm the access code by entering an access code in addition to biometric information.

액세스 코드는 식별자 코드보다 더 자주 입력되므로, 액세스 코드는 식별자 코드보다 더 효율적으로 입력되도록 구성될 수 있다. 예를 들어, 액세스 코드는 영숫자 패스워드, 시각적 액세스 코드(예를 들어, VAI를 통해 이미지 또는 핫스팟 선택), 패턴 등이 될 수 있고 식별자 코드와 달라야 한다.Since the access code is entered more often than the identifier code, the access code can be configured to be entered more efficiently than the identifier code. For example, the access code can be an alphanumeric password, a visual access code (eg, selecting an image or hotspot via VAI), a pattern, etc. and must be different from the identifier code.

대상 키가 (예를 들어, 전송을 통해, 목적지의 패스워드 포맷으로 패스워드를 채우는 등을 통해) 서비스 공급 업체에게 제공된다. 예를 들어, MFA는 강력한 휴리스틱을 사용하여 웹 사이트의 로그인 필드를 올바르게 식별하고 접근성 API(예를 들어, Open YOLO 프로토콜) 등을 사용할 수 있다.The target key is provided to the service provider (eg, via transmission, by filling the password in the destination's password format, etc.). For example, MFA can use strong heuristics to correctly identify a website's login field, use accessibility APIs (e.g., Open YOLO protocol), etc.

상술한 바와 같이, 등록 프로세스(예를 들어, 등록 프로세스(3500))는 단방향 암호화 인코딩을 사용하여 영숫자 암호를 생성하고 목적지 식별자로 패스워드를 시드할 수 있다. MFA 프로세스는 애플리케이션/웹 사이트 대상 이름, 식별자 코드 및 액세스 코드로 시드된 대상 키를 생성한다. 따라서, 액세스 코드 프로세스는 사용자 입력을 기반으로 패스워드 생성을 일관되게 복제하므로, 사용자 시스템은 각 사이트에 대한 패스워드를 저장할 필요가 없다.As described above, the registration process (e.g., registration process 3500) can generate an alphanumeric password using one-way encryption encoding and seed the password with the destination identifier. The MFA process generates a target key seeded with the application/website target name, identifier code, and access code. Thus, the access code process consistently replicates password generation based on user input, so the user system does not need to store passwords for each site.

구성된 장치에서 대상 키를 생성하는 데 네트워크 연결이나 외부 리소스가 필요하지 않다. 따라서, 대안적인 예에 따르면, 식별자 코드 및 액세스 코드, 구성된 장치에서 인증된 내보내기 메커니즘(예를 들어, 매트릭스 바코드, 근거리 통신 등)으로 설정 프로세스를 완료함로써 또는 당업자에 의해 이해되는 네트워킹 전송 기술을 사용하여 설정 프로세스를 완료함으로써 추가 장치 구성을 마칠 수 있다. 예시적인 구현은 MFA의 무결성을 위해 식별자 코드 및/또는 액세스 코드의 네트워크 전송을 금지하도록 구성된다.No network connection or external resources are required to generate the target key on the configured device. Thus, according to an alternative example, by completing the setup process with an identifier code and an access code, an authorized export mechanism (e.g., matrix barcode, short-range communication, etc.) on the configured device, or by using a networking transmission technique as understood by those skilled in the art. You can finish configuring additional devices by completing the setup process. The example implementation is configured to prohibit network transmission of the identifier code and/or access code for the integrity of the MFA.

예시적인 MFA 방법은, 장치에 의해, 장치의 보안 스토리지에 사용자로부터의 식별자 코드를 저장하는 것을 포함한다. 애플리케이션 또는 서비스에서 로그인 요청을 수신한 데 응답해, 사용자가 액세스 코드를 제공하라고 프롬프트되고, 장치는 식별자 코드와 액세스 코드를 기반으로 대상 키를 생성한다. 대상 키는 사용자를 인증하기 위해 애플리케이션 또는 서비스에 등록된다.An exemplary MFA method includes storing, by the device, an identifier code from the user in secure storage of the device. In response to receiving a login request from the application or service, the user is prompted to provide an access code, and the device generates a target key based on the identifier code and access code. The target key is registered with the application or service to authenticate the user.

애플리케이션 또는 서비스로부터 후속 로그인 요청을 수신한 데 응답해: 사용자가 액세스 코드를 제공하라고 프롬프트되고, MFA는 저장된 식별자 코드 및 수신된 액세스 코드를 기반으로 애플리케이션 또는 서비스에 대한 동일한 대상 키를 다시 생성한다. 대상 키는 애플리케이션 또는 서비스에 액세스하기 위한 저장된 식별자 코드와 액세스 코드를 기반으로 일관되게 다시 생성될 수 있다.In response to receiving a subsequent login request from the application or service: the user is prompted to provide an access code, and the MFA regenerates the same target key for the application or service based on the stored identifier code and received access code. The target key can be consistently regenerated based on the stored identifier code and access code for accessing the application or service.

또한, 다른 애플리케이션 또는 서비스로부터 로그인 요청을 수신한 데 응답해, 사용자가 동일한 액세스 코드를 제공하라고 프롬프트되고, MFA는 식별자 코드 및 액세스 코드에 기초하여 다른 대상 키를 생성한다. 다른 대상 키는 다른 애플리케이션 또는 서비스에 등록되어 사용자를 인증하며, 다른 대상 키는 다른 애플리케이션 또는 서비스에 액세스하기 위한 저장된 식별자 코드와 액세스 코드를 기반으로 일관되게 다시 생성될 수 있다.In addition, in response to receiving a login request from another application or service, the user is prompted to provide the same access code, and the MFA generates a different target key based on the identifier code and access code. Different target keys are registered with different applications or services to authenticate users, and different target keys can be consistently regenerated based on stored identifier codes and access codes for accessing other applications or services.

도 42는 다양한 실시예에 따른 유선 또는 무선 시스템(550)을 예시하는 블록도이다. 도 1 및 21을 참조하면, 시스템(550)은 미디어 플랫폼(120)을 구현하는 데 사용될 수 있다. 다양한 실시예에서, 시스템(550)은 종래 개인용 컴퓨터, 컴퓨터 서버, 개인용 정보 단말기, 스마트 폰, 태블릿 컴퓨터 또는 유선 또는 무선 데이터 통신이 가능한 임의의 다른 프로세서 가능 장치일 수 있다. 당업자에게 명백한 바와 같이, 다른 컴퓨터 시스템 및/또는 아키텍처가 또한 사용될 수 있다.42 is a block diagram illustrating a wired or wireless system 550 according to various embodiments. 1 and 21, system 550 can be used to implement media platform 120. In various embodiments, system 550 may be a conventional personal computer, computer server, personal digital assistant, smart phone, tablet computer, or any other processor capable device capable of wired or wireless data communication. As will be apparent to those skilled in the art, other computer systems and/or architectures may also be used.

시스템(550)은 프로세서(560)와 같은 하나 이상의 프로세서를 포함하는 것이 바람직하다. 입력/출력을 관리하는 보조 프로세서, 부동 소수점 수학적 연산을 수행하는 보조 프로세서, 신호 처리 알고리즘(예를 들어, 디지털 신호 프로세서)의 빠른 실행에 적합한 아키텍처를 갖는 특수 목적용 마이크로프로세서, 주 처리 시스템에 종속된 슬레이브 프로세서(예를 들어, 백엔드 프로세서), 이중 또는 다중 프로세서 시스템을 위한 추가 마이크로프로세서 또는 컨트롤러, 또는 코프로세서와 같은 추가 프로세서가 제공될 수 있다. 이러한 보조 프로세서는 개별 프로세서이거나 프로세서(560)와 통합될 수 있다.System 550 preferably includes one or more processors, such as processor 560. A coprocessor that manages input/output, a coprocessor that performs floating-point mathematical operations, a special-purpose microprocessor with an architecture suitable for fast execution of signal processing algorithms (e.g., digital signal processors), dependent on the main processing system Additional processors may be provided, such as slave processors (eg, backend processors), additional microprocessors or controllers for dual or multiprocessor systems, or coprocessors. Such a coprocessor may be a separate processor or may be integrated with the processor 560.

프로세서(560)는 바람직하게 통신 버스(555)에 연결된다. 통신 버스(555)는 시스템(550)의 저장 장치와 다른 주변 구성요소 사이의 정보 전송을 용이하게 하기 위한 데이터 채널을 포함할 수 있다. 통신 버스(555)는 데이터 버스, 어드레스 버스 및 제어 버스(미도시)를 포함해 프로세서(560)와의 통신에 사용된 신호 세트를 더 제공할 수 있다. 통신 버스(555)는 예를 들어 산업 표준 아키텍처("ISA"), 확장된 산업 표준 아키텍처("EISA"), 마이크로 채널 아키텍처("MCA"), 주변 부품 상호 연결("PCI") 로컬 버스 또는 IEEE 488 범용 인터페이스 버스("GPIB"), IEEE 696/S-100을 포함하여 Institute of Electrical and Electronics Engineers("IEEE")에서 발표한 표준, 등과 호환되는 버스 아키텍처와 같은 임의의 표준 또는 비표준 버스 아키텍처를 포함할 수 있다. Processor 560 is preferably coupled to communication bus 555. Communication bus 555 may include a data channel to facilitate information transfer between storage devices of system 550 and other peripheral components. The communication bus 555 may further provide a set of signals used for communication with the processor 560 including a data bus, an address bus, and a control bus (not shown). Communication bus 555 may be, for example, an industry standard architecture ("ISA"), an extended industry standard architecture ("EISA"), a microchannel architecture ("MCA"), a peripheral component interconnect ("PCI") local bus or Any standard or non-standard bus architecture such as IEEE 488 Universal Interface Bus ("GPIB"), a bus architecture that is compatible with standards published by the Institute of Electrical and Electronics Engineers ("IEEE") including IEEE 696/S-100, etc. It may include.

시스템(550)은 바람직하게는 주 메모리(565)를 포함하고 또한 보조 메모리(570)를 또한 포함할 수 있다. 주 메모리(565)는 프로세서(560)에서 실행되는 프로그램에 대한 명령어 및 데이터의 저장을 제공한다. 주 메모리(565)는 일반적으로 읽기 전용 메모리("ROM")를 포함해 동적 랜덤 액세스 메모리("DRAM") 및/또는 정적 랜덤 액세스 메모리("SRAM")와 같은 반도체 기반 메모리이다. 다른 반도체 기반 메모리 유형에는 예를 들어 동기식 동적 랜덤 액세스 메모리("SDRAM"), Rambus 동적 랜덤 액세스 메모리("RDRAM"), 강유전성 랜덤 액세스 메모리("FRAM") 등이 포함된다. System 550 preferably includes main memory 565 and may also include auxiliary memory 570. Main memory 565 provides storage of instructions and data for programs executed in processor 560. Main memory 565 is generally a semiconductor based memory such as dynamic random access memory ("DRAM") and/or static random access memory ("SRAM"), including read-only memory ("ROM"). Other semiconductor based memory types include, for example, synchronous dynamic random access memory ("SDRAM"), Rambus dynamic random access memory ("RDRAM"), ferroelectric random access memory ("FRAM"), and the like.

보조 메모리(570)는 선택적으로 내부 메모리(575) 및/또는 이동식 매체(580), 예를 들어 플로피 디스크 드라이브, 자기 테이프 드라이브, 컴팩트 디스크("CD") 드라이브, 디지털 다용도 디스크("DVD") 드라이브 등을 포함할 수 있다. 이동식 매체(580)는 잘 알려진 방식으로 판독 및/또는 기록된다. 이동식 저장 매체(580)는 예를 들어 플로피 디스크, 자기 테이프, CD, DVD, SD 카드 등일 수 있다.Secondary memory 570 optionally includes internal memory 575 and/or removable media 580, for example a floppy disk drive, magnetic tape drive, compact disk ("CD") drive, digital versatile disk ("DVD"). It may include a drive or the like. Removable medium 580 is read and/or written in a well-known manner. The removable storage medium 580 may be, for example, a floppy disk, magnetic tape, CD, DVD, SD card, or the like.

이동식 저장 매체(580)는 컴퓨터 실행 가능 코드(즉, 소프트웨어) 및/또는 데이터를 저장한 비일시적 컴퓨터 판독 가능 매체이다. 이동식 저장 매체(580)에 저장된 컴퓨터 소프트웨어 또는 데이터는 프로세서(560)에 의한 실행을 위해 시스템(550)에 판독된다.The removable storage medium 580 is a non-transitory computer-readable medium storing computer executable code (ie, software) and/or data. Computer software or data stored on removable storage medium 580 is read into system 550 for execution by processor 560.

대안으로, 보조 메모리(570)는 컴퓨터 프로그램 또는 다른 데이터 또는 명령어가 시스템(550)에 로드되도록 하는 다른 유사한 수단을 포함할 수 있다. 이러한 수단은 예를 들어 외부 저장 매체(595) 및 통신 인터페이스(590)를 포함할 수 있다. 외부 저장 매체(595)의 예는 외부 하드 디스크 드라이브 또는 외부 광학 드라이브, 또는 외부 광자기 드라이브를 포함할 수 있다.Alternatively, auxiliary memory 570 may include other similar means for causing computer programs or other data or instructions to be loaded into system 550. Such means may include, for example, an external storage medium 595 and a communication interface 590. Examples of the external storage medium 595 may include an external hard disk drive or an external optical drive, or an external magneto-optical drive.

보조 메모리(570)의 다른 예는 프로그램 가능한 읽기 전용 메모리("PROM"), 삭제 가능한 프로그램 가능한 읽기 전용 메모리("EPROM"), 전기적으로 삭제 가능한 읽기 전용 메모리("EEPROM") 또는 플래시 메모리(EEPROM과 유사한 블록 지향 메모리)와 같은 반도체 기반 메모리를 포함할 수 있다. 또한, 이동식 매체(580) 및 통신 인터페이스가 포함되며, 이는 소프트웨어 및 데이터가 외부 저장 매체(595)로부터 시스템(550)으로 전송될 수 있게 한다.Other examples of auxiliary memory 570 are programmable read-only memory ("PROM"), removable programmable read-only memory ("EPROM"), electrically erasable read-only memory ("EEPROM"), or flash memory (EEPROM). Block-oriented memory, similar to), and may include a semiconductor-based memory. Also included is a removable medium 580 and a communication interface, which allows software and data to be transferred from an external storage medium 595 to the system 550.

시스템(550)은 또한 입력/출력("I/O") 인터페이스(585)를 포함할 수 있다. I/O 인터페이스(585)는 외부 장치를 오가며 입출력을 용이하게 한다. 예를 들어, I/O 인터페이스(585)는 키보드 또는 마우스로부터 입력을 수신하고 디스플레이에 출력을 제공할 수 있다. I/O 인터페이스(585)는 다양한 대체 유형의 휴먼 인터페이스 및 기계 인터페이스 장치로부터 똑같이 입출력을 용이하게 할 수 있다.System 550 may also include an input/output (“I/O”) interface 585. The I/O interface 585 facilitates input/output between external devices. For example, the I/O interface 585 may receive input from a keyboard or mouse and provide output to a display. The I/O interface 585 may equally facilitate input and output from various alternative types of human and machine interface devices.

시스템(550)은 또한 통신 인터페이스(590)를 포함할 수 있다. 통신 인터페이스(590)는 소프트웨어 및 데이터가 시스템(550)과 외부 장치(예를 들어, 프린터, 네트워크, 정보 소스 등) 사이에서 전송되도록 한다. 예를 들어, 컴퓨터 소프트웨어 또는 실행 코드는 통신 인터페이스(590)를 통해 네트워크 서버로부터 시스템(550)으로 전송될 수 있다. 통신 인터페이스(590)의 예로 몇가지 예를 들면 모뎀, 네트워크 인터페이스 카드("NIC"), 무선 데이터 카드, 통신 포트, PCMCIA 슬롯 및 카드, 적외선 인터페이스 및 IEEE 1394 파이어 와이어 등이 있다.System 550 may also include a communication interface 590. The communication interface 590 allows software and data to be transferred between the system 550 and an external device (eg, a printer, network, information source, etc.). For example, computer software or executable code may be transmitted from a network server to the system 550 via a communication interface 590. Examples of communication interface 590 include modems, network interface cards ("NICs"), wireless data cards, communication ports, PCMCIA slots and cards, infrared interfaces, and IEEE 1394 firewire, to name a few.

통신 인터페이스(590)는 바람직하게는 이더넷 IEEE 802 표준, 파이버 채널, 디지털 가입자 회선("DSL"), 비동기 디지털 가입자 회선("ADSL"), 프레임 릴레이, 비동기 전송 모드("ATM"), 통합 디지털 서비스 네트워크("ISDN"), 개인 통신 서비스("PCS"), 전송 제어 프로토콜/인터넷 프로토콜("TCP/IP"), 직렬 회선 인터넷 프로토콜/지점 간 프로토콜("SLIP/PPP") 등과 같은 공포된 산업 프로토콜 표준을 구현하나, 또한 사용자 정의 또는 비표준 인터페이스 프로토콜도 구현할 수 있다.Communication interface 590 is preferably an Ethernet IEEE 802 standard, fiber channel, digital subscriber line ("DSL"), asynchronous digital subscriber line ("ADSL"), frame relay, asynchronous transmission mode ("ATM"), integrated digital Promulgated service networks ("ISDN"), personal communication services ("PCS"), Transmission Control Protocol/Internet Protocol ("TCP/IP"), Serial Line Internet Protocol/Point-to-Point Protocol ("SLIP/PPP"), etc. It implements industry protocol standards, but can also implement user-defined or non-standard interface protocols.

통신 인터페이스(590)를 통해 전송되는 소프트웨어 및 데이터는 일반적으로 전기 통신 신호(605)의 형태이다. 전기 통신 신호(605)는 바람직하게 통신 채널(600)을 통해 통신 인터페이스(590)에 제공된다. 일 실시예에서, 통신 채널(600)은 유선 또는 무선 네트워크 또는 기타 다양한 통신 링크일 수 있다. 통신 채널(600)은 몇가지 예를 들면 전기 통신 신호(605)를 전달하고 유선 또는 케이블, 광섬유, 기존 전화선, 휴대폰 링크, 무선 데이터 통신 링크, 무선 주파수("RF") 링크 또는 적외선 링크를 포함한 다양한 유무선 통신 수단을 사용하여 구현될 수 있다. Software and data transmitted through communication interface 590 are generally in the form of electrical communication signals 605. The electrical communication signal 605 is preferably provided to the communication interface 590 via a communication channel 600. In one embodiment, the communication channel 600 may be a wired or wireless network or various other communication links. The communication channel 600 carries a telecommunication signal 605 and includes a variety of wired or cable, fiber optics, conventional telephone lines, cell phone links, wireless data communication links, radio frequency ("RF") links, or infrared links, to name a few. It can be implemented using wired or wireless communication means.

컴퓨터 실행 코드(즉, 컴퓨터 프로그램 또는 소프트웨어)는 주 메모리(565) 및/또는 보조 메모리(570)에 저장된다. 컴퓨터 프로그램은 또한 통신 인터페이스(590)를 통해 수신되고 주 메모리(565) 및/또는 보조 메모리(570)에 저장될 수 있다. 이러한 컴퓨터 프로그램은 실행시 시스템(550)이 상술한 바와 같이 본 발명의 다양한 기능을 수행할 수 있게 한다.Computer executable code (ie, computer program or software) is stored in main memory 565 and/or auxiliary memory 570. The computer program may also be received via communication interface 590 and stored in main memory 565 and/or auxiliary memory 570. When executed, such a computer program enables the system 550 to perform various functions of the present invention as described above.

본 명세서에서, "컴퓨터 판독 가능 매체"라는 용어는 컴퓨터 실행 코드(예를 들어, 소프트웨어 및 컴퓨터 프로그램)를 시스템(550)에 제공하는 데 사용되는 임의의 비일시적 컴퓨터 판독 가능 저장 매체를 말하는 데 사용된다. 매체의 예로 주 메모리(565), (내부 메모리(575), 이동식 매체(580) 및 외부 저장 매체(595)를 포함한) 보조 메모리(570) 및 (네트워크 정보 서버 또는 다른 네트워크 장치를 포함한) 통신 인터페이스(590)와 통신상 결합된 임의의 주변 장치를 포함한다. 이러한 비일시적 컴퓨터 판독 가능 매체는 시스템(550)에 실행 가능한 코드, 프로그래밍 명령어 및 소프트웨어를 제공하기 위한 수단이다.As used herein, the term "computer-readable medium" is used to refer to any non-transitory computer-readable storage medium used to provide computer executable code (e.g., software and computer programs) to system 550. do. Examples of media include main memory 565, secondary memory 570 (including internal memory 575, removable media 580 and external storage media 595), and communication interfaces (including network information servers or other network devices). 590 and any peripheral devices communicatively coupled. This non-transitory computer-readable medium is a means for providing the system 550 with executable code, programming instructions, and software.

소프트웨어를 사용하여 구현되는 일 실시예에서, 소프트웨어는 컴퓨터 판독 가능 매체에 저장되고 이동식 매체(580), I/O 인터페이스(585) 또는 통신 인터페이스(590)를 통해 시스템(550)에 로드될 수 있다. 이러한 실시예에서 소프트웨어는 전기 통신 신호(605)의 형태로 시스템(550)에 로드된다. 소프트웨어는 프로세서(560)에 의한 실행시 바람직하게는 프로세서(560)가 본 명세서에서 앞서 설명된 본 발명의 특징 및 기능을 수행하게 한다.In one embodiment implemented using software, the software may be stored on a computer-readable medium and loaded into the system 550 via a removable medium 580, an I/O interface 585, or a communication interface 590. . In this embodiment the software is loaded into the system 550 in the form of an electrical communication signal 605. The software, when executed by the processor 560, preferably causes the processor 560 to perform the features and functions of the invention described above in this specification.

시스템(550)은 또한 음성 및 데이터 네트워크를 통한 무선 통신을 용이하게하는 선택적 무선 통신 구성요소를 포함한다. 무선 통신 구성요소는 안테나 시스템(610), 무선 시스템(615) 및 기저대역 시스템(620)을 포함한다. 시스템(550)에서, 무선 주파수("RF") 신호는 무선 시스템(615)의 관리 하에 안테나 시스템(610)에 의해 무선으로 송수신된다. System 550 also includes optional wireless communication components that facilitate wireless communication over voice and data networks. Wireless communication components include an antenna system 610, a wireless system 615, and a baseband system 620. In system 550, radio frequency ("RF") signals are wirelessly transmitted and received by antenna system 610 under the management of wireless system 615.

일 실시예에서, 안테나 시스템(610)은 송수신 신호 경로를 안테나 시스템(610)에 제공하기 위해 스위칭 기능을 수행하는 하나 이상의 안테나 및 하나 이상의 멀티플렉서(미도시)를 포함할 수 있다. 수신 경로에서, 수신된 RF 신호는 멀티플렉서로부터 수신된 RF 신호를 증폭하고 증폭된 신호를 무선 시스템(615)으로 전송하는 저잡음 증폭기(미도시)에 결합될 수 있다.In one embodiment, the antenna system 610 may include one or more antennas and one or more multiplexers (not shown) that perform a switching function to provide a transmission/reception signal path to the antenna system 610. In the receive path, the received RF signal may be coupled to a low noise amplifier (not shown) that amplifies the RF signal received from the multiplexer and transmits the amplified signal to the wireless system 615.

대안적인 실시예에서, 무선 시스템(615)은 다양한 주파수를 통해 통신하도록 구성된 하나 이상의 무선을 포함할 수 있다. 일 실시예에서, 무선 시스템(615)은 하나의 집적 회로("IC")에서 복조기(미도시) 및 변조기(미도시)를 결합시킬 수 있다. 복조기와 변조기는 또한 별도의 구성요소일 수 있다. 유입 경로에서, 복조기는 무선 시스템(615)으로부터 기저대역 시스템(620)으로 전송되는 기저대역 수신 오디오 신호를 남기고 RF 반송파 신호를 제거한다.In alternative embodiments, the wireless system 615 may include one or more radios configured to communicate over various frequencies. In one embodiment, the wireless system 615 may combine a demodulator (not shown) and a modulator (not shown) in one integrated circuit (“IC”). The demodulator and modulator can also be separate components. In the inflow path, the demodulator removes the RF carrier signal, leaving the baseband received audio signal transmitted from the wireless system 615 to the baseband system 620.

수신된 신호가 오디오 정보를 포함하는 경우, 기저대역 시스템(620)은 신호를 디코딩하고 이를 아날로그 신호로 변환한다. 그런 다음, 신호가 증폭되어 스피커로 전송된다. 기저대역 시스템(620)은 또한 마이크로부터 아날로그 오디오 신호를 수신한다. 이러한 아날로그 오디오 신호는 디지털 신호로 변환되고 기저대역 시스템(620)에 의해 인코딩된다. 기저대역 시스템(620)은 또한 전송을 위해 디지털 신호를 코딩하고 무선 시스템(615)의 변조기 부분으로 보내지는 기저대역 전송 오디오 신호를 생성한다. 기저대역 전송 오디오 신호를 안테나 시스템으로 보내지고 전력 증폭기(미도시)를 통과할 수 있는 RF 전송 신호를 생성하는 RF 반송파 신호와 혼합한다. 전력 증폭기는 RF 전송 신호를 증폭하고 전송을 위해 상기 신호가 안테나 포트로 전환되는 안테나 시스템(610)으로 상기 신호를 보낸다.If the received signal includes audio information, the baseband system 620 decodes the signal and converts it to an analog signal. Then, the signal is amplified and transmitted to the speaker. Baseband system 620 also receives analog audio signals from the microphone. These analog audio signals are converted to digital signals and encoded by the baseband system 620. Baseband system 620 also codes digital signals for transmission and generates a baseband transmitted audio signal that is sent to the modulator portion of wireless system 615. The baseband transmitted audio signal is mixed with an RF carrier signal to produce an RF transmitted signal that can be sent to the antenna system and passed through a power amplifier (not shown). The power amplifier amplifies the RF transmission signal and sends the signal to the antenna system 610 where the signal is converted to an antenna port for transmission.

기저대역 시스템(620)은 또한 프로세서(560)와 통신 가능하게 결합된다. 프로세서(560)는, 예를 들어, 주 메모리(565) 및 보조 메모리(570)를 포함하나 이에 국한되지 않는 하나 이상의 데이터 저장 영역에 액세스한다. 프로세서(560)는 바람직하게는 주 메모리(565) 또는 보조 메모리(570)에 저장될 수 있는 명령어(즉, 컴퓨터 프로그램 또는 소프트웨어)를 실행하도록 구성된다. 컴퓨터 프로그램은 또한 기저대역 프로세서(610)로부터 수신되고 주 메모리(565) 또는 보조 메모리(570)에 저장되거나, 수신시 실행될 수 있다. 이러한 컴퓨터 프로그램은 실행시 시스템(550)이 상술한 바와 같이 본 발명의 다양한 기능을 수행할 수 있게 한다. 예를 들어, 주 메모리(565)는 프로세서(560)에 의해 실행 가능한 다양한 소프트웨어 모듈(미도시)을 포함할 수 있다.Baseband system 620 is also communicatively coupled with processor 560. The processor 560 accesses one or more data storage areas, including, but not limited to, the main memory 565 and the auxiliary memory 570, for example. Processor 560 is preferably configured to execute instructions (ie, computer programs or software) that may be stored in main memory 565 or auxiliary memory 570. The computer program may also be received from the baseband processor 610 and stored in the main memory 565 or the auxiliary memory 570, or may be executed upon receipt. When executed, such a computer program enables the system 550 to perform various functions of the present invention as described above. For example, the main memory 565 may include various software modules (not shown) executable by the processor 560.

다양한 실시예는 또한 예를 들어 주문형 집적 회로("ASIC") 또는 필드 프로그램가능 게이트 어레이("FPGA")와 같은 구성요소를 사용하여 주로 하드웨어에서 구현될 수 있다. 본 명세서에 설명된 기능을 수행할 수 있는 하드웨어 상태 머신의 구현은 또한 당업자에게 명백할 것이다. 하드웨어와 소프트웨어의 조합을 사용하여 다양한 실시예들을 또한 구현할 수 있다.The various embodiments may also be implemented primarily in hardware using components such as, for example, application specific integrated circuits (“ASIC”) or field programmable gate arrays (“FPGA”). Implementations of a hardware state machine capable of performing the functions described herein will also be apparent to those skilled in the art. Various embodiments can also be implemented using a combination of hardware and software.

또한, 당업자는 상술한 도면 및 본 명세서에 개시된 실시예와 관련하여 설명된 다양한 예시적인 논리 블록, 모듈, 회로 및 방법 단계가 종종 전자 하드웨어, 컴퓨터 소프트웨어 또는 둘의 조합으로 구현될 수 있음을 인식할 것이다. 하드웨어와 소프트웨어의 이러한 상호 교환성을 명확하게 설명하기 위해, 다양한 예시적인 구성요소, 블록, 모듈, 회로 및 단계를 일반적으로 기능 측면에서 설명하였다. 이러한 기능이 하드웨어 또는 소프트웨어로 구현되는지 여부는 전체 시스템에 부과된 특정 애플리케이션 및 설계 제약에 따라 다르다. 당업자는 각각의 특정 애플리케이션에 대해 다양한 방식으로 설명된 기능을 구현할 수 있지만, 그러한 구현 결정은 본 발명의 범위를 벗어나는 것으로 해석되어서는 안된다. 또한 모듈, 블록, 회로 또는 단계 내의 기능 그룹은 설명을 쉽게하기 위한 것이다. 특정 기능 또는 단계는 본 발명에서 벗어나지 않고 하나의 모듈, 블록 또는 회로에서 다른 모듈, 블록 또는 회로로 이동될 수 있다.In addition, those skilled in the art will appreciate that the various illustrative logical blocks, modules, circuits, and method steps described in connection with the foregoing drawings and embodiments disclosed herein can often be implemented in electronic hardware, computer software, or a combination of the two. will be. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described generally in terms of functionality. Whether these functions are implemented in hardware or software depends on the specific application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present invention. Also, functional groups within modules, blocks, circuits or steps are for ease of description. Certain functions or steps may be moved from one module, block or circuit to another module, block or circuit without departing from the invention.

더욱이, 본 명세서에 개시된 바와 관련하여 설명된 다양한 예시적인 논리 블록, 모듈 및 방법은 범용 프로세서, 디지털 신호 프로세서("DSP"), ASIC, FPGA 또는 기타 프로그래밍 가능 논리 장치, 이산 게이트 또는 트랜지스터 논리, 이산 하드웨어 구성요소, 또는 본 명세서에 설명된 기능을 수행하도록 설계된 이들의 임의의 조합으로 구현되거나 수행될 수 있다. 범용 프로세서는 마이크로 프로세서가 될 수 있지만 다른 방법으로 프로세서는 임의의 프로세서, 컨트롤러, 마이크로 컨트롤러 또는 상태 머신일 수 있다. 프로세서는 또한 컴퓨팅 장치의 조합, 예를 들어 DSP와 마이크로 프로세서의 조합, 복수의 마이크로 프로세서, DSP 코어와 관련된 하나 이상의 마이크로 프로세서, 또는 임의의 다른 그러한 구성으로 구현될 수 있다.Moreover, various exemplary logic blocks, modules, and methods described in connection with those disclosed herein include general purpose processors, digital signal processors (“DSPs”), ASICs, FPGAs or other programmable logic devices, discrete gate or transistor logic, discrete It may be implemented or performed as hardware components, or any combination thereof designed to perform the functions described herein. A general purpose processor can be a microprocessor, but in the other way the processor can be any processor, controller, microcontroller, or state machine. The processor may also be implemented in a combination of computing devices, eg, a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors associated with a DSP core, or any other such configuration.

추가적으로, 본 명세서에 개시된 바와 관련하여 설명된 방법 또는 알고리즘의 단계는 하드웨어, 프로세서에 의해 실행되는 소프트웨어 모듈, 또는 이 둘의 조합으로 직접 구현될 수 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터, 하드 디스크, 이동식 디스크, CD-ROM 또는 네트워크 저장 매체를 포함한 임의의 다른 형태의 저장 매체에 상주 할 수 있다. 예시적인 저장 매체는 프로세서에 연결될 수 있어서, 프로세서가 저장 매체로부터 정보를 판독하고 저장 매체에 정보를 기록할 수 있다. 대안으로, 저장 매체는 프로세서에 통합될 수 있다. 프로세서와 저장 매체도 ASIC에 상주할 수 있다.Additionally, steps of a method or algorithm described in connection with the disclosure herein may be implemented directly in hardware, a software module executed by a processor, or a combination of the two. The software module may reside in any other type of storage medium including RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, removable disk, CD-ROM or network storage medium. Exemplary storage media may be coupled to a processor, such that the processor may read information from and write information to the storage medium. Alternatively, the storage medium can be integrated into the processor. Processors and storage media can also reside on the ASIC.

도 43은 다양한 실시예에 따른 예시적인 ID 설정 프로세스(4300)를 도시한다. 사용자가 여러 서버 서비스 또는 애플리케이션에서 여러 사용자 이름/패스워드 조합과 집합적으로 상호 작용할 수 있도록 ghostPassword ID가 설정된다. 사용자는 결정적 순간을 이용하여 기억에 남는 단일 ID로 사용자 이름/패스워드 조합을 중앙에서 관리할 수 있다. 인터페이스(4310, 4320, 4330 및 4340)는 ID를 설정하기 위한 예시적인 ID 설정 프로세스를 도시한다. 예를 들어, ID 카드로 사용되는 고유 한 문구를 입력하여 ID를 설정할 수 있다. 사용자는 쉽게 기억하거나 기억에 남는 것을 픽할 수 있다. 인터페이스는 결정적 순간의 예를 제공할 수 있다. 예를 들어, 결정적 순간은 나쁜 식당일 수 있다. 사용자에게 다음과 같은 것이 프롬프트되는 경우이다: "Mule 식당에서 주문을 요청받고 있었는 데, Mule에 말하기 전에 구경꾼이 항상 저기요라고 말했다". 기억에 남는 다른 예로는 이벤트, 영화 인용구, 좋아하는 장소 등이 있다. 전화의 보안 영역에 저장되며 하드웨어로 보호된다.43 illustrates an exemplary ID setting process 4300 according to various embodiments. The ghostPassword ID is set to allow users to collectively interact with multiple username/password combinations across multiple server services or applications. Users can centrally manage username/password combinations with a single memorable ID using the critical moment. Interfaces 4310, 4320, 4330 and 4340 illustrate an exemplary ID setting process for setting an ID. For example, you can set an ID by entering a unique phrase used as an ID card. Users can easily remember or pick something that remains memorable. Interfaces can provide examples of critical moments. For example, the decisive moment could be a bad restaurant. If the user is prompted for something like this: "I was being asked to order from a Mule restaurant, and before speaking to Mule, the onlooker always said hey." Other memorable examples include events, movie quotes, and favorite places. It is stored in a secure area of the phone and is protected by hardware.

도 44는 다양한 실시예에 따른 예시적인 디폴트 키 생성기 프로세스를 도시한다. 암호 인터페이스에는 ghostPassword를 생성하기 위한 키보드 추가 기능이 포함될 수 있다. 예를 들어, 키 생성기는 각 서비스 또는 애플리케이션에 대해 고유 한 키를 생성하는 마스터 패스워드를 입력하기 위한 키보드를 포함할 수 있다. 키 생성기 키보드는 기본적으로 폰에 설치된 애플리케이션과 통합될 수 있다. 4420에서, 키 생성기 유형을 선택할 수 있다. 사용자가 패스워드를 생성할 때마다, 사용자는 키를 입력할 것이다. 다양한 키 입력 메커니즘을 사용자에게 제공하여 키를 생성할 수 있다. 4430에서, 간략한 영숫자와 같은 키 생성기 유형을 선택할 수 있다. 4440에서, 시각적 패스워드에 대한 키 생성기 유형을 선택할 수 있다.44 illustrates an exemplary default key generator process in accordance with various embodiments. The password interface may include a keyboard add-on to generate ghostPassword. For example, the key generator may include a keyboard for entering a master password that creates a unique key for each service or application. The key generator keyboard can be integrated with applications installed on the phone by default. At 4420, you can select the type of key generator. Whenever the user creates a password, the user will enter a key. Keys can be generated by providing users with various key input mechanisms. On the 4430, you can choose a key generator type, such as simple alphanumeric. At 4440, it is possible to select a key generator type for the visual password.

도 45는 다양한 실시예에 따른 예시적인 ghostPassword 키보드 인터페이스를 도시한다. 4510에서, 사용자는 고스트 키보드 키 생성기와 일반 키보드 모드 사이를 전환할 수 있다. 4520에서, 고스트 키보드는 현재 사용중인 앱 또는 서비스를 나타내는 아이콘을 포함한다. 4530에서, 사용자는 현재 애플리케이션 또는 서비스에 로그인하는 데 사용되는 사용자 이름을 입력하거나 선택할 수 있다. 4540에서, 사용자는 ID 레벨과 관련된 마스터 ghostPassword를 입력할 수 있다. 4550에서, 고스트 암호 키 생성기는 마스터 ghostPassword를 인증하고 선택된 애플리케이션 또는 서비스에 대해 개별화된 고유 보안 암호를 결정한다. 애플리케이션에 대한 고유 보안 암호가 애플리케이션에 등록되고 고스트 암호 키보드는 이전에 등록된 보안 패스워드와 일치하는 단계(4520, 4530, 4540)에 기초하여 보안 암호를 지속적으로 재생성한다. 4560에서, 생성된 보안 패스워드가 선택된 사용자 이름으로 선택된 애플리케이션 또는 서비스의 패스워드 입력 필드에 채워진다. 키 생성기 암호 키보드를 사용하면 사용자가 마스터 고즈 패스워드에 응답해 개별화된 보안 암호를 여러 애플리케이션 또는 서비스에서 생성한다. 따라서, 사용자는 개별화된 각 보안 패스워드를 기억하거나 기억할 필요가 없다.45 illustrates an exemplary ghostPassword keyboard interface according to various embodiments. At 4510, the user can switch between the ghost keyboard key generator and the normal keyboard mode. At 4520, the ghost keyboard includes an icon representing an app or service currently in use. At 4530, the user may enter or select a username currently used to log in to the application or service. At 4540, the user may enter the master ghostPassword associated with the ID level. At 4550, the ghost cryptographic key generator authenticates the master ghostPassword and determines a unique secure password personalized for the selected application or service. The unique security password for the application is registered with the application and the ghost cryptographic keyboard continuously regenerates the security password based on steps 4520, 4530, 4540 matching the previously registered security password. At 4560, the generated secure password is filled in the password input field of the selected application or service with the selected user name. Key Generator Cryptographic Keyboard allows users to respond to a Master Goz password to generate personalized secure passwords from multiple applications or services. Thus, the user does not need to memorize or memorize each individualized security password.

도 46은 다양한 실시예에 따른 예시적인 사용자 이름 입력 프로세스를 도시한다. 예시적인 구현에서, 사용자는 등록된 애플리케이션 또는 서비스와 연관된 사용자 이름을 설정하고 저장할 수 있다. 4610에서, 모바일 장치는 접근성 서비스가 장치에서 활성화되었는지 여부를 자동으로 감지하고 사용자에게 서비스를 활성화하도록 프롬프트하거나 클립 보드를 계속 사용하여 URL을 감지하게 할 수 있다. 4620-4640에서, 사용자는 패스워드 버전 정수를 사용하여 사용자 이름, 이메일 주소 또는 전화 번호를 입력할 수 있다. 4650에서, 예시적인 인터페이스는 이전에 저장된 사용자 이름, 예를 들어, 리비전 카운트(revision count)가 있는 이메일 주소를 사용자에게 제공한다.46 illustrates an exemplary user name input process according to various embodiments. In an example implementation, a user can set and store a username associated with a registered application or service. At 4610, the mobile device can automatically detect whether the accessibility service has been activated on the device and prompt the user to activate the service or continue to use the clipboard to detect the URL. At 4620-4640, the user can enter a username, email address, or phone number using a password version integer. At 4650, the exemplary interface provides the user with an email address with a previously stored username, eg, a revision count.

도 47은 다양한 실시예에 따른 예시적인 결정적 순간 인터페이스를 도시한다. 인터페이스(4700)는 예시적인 결정적 순간 입력 모드를 나타낸다. 4710에서, 사용자는 힌트와 함께 결정적 순간을 입력할 수 있다. 4720에서, 사용자는 핫스팟을 사용하여 시각적인 결정적 순간을 선택할 수 있다.47 illustrates an exemplary critical moment interface in accordance with various embodiments. Interface 4700 represents an exemplary critical moment input mode. At 4710, the user may enter a critical moment with a hint. At 4720, the user can use the hotspot to select a visually critical moment.

도 48은 다양한 실시예에 따른 예시적인 브라우저 ghostPassword 입력 프로세스를 도시한다. 프로세스(4800)는 브라우저 모드에서 등록된 애플리케이션과 함께 ID를 사용하는 예시적인 로그인 프로세스를 예시한다. 예를 들어, 사용자에게 4820에서 사용자 이름이 표시될 수 있다. 사용자 이름을 선택한 데 응답해, 4830에서, 사용자에게 첫 번째 시각적 패스워드 스크린이 표시된다. 사용자는 시각적 패스워드 키보드를 사용하여 갤러리 중에 이전에 등록된 이미지를 선택하고, 4840에서, 사용자는 적절한 이미지에서 이전에 등록된 핫스팟을 선택한다. 핫스팟이 적절하게 선택되면, ghostPassword는 애플리케이션과 관련된 보안 암호를 생성하고 애플리케이션 로그인 스크린에 보안 패스워드 정보와 사용자 이름을 채우고, 사용자가 보안 패스워드를 입력하지 않고도 보안 패스워드와 사용자 이름을 애플리케이션에 전송한다. 4850에서, 선택된 애플리케이션이 사용자를 인증하고 애플리케이션에 사용자 액세스를 제공한다.48 illustrates an exemplary browser ghostPassword input process according to various embodiments. Process 4800 illustrates an example login process using an ID with an application registered in browser mode. For example, the user may be presented with the user name at 4820. In response to choosing a username, at 4830, the user is presented with a first visual password screen. The user selects a previously registered image among the gallery using the visual password keyboard, and at 4840, the user selects a previously registered hotspot from the appropriate image. When the hotspot is properly selected, ghostPassword generates a secure password associated with the application, fills in the secure password information and username on the application login screen, and sends the secure password and username to the application without requiring the user to enter a secure password. At 4850, the selected application authenticates the user and provides user access to the application.

도 49는 다양한 실시예에 따른 예시적인 ghostPassword 관리 프로세스를 도시한다. 프로세스(4900)는 다양한 실시예와 함께 사용하기 위한 예시적인 관리 스크린을 도시한다. 예를 들어, 인터페이스(4910)는 사용자가 등록 보안 패스워드 및 애플리케이션 제어를 관리 또는 업데이트할 수 있도록 로그인, 설정, 도움말, 정보 또는 ID를 포함할 수 있다. 4920에서, 사용자는 이전에 등록된 계정을 선택할 수 있다. 4930에서, 사용자는 특정 애플리케이션 또는 서비스와 관련된 보안 패스워드에 액세스할 수 있다. 4940에서, 사용자는 가령, 패스워드 내보내기, 가져 오기, 변경 또는 재설정을 위해 ghostPassword와 관련된 설정을 변경할 수 있다. 인터페이스(4950)는 ID 및/또는 보안 패스워드로 내보내기 위한 예시적인 내보내기 모드를 예시한다. ghostPassword 관리 인터페이스를 사용하면 QR 코드, 근거리 통신, 공유 옵션 또는 기타 통신 옵션과 같은 다양한 통신 수단을 통해 내보낼 수 있다.49 illustrates an exemplary ghostPassword management process according to various embodiments. Process 4900 shows an exemplary management screen for use with various embodiments. For example, the interface 4910 may include login, settings, help, information, or ID so that the user can manage or update the registration security password and application control. At 4920, the user may select a previously registered account. At 4930, a user can access a secure password associated with a particular application or service. At 4940, the user can change the settings associated with ghostPassword, for example to export, import, change or reset passwords. Interface 4950 illustrates an exemplary export mode for exporting with an ID and/or secure password. The ghostPassword management interface allows you to export via a variety of communication means, such as QR code, near field communication, sharing options or other communication options.

도 50은 다양한 실시예에 따른 ghostPassword 요소의 예시적인 흐름을 도시한다.50 illustrates an exemplary flow of a ghostPassword element according to various embodiments.

개시된 실시예의 상기 설명은 임의의 당업자가 본 발명을 제조 또는 사용할 수 있도록 제공된다. 이러한 실시예에 대한 다양한 수정이 당업자에게 쉽게 명백 할 것이며, 본 명세서에 기술된 일반적인 원리는 본 발명의 기술사상 또는 범위를 벗어남이 없이 다른 실시예에도 적용될 수 있다. 따라서, 본 명세서에 제시된 명세서 및 도면은 본 발명의 현재 바람직한 실시예를 나타내며, 그러므로 본 발명에 의해 광범위하게 고려되는 주제를 대표하는 것으로 이해되어야 한다. 또한, 본 발명의 범위는 당업자에게 명백할 수 있는 다른 실시예들을 완전히 포함하고 따라서 본 발명의 범위는 국한되지 않는다는 것이 더 이해된다.The above description of the disclosed embodiments is provided to enable any person skilled in the art to make or use the present invention. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the general principles described herein can be applied to other embodiments without departing from the spirit or scope of the present invention. Accordingly, the specification and drawings presented herein are to be understood as representing the presently preferred embodiments of the present invention and therefore representative of the subject broadly contemplated by the present invention. In addition, it is further understood that the scope of the present invention fully encompasses other embodiments that may be apparent to those skilled in the art and thus the scope of the present invention is not limited.

Claims (12)

장치의 보안 저장에 사용자로부터의 식별자 코드를 장치가 저장하는 단계;
애플리케이션 또는 서비스에서 로그인 요청을 수신하는 것에 응답하여:
사용자에게 액세스 코드를 제공하라고 프롬프팅하는 단계;
식별자 코드 및 액세스 코드를 기반으로 대상 키를 생성하는 단계;
사용자를 인증하기 위해 애플리케이션 또는 서비스에 대상 키를 등록하는 단계;
애플리케이션 또는 서비스에서 후속 로그인 요청을 수신하는 것에 응답하여:
사용자에게 액세스 코드를 제공하라는 메시지를 프롬프팅하는 단계; 및
저장된 식별자 코드 및 수신된 액세스 코드를 기반으로 대상 키를 재생성하는 단계를 포함하는 방법.
Storing, by the device, an identifier code from the user in secure storage of the device;
In response to receiving a login request from an application or service:
Prompting the user to provide an access code;
Generating a target key based on the identifier code and the access code;
Registering the target key with the application or service to authenticate the user;
In response to receiving a subsequent login request from the application or service:
Prompting the user to provide an access code; And
And regenerating the target key based on the stored identifier code and the received access code.
제 1 항에 있어서,
다른 애플리케이션 또는 서비스로부터 로그인 요청을 수신한 것에 응답하여:
사용자에게 액세스 코드를 제공하라고 프롬프팅하는 단계;
식별자 코드 및 액세스 코드를 기반으로 다른 대상 키를 생성하는 단계; 및
사용자를 인증하기 위해 다른 애플리케이션 또는 서비스에 다른 대상 키를 등록하는 단계를 포함하고,
다른 대상 키는 대상 키와 다르며, 저장된 식별자 코드 및 액세스 코드를 기반으로 다른 대상 키를 재생성할 수 있는 방법.
The method of claim 1,
In response to receiving a login request from another application or service:
Prompting the user to provide an access code;
Generating another target key based on the identifier code and the access code; And
Registering a different target key with another application or service to authenticate the user,
A different target key is different from the target key, and how different target keys can be regenerated based on stored identifier codes and access codes.
제 1 항에 있어서,
식별자 코드가 해시 파일로 저장되는 방법.
The method of claim 1,
How identifier codes are stored as hash files.
제 1 항에 있어서,
식별자 코드가 장치로부터 전송되지 않는 방법.
The method of claim 1,
How the identifier code is not transmitted from the device.
제 1 항에 있어서,
식별자 코드가 장치의 다수의 보안 저장장치를 판독한 후 쓰기로 저장되는 방법.
The method of claim 1,
A method in which an identifier code is stored by reading and writing to multiple secure storage devices of the device.
제 1 항에 있어서,
식별자 코드가 해시 파일로 저장되는 방법.
The method of claim 1,
How identifier codes are stored as hash files.
제 1 항에 있어서,
액세스 코드는 영숫자 코드, 시각적 액세스 코드, 세이프 락, 패턴, 제스처, 히든 락, 다이스 워드, 지문, 망막 스캔, 얼굴 스캔, 또는 기타 생체 정보 엔트리 중 적어도 하나인 방법.
The method of claim 1,
The access code is at least one of an alphanumeric code, visual access code, safe lock, pattern, gesture, hidden lock, die word, fingerprint, retina scan, face scan, or other biometric information entry.
제 1 항에 있어서,
액세스 코드는 영숫자 문자열, 시각적 액세스 시퀀스, 세이프 락, 패턴, 제스처, 히든 락, 다이스 워드 중 적어도 하나이고, 상기 액세스 코드는 생체 정보를 통해 더 암호화되며, 상기 생체 정보가 장치에 저장되는 방법.
The method of claim 1,
The access code is at least one of an alphanumeric character string, a visual access sequence, a safe lock, a pattern, a gesture, a hidden lock, and a dice word, and the access code is further encrypted through biometric information, and the biometric information is stored in a device.
제 8 항에 있어서,
애플리케이션 또는 서비스로부터의 후속 로그인 요청은 사용자가 생체 정보를 제공하도록 프롬프트하여 대상 키를 재생성하기 위해 액세스 코드를 해독하는 방법.
The method of claim 8,
A method of decrypting an access code to regenerate a target key by prompting the user to provide biometric information on a subsequent login request from an application or service.
제 9 항에 있어서,
애플리케이션 또는 서비스로부터의 추가적인 후속 로그인 요청은 생체 정보에 추가해 액세스 코드를 입력함으로써 사용자가 액세스 코드를 제공하도록 프롬프트하는 방법.
The method of claim 9,
A method of prompting a user to provide an access code by entering an access code in addition to biometric information for further subsequent login requests from an application or service.
제 1 항에 있어서,
후속 로그인 요청은 휴리스틱스를 사용하여 장치에 의해 감지되는 방법.
The method of claim 1,
How subsequent login requests are detected by the device using heuristics.
메모리; 및
상기 메모리에 작동 가능하게 결합된 프로세서를 포함하는 사용자 장치 인증 시스템으로서,
상기 프로세서는 서비스 공급 업체로부터 사용자 로그인 요청에 응답하여, 식별자 코드 및 액세스 코드를 기반으로 대상 키를 생성하도록 구성되고,
상기 대상 키는 사용자의 서비스 공급 업체로 등록되며, 상기 식별자 코드는 메모리에 안전하게 저장되고, 사용자가 액세스 코드를 입력하도록 프롬프팅되며, 블렌딩 알고리즘이 서비스 제공업체의 대상 키를 일관되게 재생성하는 사용자 장치 인증 시스템.
Memory; And
A user device authentication system comprising a processor operably coupled to the memory,
The processor is configured to generate a target key based on an identifier code and an access code in response to a user login request from a service provider,
The target key is registered as the service provider of the user, the identifier code is securely stored in the memory, the user is prompted to enter the access code, and the blending algorithm consistently regenerates the target key of the service provider. Authentication system.
KR1020207032492A 2018-04-13 2019-03-27 Single device multiple authentication system KR20200132999A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/952,533 2018-04-13
US15/952,533 US20180278600A1 (en) 2016-01-19 2018-04-13 Multi-factor masked access control system
PCT/US2019/024306 WO2019199460A1 (en) 2018-04-13 2019-03-27 Single-device multi-factor authentication system

Publications (1)

Publication Number Publication Date
KR20200132999A true KR20200132999A (en) 2020-11-25

Family

ID=68164475

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207032492A KR20200132999A (en) 2018-04-13 2019-03-27 Single device multiple authentication system

Country Status (5)

Country Link
JP (1) JP2021521531A (en)
KR (1) KR20200132999A (en)
CN (1) CN112689980A (en)
EA (1) EA202092438A1 (en)
WO (1) WO2019199460A1 (en)

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4440513B2 (en) * 2002-03-14 2010-03-24 明宏 清水 Credential authentication method
US20080216153A1 (en) * 2007-03-02 2008-09-04 Aaltonen Janne L Systems and methods for facilitating authentication of network devices
US20110202982A1 (en) * 2007-09-17 2011-08-18 Vidoop, Llc Methods And Systems For Management Of Image-Based Password Accounts
US9659164B2 (en) * 2011-08-02 2017-05-23 Qualcomm Incorporated Method and apparatus for using a multi-factor password or a dynamic password for enhanced security on a device
US8789150B2 (en) * 2011-09-22 2014-07-22 Kinesis Identity Security System Inc. System and method for user authentication
CN104428784B (en) * 2012-04-25 2017-07-14 罗文有限公司 Password Operations system, encryption apparatus and super code generation method
US20170085563A1 (en) * 2015-09-18 2017-03-23 First Data Corporation System for validating a biometric input
US10621225B2 (en) 2016-01-19 2020-04-14 Regwez, Inc. Hierarchical visual faceted search engine
WO2017152150A1 (en) * 2016-03-04 2017-09-08 ShoCard, Inc. Method and system for authenticated login using static or dynamic codes

Also Published As

Publication number Publication date
CN112689980A (en) 2021-04-20
EP3777092A1 (en) 2021-02-17
JP2021521531A (en) 2021-08-26
EA202092438A1 (en) 2021-01-27
WO2019199460A1 (en) 2019-10-17

Similar Documents

Publication Publication Date Title
CN108701194B (en) Masked restricted access control system
US20180278600A1 (en) Multi-factor masked access control system
KR102613774B1 (en) Systems and methods for extracting and sharing application-related user data
US10027726B1 (en) Device, apparatus, and method for facial recognition
WO2020242739A1 (en) Data exchange
JP2017511924A (en) Temporary eventing system and method
US10268713B2 (en) Federated social media analysis system and method thereof
US20150281394A1 (en) Data sharing method and electronic device thereof
US20180032747A1 (en) System and Method for Database-Level Access Control Using Rule-Based Derived Accessor Groups
US20200104321A1 (en) Unified Pipeline for Media Metadata Convergence
EP3635604A2 (en) Access policies based on hdfs extended attributes
US9542457B1 (en) Methods for displaying object history information
KR20200132999A (en) Single device multiple authentication system
JP2005332049A (en) Policy-conversion method, policy-shifting method, and policy-evaluating method
JP7448664B2 (en) Privacy controls for sharing embeds to search and index media content
US11966485B2 (en) Property-level visibilities for knowledge-graph objects
US20220350856A1 (en) Methods and systems for facilitating providing reliable and verifiable responses to queries
US20220398331A1 (en) Property-level visibilities for knowledge-graph objects
CN117099104A (en) Knowledge graph privacy management
Singh et al. A Review Study on Privacy Policy Inference of Multiple User-Uploaded Images on Social Context Websites
Rasheed et al. Design and Development of Vlog Content Management System (VlogCMS)

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E601 Decision to refuse application