KR20160110512A - 쿼리 데이터를 사용한 출현율 정보 제공 - Google Patents
쿼리 데이터를 사용한 출현율 정보 제공 Download PDFInfo
- Publication number
- KR20160110512A KR20160110512A KR1020167023342A KR20167023342A KR20160110512A KR 20160110512 A KR20160110512 A KR 20160110512A KR 1020167023342 A KR1020167023342 A KR 1020167023342A KR 20167023342 A KR20167023342 A KR 20167023342A KR 20160110512 A KR20160110512 A KR 20160110512A
- Authority
- KR
- South Korea
- Prior art keywords
- sequence
- query
- data
- communication device
- values
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G06F17/30864—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2465—Query processing support for facilitating data mining operations in structured databases
-
- G06F17/30539—
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
일 실례에서, 데이터 보안 시스템은 객체(예를 들어, 파일 또는 해시 또는 파일)에 대한 쿼리 데이터에 기초하여서 파일의 출현율을 결정할 수 있다. 예시적인 알고리즘은 수 개의 데이터 기록사항들을 저장하면서 통계적으로 입증가능한 출현율의 추정치를 사용하는 것을 제공할 수 있으며, 이로써 시간 복잡성(즉, 일정한 시간)으로 출현율 정보를 제공할 수 있다. 이러한 알고리즘은 거의 실시간으로 적용되어서 예를 들어서, 파일의 출현율을 위해서 쿼리에 대한 즉각적 응답을 제공할 수 있다.
Description
기술된 실시예들은 전반적으로 컴퓨터 보안에 관한 것이며, 보다 구체적으로, 쿼리 데이터를 사용하여서 출현율 정보(prevalence information)를 제공하는 것에 관한 것이다.
현대의 컴퓨팅 기술은 전지구적으로 분산된 자원들에 걸쳐서 대량의 데이터를 유지할 수 있는 능력을 제공한다. 특정 분산된 아키텍처들은 대형 분산형 데이터 세트들(예를 들어, 금융 시장 분석, 의학적 전염병 추적, 데이터 보안 시스템들, 등)에서 경향성들을 식별하라는 요청에 응답하는 능력을 가능하게 한다. 이러한 데이터를 프로세싱하는 것은 과제이다. 데이터 보안 시스템은, 예를 들어서, 분산된 데이터를 분석하여서 보안 위험요소들을 식별하고 최신의 보안 정보를 다양한 엔드포인트들에 제공하며, 이러한 엔드포인트들 각각은 시스템으로부터 떨어져 존재할 수 있다.
본 발명의 보다 철저한 이해 및 본 발명의 특징 및 장점을 제공하기 위해서, 첨부 도면들과 함께 다음의 설명이 참조되며, 도면들에서는 유사한 참조 부호는 유사한 부분을 나타낸다.
도 1은 본 명세서의 하나 이상의 실시예들에 따른, 평판도 정보를 포함하는 데이터 보안 정보를 제공하기 위한 예시적인 시스템을 예시하는 구성도이다.
도 2는 본 명세서의 하나 이상의 실시예들에 따른 평판도 정보 시스템의 블록도이다.
도 3은 본 명세서의 하나 이상의 실시예들에 따른, 쿼리 데이터에 대한 출현율 정보를 제공하기 위한 로직을 예시하는 흐름도이다.
도 4는 본 명세서의 하나 이상의 실시예들에 따른, 가변하는 수의 연속하는 값들, 쿼리 값들을 목표 값들에 매칭시키기 위한 확률 분포들의 그래픽적 표현이다.
도 5는 매칭 값들의 수와 출현율 정보 간의, 확률에 기초한, 예시적인 대응관계를 도시하는 차트이다.
도 6a 및 도 6b는 본 명세서의 하나 이상의 실시예들에 따른, 파일의 해시에 대한 출현율 정보를 제공하기 위한 로직을 예시하는 흐름도를 도시한다.
도 7은 본 명세서의 실시예에 따른, 3 개의 장치들에 대응하는 3 개의 예시적인 비트들의 시퀀스들을 예시한다.
도 8은 실시예에 따른 예시적인 프로세서에 연결된 메모리의 블록도이다.
도 9는 실시예에 따른 포인트-대-포인트(PtP) 구성으로 구성된 예시적인 컴퓨팅 시스템의 블록도이다.
도 1은 본 명세서의 하나 이상의 실시예들에 따른, 평판도 정보를 포함하는 데이터 보안 정보를 제공하기 위한 예시적인 시스템을 예시하는 구성도이다.
도 2는 본 명세서의 하나 이상의 실시예들에 따른 평판도 정보 시스템의 블록도이다.
도 3은 본 명세서의 하나 이상의 실시예들에 따른, 쿼리 데이터에 대한 출현율 정보를 제공하기 위한 로직을 예시하는 흐름도이다.
도 4는 본 명세서의 하나 이상의 실시예들에 따른, 가변하는 수의 연속하는 값들, 쿼리 값들을 목표 값들에 매칭시키기 위한 확률 분포들의 그래픽적 표현이다.
도 5는 매칭 값들의 수와 출현율 정보 간의, 확률에 기초한, 예시적인 대응관계를 도시하는 차트이다.
도 6a 및 도 6b는 본 명세서의 하나 이상의 실시예들에 따른, 파일의 해시에 대한 출현율 정보를 제공하기 위한 로직을 예시하는 흐름도를 도시한다.
도 7은 본 명세서의 실시예에 따른, 3 개의 장치들에 대응하는 3 개의 예시적인 비트들의 시퀀스들을 예시한다.
도 8은 실시예에 따른 예시적인 프로세서에 연결된 메모리의 블록도이다.
도 9는 실시예에 따른 포인트-대-포인트(PtP) 구성으로 구성된 예시적인 컴퓨팅 시스템의 블록도이다.
데이터 보안을 제공하는 것은 때로 대량의 데이터 프로세싱을 요구한다. 데이터 보안 정보를 제공하는 시스템은 하나 이상의 객체들과 관련된 보안 정보에 대한 복수의 쿼리들을 수신할 수 있다(예를 들어, 30 일 동안에 수백만 개 또는 수억개의 쿼리들을 수신할 수 있다). 객체는 파일, 해시 값, 파일의 해시 또는 임의의 다른 데이터 객체일 수 있다. 이 시스템은 복수의 쿼리들 각각에 응답하여서 평판도 점수를 제공할 수 있다. 상기 평판도 점수는 질의된 객체가 악성인지(예를 들어, 말웨어 또는 바이러스에 감염된 파일)의 확률을 반영한다. 데이터 보안 시스템은 평판도 점수를 사용하여서 (예를 들어, 파일을 격리시키고, 파일을 삭제하고/하거나 파일을 사용하는 임의의 쓰레드가 실행되는 것을 방지하는 등의) 조치 과정을 결정할 수 있다. 평판도 점수는 복수의 인자들에 기초하여서 결정될 수 있다. 평판도 점수를 결정하기 위한 인자들은 객체의 내용, 객체에 대한 쿼리들의 개수, 및/또는 객체의 출현율을 포함할 수 있다. 각 인자는 평판도 점수의 표시자 역할을 할 수 있다. 예를 들어서, 출현율은 객체에 대해서 데이터 보안 시스템에게 질의를 한 고유 장치들의 개수를 말할 수 있으며, 평판도 점수를 제공하는데 사용될 수 있다. 마찬가지로, 객체에 대한 쿼리들의 수도 평판도 점수를 제공하는데 사용될 수 있다. 예로서, 서버-측 폴리모픽 말웨어(polymorphic malware)는 매우 낮은 출현율을 가지는데, 그 이유는 서버에 의해서 출력된 각 파일 인스턴스가 해시된 경우에 상이한 해시 값을 갖기 때문이다. 따라서, 낮은 출현율은 낮은 평판도 점수에 대응하며, 높은 출현율은 높은 평판도 점수에 대응할 수 있다. 일 실례에서, 일부 객체들은 높은 출현율을 가지며 악성이라고 알려질 수 있으며, 이러한 경우에, 높은 출현율 점수는 높은 평판도 점수에 대응하지 않을 수 있다.
평판도 점수를 제공하도록 데이터 보안 시스템을 구현하는 바의 과제들은 작은 문제가 아니다. 예를 들어서, 이 시스템은 하나 이상의 분산된 구성요소들(예를 들어, 상이한 도시들, 국가들 또는 상이한 행정구역들에 분산된 서버들)을 포함할 수 있으며, 다수의 장치들로부터의 쿼리들을 프로세싱할 수 있다. 각 장치는 상이한 타입의 장치(예를 들어, 다양한 운영 체제들)이며 데이터 보안 시스템으로부터 떨어져 있을 수 있다. 이로써, 이러한 시스템을 구현하는 바는 복수의 인자들에 기초하여서 평판도 점수를 제공하기 위해서 복잡한 분산된 프로세싱을 요구할 수 있다. 예를 들어서, 파일에 대해서 질의를 한 고유 장치들의 개수를 카운팅함으로써 파일의 출현율을 계산하는 것은 파일에 대한 고유한 장치들의 리스트를 유지하는 것을 요구할 수 있다. 고유 장치들의 개수를 카운팅하는 과제의 다음의 예를 고려해보자. 장치들의 개수가 107 개 이며, 파일들의 개수가 109이고, 국가들의 수가 102 정도라고 가정해보면, 시스템은 (예를 들어, 데이터베이스 기록사항들에 질의하거나 또는 데이터베이스 내의 다수의 테이블들에 참여하는) 1018 개의 엔트리들에 대해서 데이터 기록사항들을 프로세싱하여서 고유 장치들의 개수를 카운팅할 수 있다. 이로써, 고유 장치들의 개수를 카운팅하는 것은 필수 데이터를 계산, 저장 및 질의하기 위해서 상당한 프로세싱 및 저장 용량을 요구할 수 있다. 또한, 가장 처음에 파일을 보고한 각 장치는 전지구적 상태 변화(예를 들어, 카운트 값의 증분)를 요구할 수 있으며, 이는 잠재적으로 높은 데이터 천 레이트(churn rate)를 요구할 수 있다. 또한, 장치들의 개수를 카운팅하는 프로세스는 O(n)의 시간 복잡도를 가질 수 있다.
본 발명은 본 발명의 상이한 특징들을 구현하기 위한 수많은 상이한 실시예들, 또는 실례들을 제공한다. 구성요소들 및 배열 요소들의 특정 실례들이 본 발명을 단순화하도록 이하에서 기술된다. 물론, 이러한 실례들은 단지 실례들일 뿐이며 한정적으로 해석되지 말아야 한다. 또한, 본 명세서는 다양한 실례들에서 참조 부호들 또는 문자들을 반복할 수 있다. 이러한 반복은 단순성 및 간략성을 위한 것이며 다양한 실시예들 간의 관계 또는 논의되는 구성들 간의 관계를 그 자체로 말하지는 않는다.
쿼리
데이터를 사용하는 출현율 정보
쿼리 데이터를 사용하여서 쿼리들의 수 또는 출현율 정보의 통계학적 기반 추정치를 결정함으로써 데이터 보안 정보를 제공하는 시스템은 시스템의 연산 및 저장 용량을 덜 요구하며 시스템의 응답성을 개선할 수 있다. 유리하게는, 이는 출현율의 수학적으로 증명할 수 있는 추정치를 제공하며, 쿼리가 수신된 시간에서(즉, 질의 시간에, 실시간으로, 또는 거의 실시간으로) 결정될 수 있으며, 이로써 대량의 데이터 기록사항들을 프로세싱하는 것으로부터 기인되는 긴 레이턴시를 피할 수 있다.
도 1은 본 명세서의 하나 이상의 실시예들에 따른, 평판도 정보를 포함하는 데이터 보안 정보를 제공하기 위한 예시적인 시스템을 예시하는 구성요소 도면이다. 이 실례에서, 보안 정보 시스템(100)은 보안 서버들(102), 평판도 정보 시스템들(104), 통신 네트워크(106), 및 통신 장치들(108)을 포함한다. 통신 장치들(108)은 데이터를 보안 서버들(102)로부터 통신 네트워크(106)를 통해서 수신하고/하거나 데이터를 보안 서버들(102)로 통신 네트워크(106)를 통해서 송신할 수 있다.
통신 장치들(108)각각은 객체와 관련된 보안 정보에 대한 쿼리(예를 들어, 쿼리 데이터)를 통신 네트워크(106)를 통해서 보안 서버들(102)에 전송할 수 있다. 보안 정보는, 예를 들어서, 평판도 점수, 출현율 점수, 쿼리들의 수, 및/또는 질의를 한 고유 장치들의 개수를 포함할 수 있다. 일 구현예에서, 통신 장치들(108)은 파일에 대한 쿼리에 대한 사용자 선택에 기초하여서 파일의 출현율 점수를 요청하기 위한 쿼리 데이터를 생성할 수 있다. 이와 달리, 통신 장치(108) 상에서 실행되는 애플리케이션이 데이터 스캐닝 절차의 일부로서 쿼리 데이터를 생성할 수 있다. 일 구현예에서, 통신 장치들(108)은 컴퓨팅 장치, 유선 또는 무선 통신 장치, 마이크로 폰, 데스크탑 컴퓨터 중 적어도 하나; 또는 보안 정보에 대한 쿼리들을 전송할 수 있는 임의의 다른 통신 장치를 포함할 수 있다.
보안 서버들(102)은 객체에 대한 평판도 정보 시스템(104)에 적어도 부분적으로 기초하여서 객체에 대한 데이터 보안 정보를 통신 장치들(108)에 제공하도록 구성될 수 있다. 쿼리 데이터를 통신 장치들(108)로부터 수신하는 것에 응답하여서, 보안 서버들(102)은 쿼리 데이터를 프로세싱하고/하거나 프로세싱할 쿼리 데이터를 평판도 정보 시스템들(104)에 제공할 수 있다. 데이터 프로세싱 이후에, 보안 서버들(102)은 객체와 관련된 보안 정보를 포함하는 응답을 통신 장치들(108)에 전송할 수 있다. 응답은 객체가 악성인지의 여부, 표시될 신뢰도 레벨, 평판도 점수, 출현율, 쿼리들의 수, 질의한 고유 장치들의 개수 및/또는 이들의 추정치들을 포함할 수 있다. 보안 서버들(102)의 예시적인 구현예는 이러한 응답을 통신 장치들(108)에 전송하기 위한 웹 기반 프레임워크를 제공할 수 있다.
통신 네트워크(106)는 보안 서버들(102)과 통신 장치들(108) 간에 데이터를 전송하도록 구성될 수 있다. 통신 네트워크(106)의 예시적인 구현예는 무선 또는 유선 기술들(예를 들어, 로컬 구역 네트워크(LAN), 무선 LAN, 셀룰러 네트워크)을 사용할 수 있으며, 다양한 통신 및/또는 보안 프로토콜들(예를 들어, IP(Internet Protocol), HTTP(Hypertext Transfer Protocol), SSL(Secure Sockets Layer), SOAP(Simple Object Access Protocol))을 지원할 수 있다.
간략성을 위해서, 도 1은 특정 개수의 각각의 통신 장치들(108), 보안 서버들(102), 및 통신 네트워크(106)를 도시한다. 그러나, 임의의 개수의 서버들, 장치들, 및 네트워크들이 본 명세서의 하나 이상의 실시예들에 따른 시스템에서 구현될 수 있다. 추가적으로, 도 1에 도시된 예시적인 평판도 정보 시스템(104)은 2 개의 구성요소들(104a 및 104b)을 도시한다. 그러나, 평판도 정보 시스템(104)은 일 위치에서 구현되거나(예를 들어, 단일 장치로 구현되거나) 또는 다수의 위치들에서 구현될 수 있다(예를 들어, 다수의 장치들 간에서 분산될 수 있다).
도 2는 본 명세서의 하나 이상의 실시예들에 따른 평판도 정보 시스템의 블록도이다. 도 2에 도시된 바와 같은, 평판도 정보 시스템(104)은 도 1에 도시된 바와 같은 평판도 정보 시스템(104)의 예시적인 구현예이다. 이 실례에서, 평판도 정보 시스템(104)은 쿼리 시스템(202), 데이터 저장부(208), 데이터 마이닝(mining)시스템(210), 쿼리 데이터(204), 및 평판도 데이터(206)를 포함한다. 쿼리 시스템(202), 데이터 저장부(208), 및 데이터 마이닝 시스템(210)은 서로 연결되어서 시스템들 및 데이터 저장부 간의 데이터의 양 방향 전송을 가능하게 한다.
쿼리 시스템(202)은 쿼리 데이터(204)를 수신하고 평판도 데이터(206)를 출력할 수 있다. 일 구현예에서, 쿼리 시스템(202)은 상이한 방식들을 사용하여서 새로운 위험요소 또는 잘 알려진 위험요소에 반응할 수 있다. 새로운 위험요소들은 낮은 출현율을 갖고 미지의 보안 위험 레벨을 갖는 파일일 수 있다. 잘 알려진 위험요소는 높은 출현율 및 알려진 보안 위험 레벨을 갖는 파일일 수 있다. 새로운 위험요소들에 대해서, 예를 들어서, 시스템은 평판도 점수를 즉시 업데이트하여서 업데이트된 평판도 점수를 클라우드 기반 서버에 알릴 수 있다. 그러나, 잘 알려진 위험요소의 경우에, 시스템은 평판도 점수를 즉시 업데이트할 수 없으며(예를 들어, 그 이유는 평판도가 알려져 있으며 상대적으로 안정적일 수 있기 때문임) 또는 업데이트된 평판도 점수를 클라우드 기반 서버에 알릴 수도 없다. 대신에, 잘 알려진 위험요소에 대한 데이터가 데이터 마이닝 시스템(210)에 의해서 프로세싱되고 이후에 평판도 점수를 업데이트하여서 업데이트된 평판도 점수를 클라우드 기반 서버에 알리는데 사용될 수 있다. 이러한 위엄요소에 있어서의 차이점은 평판도가 업데이트되고/되거나 전달되는 속도이다. 낮은 출현율 파일들의 경우에, 업데이트된 추정치를 신속하게 알리는 것이 중요한데, 그 이유는 이러한 위험요소는 신속하게 진화할 수 있기 때문이다(예를 들어, 폴리모픽 말웨어). 높은 출현율 파일들의 경우에, 세부적인 분석사항 및 이력 상황을 제공하여서, 예를 들어서, 악성 파일이 전파되는 방식 및 메카니즘을 결정하는 것이 중요할 수 있다.
일 실시예에서, 쿼리 시스템(202)은 적어도 하나의 프로세서를 사용하여서, 출현율 정보를 제공하기 위한 로직을 구현할 수 있다. 예를 들어서, 쿼리 시스템(202)은 도 3에 도시된 바와 같은, 쿼리 데이터에 대한 출현율 정보를 제공하기 위한 로직 및/또는 도 6a 및 도 6b에 도시된 바와 같은, 파일의 해시에 대한 출현율 정보를 제공하기 위한 로직을 구현할 수 있다.
쿼리 데이터(204)는 평판도 정보 시스템(104)에 질의하는데 사용되는 데이터를 캡슐화한다. 일 실시예에서, 쿼리 데이터(204)는 장치와 관련된 식별자, 통신 장치(108)에 대한 메타데이터 및/또는 파일과 관련된 식별자 중 적어도 하나를 포함할 수 있다. 장치와 관련된 식별자는 장치 식별자, 쿼리를 생성하고/하거나 제출한 장치의 전지구적으로 고유한 미공지(opaque) 식별자, 장치 식별자의 해시, 장치 상에 존재하는 운영 체제를 포함할 수 있다. 통신 장치(108)에 대한 메타데이터는 쿼리를 생성하고/하거나 제출한 장치의 IP 어드레스, 장치가 위치한 국가, 및/또는 이들의 조합을 포함할 수 있다. 파일과 관련된 식별자는 파일 식별자, 질의 대상인 파일의 전지구적으로 고유한 미공지 식별자, 질의 대상인 파일의 전지구적으로 고유한 미공지 식별자, 질의 대상인 파일의 전지구적으로 고유한 미공지 해시, 파일의 내용의 적어도 일부의 해시, 파일의 전체 내용의 해시, 파일에 대한 URL(uniform resource locator), 및/또는 이들의 임의의 조합을 포함할 수 있다.
평판도 데이터(206)는 평판도 정보를 제공하는데 사용된 데이터를 캡슐화한다. 일 구현예에서, 평판도 데이터(206)는 추정치 및 정확한 응답 중 적어도 하나를 포함할 수 있다. 예를 들어서, 평판도 데이터(206)는 (예를 들어, 질의하는 장치와 무관하게) 객체에 대해서 수신된 쿼리들의 수 또는 객체에 대해서 질의를 한 정확한 고유 장치들의 개수 또는 이의 추정치를 포함할 수 있다.
데이터 저장부(208)는 통신 장치들(108), 데이터 마이닝 시스템(210), 또는 쿼리 시스템(202)로부터 수신된 데이터를 저장하도록 구성될 수 있다. 데이터 저장부(208) 내에 저장된 데이터는 쿼리 데이터(204), 평판도 데이터(206), 또는 평판도 또는 보안과 관련된 다른 데이터를 포함할 수 있다. 예시적인 구현예에서, 데이터 저장부(208)는 관계형 데이터베이스, MPP(massively parallel-processing) 데이터베이스, SQL(structure query language) 데이터베이스(예를 들어, CSR/데이터베이스 인스턴스들), NoSQL 데이터베이스, MongoDB, 및/또는 Hadoop 중 적어도 하나를 포함할 수 있다.
데이터 마이닝 시스템(210)은 데이터 저장부(208), 쿼리 시스템(202), 쿼리 데이터(204) 및/또는 평판도 데이터(206)에 액세스하도록 구성될 수 있다. 일 구현예에서, 데이터 마이닝 시스템(210)은 통계 해석, 클러스터링, 분류화, 머신 학습, MapReduce, 및/또는 리그레션(regression) 중 적어도 하나를 사용할 수 있다.
쿼리들의
수에 기초하여 출현율을 추정하기 위한 통계적 모델
객체의 출현율은 이 객체에 대해서 수신된 쿼리들의 수에 기초하여서 추정될 수 있다. 따라서, 객체에 대해서 해당 시스템이 수신한 쿼리들의 수의 추정치는 객체의 출현율의 추정치 역할을 할 수 있다. 쿼리들의 수에 기초하여서 출현율을 추정하기 위한 통계적 모델은 n 개의 측면의 주사위를 굴린 결과로서 객체(예를 들어, 파일, 파일의 해시, 등) 파일에 대한 쿼리를 표현할 수 있으며, 여기서 각 "측면"이 나올 확률은 동일하다. 기술될 바와 같이, n 값은 객체에 대해서 수신된 쿼리들의 수의 추정치 역할을 한다. n 개의 측면의 주사위를 굴리는 결과는 쿼리 값일 수 있다. 주사위의 목표 값은 정수 값일 수 있으며, 여기서, 0 ≤ 목표 값 ≤ n이다. 이 실례에서, 쿼리 값이 목표 값과 일치하는 확률은 주사위가 n 번 굴려진 확률에 상관된다. 달리 말하면, 주사위 결과가 목표 값과 위치하면, 주사위가 n 번 굴려졌다고 추정될 수 있다. 주사위를 굴리는 것은 쿼리를 나타내기 때문에, 주사위가 n 번 굴려졌다는 추정은 객체에 대해서 n 개의 쿼리들의 수가 수신되었다는 추정에 대응한다. 따라서, 본 모델은 객체에 대한 수학적으로 입증가능한 쿼리들의 수의 추정치에 기초하여서 출현율의 추정치를 제공할 수 있다.
각 객체에 대해서 수신된 쿼리들의 수가 파일들 간에 상이할 수 있기 때문에, 모델은 각 객체에 개별적으로 적용될 수 있다. 쿼리들이 객체에 대해서 수신되기 이전에, 객체에 대한 쿼리들의 수는 알려진다: 즉 이는 제로와 동일하다. 이러한 초기 값으로부터, n 값은 관심 목표 값들을 식별하도록 선택될 수 있다. 예를 들어서, n 값이 10의 승배를 나타내는 값으로 증분되게 설정되면(예를 들어서, 1; 10; 100; 1,000; 10,000; 100,000; 등), 모델은 객체에 대해서 질의를 한 장치들의 개수의 10의 승배에 대한 추정치를 제공할 수 있다. 다른 실례로서, n 값 및 목표 값 모두가 1로 설정될 수 있다. 주사위가 굴려질 때마다, 결과치(즉, 쿼리 값)는 목표 값과 비교된다. 일 구현예에서, 난수 생성기(RNG)는 n 개의 측면을 갖는 주사위를 굴린 결과치를 나타내는 값들을 생성할 수 있다. 결과치가 목표 값과 일치하면, n 값은 객체에 대한 쿼리들의 수의 추정치로서 기록될 수 있다. 추정치가 기록된 후에, n 값은 다음 관심 수로 증가할 수 있다(예를 들어, 다음의 10의 승배로 증가할 수 있는데, 이 실례에서 10에서 100으로 증가할 수 있다). 예를 들어서, 4 개의 쿼리들이 수신되었다면, 10의 차수는 1이며; 354,001 쿼리들이 수신되었다면, 10의 차수는 100,000일 수 있다. 일 구현예에서, 결과치가 목표 값과 일치한 후에, 목표 값은 n의 값과 일치하도록 증가할 수 있거나, 동일한 값으로 유지되거나, 또는 제로보다 크지만 n 이하의 새로운 값이 할당될 수 있다. 각 객체에 대해서, 추정치 값들, 쿼리 값들, 목표 값들, 및/또는 n 값들 각각의 값들은 개별적으로 저장될 수 있다.
도 3은 본 명세서의 하나 이상의 실시예들에 따른 쿼리 데이터에 대한 출현율 정보를 제공하기 위한 로직을 예시하는 흐름도이다. 도 3에서의 로직은 쿼리들의 수에 기초하여서 출현율을 추정하기 위한 통계적 모델의 구현예이다. 이 실례에서, 로직(300)은 시작점(302), 적어도 하나의 목표 값을 수신하는 절차(304), 쿼리 데이터를 장치로부터 수신하는 절차(306), 쿼리 데이터 수신에 응답하여서 적어도 하나의 쿼리 값을 생성하는 절차(308), 적어도 하나의 쿼리 값과 적어도 하나의 목표 값을 비교하는 절차(310), 비교결과에 기초하여서 쿼리 데이터에 대한 출현율을 출력하는 절차(312), 및 종료점(314)을 포함한다.
로직(300)은 시작 지점(302)에서 시작한다. 시작 지점(302)은 다른 로직, 루틴, 애플리케이션, 쓰레드의 시작/종료 지점과 일치할 수 있다. 추가적으로, 시작 지점(302)에서, 데이터(예를 들어, 객체들, 값들, 변수들, 등)이 로직(300)에서 사용되기 위해서 초기화, 검색 또는 액세스될 수 있다.
다음으로, 적어도 하나의 목표 값을 검색하기 위한 절차(304)로 진행한다. 적어도 하나의 목표 값은 단일 값, 값들의 시퀀스, 비트들의 시퀀스, 장치와 관련된 식별자, 파일에 대해서 질의를 한 처음의 장치의 식별자, 또는 각 쿼리에 대하여 다른 값들(예를 들어, 쿼리 값들)과 비교될 수 있는 임의의 값 중 하나로서 구현될 수 있다. 목표 값은 데이터 소스(예를 들어, 데이터 소스(208))로부터 검색되거나 또는 생성될 수 있다. 예를 들어서, 목표 값은 통계적 모델에 대해서 상술한 바와 같은, n 개의 측면을 갖는 주사위의 값 또는 장치와 관련된 식별자에 기초하여서 생성된 비트들의 시퀀스일 수 있다.
절차(306)에서, 쿼리 데이터(예를 들어, 쿼리 데이터(204))가 장치(예를 들어, 통신 장치(108))로부터 수신된다. 예를 들어서, 파일 및 이 파일의 출현율이 통신 장치로부터 수신될 수 있다.
쿼리 데이터 수신에 응답하여서, 적어도 하나의 쿼리 값이 절차(308)에 따라서 생성된다. 일 구현예에서, 쿼리 값은 장치와 관련된 식별자(즉, 질의하는 장치와 관련된 식별자), 생성된 난수, 장치와 관련된 식별자의 해시 또는 각 쿼리에 대해서 다른 값들(예를 들어서, 목표 값들)과 비교될 수 있는 임의의 값일 수 있다.
적어도 하나의 쿼리 값은 절차(310)에서 적어도 하나의 목표 값과 비교된다. 비교의 용이성을 위해서, 목표 값 및 쿼리 값은 동일한 방식으로 구현될 수 있다(예를 들어, 목표 값 및 쿼리 값 각각은 비트들의 시퀀스이며, 각각은 정수 값이다). 비교는 어느 것이 보다 큰/보다 작은 값인지를 결정하거나, 값들이 서로 동일한지를 결정하거나, 값들을 쌍식 비교하고/하거나 값들이 동일한 포맷을 갖는지를 결정함으로써 값들을 서로 비교하는 것을 포함할 수 있다. 포맷은 예를 들어, 인코딩의 타입, 시퀀스를 생성하는데 사용된 해시의 타입, 및/또는 비트들의 시퀀스의 길이를 포함할 수 있다. 비교 결과는 출현율 값(예를 들어, 이의 추정치)으로서 직접 출력되거나, 또는 다른 연산들을 위한 기초 값 역할을 할 수 있다. 예를 들어서, 비교 결과는 쿼리 데이터에 대한 출현율을 결정하기 위한 통계적 모델 및/또는 시뮬레이션과 같은 모델에 입력될 수 있다.
절차(312)에서, 쿼리 데이터에 대한 출현율이 출력된다. 출현율은 출현율 값, 추정된 쿼리들의 수, 객체에 대해서 질의를 한 추정된 고유 장치들의 개수, 등을 포함할 수 있다. 출현율은 쿼리 값 및 목표 값을 비교한 결과에 기초하여서 계산될 수 있다. 예를 들어서, 출현율 값은 평판도 정보 시스템으로부터 쿼리 데이터를 제출한 장치로 출력될 수 있다. 일 구현예에서, 쿼리 데이터는 처음의 장치로부터 수신될 수 있으며 대응하는 평판도 정보는 다음의 장치, 또는 복수의 장치들로 제공될 수 있다.
마지막으로, 로직은 종료 지점(314)에서 종료된다. 종료 지점(314)은 다른 로직, 루틴, 애플리케이션, 또는 쓰레드에 대한 시작/종료 지점 역할을 할 수 있다. 예를 들어서, 종료 지점(314)은 후속하는 쿼리를 수신하면, 프로세서로 하여금 시작 지점(302)에서 시작하는 로직을 실행하게 한다.
고유 장치들의 개수에 기초하여서 출현율을 추정하기 위한 통계적 모델
객체의 출현율은 객체에 대해서 쿼리들을 제출한 고유 장치들의 개수에 기초하여서 추정될 수 있다. 따라서, 객체에 대해서 쿼리들을 제출한 고유 장치들의 개수의 추정치는 객체의 출현율의 추정치 역할을 할 수 있다. 고유 장치들의 개수에 기초하여서 출현율을 추정하기 위한 통계적 모델은 비트들의 랜덤 분포를 갖는 이진수로서 질의하는 장치를 나타낼 수 있다. 예를 들어서, 해시 함수가 질의하는 장치와 연관된 고유 식별자(예를 들어, 장치 ID)에 적용되어서 비트들의 랜덤(또는 슈도-랜덤) 분포를 갖는 비트들의 시퀀스를 생성할 수 있다. 일 구현예에서, 해시 함수는 몇몇 잘 알려진 해싱 알고리즘들 중 하나일 수 있다. 예를 들어서, 해시 함수는 MD5(message-digest5), SHA1(secure hash algorithm 1), 및/또는 SHA256 중 하나일 수 있다. 이진수가 쿼리 값일 수 있다. 제 1 쿼리가 객체에 대해서 장치로부터 수신되면, 장치에 대한 쿼리 값(즉, 비트들의 랜덤 분포를 갖는 이진수)이 생성되고 목표 값으로서 저장된다. 제 1 장치와는 다른 장치로부터의 각 후속하는 쿼리에 대해서, 입력 쿼리에 대한 쿼리 값은 제 1 장치에 대한 쿼리 값(즉, 목표 값)과 비교되어서 시퀀스에서 제 1 비트에서 시작하는, 연속하는 매칭하는 비트들의 개수를 결정한다. 매칭하는 비트들의 개수가 매칭하는 비트들의 최대 개수(n_max)보다 클 때에만, 매칭하는 비트들의 개수가 저장될 수 있다. 매칭하는 비트들의 최대 개수(n_max)는 객체에 대해서 관측된 매칭하는 비트들의 가장 큰 개수를 나타낸다. 보다 높은 수의 매칭하는 비트들의 확률이 객체에 대해서 질의를 한 보다 높은 수의 고유 장치들의 개수의 확률에 대응한다. 달리 말하면, 매칭하는 비트들의 최대 개수가 증가하면 객체에 대해서 질의를 한 보다 높은 수의 고유 장치들의 확률이 증가한다. 따라서, 이 모델은 객체에 대해서 질의를 한 수학적으로 입증가능한 고유 장치들의 개수의 추정치에 기초하여서 출현율의 추정치를 제공한다.
이 모델에서, 동일한 장치로부터의 동일한 파일에 대한 반복된 쿼리들은 객체에 대해서 질의를 한 고유 장치들의 개수의 추정치에 영향을 주지 않는다. 다음은 이러한 바가 사실임을 간단하게 증명하는 것이다.
(1) 제 1 장치에서 매칭하는 비트들의 수(n_i)가 매칭하는 비트들의 현 최대 개수(n_max)보다 큰 장치로부터의 임의의 입력 쿼리는 n_max가 n_i 값을 취하게 한다. 장치가 동일한 파일에 대한 다른 쿼리를 제출하면, n_i 값은 n_max 이하이어야 하며 이로써 후속하는 쿼리는 n_max 값에 영향을 주지 않을 것이다.
(2) 제 1 장치에서 매칭하는 비트들의 수(n_i)가 매칭하는 비트들의 현 최대 개수(n_max) 이하의 장치로부터의 임의의 입력 쿼리는 n_max를 변화시키지 않는다. 장치가 동일한 파일에 대한 후속하는 쿼리를 제출하면, n_i 값은 n_max 이하이어야 하며 이로써 후속하는 쿼리는 n_max 값에 영향을 주지 않을 것이다.
본 모델의 통계적 특성들은 이진수의 길이(즉, 비트들의 시퀀스의 길이, 또는 N)에 적어도 부분적으로 기초하여서 도출될 수 있다. 비트들의 시퀀스의 소정의 길이에 있어서, 비트들의 고유 시퀀스들의 수는 유한하며(2N -1)에 의해서 정의된다. 비트들의 고유 시퀀스들의 수는 N 값에 대해서 모델이 표현할 수 있는 고유 장치들의 개수를 말한다. 또한, 고유 장치들의 개수가 배열될 수 있는 방식들의 수도 유한하며((2N -1)!)에 의해서 표현된다. 다수의 장치들이 배열될 수 있는 방식들의 수는 해당 객체에 대해서 장치들이 질의를 할 수 있는 방식들의 수(즉, 배열 또는 질의하는 장치들)를 나타낸다. 이로써, 0 < n_match ≤ N인, 연속하는 매칭하는 비트들의 임의의 목표된 수(n_match)에 대해서, 객체에 대한 x 번째 쿼리가 연속하는 매칭하는 비트들의 수가 n_match가 되게 되는 확률에 대한 유한 확률 분포를 생성하는 것이 가능하다.
예시적으로, 백색 볼들의 수(n_white)는 연속하는 매칭하는 비트들의 수가 n_match와 일치하는 장치들의 수를 표현할 수 있다; 흑색 볼들의 수(n_black)는 모든 다른 장치들의 수를 표현할 수 있다(즉, 연속하는 매칭하는 비트들의 수가 n_match와 일치하지 않는 장치들의 수를 표현할 수 있다). 모델은 상기 수의 백색 볼들 및 상기 수의 흑색 볼들을 포함하는 백(bag)에 대응한다. 백 내의 볼들의 총 개수는 모델에 의해서 표현되는 고유 장치들의 총 개수를 표현한다(예를 들어, 고유 비트 시퀀스들의 수를 표현한다). 이로써, 백에서 꺼낸 x 번째 볼이 백색일 확률(즉, P(x))는 다음과 같이 표현될 수 있다:
도 4는 본 명세서의 하나 이상의 실시예들에 따른, 가변하는 수의 연속하는 값들, 쿼리 값들을 목표 값들에 매칭시키기 위한 확률 분포들의 그래픽 표현이다. 도 4에서의 확률 분포는 위의 등식들을 사용하여서 생성되었으며, 여기서, N=10 및 n_target는 1 내지 8의 정수 값들로서 주어진다.
도 5는 매칭 값들의 최대 개수(예를 들어, n_max)와 출현율 정보 간의, 누적 확률에 기초한, 예시적인 대응관계를 도시하는 차트이며, 여기서, N=64이다. 구체적으로, n_max의 값들에 다음과 같은 대응하는 바들이 제공된다:
(1)10의 승배(OOM) 값들의 범위(예를 들어, 1; 10; 100; 1,000; 10,000; 100,000; 등);
(2)도 5에서 "확률"로서 표시된, OOM의 정확한 범위의 정확도. 구체적으로, 이 값은 소정의 n_max에 대해서, 쿼리 값들의 실제 개수가 상기 OOM 범위 내에 존재하는 확률을 말한다. 0.7 ± 0.2 보다 큰 임계 확률이 적용된다; 및
(3)도 5에서 "OOM ± 확률"로 표시된, OOM, 플러스 또는 마이너스 1 OOM 범위의 정확한 범위의 정확도. 구체적으로, 이 값은 소정의 n_max에 대해서, 쿼리 값들의 실제 개수가 소정의 OOM 범위 내에 있는지, 상기 소정의 범위 위의 1 OOM 범위 내에 있는지, 상기 소정의 범위 아래의 1 OOM 범위 내에 있는지의 확률을 말한다. 0.95보다 큰 임계 확률이 적용된다.
누적 확률은 대응하는 출현율 값에 매칭하는 값들의 관련 개수(또는 매칭 값들의 개수의 범위)에 대한 예시적인 통계적 기초를 제공한다. n_max에 대한 특정 개수들은 시스템에 대한 세부사항의 목표된 레벨에 기초하여서 계산될 수 있다. 예를 들어서, 세부사항의 목표된 레벨은 10의 승배(OOM) 값들(예를 들어, 1; 10; 100; 1,000; 10,000; 100,000; 등) 또는 범위들일 수 있다. OOM 값들은 객체에 대해서 질의를 한 고유 장치들의 개수의 10의 승배를 제공한다. 목표된 범위 OOM 값들에 대해서, 시스템은 특정 누적 확률을 달성하기 위한 n_max의 대응하는 값들을 제공할 수 있다. 유사한 대응관계 데이터가 세부사항의 목표된 레벨에 대하여 임의의 선정된 값들에 대해서 생성될 수 있다.
도 5에서, 5
보다 작은 n_max은 누적 확률 0.4로 1 내지 10의 10의 승배(OOM) 범위에 대응하며, 누적 확률 1로 1 내지 100의 OOM 범위에 대응한다. n_max의 나머지 값들 각각(즉, 5, 9, 12, 15, 및 19)은 각기 적어도 0.68 또는 대략적으로 0.7의 누적 확률을 가지면서 증가하는 (OOM) 범위들(즉, 각기 10 내지 100, 100 내지 1,000; 1K 내지 10K; 1OK 내지 100K; 100K 내지 1M)에 각기 대응한다. 또한, n_max의 나머지 값들 각각은 적어도 0.98의 누적 확률로, OOM, 플러스 또는 마이너스 1 OOM에 대응할 수 있다. 유사한 대응관계 데이터가 임의의 선택된 n_max 값에 대해서 생성될 수 있다. 이 실례에서, n_max = x인, 임의의 값 x에 대해서, 범위 10Z-1 내지 10Z 와 동일한 OOM에 대한 누적 확률은 △[P(10z-1│n_max = x), [P(10z│n_max = x)]이며, 플러스 또는 마이너스 1 OOM에 대한 누적 확률은 △[P(10z-2│n_max = x), [P(10z+1│n_max = x)]에 의해서 계산될 수 있다. 이러한 식들은 각기 범위 10Z-1 내지 10Z 와 범위 10Z-2 내지 10Z+ 1 의 최종점들 간의 누적 확률에서의 차를 나타낸다.
일 구현예에서, 도 5에서의 데이터와 유사한 데이터는 쿼리 값 및 목표 값을 비교한 결과(예를 들어, 비교결과들(330) 및/또는((618)))를 객체에 대해서 질의를 한 고유 장치들의 개수의 추정치와 연관시키는데 사용될 수 있다. 이러한 데이터는 객체에 대해서 질의들을 갖는 수학적으로 입증가능한 고유 장치들의 개수의 추정치에 기초한 출현율의 추정치를 제공한다.
예시적인 알고리즘은 다음과 같이 고유 장치들의 개수에 기초하여서 출현율을 추정하기 위한 통계적 모델을 구현할 수 있다.
i. 파일 f_x에 대한 제 1 입력 쿼리 Q_1에 대해서, 장치 식별자 D_1를 저장하고, 여기서, 상기 장치 식별자는 상기 쿼리가 오는 장치를 식별한다. 제로와 동일하게 n_max를 초기화하고, 여기서, n_max는 파일 f_x에 대해서, D_1 및 다른 장치 식별자들 간의 현재 기록된 최대 매칭 개수를 나타낸다.
ii. 장치 식별자 D_y를 갖는 장치로부터의, 파일 f_x에 대한 후속하는 쿼리 Q_z에 대해서, 다음을 수행한다:
D_y가 D_1과 동일하지 않으면: 제 1 비트로부터 시작하여서 D_l 및 D_y가 서로 매칭하기까지 위로 진행하면서, 연속하는 매칭하는 비트들의 개수 n_y를 결정하며; 및 n_max가 n_y보다 작으면, n_max를 n_y로 설정한다.
보다 많은 고유 장치 식별자들을 만날수록, 보다 높은 n 값들을 가질 확률이 커질 것이다. 따라서, 임의의 파일에 대해서 현재 기록된 n_max는 파일 f_x에 대해서 질의를 한 고유 장치들의 개수의 통계적으로 입증가능한 표시자이다.
위의 예시적인 알고리즘은 다음과 같이 3 개의 가장 인기있는 국가들을 추적하도록 확장될 수 있다:
i. 각 파일 f_x에 대해서, 폼(c, n_max)의 3-튜플을 기록하며, 여기서, c는 국가 코드이며, n_max는 파일 f_x에 대해서 해당 국가 j로부터의 쿼리들로부터 계산된 최대 n 값이다.
ii. 국가 c_j에 위치한 장치 D_i로부터의, 파일 f_x에 대한 각 입력 쿼리에 대해서:
c_j가 상기 3 튜플들로 된 국가들 중 하나와 매칭하면:
n_i가 c_j에 대해 현재 기록된 n_max보다 크면, n_max를 n_i로 설정한다.
c_j가 상기 3 튜플들로 된 국가들 중 어느 것과도 매칭하지 않으면:
n_i가 상기 3 튜플들로 된 국가들 중 임의의 것에 대해 현재 기록된 n_max 값들보다 크면, 최저의 n_max 값을 갖는 튜플을(c_j, n_i)로 대체한다.
본 예시적인 알고리즘은 파일 f_x에 대한 n_max의 최고 값을 보고하는 3 개의 국가들에 대한 식별자를 유지하도록 3 튜플들을 저장하고, 이로써 상기 3 개의 국가들의 통계적으로 입증가능한 표시사항에 파일 f_x의 존재를 보고하는 가장 많은 장치들을 제공한다. 또한, 각 튜플 변화에 대해서, n_max 값은 증가하며 이로써 데이터 변화(천:churn)의 수는 동일한 파일의 전지구적 출현율을 추적하는데 요구되는 천의 수보다 3 배 정도일 수 있다.
유리하게는, 본 알고리즘의 구현은 고유 장치 ID들을 카운팅하는 것을 필요로 하지 않으며, 이로써, 시간 복잡성은 고유 장치 ID들의 수에 의존하지 않는다. 대신에, 결과들을 제공하는 것이 O(1)시간 복잡도를 가지며(즉, 일정한 시간을 가지며), 따라서, 실시간으로(예를 들어, 웹 서버에서의 질의 시간에) 적용될 수 있다. 또한, 이러한 알고리즘을 위해서 필요한 공간은 모든 고유 장치 ID들을 저장하기 위한 요건들에 비해서 감소된다.
일 구현예에서, 본 통계적 방식은 장치 ID를 사용하여서 동일한 객체에 대해서 다수의 쿼리들을 하나의 장치가 전송하는 경우를 유리하게 다룰 수 있다. 장치 ID 저장은, 예를 들어, 해당 객체에 대해서 모든 이전의 쿼리들을 카운트하지 않고서, 동일한 장치로부터의 후속하는 쿼리들에 대한 재현가능한 출력을 제공하는 단일 기준점일 수 있다. 또한, 다수의 장치들(예를 들어, 웹 서버들 및/또는 데이터 센터들)은 각 질의하는 장치에 대한 장치 ID를 기록할 필요가 없는 데이터 시스템을 사용하여서 전지구적 쿼리 트래픽에 대한 응답들을 유리하게 제공할 수 있다.
도 6a 및 도 6b는 본 명세서의 하나 이상의 실시예들에 따른 파일의 해시에 대한 출현율 정보를 제공하기 위한 로직을 예시하는 흐름도이다. 도 6a 및 도 6b에 도시된 로직은 상술한 출현율 추정 알고리즘의 예시적인 구현예이다. 이 실례에서, 로직(600)은 시작 지점(602); 파일의 해시를 장치로부터 수신하는 절차(604); 비트들의 시퀀스를 장치 식별자에 기초하여서 생성하는 절차(606); 파일의 해시가 데이터 저장부 내에 이미 저장되었는지를 결정하는 절차(608); 데이터 저장부 내에, 비트의 시퀀스, 해시, 및 비트들의 시퀀스 및 해시 간의 연관관계를 저장하는 절차(610); 데이터 저장부 내에, 제로와 동일한 매칭하는 비트들의 최대 개수를 저장하는 절차(612); 데이터 저장부 내에 저장된 매칭하는 비트들의 최대 개수에 기초하여서 쿼리 데이터에 대한 출현율을 출력하는 절차(614); 비트들의 시퀀스가 해시와 연관되게 데이터 저장부 내에 이미 저장되었는지의 여부를 결정하는 절차(616); 생성된 비트들의 시퀀스와 데이터 저장부 내에 저장된 비트들의 시퀀스를 비교하는 절차(618); 데이터 저장부 내에 저장된 매칭하는 비트들의 최대 개수를 초과하는 매칭하는 비트들의 개수를 비교결과가 산출하는지를 결정하는 절차(620); 상기 비교 결과에 기초하여서, 데이터 저장부 내에 저장된 매칭하는 비트들의 최대 개수를 업데이트하는 절차(622); 및 종료 지점(624)을 포함한다.
로직(600)은 시작 지점(602)에서 시작한다. 시작 지점(602)은 다른 로직, 루틴, 애플리케이션, 또는 쓰레드의 시작/종료 지점과 일치할 수 있다. 추가적으로, 시작 지점(602)에서, 데이터(예를 들어, 객체들, 값들, 변수들, 등)이 초기화되거나, 검색되거나, 시스템을 액세스하거나, 로직(600)에서 사용될 객체들 및/또는 변수들을 초기화하거나 검색할 수 있다.
다음으로, 절차(604)에서, 파일의 해시가 장치로부터 수신된다. 파일의 해시는 예시적인 쿼리 데이터(예를 들어, 쿼리 데이터(204))이다. 이와 달리, 파일이 장치로부터 수신될 수 있으며, 파일의 해시가 로직(600)의 실행의 일부로서 생성되거나, 또는 제 3 자에 의해서 생성될 수 있다. 해시는 쿼리 시스템(202), 평판도 시스템(104), 또는 보안 서버들(102) 중 적어도 하나에 의해서 수신될 수 있다.
비트들의 시퀀스가 절차(606)에서 장치에 대한 식별자에 기초하여서 생성된다. 일 구현예에서, 식별자는 장치의 고유 식별자, 쿼리를 생성하고/하거나 제출한 장치의 전지구적으로 고유한 미공지 식별자, 장치 상에 존재하는 운영 체제, 장치의 소유자의 이름, 또는 임의의 다른 장치와 관련된 식별자 중 하나일 수 있다. 예를 들어서, 해시 함수는 비트들의 랜덤(또는 슈도-랜덤) 분포를 갖는 비트들의 시퀀스를 생성하도록 식별자에 적용될 수 있다. 일 구현예에서, 해시 함수는 MD5, SUA1, 및/또는 SHA256 중 하나일 수 있다.
다음으로, 로직(600)은 절차(608)에서, 파일의 해시가 데이터 저장부 내에 이미 저장되었는지를 결정한다. 이 절차는 수신된 파일의 해시가 파일에 대한 제 1 쿼리를 나타내는지를 체크한다.
파일의 해시가 데이터 저장부 내에 이미 저장되었다고 결정되면, 비트들의 시퀀스, 해시, 및 비트들의 시퀀스 및 해시 간의 연관관계가 절차(610)에 따라서 데이터 저장부 내에 저장된다. 로직(600)의 본 절차는 해시 수신이 파일에 대한 제 1 쿼리를 나타내는 경우를 다룰 수 있다. 파일에 대한 제 1 쿼리의 경우에, 매칭하는 비트들의 최대 개수의 현 값(예를 들어, n_max)은 제로이다. 이로써, 절차(612)에서, 매칭하는 비트들의 최대 개수는 제로와 동일하게 설정된다. 절차(614)에서, 매칭하는 비트들의 최대 개수에 기초한 쿼리 데이터에 대한 출현율이 데이터 저장부 내에 저장된다. 파일에 대한 제 1 쿼리의 경우에, 출현율은 이 쿼리가 객체에 대한 제 1 쿼리임을 표시한다. 예를 들어서, 제로, 1, 로우 값, 및/또는 눌(null) 중 하나의 출현율 값이 출력될 수 있다.
절차(616)에서, 파일의 해시가 데이터 저장부 내에 이미 저장되었다고 결정되면, 절차(618)에서 다른 결정이 이루어진다. 구체적으로, 생성된 비트들의 시퀀스가 해시와 연관되어서, 데이터 저장부 내에 이미 저장되었는지의 여부가 결정된다. 이는 동일한 해시에 대해 이전에 질의를 한 장치로부터의 후속하는 쿼리를 장치로부터의 해시가 나타낼 수 없는 경우를 나타낼 수 있다. 수신된 쿼리가 파일에 대한 제 1 쿼리의 해시가 아닐수도 있지만, 이는 이 장치가 해시에 대해서 질의를 한 처음 시간임을 나타낼 수 있다.
절차(616)에서, 생성된 비트들의 시퀀스가 해시와 연관되어서 이미 저장되었다고 결정되면, 해당 파일에 대한 출현율이 데이터 저장부 내에 저장된 매칭하는 비트들의 최대 개수에 기초하여서 출력될 수 있다. 이는 상기 장치로부터의 해시의 수신이 동일한 파일에 대해서 이전에 질의를 한 장치로부터의 후속하는 쿼리를 나타내는 경우를 나타낸다.
생성된 비트들의 시퀀스가 해시와 연관되어서 저장되지 않았다고 결정되면, 상기 생성된 비트들의 시퀀스는 절차(638)에서 데이터 저장부 내에 저장된 비트들의 시퀀스에 비교된다. 데이터 저장부 내에 저장된 비트들의 시퀀스는 파일의 해시에 대한 제 1 쿼리에 응답하여서 저장된 목표 값을 나타낼 수 있다. 상기 생성된 비트들의 시퀀스는, 파일의 해시에 대한 후속하는 쿼리에 응답하여서 생성된 쿼리 값을 나타낼 수 있다. 일 구현예에서, 비교동작은 절차(310) 및/또는 도 5를 참조하여서 기술된 바와 같이 수행될 수 있다.
절차(620)에서, 비교결과가 데이터 저장부 내에 저장된 매칭하는 비트들의 최대 개수를 초과한 매칭하는 비트들의 개수를 산출하는지의 여부가 결정된다. 동일한 파일에 대해서 이전에 질의를 한 장치로부터의 후속하는 쿼리들은 데이터 저장부 내에 저장된 비트들의 최대 개수에 영향을 주지 않는다. 후속하는 쿼리 데이터를 통신 장치로부터 수신하면, 비교동작은 현재 저장된 매칭하는 비트들의 최대 개수 이하의 매칭하는 비트들의 수를 낳을 것이다. 이로써, 로직(600)은 최대 개수를 업데이트하지 않음으로써 데이터 저장부 내의 최대 매칭 수를 유지한다. 이러한 결과는 간단한 증명은 고유 장치들의 개수에 기초하여서 출현율을 추정하기 위한 통계적 모델에 대해서 본 명세서에서 제공된다.
비교결과가 데이터 저장부 내에 저장된 매칭하는 비트들의 최대 개수(예를 들어, n_max)를 초과한 매칭하는 비트들의 개수를 산출한다면, 상기 값(n_max)은 절차(622)에 따라서, 상기 비교결과에 기초하여서 업데이트된다. 일 구현예에서, 절차(622)에서, 매칭하는 비트들의 최대 개수는 절차(620)에서의 비교동작으로부터 결정된 매칭하는 비트들의 수의 값을 취하도록 업데이트될 수 있다.
절차(614)에서, 데이터 저장부 내에 저장된 매칭하는 비트들의 최대 개수에 기초한 쿼리 데이터에 대한 출현율이 출력된다. 적어도 하나의 통계적 모델을 사용하여서, 출현율 값 및/또는 이 출현율 값에서의 신뢰도가 매칭하는 비트들의 최대 개수(n_max)에 기초하여서 결정될 수 있다. 예를 들어서, 도 5의 값들을 사용하여서, 출현율 값이 출력될 수 있다. 도 5에서, 9와 동일한 n_max는 실제 출현율이 100 내지 1,000이 되는 확률 0.69에 대응한다. 예를 들어서, 출력 출현율 값(들)은 OOM 값들의 범위(예를 들어, 100 및 1,000), 상기 범위 내의 단일 값(예를 들어, 999), 또는 상기 범위의 끝점(예를 들어, 100 또는 1,000)을 포함할 수 있다. 상기 출현율 값은 실제 출현율이 상기 출현율 값과 동일하거나 이 범위 내에 있는 확률과 같은, 출현율 값에서의 신뢰도에 기초하여서 가중처리될 수 있다.
마지막으로, 본 로직은 종료 지점(624)에서 종료된다. 종료 지점(624)은 다른 로직, 루틴, 애플리케이션, 또는 쓰레드의 시작 지점 역할을 할 수 있다. 예를 들어서, 종료 지점(624)은 후속하는 쿼리를 수신하면, 프로세서로 하여금, 시작 지점(602)에서 시작하는 로직을 실행하게 한다. 또한, 로직(600)은 기본 알고리즘의 확장에 관해서 논의된 바와 같이 3 개의 가장 인기 있는 국가들을 추적하도록 수정될 수 있다.
일 구현예에서, 로직(600)은 로직(300)과 유사한 방식으로 동작할 수 있다. 절차(604)에서 장치로부터의 파일의 해시의 수신은 절차(304)에서 쿼리 데이터를 수신하는 것에 대응할 수 있다. 절차들(606 내지 612)에 기초하여서, 시스템은 절차(304)에서 제공된 바와 같은, 목표 값에 대응할 수 있는, 제 1 장치에 대한 식별자에 기초하여서 비트들의 시퀀스를 생성하여서 저장할 수 있다. 시스템은 데이터 저장부에 액세스하여서 몇몇 비트들의 시퀀스들을 절차들(616 내지 622)에서 비교할 수 있으며, 이 절차는 절차(310)에 대응할 수 있다. 시스템은 또한 절차(312)에 대응할 수 있는, 절차(614)에서 데이터 저장부 내에 저장된 데이터에 기초하여서 출현율을 출력할 수 있다.
로직(300) 및/또는 로직(600)에 있어서, 값들(예를 들어, 쿼리 값들, 목표 값들, 또는 비트들)의 시퀀스의 길이는 임계 값에 기초하여서 결정될 수 있다. 예를 들어서, 임계 값은 출현율의 크기의 상한치(예를 들어, 1,000 고유 장치들, 또는 1,000,000 고유 장치들), 시스템의 설계 파라미터들, 및/또는 시스템이 만날 장치들의 추정된 수에 대응할 수 있다. 값들로서 비트들을 사용하는 실례에서, 64에 대응하는 시퀀스 길이는 264 또는 18*1018 개의 고유 장치들을 나타내기에 충분한 고유 비트들의 시퀀스들을 제공할 수 있다.
도 7은 본 발명의 실시예에 따른, 3 개의 장치들에 대응하는 3 개의 예시적인 비트들의 시퀀스들을 예시한다. 이 실례에서, 장치(1)는 01101000...(예를 들어, 제 1 장치 id)으로 시작하는 비트 시퀀스에 대응하며, 장치(2)는 00101011...(예를 들어, 제 2 장치 id)로 시작하는 비트 시퀀스에 대응하며, 장치 (3)는 01101010...(예를 들어, 제 3 장치 id)로 시작하는 비트 시퀀스에 대응한다. 3 개의 비트들의 시퀀스들에 대한 인덱스들은 i1 내지 in으로 표시된다. 단순성을 위해서, 전체 비트 시퀀스는 도시되지 않는다.
비트들의 시퀀스의 길이(즉, N 값)는, 예를 들어, 로직(300 및 600)에 대해서 논의된 바와 같이, 임계 값에 기초하여서 결정될 수 있다. 일 구현예에서, 64에 동등한 n을 사용하면, 잠재적 문제점들(예를 들어서, 2 개의 상이한 장치들이 정확하게 일치하는 비트들의 시퀀스들을 가짐)을 피하기에 충분할 수 있는, 264 또는 18*1018 개의 고유 장치들을 나타내기에 충분한 고유 비트들의 시퀀스들을 제공할 수 있다.
본 실례에서, 3 개의 장치들 각각이 동일한 파일과 관련된 쿼리 데이터를 전송하였다. 장치(1)는 쿼리 데이터를 먼저 전송하고, 이어서 장치(2)가 전송하고, 이어서, 장치(3)가 전송하였다. 이로써, 제 1 장치 id는 예를 들어서, 절차(304 또는 610)에 의해서 제공된 로직에 기초하여서, 데이터 저장부(예를 들어, 데이터 저장부(208)) 내에 저장된다. 동일한 파일과 관련된 새로운 장치로부터의 각 후속하는 쿼리에 대해서, 예를 들어서, 절차들(606, 608, 616, 및 618)에 의해서 제공된 로직에 기초하여서, 새로운 비트들의 시퀀스 및 제 1 장치 id를 비교함으로써 매칭하는 비트들의 수를 식별한다.
비교동작은 제 1 및 제 2 비트들의 시퀀스들 각각에서 각기 첫번째 비트에서 시작하여서, 제 1 비트들의 시퀀스 내의 연속하는 비트들과 제 2 비트들의 시퀀스 내의 대응하는 연속하는 비트들을 쌍으로 비교하는 동작을 포함할 수 있다. 제 1 장치 id 및 제 2 장치 id의 예시적인 쌍방식 비교는 1과 동일한 매칭 값들의 수를 낳는다. 이는 오직 제 1 값들만이 2 개의 장치 id들 간에서 일치하고(즉, 인덱스 i1에서의 값들) 제 2 값들(즉, 인덱스 i2에서의 값들)은 일치하지 않기 때문이다. 제 3 값들이 제 1 장치 id 및 제 2 장치 id 간에서 일치할지라도, 제 3 값은 제 1 비트(즉, 인덱스 i1에서의 값들)에서 시작하는 매칭하는 비트들의 연속하는 시퀀스 내에 놓이지 않으며 따라서 매칭하는 비트들의 수를 향해서 카운트되지 않는다. 제 1 장치 id 및 제 3 장치 id 간의 유사한 비교 동작은 예를 들어서, 절차(620 및 622)에 의해서 제공되는 로직에 기초하여서, 데이터 저장부 내에 저장될 수 있는 6과 동등한 매칭 값들의 수를 낳는다. 동일한 파일과 관련된 각 후속하는 쿼리에 대해서, 질의하는 장치에 대응하는 비트들의 시퀀스가 동일한 파일에 대해서 질의를 한 제 1 장치에 대응하는 비트들의 시퀀스 (즉, 제 1 장치 id)에 비교된다. 값들의 임의의 매칭하는 대응하는 쌍과는 반대되게 연속하는 값들(즉, 가능한 값들의 순열)을 비교함으로써, 시스템은 많은 수의 고유 값들을 유지하며 이로써 보다 큰 출현율 값들을 모델링할 수 있다.
다른 값들 또는 값들의 시퀀스들이 파일에 대해서 질의를 한 제 1 장치에 대응하는 비트들의 시퀀스 대신에 사용될 수 있다. 예를 들어서, 값들의 랜덤 시퀀스, 랜덤 비트들의 시퀀스, 동일한 파일에 대해서 질의를 한 제 2 장치에 대응하는 비트들의 시퀀스, 동일한 파일에 대해서 질의를 한 임의의 장치에 대응하는 비트들의 시퀀스, 또는 난수가 사용될 수 있다.
도 8은 실시예에 따른 예시적인 프로세서에 연결된 메모리의 블록도이다. 도 8은 일 실시예에 따른 프로세서 코어(800)를 예시한다. 프로세서 코어(800)는 마이크로프로세서, 내장형 프로세서, 디지털 신호 프로세서(DSP), 네트워크 프로세서, 또는 코드를 실행하는 다른 장치와 같은 임의의 타입의 프로세서를 위한 코어일 수 있다. 오직 하나의 프로세서 코어(800)가 도 8에 예시되지만, 이와 달리 프로세싱 요소는 도 8에 예시된 프로세서 코어(800)를 2 개 이상을 포함할 수도 있다(예를 들어, 이하에서 도 9에서의 다중-코어 실시예들 참조). 프로세서(800)는 마이크로프로세서, 내장형 프로세서, 디지털 신호 프로세서(DSP), 네트워크 프로세서, 다중-코어 프로세서, 단일 코어 프로세서, 또는 코드를 실행하기 위한 다른 장치와 같은 임의의 타입의 프로세서일 수 있다. 프로세서 코어(800)는 단일-쓰레드 코어이거나, 적어도 하나의 실시예에서, 프로세서 코어(800)는 코어당 2 개 이상의 하드웨어 쓰레드 콘텍스트(또는 "논리 프로세서")를 포함할 수 있다는 점에서 다중 쓰레드형일 수 있다. 이러한 코어들(800)은 본 명세서에서 기술된 바와 같은 방식으로 인스트럭션 코드를 실행하도록 구성될 수 있다. 도 8에 도시된 이러한 시스템이 사용되어서 도 1, 도 2, 등에서 도시된 보안 서버, 평판도 정보 시스템, 쿼리 시스템, 및 임의의 구성요소에 의해서, 본 명세서에서 기술되는 기능들이 수행되게 할 수 있다.
도 8은 프로세서(800)에 연결된 메모리(870)를 또한 예시한다. 메모리(870)는 본 기술 분야의 당업자에게 알려지거나 이와 달리 가용한 바와 같은 매우 다양한 메모리들(다양한 층들의 메모리 계층을 사용하는 것을 포함함) 중 임의의 것일 수 있다. 메모리(870)는 프로세서 코어(800)에 의해서 실행될 하나 이상의 코드 인스트럭션(들)(813)을 포함할 수 있다. 프로세서 코어(800)는 코드(813)에 의해서 표시된 바와 같은 인스트럭션들의 프로그램 시퀀스를 따른다. 각 인스트럭션은 프론트 엔드 부분(810)으로 들어가서 하나 이상의 디코더들(820)에 의해서 프로세싱된다. 디코더는 소정의 포맷으로 고정 폭 마이크로 동작과 같은 마이크로 동작을 그의 출력으로서 생성하거나, 최초의 코드 인스트럭션을 반영한 다른 인스트럭션들, 마이크로인스트럭션들, 또는 제어 신호들을 생성할 수 있다. 프론트 엔드 부분(810)은 또한 레지스터 재명명 로직(825) 및 스케줄링 로직(830)을 포함하며, 이들은 전반적으로 자원들을 할당하고 실행할 변환 인스트럭션에 대응하는 동작을 큐잉할 수 있다.
프로세서(800)는 도시된 바와 같이 실행 유닛들(855-1 내지 855-N)의 세트를 갖는 실행 로직(850)을 포함한다. 일부 실시예들은 특정 기능들 또는 기능들의 세트들에 전용되는 다수의 실행 유닛들을 포함할 수 있다. 다른 실시예들은 특정 기능을 수행할 수 있는 오직 하나의 실행 유닛 또는 하나의 실행 유닛을 포함할 수 있다. 실행 로직(850)은 코드 인스트럭션들에 의해서 특정된 동작들을 수행한다.
코드 인스트럭션들에 의해서 특정된 동작들의 실행 완료 이후에, 백 엔드 로직(860)은 코드(813)의 인스트럭션들을 회수한다. 일 실시예에서, 프로세서(800)는 인스트럭션들의 무순서 실행을 허용하지만, 인스트럭션들의 순서적 회수를 요구한다. 회수 로직(x65)은 본 기술 분야의 당업자에게 알려진 다양한 형태(예를 들어, 리코더 버퍼들 등)를 취할 수 있다. 이러한 방식으로, 프로세서 코어(8OO)는 코드(813)의 실행 동안에, 적어도, 디코더에 의해서 생성된 출력, 레지스터 재명명 로직(825)에 의해서 사용된 하드웨어 레지스터들 및 테이블들, 및 실행 로직(850)에 의해서 수정된 임의의 레지스터들(미도시)이 변환된다.
도 8에서는 예시되지 않았지만, 프로세싱 요소는 프로세서 코어(8OO)를 갖는 칩 상의 다른 요소들을 포함할 수 있다. 예를 들어서, 프로세싱 요소는 프로세서 코어(200)와 함께 메모리 제어 로직(예를 들어, 이하에서, 도 9의 MC(972)참조)을 포함할 수 있다. 프로세싱 요소는 I/O 제어 로직 및/또는 메모리 제어 로직에 통합된 I/O 제어 로직을 포함할 수 있다. 프로세싱 요소는 또한 하나 이상의 캐시들을 포함할 수도 있다.
도 9는 실시예에 따른 포인트-대-포인트(PtP) 구성으로 구성된 예시적인 컴퓨팅 시스템의 블록도이다. 도 9에서는, 제 1 프로세싱 요소(970) 및 제 2 프로세싱 요소(980)를 포함하는 다중프로세서 시스템(900)이 도시된다. 2 개의 프로세싱 요소들(970 및 980)이 도시되었지만, 시스템(900)의 실시예는 오직 하나의 이러한 프로세싱 요소만을 포함할 수도 있다는 것이 이해되어야 한다. 도 9에 도시된 이러한시스템은, 도 1, 도 2, 등에서 도시된 보안 서버, 평판도 정보 시스템, 쿼리 시스템, 및 임의의 구성요소들에 의해서, 본 명세서에서 기술된 기능들이 수행되게 하는데 사용될 수 있다.
시스템(900)은 포인트-대-포인트 상호접속 시스템으로서 예시되며, 제 1 프로세싱 요소(970) 및 제 2 프로세싱 요소(980)가 포인트-대-포인트 상호접속부(950)를 통해서 연결된다. 도 9에 예시된 상호접속부들 모드 또는 임의의 것은 포인트-대-포인트 상호접속부가 아닌 다중-드랍 버스로서 구현될 수도 있다는 것이 이해되어야 한다.
도 9에 도시된 바와 같이, 프로세싱 요소들(970 및 980) 각각은, 제 1 및 제 2 프로세서 코어들(즉, 프로세서 코어들(974a 및 974b) 및 프로세서 코어들(984a 및 984b))을 포함하는 다중 코어 프로세서들일 수 있다. 이러한 코어들(974a, 974b, 984a, 984b)은 본 명세서에서 기술된 방식으로 인스트럭션 코드를 실행하도록 구성될 수 있다.
각 프로세싱 요소(970, 980)는 적어도 하나의 공유형 캐시(1896)를 포함할 수 있다. 상기 공유형 캐시(1896a, 1896b)는 각기 코어들(974a, 974b 및 984a, 984b)과 같은 프로세서의 하나 이상의 구성요소들에 의해서 사용되는 데이터(예를 들어, 인스트럭션들)를 저장할 수 있다. 예를 들어서, 공유형 캐시는 프로세서의 구성요소들에 의한 고속 액세스를 위해서 메모리(932, 934) 내에 저장된 데이터를 국부적으로 캐시할 수 있다. 하나 이상의 실시예들에서, 상기 공유형 캐시는 하나 이상의 중간-레벨 캐시들, 예를 들어서, 레벨 2(L2), 레벨 3(L3), 레벨 4(L4), 또는 다른 레벨의 캐시, 최종 레벨 캐시(LLC), 및/또는 이들의 조합을 포함할 수 있다.
오직 2 개의 프로세싱 요소들(970, 980)만이 도시되었지만, 본 명세서의 범위는 이로 한정되지 않는다는 것이 이해되어야 한다. 다른 실시예들에서, 하나 이상의 추가 프로세싱 요소들이 소정의 프로세서 내에 존재할 수 있다. 이와 달리, 프로세싱 요소들(970, 980) 중 하나 이상은 ASIC 칩 또는 필드 프로그램가능한 게이트 어레이와 같은, 프로세서가 아닌 요소일 수 있다. 예를 들어서, 추가 프로세싱 요소(들)는 제 1 프로세서(970)와 동일한 추가 프로세서(들), 제 1 프로세서(970)와 이종이거나 비대칭적인 추가 프로세서(들), 가속화기들(예를 들어, 그래픽 가속화기들 또는 디지털 신호 프로세싱(DSP) 유닛들), 필드 프로그램가능한 게이트 어레이들 또는 임의의 다른 프로세싱 요소를 포함할 수 있다. 구조적, 미세구조적, 열적, 전력 소비 특성을 포함하는 이점의 척도의 측면에서, 프로세싱 요소들(970, 980) 간에 다양한 차가 존재할 수 있다. 이러한 차들은 프로세싱 요소들(970, 980) 간의 비대칭성 및 이종성으로서 효과적으로 자체적으로 나타날 수 있다. 적어도 하나의 실시예에서, 다양한 프로세싱 요소들(970, 980)은 동일한 다이 패키지 내에 상주할 수 있다.
제 1 프로세싱 요소(970)는 또한 메모리 제어기 로직(MC)(972) 및 포인트-대-포인트(P-P)인터페이스들(976 및 978)을 포함할 수 있다. 마찬가지로, 제 2 프로세싱 요소(980)는 MC(982) 및 P-P 인터페이스들(986 및 988)을 포함할 수 있다. 도 9에 도시된 바와 같이, MC들(972 및 982)은 프로세서들을 각각의 메모리들, 즉 메모리 932 및 메모리 934에 연결시키며, 이 메모리들은 각각의 프로세서들에 국부적으로 부착된 메인 메모리의 일부분일 수 있다. MC 로직(972 및 982)이 프로세싱 요소들(970, 980) 내에 통합된 것으로서 도시되지만, 다른 실시예들에서, MC 로직은 프로세싱 요소들(970, 980) 내에 통합되는 것이 아니라, 프로세싱 요소들(970, 980)외측의 개별 로직일 수 있다.
제 1 프로세싱 요소(970) 및 제 2 프로세싱 요소(980)는 각기 P-P 상호접속부들(976, 986 및 984)을 통해서 I/O 서브시스템(990)에 연결될 수 있다. 도 9에 도시된 바와 같이, I/O 서브시스템(990)은 P-P 인터페이스들(994 및 998)을 포함한다. 또한, I/O 서브시스템(990)은 I/O 서브시스템(990)을 고성능 그래픽 엔진(938)에 연결시키는 인터페이스(992)를 포함한다. 일 실시예에서, 버스(949)가 사용되어서 고성능 그래픽 엔진(938)을 I/O 서브시스템(990)에 연결시킨다. 이와 달리, 포인트-대-포인트 상호접속부(939)가 이러한 구성요소들을 연결시킬 수도 있다.
이어서, I/O 서브시스템(990)은 인터페이스(996)를 통해서 제 1 버스(916)에 연결될 수 있다. 일 실시예에서, 제 1 버스(916)는 주변 구성요소 상호접속부(PCI)버스, 또는 PCI Express 버스 또는 다른 제 3 세대 I/O 상호접속 버스와 같은 버스일 수 있지만, 본 발명의 범위는 이로 한정되지 않는다.
도 9에 도시된 바와 같이, 다양한 I/O 장치들(914)은 제 1 버스(916)를 제 2 버스(920)에 연결시킬 수 있는 버스 브리지 918와 함께, 제 1 버스(916)에 연결될 수 있다. 일 실시예에서, 제 2 버스(920)는 LPC(low pin count) 버스일 수 있다. 다양한 장치들이, 예를 들어서, 키보드/마우스(912), 통신 장치(들)(926)(이는 이어서 컴퓨터 네트워크(202)와 통신할 수 있음), 및 디스크 드라이브와 같은 데이터 저장부(928) 또는 일 실시예에서, 코드(930)를 포함할 수 있는 다른 대용량 저장 장치가 제 2 버스(920)에 연결될 수 있다. 코드(930)는 상술한 바와 같은 방법들 중 하나 이상의 실시예들을 수행하기 위한 인스트럭션들을 포함할 수 있다. 또한, 오디오 I/O(924)가 제 2 버스(920)에 연결될 수 있다.
다른 실시예들이 고려가능하다는 것이 주목된다. 예를 들어서, 도 9의 포인트-대-포인트 구조 대신에, 시스템은 통신 다중-드랍 버스 또는 다른 이렇나 통신 토폴러지를 구현할 수 있다. 또한, 도 9의 요소들은 이와 달리, 도 9에 도시된 것보다 많거나 적은 집적된 칩들을 사용하여서 파티션될 수 있다.
본 명세서에서 제공된 다양한 실례들에 있어서, 상호작용은 2 개, 3 개, 4 개 또는 그 이상의 컴퓨팅 장치들의 측면에서 기술될 수 있다는 것이 주목된다. 하지만, 이는 명료성을 위해서 그리고 오직 실례로서 이루어진 것뿐이다. 특정 경우들에서, 오직 한정된 개수의 컴퓨팅 장치들을 참조함으로써 소정의 플로우 세트들의 기능들 중 하나 이상을 기술하는 것이 보다 용이할 수 있다. 또한, 본 명세서의 하나 이상의 실시예들에 따른 평판도 정보, 출현율 정보의 제공 및 보안 데이터 분석은 용이하게 스케일링가능하며, 많은 수의 구성요소들, 보다 복잡한/정교한 배열요소들 및 구성들에 걸쳐서 구현될 수 있다. 따라서, 제공된 실례들은 수많은 다른 아키텍처들로 잠재적으로 적용될 수 있는, 평판도 정보, 출현율 정보의 제공 및 보안 데이터 분석의 넓은 교시사항을 한정하는 방식으로 해석되어서는 안된다.
평판도 정보, 출현율 정보의 제공 및 보안 데이터 분석과 관련된 기능들은 도 1 내지 도 9에서 예시된 시스템들 내에서 또는 이 시스템들에 의해서 실행될 수 있는 가능한 기능들의 오직 일부만을 예시한다는 것을 주목하는 것이 또한 중요하다. 이러한 동작들 중 일부는 적합하다면 삭제 또는 제거될 수 있거나, 본 개시의 범위를 벗어나지 않으면서, 이러한 동작들은 크게 수정 또는 변경될 수도 있다. 추가적으로, 이러한 동작들의 타이밍은 크게 변화될 수 있다. 선행하는 동작 상의 흐름들은 예시적 설명을 위한 것일 뿐이다. 임의의 적합한 배열들, 시간적 순서들, 구성들 및 타이밍 메카니즘들은 본 개시의 교시사항을 벗어나지 않으면서 제공될 수 있다는 점에서, 본 명세서에서 기술된 실시예들에서 실질적 유연성이 제공된다.
일 예시적인 구현예에서, 본 명세서에서 기술된 실시예들을 구현하는데 개입된 다양한 장치들 또는 구성요소들은 기술된 기능들을 달성하기 위한 소프트웨어를 포함할 수 있으며, 본 명세서에서 기술된 이러한 장치들 또는 구성요소들은 본 명세서에서 기술된 동작들을 실시하기 위한 하나 이상의 비일시적, 유형의 매체 내에 내장된 소프트웨어를 포함할 수 있다. 본 명세서에서 기술된 시스템들 및 장치들(예를 들어, 도 1, 도 2 등에서 도시된 보안 서버, 평판도 정보 시스템, 쿼리 시스템, 및 임의의 구성요소들)의 적어도 부분은 또한, 본 명세서에서 개략된 바와 같은 기능들을 달성하는데 사용될 정보를 저장하기 위한 메모리 장치(또는 메모리 요소)를 포함할 수 있다. 추가적으로, 본 명세서에서 기술된 시스템들 및 장치들(예를 들어, 도 1, 도 2 등에서 도시된 보안 서버, 평판도 정보 시스템, 쿼리 시스템, 및 임의의 구성요소들)은 본 명세서에서 논의된 바와 같은, 기능들이 수행되게 하나 이상의 소프트웨어를 실행할 수 있는 하나 이상의 프로세서들을 포함할 수 있다. 이러한 장치들은 적합하다면 또는 특정 필요에 따라서, 임의의 적합한 메모리 요소(랜덤 액세스 메모리("RAM"), ROM, EPROM, EEPROM, ASIC, 등), 소프트웨어, 하드웨어 내에, 또는 임의의 다른 적합한 구성요소, 장치, 요소, 또는 객체 내에 정보를 유지할 수 있다. 데이터 저장부(들) 및 데이터 소스(들)와 같은, 본 명세서에서 논의된 메모리 항목들 중 임의의 것은 넓은 용어 "메모리 요소" 내에 포함되는 것으로서 해석되어야 한다. 마찬가지로, 본 명세서에서 기술된 잠재적 프로세싱 요소들, 모듈들, 및 머신들 중 임의의 것은 넓은 용어 "프로세서" 내에 포함되는 것으로서 해석되어야 한다. 네트워크 요소들 각각도 또한 네트워크 환경에서 데이터 또는 정보를 수신, 송신 및/또는 이와 달리 통신하기 위한 적합한 인터페이스들을 또한 포함할 수도 있다.
특정 예시적인 구현예들에서, 본 명세서 및 본 명세서 내에 포함된 도면들 중 임의의 것에서 개략된 기능들은 하나 이상의 유형의 매체(예를 들어, "ASIC"로 제공되는 내장형 로직, 디지털 신호 프로세서("DSP") 인스트럭션들, 프로세서 또는 또는 다른 유사한 머신에 의해서 실행될 소프트웨어(잠재적으로 객체 코드 및 소스 코드를 포함함), 등) 내에서 인코딩된 로직에 의해서 구현될 수 있다. 이러한 실례들 중 일부에서, 메모리 요소는 본 명세서에서 기술된 동작들을 위해서 사용된 데이터를 저장하게 제공된다. 이는 본 명세서에서 기술된 동작들을 수행하도록 실행되는 소프트웨어, 로직, 코드, 또는 프로세서 인스트럭션들을 저장할 수 있는 메모리 요소를 포함한다. 프로세서는 데이터와 연관된 임의의 타입의 인스트럭션들을 수행하여서 본 명세서에서 상세된 동작들을 달성한다. 일 실례에서, 프로세서는 요소 또는 대상(예를 들어, 데이터)를 일 상태 또는 사물에서 다른 상태 또는 사물로 변환시킬 수 있다. 다른 실례에서, 본 명세서에서 개략된 동작들은 고정된 로직 또는 프로그램가능한 로직(예를 들어, 프로세서에 의해서 실행되는 소프트웨어/컴퓨터 인스트럭션들)에 의해서 구현될 수 있으며, 본 명세서에서 식별된 요소들은 디지털 로직, 소프트웨어, 코드, 전자적 인스트럭션들, 또는 이들의 임의의 적합한 조합을 포함하는 ASIC, 프로그램가능한 프로세서, 프로그램가능한 디지털 로직(예를 들어, 필드 프로그램가능한 게이트 어레이("FPGA"), 소거가능한 프로그램가능한 판독 전용 메모리("EPROM"), 또는 전기적으로 소거가능한 프로그램가능한 ROM("EEPROM"))의 일부 타입일 수 있다.
프로그램 인스트럭션들은 사용되어서, 이 인스트럭션들로 프로그램된 범용 또는 특정 목적용 프로세싱 시스템이 본 명세서에서 기술된 동작들을 수행하도록 하게 할 수 있다. 이와 달리, 동작들은 동작들을 수행하기 위한 하드와어어된 로직을 포함하는 특정 하드웨어 구성요소들에 의해서 수행되거나, 프로그램된 컴퓨터 구성요소들 및 통상적 하드웨어 구성요소들의 임의의 조합에 의해서 수행될 수 있다. 본 명세서에서 기술된 방법들은 본 방법들을 수행하도록 프로세싱 시스템 또는 다른 전자적 장치를 프로그래밍하는데 사용될 수 있는 인스트럭션들을 그 상에 저장한 하나 이상의 비일시적, 유형의, 머신 판독가능한 매체를 포함할 수 있는 컴퓨터 프로그램 제품으로서 제공될 수 있다. 본 명세서에서 사용되는 용어 "머신 판독가능한 매체"는 머신에 의해서 실행되어서 본 명세서에서 기술된 방법들 중 임의의 하나를 머신으로 하여금 수행하도록 하는 인스트럭션들의 시퀀스를 저장 또는 인코딩할 수 있는 임의의 매체를 포함할 수 있다. 용어 "비일시적 머신 판독가능한 매체"는 따라서 다음으로 한정되지 않지만, 고체상 메모리, 광학 디스크 또는 자기 디스크와 같은 메모리를 포함할 수 있다. 또한, 본 기술 분야에서 소프트웨어를, 조치를 취하거나 결과를 낳은 것으로서의 일 형태 또는 다른 형태(예를 들어, 프로그램, 절차, 프로세스, 애플리케이션, 모듈, 로직, 등)로 지칭하는 것은 통상적이다. 이러한 지칭들은 프로세싱 시스템에 의한 소프트웨어의 실행이 프로세서로 하여금 동작을 수행하거나 결과를 낳도록 하는 것을 진술하는 단지 약칭 방식이다.
본 명세서에서 논의된 대부분의 인프라스트럭처(예를 들어, 도 1, 도 2, 등에 도시된 보안 서버, 평판도 정보 시스템, 쿼리 시스템, 및 임의의 구성요소들)는 임의의 타입의 네트워크 요소의 일부로서 프로비전닝될 수 있다는 것이 주목되어야 한다. 본 명세서에서 사용된 바와 같이, 평판도 정보, 출현율 정보의 제공 및 보안 데이터 분석을 위해서 도 1 및 도 2에 도시된, 용어들 보안 서버, 평판도 정보 시스템, 쿼리 시스템, 및 임의의 구성요소들은 컴퓨터들, 서버들, 네트워크 장치, 호스트들, 라우터들, 스위치들, 게이트웨이들, 브리지들, 가상 장비들, 부하-밸랜서들, 방화벽들, 프로세서들, 모듈들, 또는 네트워크 환경에서 정보를 교환하도록 동작가능한 임의의 다른 적합한 장치, 구성요소, 요소, 또는 객체를 망라할 수 있다. 또한, 네트워크 요소들은 이들의 동작들을 실현할 수 있는 임의의 적합한 하드웨어, 소프트웨어, 구성요소들, 모듈들, 인터페이스들, 또는 객체들을 포함할 수 있다. 이는 데이터 또는 정보의 효과적인 교환을 가능하게 하는 적합한 알고리즘들 및 통신 프로토콜들을 포함할 수 있다.
본 개시가 특정 배열 및 구성을 참조하여서 세부적으로 기술되었지만, 이러한 예시적인 구성 및 배열은 본 개시의 범위를 벗어나지 않으면서 크게 변화될 수 있다. 예를 들어서, 본 개시는 특정 통신 교환사항을 참조하여서 기술하였지만, 본 명세서에서 기술된 실시예들은 다른 구조에도 적용가능하다.
수많은 변경사항들, 치환사항들, 변형사항들, 변화사항들 및 수정사항들이 본 기술 분야의 당업자에게 알려질 수 있으며, 본 개시는 이러한 모든 변경사항들, 치환사항들, 변형사항들, 변화사항들 및 수정사항들을 첨부된 청구항들의 범위 내에 포함되는 것와 같이 포함할 수 있다는 것이 의도된다. 미국 특허청(USPTO) 및, 추가적으로, 본원에 대해서 발행되는 임의의 특허의 임의의 독자들이 본원에 첨부된 청구항들을 해석하는 것을 돕기 위해서, 출원인은 (a) 첨부된 청구항들 중 어느 것도 이의 출원 일자에 존재하는 바와 같이, "기능식 청구항" 형태가 특정 청구항들에서 특정하게 사용되지 않은 이상, 35 U.S.C. 섹션 112의 단락(6)이 적용되어서는 안 되며; 그리고, (b) 본 명세서에서의 임의의 서술에 의해서, 첨부된 청구항들에서 상기 서술과 달리 반영되지 않은 임의의 방식으로 본 개시를 제한해서도 안 된다는 것을 언급하고자 한다.
"출원인은 자신이 용어를 정의하는 정의자로서 자격이 있다는 것이 확실한 원리" MPEP 2111.01(IV), citing In re Paulson, 30 F.3d 1475, 1480(Fed. Cir. 1994)에 따라서, 특정 용어들은 본 명세서에서 직접적으로 정의되었다. 이러한 용어들은 이러한 정의들과 부합하지 않는 어떠한 해석도 주어지지 말아야 하며 이러한 용어들은 제공된 정의사항을 갖는다는 것이 명시적으로 의도된다.
다음의 실례들은 본 발명의 일부 실시예들에 관한 것이다.
실례 1은 쿼리에 기초하여서 출현율 정보를 제공하기 위한 인스트럭션들을 저장한 비-일시적 머신 판독가능한 저장 매체이며, 상기 인스트럭션들은 적어도 하나의 프로세서들에 의해 실행될 때 상기 적어도 하나의 프로세서들로 하여금, 목표 값들의 시퀀스를 데이터 소스로부터 검색하는 동작과, 쿼리 데이터를 통신 장치로부터 수신하는 동작과, 상기 통신 장치와 연관된 식별자에 기초하여 쿼리 값들의 시퀀스를 생성하는 동작과, 상기 쿼리 값들의 시퀀스와 상기 목표 값들의 시퀀스를 비교하여 매칭 값들의 수를 식별하는 동작과, 적어도 부분적으로, 상기 매칭 값들의 수에 기초하여, 상기 쿼리 데이터에 대한 출현율 값을 상기 통신 장치에 출력하는 동작을 수행하게 한다.
실례 2에서, 실례 1의 논의 대상에서, 선택사양적으로, 상기 인스트럭션들은 적어도 하나의 프로세서들에 의해서 실행될 때 상기 적어도 하나의 프로세서들로 하여금, 상기 매칭 값들의 수가 데이터 저장부 내에 저장된 최대 매칭 수를 초과한다고 결정되면, 상기 데이터 저장부 내의 최대 매칭 수를 업데이트하는 동작과, 통계적 모델을 사용하여, 상기 최대 매칭 수에 기초하여서 상기 출현율 값 및 상기 출현율 값에서의 신뢰도를 계산하는 동작을 수행하게 할 수 있다.
실례 3에서, 실례 1 또는 실례 2의 논의 대상에서, 선택사양적으로, 상기 인스트럭션들은 적어도 하나의 프로세서들에 의해서 실행될 때 상기 적어도 하나의 프로세서들로 하여금, 추가 쿼리 데이터를 상기 통신 장치로부터 수신하는 동작―상기 추가 쿼리 데이터 및 상기 쿼리 데이터는 동일함―과, 상기 추가 쿼리 데이터 수신에 응답하여, 상기 데이터 저장부 내의 최대 매칭 수를 업데이트하지 않음으로써 상기 데이터 저장부 내의 최대 매칭 수를 유지하는 동작을 수행하게 할 수 있다.
실례 4에서, 실례 1 내지 실례 3 중 임의의 하나의 실례의 논의 대상에서, 선택사양적으로, 상기 비교하는 동작은 상기 쿼리 값들의 시퀀스 내의 가장 처음의 값 및 상기 목표 값들의 시퀀스 내의 가장 처음의 값에서 시작하여서, 상기 쿼리 값들의 시퀀스 내의 연속하는 값들과 상기 목표 값들의 시퀀스 내의 대응하는 연속하는 값들을 쌍으로 해서 비교하는 동작을 포함할 수 있다.
실례 5에서, 실례 1 내지 실례 4 중 임의의 하나의 실례의 논의 대상에서, 선택사양적으로, 상기 목표 값들의 시퀀스를 상기 데이터 소스로부터 검색하는 동작은, 제 1 쿼리 데이터를 제 1 통신 장치로부터 수신하는 동작과, 상기 제 1 통신 장치와 연관된 식별자에 기초하여 비트들의 제 1 시퀀스를 생성하는 동작과, 상기 비트들의 제 1 시퀀스를 상기 데이터 저장부 내에 상기 목표 값들의 시퀀스로서 저장하는 동작을 포함할 수 있다.
실례 6에서, 실례 5의 논의 대상에서, 선택사양적으로, 상기 쿼리 데이터를 상기 통신 장치로부터 수신하는 동작은 제 2 쿼리 데이터를 제 2 통신 장치로부터 수신하는 동작을 포함하며, 상기 통신 장치와 연관된 식별자에 기초하여 상기 쿼리 값들의 시퀀스를 생성하는 동작은 상기 제 2 통신 장치와 연관된 식별자에 기초하여 비트들의 제 2 시퀀스를 생성하는 동작을 포함할 수 있다.
실례 7에서, 실례 6의 논의 대상에서, 선택사양적으로, 상기 비트들의 제 1 시퀀스를 생성하는 동작은 해시 함수를 상기 제 1 통신 장치와 연관된 식별자에 적용하여 상기 비트들의 제 1 시퀀스를 생성하는 동작을 포함하며, 상기 비트들의 제 2 시퀀스를 생성하는 동작은 상기 해시 함수를 상기 제 2 통신 장치와 연관된 식별자에 적용하여 상기 비트들의 제 2 시퀀스를 생성하는 동작을 포함할 수 있다.
실례 8에서, 실례 7의 논의 대상에서, 선택사양적으로, 상기 해시 함수는 메시지-다이제스트(message-digest) 알고리즘, 암호 해시 함수, 메시지-다이제스트 알고리즘 5(MD5), 보안 해시 알고리즘 1(SHA1), 또는 보안 해시 알고리즘(SHA256) 중 적어도 하나를 포함할 수 있다.
실례 9에서, 실례 1 내지 실례 8 중 임의의 하나의 실례의 논의 대상에서, 선택사양적으로, 상기 쿼리 데이터는 파일의 해시일 수 있다.
실례 10에서, 실례 1 내지 실례 9 중 임의의 하나의 실례의 논의 대상에서, 선택사양적으로, 상기 쿼리 값들의 시퀀스의 길이는 임계 값에 기초하여 결정될 수 있다.
실례 11에서, 실례 2 내지 실례 10 중 임의의 하나의 실례의 논의 대상에서, 선택사양적으로, 상기 인스트럭션들은 적어도 하나의 프로세서들에 의해서 실행될 때 상기 적어도 하나의 프로세서들로 하여금, 상기 출현율 값에서의 신뢰도에 기초하여 상기 출현율 값을 가중화하는 동작을 수행하게 할 수 있다.
실례 12에서, 실례 1 내지 실례 11 중 임의의 하나의 실례의 논의 대상에서, 선택사양적으로, 상기 출현율 값은 10의 승배에 대응하는 적어도 하나의 값을 포함할 수 있다.
실례 13에서, 실례 2 내지 실례 12 중 임의의 하나의 실례의 논의 대상에서, 선택사양적으로, 상기 신뢰도는 상기 적어도 하나의 값에 대해 계산된 확률을 포함할 수 있다.
실례 14는 쿼리에 기초하여 출현율 정보를 제공하기 위한 장치이며, 이 장치는 적어도 하나의 메모리 요소와, 상기 적어도 하나의 메모리 요소에 연결된 적어도 하나의 프로세서와, 상기 적어도 하나의 프로세서에 연결된 평판도 정보 서버를 포함하며, 상기 평판도 정보 서버는, 목표 값들의 시퀀스를 데이터 소스로부터 검색하고, 쿼리 데이터를 통신 장치로부터 수신하고, 상기 통신 장치와 연관된 식별자에 기초하여 쿼리 값들의 시퀀스를 생성하고, 상기 쿼리 값들의 시퀀스와 상기 목표 값들의 시퀀스를 비교하여 매칭 값들의 수를 식별하고, 적어도 부분적으로, 상기 매칭 값들의 수에 기초하여, 상기 쿼리 데이터에 대한 출현율 값을 상기 통신 장치에 출력하도록 구성된다.
실례 15에서, 실례 14의 논의 대상에서, 선택사양적으로, 상기 평판도 정보 서버는, 상기 매칭 값들의 수가 데이터 저장부 내에 저장된 최대 매칭 수를 초과한다고 결정되면, 상기 데이터 저장부 내의 최대 매칭 수를 업데이트하고, 통계적 모델을 사용하여, 상기 최대 매칭 수에 기초하여 상기 출현율 값 및 상기 출현율 값에서의 신뢰도를 계산하도록 더 구성될 수 있다.
실례 16에서, 실례 14 또는 15의 논의 대상에서, 선택사양적으로, 상기 평판도 정보 서버는, 추가 쿼리 데이터를 상기 통신 장치로부터 수신하고―상기 추가 쿼리 데이터 및 상기 쿼리 데이터는 동일함―, 상기 추가 쿼리 데이터를 수신하는 것에 응답하여, 상기 데이터 저장부 내의 최대 매칭 수를 업데이트하지 않음으로써 상기 데이터 저장부 내의 최대 매칭 수를 유지하도록 더 구성될 수 있다.
실례 17에서, 실례 14 내지 실례 16 중 임의의 하나의 실례의 논의 대상에서, 선택사양적으로, 상기 비교하는 것은 상기 쿼리 값들의 시퀀스 내의 가장 처음의 값 및 상기 목표 값들의 시퀀스 내의 가장 처음의 값에서 시작하여, 상기 쿼리 값들의 시퀀스 내의 연속하는 값들과 상기 목표 값들의 시퀀스 내의 대응하는 연속하는 값들을 쌍으로 해서 비교하는 것을 포함할 수 있다.
실례 18에서, 실례 14 내지 실례 17 중 임의의 하나의 실례의 논의 대상에서, 선택사양적으로, 상기 목표 값들의 시퀀스를 상기 데이터 소스로부터 검색하는 것은, 제 1 쿼리 데이터를 제 1 통신 장치로부터 수신하는 것과, 상기 제 1 통신 장치와 연관된 식별자에 기초하여 비트들의 제 1 시퀀스를 생성하는 것과, 상기 비트들의 제 1 시퀀스를 상기 데이터 저장부 내에 상기 목표 값들의 시퀀스로서 저장하는 것을 포함할 수 있다.
실례 19에서, 실례 18의 논의 대상에서, 선택사양적으로, 상기 쿼리 데이터를 상기 통신 장치로부터 수신하는 것은 제 2 쿼리 데이터를 제 2 통신 장치로부터 수신하는 것을 포함하며, 상기 통신 장치와 연관된 식별자에 기초하여서 상기 쿼리 값들의 시퀀스를 생성하는 것은 상기 제 2 통신 장치와 연관된 식별자에 기초하여 비트들의 제 2 시퀀스를 생성하는 것을 포함할 수 있다.
실례 20에서, 실례 19의 논의 대상에서, 선택사양적으로, 상기 비트들의 제 1 시퀀스를 생성하는 것은 해시 함수를 상기 제 1 통신 장치와 연관된 식별자에 적용하여 상기 비트들의 제 1 시퀀스를 생성하는 것을 포함하며, 상기 비트들의 제 2 시퀀스를 생성하는 것은 상기 해시 함수를 상기 제 2 통신 장치와 연관된 식별자에 적용하여 상기 비트들의 제 2 시퀀스를 생성하는 것을 포함할 수 있다.
실례 21에서, 실례 20의 논의 대상에서, 선택사양적으로, 상기 해시 함수는 메시지-다이제스트(message-digest) 알고리즘, 암호 해시 함수, 메시지-다이제스트 알고리즘 5(MD5), 보안 해시 알고리즘 1(SHA1), 또는 보안 해시 알고리즘(SHA256) 중 적어도 하나를 포함할 수 있다.
실례 22에서, 실례 14 내지 실례 21 중 임의의 하나의 실례의 논의 대상에서, 선택사양적으로, 상기 쿼리 데이터는 파일의 해시일 수 있다.
실례 23에서, 실례 14 내지 실례 22 중 임의의 하나의 실례의 논의 대상에서, 선택사양적으로, 상기 쿼리 값들의 시퀀스의 길이는 임계 값에 기초하여서 결정될 수 있다.
실례 24에서, 실례 15 내지 실례 23 중 임의의 하나의 실례의 논의 대상에서, 선택사양적으로, 상기 평판도 정보 서버는 상기 적어도 하나의 프로세서들로 하여금, 상기 출현율 값에서의 신뢰도에 기초하여서 상기 출현율 값을 가중화하는 동작을 수행하도록 구성될 수 있다.
실례 25에서, 실례 14 내지 실례 24 중 임의의 하나의 실례의 논의 대상에서, 선택사양적으로, 상기 출현율 값은 10의 승배에 대응하는 적어도 하나의 값을 포함할 수 있다.
실례 26에서, 실례 15 내지 실례 25 중 임의의 하나의 실례의 논의 대상에서, 선택사양적으로, 상기 신뢰도는 상기 적어도 하나의 값에 대해서 계산된 확률을 포함할 수 있다.
실례 27은 쿼리에 기초하여 출현율 정보를 제공하기 위한 방법이며, 이 방법은 목표 값들의 시퀀스를 데이터 소스로부터 검색하는 단계와, 쿼리 데이터를 통신 장치로부터 수신하는 단계와, 상기 통신 장치와 연관된 식별자에 기초하여 쿼리 값들의 시퀀스를 생성하는 단계와, 상기 쿼리 값들의 시퀀스와 상기 목표 값들의 시퀀스를 비교하여 매칭 값들의 수를 식별하는 단계와, 적어도 부분적으로, 상기 매칭 값들의 수에 기초하여, 상기 쿼리 데이터에 대한 출현율 값을 상기 통신 장치에 출력하는 단계를 포함한다.
실례 28에서, 실례 27의 논의 대상은, 선택사양적으로, 상기 매칭 값들의 수가 데이터 저장부 내에 저장된 최대 매칭 수를 초과한다고 결정되면, 상기 데이터 저장부 내의 최대 매칭 수를 업데이트하는 단계와, 통계적 모델을 사용하여, 상기 최대 매칭 수에 기초하여 상기 출현율 값 및 상기 출현율 값에서의 신뢰도를 계산하는 단계를 더 포함할 수 있다.
실례 29에서, 실례 27 또는 실례 28의 논의 대상은, 선택사양적으로, 추가 쿼리 데이터를 상기 통신 장치로부터 수신하는 단계―상기 추가 쿼리 데이터 및 상기 쿼리 데이터는 동일함―와, 상기 추가 쿼리 데이터를 수신하는 것에 응답하여, 상기 데이터 저장부 내의 최대 매칭 수를 업데이트하지 않음으로써 상기 데이터 저장부 내의 최대 매칭 수를 유지하는 단계를 더 포함할 수 있다.
실례 30에서, 실례 27 내지 실례 29 중 임의의 하나의 실례의 논의 대상에서, 선택사양적으로, 상기 비교하는 단계는 상기 쿼리 값들의 시퀀스 내의 가장 처음의 값 및 상기 목표 값들의 시퀀스 내의 가장 처음의 값에서 시작하여서, 상기 쿼리 값들의 시퀀스 내의 연속하는 값들과 상기 목표 값들의 시퀀스 내의 대응하는 연속하는 값들을 쌍으로 해서 비교하는 단계를 포함할 수 있다.
실례 31에서, 실례 27 내지 실례 30 중 임의의 하나의 실례의 논의 대상에서, 선택사양적으로, 상기 목표 값들의 시퀀스를 상기 데이터 소스로부터 검색하는 단계는, 제 1 쿼리 데이터를 제 1 통신 장치로부터 수신하는 단계와, 상기 제 1 통신 장치와 연관된 식별자에 기초하여 비트들의 제 1 시퀀스를 생성하는 단계와, 상기 비트들의 제 1 시퀀스를 상기 데이터 저장부 내에 상기 목표 값들의 시퀀스로서 저장하는 단계를 포함할 수 있다.
실례 32에서, 실례 31의 논의 대상에서, 선택사양적으로, 상기 쿼리 데이터를 상기 통신 장치로부터 수신하는 단계는 제 2 쿼리 데이터를 제 2 통신 장치로부터 수신하는 단계를 포함하며, 상기 통신 장치와 연관된 식별자에 기초하여서 상기 쿼리 값들의 시퀀스를 생성하는 단계는 상기 제 2 통신 장치와 연관된 식별자에 기초하여 제 2 비트들의 시퀀스를 생성하는 단계를 포함할 수 있다.
실례 33에서, 실례 32의 논의 대상에서, 선택사양적으로, 상기 비트들의 제 1 시퀀스를 생성하는 단계는 해시 함수를 상기 제 1 통신 장치와 연관된 식별자에 적용하여 상기 비트들의 제 1 시퀀스를 생성하는 단계를 포함하며, 상기 비트들의 제 2 시퀀스를 생성하는 단계는 상기 해시 함수를 상기 제 2 통신 장치와 연관된 식별자에 적용하여서 상기 비트들의 제 2 시퀀스를 생성하는 단계를 포함할 수 있다.
실례 34에서, 실례 33의 논의 대상에서, 선택사양적으로, 상기 해시 함수는 메시지-다이제스트(message-digest) 알고리즘, 암호 해시 함수, 메시지-다이제스트 알고리즘 5(MD5), 보안 해시 알고리즘 1(SHA1), 또는 보안 해시 알고리즘(SHA256) 중 적어도 하나를 포함할 수 있다.
실례 35에서, 실례 27 내지 실례 34 중 임의의 하나의 실례의 논의 대상에서, 선택사양적으로, 상기 쿼리 데이터는 파일의 해시일 수 있다.
실례 36에서, 실례 27 내지 실례 35 중 임의의 하나의 실례의 논의 대상에서, 선택사양적으로, 상기 쿼리 값들의 시퀀스의 길이는 임계 값에 기초하여서 결정될 수 있다.
실례 37에서, 실례 28 내지 실례 36 중 임의의 하나의 실례의 논의 대상은, 선택사양적으로, 상기 적어도 하나의 프로세서들로 하여금, 상기 출현율 값에서의 신뢰도에 기초하여서 상기 출현율 값을 가중화하는 동작을 더 포함할 수 있다.
실례 38에서, 실례 27 내지 실례 37 중 임의의 하나의 실례의 논의 대상에서, 선택사양적으로, 상기 출현율 값은 10의 승배에 대응하는 적어도 하나의 값을 포함할 수 있다.
실례 39에서, 실례 28 내지 실례 38 중 임의의 하나의 실례의 논의 대상에서, 선택사양적으로, 상기 신뢰도는 상기 적어도 하나의 값에 대해서 계산된 확률을 포함할 수 있다.
실례 40은 쿼리에 기초하여서 출현율 정보를 제공하기 위한 장치이며, 이 장치는 목표 값들의 시퀀스를 데이터 소스로부터 검색하는 수단과, 쿼리 데이터를 통신 장치로부터 수신하는 수단과, 상기 통신 장치와 연관된 식별자에 기초하여 쿼리 값들의 시퀀스를 생성하는 수단과, 상기 쿼리 값들의 시퀀스와 상기 목표 값들의 시퀀스를 비교하여 매칭 값들의 수를 식별하는 수단과, 적어도 부분적으로, 상기 매칭 값들의 수에 기초하여, 상기 쿼리 데이터에 대한 출현율 값을 상기 통신 장치에 출력하는 수단을 포함한다.
실례 41에서, 실례 40의 논의 대상은, 선택사양적으로, 상기 매칭 값들의 수가 데이터 저장부 내에 저장된 최대 매칭 수를 초과한다고 결정되면, 상기 데이터 저장부 내의 최대 매칭 수를 업데이트하는 수단과, 통계적 모델을 사용하여, 상기 최대 매칭 수에 기초하여서 상기 출현율 값 및 상기 출현율 값에서의 신뢰도를 계산하는 수단을 더 포함할 수 있다.
실례 42에서, 실례 40 또는 실례 41의 논의 대상은, 선택사양적으로, 추가 쿼리 데이터를 상기 통신 장치로부터 수신하는 수단―상기 추가 쿼리 데이터 및 상기 쿼리 데이터는 동일함―과, 상기 추가 쿼리 데이터를 상기 통신 장치로부터 수신하는 수단과, 상기 추가 쿼리 데이터를 수신하는 것에 응답하여, 상기 데이터 저장부 내의 최대 매칭 수를 업데이트하지 않음으로써 상기 데이터 저장부 내의 최대 매칭 수를 유지하는 수단을 더 포함할 수 있다.
실례 43에서, 실례 40 내지 실례 42 중 임의의 하나의 실례의 논의 대상에서, 선택사양적으로, 상기 비교하는 수단은 상기 쿼리 값들의 시퀀스 내의 가장 처음의 값 및 상기 목표 값들의 시퀀스 내의 가장 처음의 값에서 시작하여, 상기 쿼리 값들의 시퀀스 내의 연속하는 값들과 상기 목표 값들의 시퀀스 내의 대응하는 연속하는 값들을 쌍으로 해서 비교하는 수단을 포함할 수 있다.
실례 44에서, 실례 40 내지 실례 43 중 임의의 하나의 실례의 논의 대상에서, 선택사양적으로, 상기 목표 값들의 시퀀스를 상기 데이터 소스로부터 검색하는 수단은, 제 1 쿼리 데이터를 제 1 통신 장치로부터 수신하는 수단과, 상기 제 1 통신 장치와 연관된 식별자에 기초하여 비트들의 제 1 시퀀스를 생성하는 수단과, 상기 비트들의 제 1 시퀀스를 상기 데이터 저장부 내에 상기 목표 값들의 시퀀스로서 저장하는 수단을 포함할 수 있다.
실례 45에서, 실례 44의 논의 대상에서, 선택사양적으로, 상기 쿼리 데이터를 상기 통신 장치로부터 수신하는 수단은 제 2 쿼리 데이터를 제 2 통신 장치로부터 수신하는 수단을 포함하며, 상기 통신 장치와 연관된 식별자에 기초하여서 상기 쿼리 값들의 시퀀스를 생성하는 수단은 상기 제 2 통신 장치와 연관된 식별자에 기초하여서 비트들의 제 2 시퀀스를 생성하는 수단을 포함할 수 있다.
실례 46에서, 실례 45의 논의 대상에서, 선택사양적으로, 상기 비트들의 제 1 시퀀스를 생성하는 수단은 해시 함수를 상기 제 1 통신 장치와 연관된 식별자에 적용하여 상기 제 1 비트들의 시퀀스를 생성하는 수단을 포함하며, 상기 제 2 비트들의 시퀀스를 생성하는 수단은 상기 해시 함수를 상기 제 2 통신 장치와 연관된 식별자에 적용하여 상기 제 2 비트들의 시퀀스를 생성하는 수단을 포함할 수 있다.
실례 47에서, 실례 46의 논의 대상에서, 선택사양적으로, 상기 해시 함수는 메시지-다이제스트(message-digest) 알고리즘, 암호 해시 함수, 메시지-다이제스트 알고리즘 5(MD5), 보안 해시 알고리즘 1(SHA1), 또는 보안 해시 알고리즘(SHA256) 중 적어도 하나를 포함할 수 있다.
실례 48에서, 실례 40 내지 실례 47 중 임의의 하나의 실례의 논의 대상에서, 선택사양적으로, 상기 쿼리 데이터는 파일의 해시일 수 있다.
실례 49에서, 실례 40 내지 실례 48 중 임의의 하나의 실례의 논의 대상에서, 선택사양적으로, 상기 쿼리 값들의 시퀀스의 길이는 임계 값에 기초하여 결정될 수 있다.
실례 50에서, 실례 41 내지 실례 49 중 임의의 하나의 실례의 논의 대상은, 선택사양적으로, 상기 출현율 값에서의 신뢰도에 기초하여 상기 출현율 값을 가중화하는 수단을 더 포함할 수 있다.
실례 51에서, 실례 40 내지 실례 50 중 임의의 하나의 실례의 논의 대상에서, 선택사양적으로, 상기 출현율 값은 10의 승배에 대응하는 적어도 하나의 값을 포함할 수 있다.
실례 52에서, 실례 41 내지 실례 51 중 임의의 하나의 실례의 논의 대상에서, 선택사양적으로, 상기 신뢰도는 상기 적어도 하나의 값에 대해 계산된 확률을 포함할 수 있다.
실례 53은 쿼리에 기초하여서 출현율 정보를 제공하기 위한 장치이며, 상기 장치는 실례 27 내지 실례 39 중 어느 하나의 실례의 방법을 수행하는 수단들을 포함한다.
실례 54에서, 실례 40의 논의 대상은 선택사양적으로, 적어도 하나의 프로세서들 및 적어도 하나의 메모리 요소들을 포함하는 방법을 수행하기 위한 수단을 포함할 수 있다.
실례 55에서, 실례 54의 논의 대상은 실행되어서, 실례 27 내지 실례 39 중 어느 하나의 실례의 방법을 장치로 하여금 수행하게 하는 머신 판독가능한 인스트럭션들을 포함하는 적어도 하나의 메모리 요소를 선택사양적으로 포함할 수 있다.
실례 56에서, 실례 53 내지 실례 55 중 어느 하나의 실례의 논의 대상에서, 선택사양적으로, 상기 장치는 컴퓨팅 장치일 수 있다.
실례 57은 쿼리에 기초하여 출현율 정보를 제공하기 위한 인스트럭션들을 포함한 적어도 하나의 머신 판독가능한 저장 매체이며, 상기 인스트럭션들은 실행되어서, 실례 27 내지 실례 39 중 어느 하나의 실례에서 또는 실례 53 내지 실례 56 중 어느 하나의 실례에서 기술된 바와 같은 방법 또는 장치를 구현할 수 있다.
실례 58은 실행되어서 실례 27 내지 실례 39 중 어느 하나의 실례에 따른 방법을 머신으로 하여금 수행하게 하는 코드를 포함하는 적어도 하나의 머신 판독가능한 매체이다.
실례 59에서, 실례 40의 논의 대상에서, 선택사양적으로, 상기 장치는 컴퓨팅 장치이다.
Claims (24)
- 쿼리에 기초하여서 출현율 정보를 제공하기 위한 인스트럭션들을 저장한 비-일시적 머신 판독가능한 저장 매체로서,
상기 인스트럭션들은 적어도 하나의 프로세서들에 의해 실행될 때 상기 적어도 하나의 프로세서들로 하여금,
목표 값들의 시퀀스를 데이터 소스로부터 검색하는 동작과,
쿼리 데이터를 통신 장치로부터 수신하는 동작과,
상기 통신 장치와 연관된 식별자에 기초하여 쿼리 값들의 시퀀스를 생성하는 동작과,
상기 쿼리 값들의 시퀀스와 상기 목표 값들의 시퀀스를 비교하여 매칭 값들의 수(a number of matching values)를 식별하는 동작과,
적어도 부분적으로, 상기 매칭 값들의 수에 기초하여, 상기 쿼리 데이터에 대한 출현율 값을 상기 통신 장치에 출력하는 동작을 수행하게 하는
머신 판독가능한 저장 매체.
- 제 1 항에 있어서,
상기 인스트럭션들은 적어도 하나의 프로세서들에 의해서 실행될 때 상기 적어도 하나의 프로세서들로 하여금,
상기 매칭 값들의 수가 데이터 저장부 내에 저장된 최대 매칭 수를 초과한다고 결정되면, 상기 데이터 저장부 내의 최대 매칭 수를 업데이트하는 동작과,
통계적 모델을 사용하여, 상기 최대 매칭 수에 기초하여서 상기 출현율 값 및 상기 출현율 값에서의 신뢰도를 계산하는 동작을 수행하게 하는
머신 판독가능한 저장 매체.
- 제 1 항 또는 제 2 항에 있어서,
상기 인스트럭션들은 적어도 하나의 프로세서들에 의해서 실행될 때 상기 적어도 하나의 프로세서들로 하여금,
추가 쿼리 데이터를 상기 통신 장치로부터 수신하는 동작―상기 추가 쿼리 데이터 및 상기 쿼리 데이터는 동일함―과,
상기 추가 쿼리 데이터를 수신하는 것에 응답하여, 상기 데이터 저장부 내의 최대 매칭 수를 업데이트하지 않음으로써 상기 데이터 저장부 내의 최대 매칭 수를 유지하는 동작을 수행하게 하는
머신 판독가능한 저장 매체.
- 제 1 항 또는 제 2 항에 있어서,
상기 비교하는 동작은 상기 쿼리 값들의 시퀀스 내의 가장 처음의 값 및 상기 목표 값들의 시퀀스 내의 가장 처음의 값에서 시작하여서, 상기 쿼리 값들의 시퀀스 내의 연속하는 값들과 상기 목표 값들의 시퀀스 내의 대응하는 연속하는 값들을 쌍으로 해서 비교(pairwise comparing)하는 동작을 포함하는
머신 판독가능한 저장 매체.
- 제 1 항 또는 제 2 항에 있어서,
상기 목표 값들의 시퀀스를 상기 데이터 소스로부터 검색하는 동작은,
제 1 쿼리 데이터를 제 1 통신 장치로부터 수신하는 동작과,
상기 제 1 통신 장치와 연관된 식별자에 기초하여 비트들의 제 1 시퀀스를 생성하는 동작과,
상기 비트들의 제 1 시퀀스를 상기 데이터 저장부 내에 상기 목표 값들의 시퀀스로서 저장하는 동작을 포함하는
머신 판독가능한 저장 매체.
- 제 5 항에 있어서,
상기 쿼리 데이터를 상기 통신 장치로부터 수신하는 동작은 제 2 쿼리 데이터를 제 2 통신 장치로부터 수신하는 동작을 포함하며,
상기 통신 장치와 연관된 식별자에 기초하여 상기 쿼리 값들의 시퀀스를 생성하는 동작은 상기 제 2 통신 장치와 연관된 식별자에 기초하여 비트들의 제 2 시퀀스를 생성하는 동작을 포함하는
머신 판독가능한 저장 매체.
- 제 6 항에 있어서,
상기 비트들의 제 1 시퀀스를 생성하는 동작은 해시 함수를 상기 제 1 통신 장치와 연관된 식별자에 적용하여 상기 비트들의 제 1 시퀀스를 생성하는 동작을 포함하며,
상기 비트들의 제 2 시퀀스를 생성하는 동작은 상기 해시 함수를 상기 제 2 통신 장치와 연관된 식별자에 적용하여 상기 비트들의 제 2 시퀀스를 생성하는 동작을 포함하는
머신 판독가능한 저장 매체.
- 제 7 항에 있어서,
상기 해시 함수는 메시지-다이제스트(message-digest) 알고리즘, 암호 해시 함수, 메시지-다이제스트 알고리즘 5(MD5), 보안 해시 알고리즘 1(SHA1), 또는 보안 해시 알고리즘(SHA256) 중 적어도 하나를 포함하는
머신 판독가능한 저장 매체.
- 제 1 항 또는 제 2 항에 있어서,
상기 쿼리 데이터는 파일의 해시인
머신 판독가능한 저장 매체.
- 제 1 항 또는 제 2 항에 있어서,
상기 쿼리 값들의 시퀀스의 길이는 임계 값에 기초하여 결정되는
머신 판독가능한 저장 매체.
- 제 2 항에 있어서,
상기 인스트럭션들은 적어도 하나의 프로세서들에 의해서 실행될 때 상기 적어도 하나의 프로세서들로 하여금,
상기 출현율 값에서의 신뢰도에 기초하여 상기 출현율 값을 가중화하는 동작을 수행하게 하는
머신 판독가능한 저장 매체.
- 제 1 항 또는 제 2 항에 있어서,
상기 출현율 값은 10의 승배(an order of magnitude)에 대응하는 적어도 하나의 값을 포함하는
머신 판독가능한 저장 매체.
- 제 2 항에 있어서,
상기 신뢰도는 상기 적어도 하나의 값에 대해 계산된 확률을 포함하는
머신 판독가능한 저장 매체.
- 쿼리에 기초하여 출현율 정보를 제공하기 위한 장치로서,
적어도 하나의 메모리 요소와,
상기 적어도 하나의 메모리 요소에 연결된 적어도 하나의 프로세서와,
상기 적어도 하나의 프로세서에 연결된 평판도 정보 서버를 포함하며,
상기 평판도 정보 서버는,
목표 값들의 시퀀스를 데이터 소스로부터 검색하고,
쿼리 데이터를 통신 장치로부터 수신하고,
상기 통신 장치와 연관된 식별자에 기초하여 쿼리 값들의 시퀀스를 생성하고,
상기 쿼리 값들의 시퀀스와 상기 목표 값들의 시퀀스를 비교하여 매칭 값들의 수를 식별하고,
적어도 부분적으로, 상기 매칭 값들의 수에 기초하여, 상기 쿼리 데이터에 대한 출현율 값을 상기 통신 장치에 출력하도록 구성되는
출현율 정보 제공 장치.
- 제 14 항에 있어서,
상기 평판도 정보 서버는,
상기 매칭 값들의 수가 데이터 저장부 내에 저장된 최대 매칭 수를 초과한다고 결정되면, 상기 데이터 저장부 내의 최대 매칭 수를 업데이트하고,
통계적 모델을 사용하여, 상기 최대 매칭 수에 기초하여 상기 출현율 값 및 상기 출현율 값에서의 신뢰도를 계산하도록 더 구성되는
출현율 정보 제공 장치.
- 제 14 항 또는 제 15 항에 있어서,
상기 평판도 정보 서버는,
추가 쿼리 데이터를 상기 통신 장치로부터 수신하고―상기 추가 쿼리 데이터 및 상기 쿼리 데이터는 동일함―,
상기 추가 쿼리 데이터를 수신하는 것에 응답하여, 상기 데이터 저장부 내의 최대 매칭 수를 업데이트하지 않음으로써 상기 데이터 저장부 내의 최대 매칭 수를 유지하도록 더 구성되는
출현율 정보 제공 장치.
- 제 14 항 또는 제 15 항에 있어서,
상기 목표 값들의 시퀀스를 상기 데이터 소스로부터 검색하는 것은,
제 1 쿼리 데이터를 제 1 통신 장치로부터 수신하는 것과,
상기 제 1 통신 장치와 연관된 식별자에 기초하여 비트들의 제 1 시퀀스를 생성하는 것과,
상기 비트들의 제 1 시퀀스를 상기 데이터 저장부 내에 상기 목표 값들의 시퀀스로서 저장하는 것을 포함하는
출현율 정보 제공 장치.
- 제 17 항에 있어서,
상기 쿼리 데이터를 상기 통신 장치로부터 수신하는 것은 제 2 쿼리 데이터를 제 2 통신 장치로부터 수신하는 것을 포함하며,
상기 통신 장치와 연관된 식별자에 기초하여서 상기 쿼리 값들의 시퀀스를 생성하는 것은 상기 제 2 통신 장치와 연관된 식별자에 기초하여 비트들의 제 2 시퀀스를 생성하는 것을 포함하는
출현율 정보 제공 장치.
- 제 18 항에 있어서,
상기 비트들의 제 1 시퀀스를 생성하는 것은 해시 함수를 상기 제 1 통신 장치와 연관된 식별자에 적용하여 상기 비트들의 제 1 시퀀스를 생성하는 것을 포함하며,
상기 비트들의 제 2 시퀀스를 생성하는 것은 상기 해시 함수를 상기 제 2 통신 장치와 연관된 식별자에 적용하여 상기 비트들의 제 2 시퀀스를 생성하는 동작을 포함하는
출현율 정보 제공 장치.
- 쿼리에 기초하여 출현율 정보를 제공하기 위한 방법으로서,
목표 값들의 시퀀스를 데이터 소스로부터 검색하는 단계와,
쿼리 데이터를 통신 장치로부터 수신하는 단계와,
상기 통신 장치와 연관된 식별자에 기초하여 쿼리 값들의 시퀀스를 생성하는 단계와,
상기 쿼리 값들의 시퀀스와 상기 목표 값들의 시퀀스를 비교하여 매칭 값들의 수를 식별하는 단계와,
적어도 부분적으로, 상기 매칭 값들의 수에 기초하여, 상기 쿼리 데이터에 대한 출현율 값을 상기 통신 장치에 출력하는 단계를 포함하는
출현율 정보 제공 방법.
- 제 20 항에 있어서,
상기 매칭 값들의 수가 데이터 저장부 내에 저장된 최대 매칭 수를 초과한다고 결정되면, 상기 데이터 저장부 내의 최대 매칭 수를 업데이트하는 단계와,
통계적 모델을 사용하여, 상기 최대 매칭 수에 기초하여 상기 출현율 값 및 상기 출현율 값에서의 신뢰도를 계산하는 단계를 더 포함하는
출현율 정보 제공 방법.
- 제 20 항 또는 제 21 항에 있어서,
추가 쿼리 데이터를 상기 통신 장치로부터 수신하는 단계―상기 추가 쿼리 데이터 및 상기 쿼리 데이터는 동일함―와,
상기 추가 쿼리 데이터를 수신하는 것에 응답하여, 상기 데이터 저장부 내의 최대 매칭 수를 업데이트하지 않음으로써 상기 데이터 저장부 내의 최대 매칭 수를 유지하는 단계를 더 포함하는
출현율 정보 제공 방법.
- 제 20 항 또는 제 21 항에 있어서,
상기 목표 값들의 시퀀스를 상기 데이터 소스로부터 검색하는 단계는,
제 1 쿼리 데이터를 제 1 통신 장치로부터 수신하는 단계와,
상기 제 1 통신 장치와 연관된 식별자에 기초하여 비트들의 제 1 시퀀스를 생성하는 단계와,
상기 비트들의 제 1 시퀀스를 상기 데이터 저장부 내에 상기 목표 값들의 시퀀스로서 저장하는 단계를 포함하는
출현율 정보 제공 방법.
- 제 23 항에 있어서,
상기 쿼리 데이터를 상기 통신 장치로부터 수신하는 단계는 제 2 쿼리 데이터를 제 2 통신 장치로부터 수신하는 단계를 포함하며,
상기 통신 장치와 연관된 식별자에 기초하여 상기 쿼리 값들의 시퀀스를 생성하는 단계는 상기 제 2 통신 장치와 연관된 식별자에 기초하여 비트들의 제 2 시퀀스를 생성하는 단계를 포함하는
출현율 정보 제공 방법.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/227,201 US9607086B2 (en) | 2014-03-27 | 2014-03-27 | Providing prevalence information using query data |
US14/227,201 | 2014-03-27 | ||
PCT/US2015/018201 WO2015148056A1 (en) | 2014-03-27 | 2015-02-28 | Providing prevalence information using query data |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20160110512A true KR20160110512A (ko) | 2016-09-21 |
Family
ID=54190713
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020167023342A KR20160110512A (ko) | 2014-03-27 | 2015-02-28 | 쿼리 데이터를 사용한 출현율 정보 제공 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9607086B2 (ko) |
EP (1) | EP3123365A4 (ko) |
JP (1) | JP2017516172A (ko) |
KR (1) | KR20160110512A (ko) |
CN (1) | CN106062749B (ko) |
WO (1) | WO2015148056A1 (ko) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9607086B2 (en) | 2014-03-27 | 2017-03-28 | Mcafee, Inc. | Providing prevalence information using query data |
US10790217B2 (en) * | 2016-03-10 | 2020-09-29 | Sekisui Chemical Co., Ltd. | Adhesive for semiconductor sensor chip mounting, and semiconductor sensor |
US10678925B2 (en) | 2017-06-26 | 2020-06-09 | Microsoft Technology Licensing, Llc | Data quarantine and recovery |
CN109360324A (zh) * | 2018-09-26 | 2019-02-19 | 深圳怡化电脑股份有限公司 | 验钞方法、验钞装置、金融设备及计算机可读存储介质 |
US11853100B2 (en) * | 2021-04-12 | 2023-12-26 | EMC IP Holding Company LLC | Automated delivery of cloud native application updates using one or more user-connection gateways |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6146735A (en) * | 1996-10-01 | 2000-11-14 | Component Technologies, Inc. | Information storage device having coated metal hub |
US6073142A (en) | 1997-06-23 | 2000-06-06 | Park City Group | Automated post office based rule analysis of e-mail messages and other data objects for controlled distribution in network environments |
US5987610A (en) | 1998-02-12 | 1999-11-16 | Ameritech Corporation | Computer virus screening methods and systems |
US6421675B1 (en) * | 1998-03-16 | 2002-07-16 | S. L. I. Systems, Inc. | Search engine |
US6460050B1 (en) | 1999-12-22 | 2002-10-01 | Mark Raymond Pace | Distributed content identification system |
US6901519B1 (en) | 2000-06-22 | 2005-05-31 | Infobahn, Inc. | E-mail virus protection system and method |
US7136845B2 (en) * | 2001-07-12 | 2006-11-14 | Microsoft Corporation | System and method for query refinement to enable improved searching based on identifying and utilizing popular concepts related to users' queries |
US20050050033A1 (en) * | 2003-08-29 | 2005-03-03 | Shiby Thomas | System and method for sequence matching and alignment in a relational database management system |
US7720720B1 (en) * | 2004-08-05 | 2010-05-18 | Versata Development Group, Inc. | System and method for generating effective recommendations |
GB0709527D0 (en) | 2007-05-18 | 2007-06-27 | Surfcontrol Plc | Electronic messaging system, message processing apparatus and message processing method |
US8549581B1 (en) | 2008-05-28 | 2013-10-01 | Zscaler, Inc. | Distributed network security system deploying guard tables |
US20100042610A1 (en) * | 2008-08-15 | 2010-02-18 | Microsoft Corporation | Rank documents based on popularity of key metadata |
US8554742B2 (en) * | 2009-07-06 | 2013-10-08 | Intelligent Medical Objects, Inc. | System and process for record duplication analysis |
US8423791B1 (en) | 2009-08-07 | 2013-04-16 | Google Inc. | Location data quarantine system |
US8336100B1 (en) * | 2009-08-21 | 2012-12-18 | Symantec Corporation | Systems and methods for using reputation data to detect packed malware |
US8800030B2 (en) * | 2009-09-15 | 2014-08-05 | Symantec Corporation | Individualized time-to-live for reputation scores of computer files |
US8302194B2 (en) * | 2009-10-26 | 2012-10-30 | Symantec Corporation | Using file prevalence to inform aggressiveness of behavioral heuristics |
US8572007B1 (en) * | 2010-10-29 | 2013-10-29 | Symantec Corporation | Systems and methods for classifying unknown files/spam based on a user actions, a file's prevalence within a user community, and a predetermined prevalence threshold |
US9129007B2 (en) * | 2010-11-10 | 2015-09-08 | Microsoft Technology Licensing, Llc | Indexing and querying hash sequence matrices |
US8671449B1 (en) * | 2010-11-10 | 2014-03-11 | Symantec Corporation | Systems and methods for identifying potential malware |
US8719261B2 (en) * | 2011-12-02 | 2014-05-06 | Verizon Patent And Licensing Inc. | Dynamic catalog ranking |
CN103186653B (zh) * | 2011-12-30 | 2016-04-13 | 国际商业机器公司 | 辅助查询方法和设备、查询方法和设备及命名查询系统 |
US20130254880A1 (en) | 2012-03-21 | 2013-09-26 | Mcafee, Inc. | System and method for crowdsourcing of mobile application reputations |
US9607086B2 (en) | 2014-03-27 | 2017-03-28 | Mcafee, Inc. | Providing prevalence information using query data |
-
2014
- 2014-03-27 US US14/227,201 patent/US9607086B2/en active Active
-
2015
- 2015-02-28 EP EP15769429.0A patent/EP3123365A4/en not_active Withdrawn
- 2015-02-28 WO PCT/US2015/018201 patent/WO2015148056A1/en active Application Filing
- 2015-02-28 JP JP2016553369A patent/JP2017516172A/ja active Pending
- 2015-02-28 CN CN201580010965.1A patent/CN106062749B/zh active Active
- 2015-02-28 KR KR1020167023342A patent/KR20160110512A/ko not_active Application Discontinuation
Also Published As
Publication number | Publication date |
---|---|
EP3123365A1 (en) | 2017-02-01 |
US9607086B2 (en) | 2017-03-28 |
CN106062749A (zh) | 2016-10-26 |
EP3123365A4 (en) | 2017-10-25 |
CN106062749B (zh) | 2019-08-06 |
JP2017516172A (ja) | 2017-06-15 |
US20150278354A1 (en) | 2015-10-01 |
WO2015148056A1 (en) | 2015-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109040341B (zh) | 智能合约地址的生成方法、装置、计算机设备及可读存储介质 | |
WO2021047535A1 (en) | Method, apparatus and system for secure vertical federated learning | |
US10430464B1 (en) | Scalable graph propagation for knowledge expansion | |
JP6435398B2 (ja) | 端末識別子を促進する方法及びシステム | |
WO2021093675A1 (zh) | Cdn回源的校验方法和校验服务器、cdn集群 | |
CN111898137A (zh) | 一种联邦学习的隐私数据处理方法、设备及系统 | |
EP3652885B1 (en) | Secure token passing via blockchains | |
KR20160110512A (ko) | 쿼리 데이터를 사용한 출현율 정보 제공 | |
US9602280B2 (en) | System and method for content encryption in a key/value store | |
EP3058481B1 (en) | Acceleration based on cached flows | |
Fang et al. | SIFO: secure computational infrastructure using FPGA overlays | |
CN112434062A (zh) | 准实时数据处理方法、装置、服务器及存储介质 | |
US10394555B1 (en) | Computing network architecture for reducing a computing operation time and memory usage associated with determining, from a set of data elements, a subset of at least two data elements, associated with a target computing operation result | |
US11870900B2 (en) | Detecting vulnerable encryption keys in network communication systems | |
US10013539B1 (en) | Rapid device identification among multiple users | |
US20150331917A1 (en) | Recording medium having stored therein transmission order determination program, transmission order determination device, and transmission order determination method | |
US20190065539A1 (en) | Smaller proximate search index | |
CN115310137A (zh) | 一种智能结算系统的保密方法及相关装置 | |
US11593014B2 (en) | System and method for approximating replication completion time | |
US9654472B2 (en) | Storage count verification system | |
US20190294820A1 (en) | Converting plaintext values to pseudonyms using a hash function | |
JP6351890B1 (ja) | 検索装置、秘匿検索システム及び検索プログラム | |
Liu et al. | Cloud-based personal data protection system and its performance evaluation | |
US12013830B2 (en) | System and method using bloom filters to improve system reliability | |
Li et al. | Efficient encrypted speech retrieval based on hadoop cluster under SW CPU |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |