SlideShare une entreprise Scribd logo
1  sur  23
Télécharger pour lire hors ligne
Сегментация и
Поиск совпадений
в бинарном потоке
Леонид Юрьев
Positive Technologies
Аннотация
Дан миллиард файлов неизвестного формата.
 Как выявить даже частичные совпадения, если одни файлы могут включать другие
полностью или частями?
 Как делать это, имея доступ только к потоку байтов без начала и конца?
Рассказ о разработанном подходе (методе) для решения таких задач.
Принципиальные отличия в гибкости, в контроле над точностью и достоверностью,
независимо от содержания и характера данных. Стоит уточнить:
 Речь пойдет о способе сегментирования произвольного потока данных для
последующего шинглирования.
 При этом основной вопрос в том, как нарезать на вменяемые «шинглы»
произвольную последовательность байтов без привязки к каким-либо абсолютным
границам.
О чем этот доклад?
1 000 000 000 файлов
Выявление совпадающих
фрагментов
В потоке,
без произвольного доступа
Проблема сегментации
бинарного потока данных
Идея решения
Метод
конструирования резака
Что считать совпадением?
Что и как сравнивать…
Размер и полезность:
 2 бита, 3 байта, 10 раз по 4
 42 подряд, 1 Килобайт
Устойчивость к искажениям:
 Обратный порядок, Инверсия
 Разбавить «пробелами»…
Оперируем байтами
Равенство двух подстрок
Видеть 42 и больше*
Где возникает такая задача?
1. Дедупликация
2. Предотвращение утечек
3. Обнаружение утечек
Ликбез-0: Работа с дайджестами блоков
1. Нарезаем на блоки
2. Считаем хэш-функцию
(SHA1, MD5…)
3. Оперируем дайджестами
(4…32 байта)
Полное равенство
или хэш-коллизия
Видим поблочно
Точность
 размер блоков
Ликбез-1: Блоками равного размера
1. Подряд на равные блоки
2. Последний дополняется
или отбрасывается
3. Границы кратны размеру
Хорошо для backup
При вставке или удалении
«хвост отваливается»
Ликбез-2: Шинглирование слов  Черепица
съешь ещё этих мягких французских булок, да выпей чаю
съешь ещё этих мягких
ещё этих мягких французских
этих мягких французских булок
мягких французских булок, да выпей
французских булок, да выпей чаю
1.
2.
3.
4.
5.  9459da43
 7237602b
 56aef20f
 01a31914
 74890a17
Ликбез-3: Шинглирование слов
1. По границам слов
2. Несколько слов в блоке
3. Блоки с наложением
Хорошо для текстов
Нужны границы слов
Задача и штатные решения
Набор образцов
 Много, Большие
 Конфиденциальны
Обнаруживать фрагменты
 В других файлах
 В потоке
Данные произвольны
Только дайджесты
 Сжатие объёма
 Конфиденциальность
Штатные варианты
 Фиксированными блоками
 Шинглирование слов
– не подходят…
Что делать нам?
Сложности
 Хвост не должен отваливаться
 Нет структуры и слов
Идея
 Смотрим
– как на утку сквозь прицел
 Стреляем
– когда ходит и крякает, как утка
1. Скользящее окно
2. Оценочная функция
3. Отмечаем границы
Про вероятность
 Схема детерминирована
 Но данные произвольны
На простом примере
1. Скользящее окно в 10 байт
2. Считаем MD5
3. Обозначаем границу,
когда дайджест кратен 42
1. В среднем каждая 42
позиция будет границей
2. Границы зависят только
от содержимого окна
и синхронизируются
3. Замечаем совпадения
длиной «Окно + Блок»
Что тут плохо?
Длина блоков
 Отрицательное биноминальное
распределение
 𝑃 𝑛 = 𝑝 ∙ 1 − 𝑝 𝑛
Хочется
 Другое распределение
 Учитывать эвристики 1 20 40 60 80 100
𝑷 𝟏 =
𝟏
𝟒𝟐
𝑷 𝟏𝟎𝟎 =
𝟏
𝟒𝟐
𝟒𝟏
𝟒𝟐
𝟗𝟗
𝑷 𝒏
𝒏
Ключи к решению
1. Комбинировать несколько функций
2. Со снижением вероятности «плохих случаев»
3. Без внутреннего состояния,
строго от содержимого скользящего окна
4. Мелкие блоки тоже нужны
Суть решения
1. Вложенное скользящее
окно
2. Упорядоченный набор
оценивающих функций
3. Просматриваем вперед
до первой «утки»
𝐹1 =
𝐹2 =
𝐹 𝐾 =
+1 +2 … +N-1+3+0

Свойства
1. Зависимость границ
только от данных
2. Любые подходящие
функции
3. Для худшего случая
𝑃 𝑤𝑜𝑟𝑠𝑡 = ς𝑖=1
𝐾
(1 − 𝑃𝑖) 𝑁
𝐹1 =
𝐹2 =
𝐹 𝑲 =
+1 +2 … +N-1+3+0

+
Распределение размеров блоков
1. Дойдём до nой позиции
внутри строки
2. Если все предыдущие
строки пустые
3. Сумма по всем функциям
для позиции
𝑃 𝑛 = σ𝑖=1
𝐾
𝑃𝑖(1 − 𝑃𝑖) 𝑛
× ς 𝑗=1
𝑖−1
(1 − 𝑃𝑗) 𝑁
,
при заданных 𝑵 и 𝑷 𝟏 … 𝑷 𝑲
𝐹1 =
𝐹2 =
𝐹 𝑲 =
P1
P2
+1 +2 … +N-1+3+0
3 1 2
PK
?
Пример распределения
𝑃 𝑛 = ෍
𝑖=1
𝐾
𝑃𝑖(1 − 𝑃𝑖) 𝑛× ෑ
𝑗=1
𝑖−1
(1 − 𝑃𝑗) 𝑁
𝑷 𝟏 ≈ 𝑷 𝟒𝟐 ≈
𝟏
𝟒𝟐
𝑷 𝟏𝟎𝟎 ≈ 𝟎
1 42 100
𝟏
𝟒𝟐
𝐹1 =
𝐹2 =
𝐹 𝑲 =
P1
P2
+1 +2 … +N-1+3+0
PK
?
𝑷 𝒏
𝒏
Возможности
1. Шинглировать мелкие блоки
2. Эвристики и разные типы блоков
3. Разные размеры вложенных окон
Точность и Достоверность
Достоверность
 Вероятность коллизии
 Ширина дайджестов
Точность
 Размер окна + размер блока 𝒏
 Плотность вероятности 𝑷(𝒏)
Баланс детализации
 Мера влияния 𝑷 𝒏 ∙ 𝒏
 Максимизация для желаемого 𝒏
1 20 42 60 80 100
𝑷 𝒏 ∙ 𝒏
𝒏
0 = lim
𝑛→∞
𝑃 𝑛 ∙ 𝑛
𝑁 = න
𝑛=1
𝑁
𝑃 𝑛 ∙ 𝑛
42
Связь с размером Индекса
Точнее или Достовернее – больше Индекс
Размер Индекса – предел по Колмогорову для результатов
Меньше Индекс – больше пропусков, меньше достоверность
Ошибка от внутренней Меры Жордана – функция от сжатия
В чем новизна?
Аналогов (пока) не найдено:
 Патенты
 Научные работы и алгоритмы
 Давайте искать вместе
Принципиальные отличия:
1. Нарезка бинарного потока,
а не поиск подстрок
2. «Колмогоровское
шинглирование»
3. Гибкость
Спасибо!
Леонид Юрьев
Positive Technologies
SecurityLab.ru
www.ptsecurity.ru
Вопросы ?

Contenu connexe

En vedette

En vedette (12)

Game of BGP
Game of BGPGame of BGP
Game of BGP
 
Расширенные возможности протокола BGP
Расширенные возможности протокола BGPРасширенные возможности протокола BGP
Расширенные возможности протокола BGP
 
Presentation at the conference
Presentation at the conferencePresentation at the conference
Presentation at the conference
 
Кибербезопасность 2016-2017: От итогов к прогнозам
Кибербезопасность 2016-2017: От итогов к прогнозамКибербезопасность 2016-2017: От итогов к прогнозам
Кибербезопасность 2016-2017: От итогов к прогнозам
 
Bgp
BgpBgp
Bgp
 
BGP Overview
BGP OverviewBGP Overview
BGP Overview
 
Naumen Network Manager. Мониторинг, понятный и так нужный Бизнесу
Naumen Network Manager. Мониторинг, понятный и так нужный БизнесуNaumen Network Manager. Мониторинг, понятный и так нужный Бизнесу
Naumen Network Manager. Мониторинг, понятный и так нужный Бизнесу
 
7 tips to create visual presentations
7 tips to create visual presentations7 tips to create visual presentations
7 tips to create visual presentations
 
BGP protocol presentation
BGP protocol  presentationBGP protocol  presentation
BGP protocol presentation
 
STEAL THIS PRESENTATION!
STEAL THIS PRESENTATION! STEAL THIS PRESENTATION!
STEAL THIS PRESENTATION!
 
Slides That Rock
Slides That RockSlides That Rock
Slides That Rock
 
You Suck At PowerPoint! by @jessedee
You Suck At PowerPoint! by @jessedeeYou Suck At PowerPoint! by @jessedee
You Suck At PowerPoint! by @jessedee
 

Similaire à Сегментация и поиск совпадений в бинарном потоке

Кластеризация и текстовый анализ
Кластеризация и текстовый анализКластеризация и текстовый анализ
Кластеризация и текстовый анализAlexey Chekushin
 
Ruby — Паттерны программирования
Ruby — Паттерны программированияRuby — Паттерны программирования
Ruby — Паттерны программированияEvgeny Smirnov
 
Интерпретация моделей машинного обучения
Интерпретация моделей машинного обученияИнтерпретация моделей машинного обучения
Интерпретация моделей машинного обученияДмитрий Колодезев
 
CV2015. Лекция 7. Поиск изображений по содержанию.
CV2015. Лекция 7. Поиск изображений по содержанию.CV2015. Лекция 7. Поиск изображений по содержанию.
CV2015. Лекция 7. Поиск изображений по содержанию.Anton Konushin
 
Введение в машинное обучение
Введение в машинное обучениеВведение в машинное обучение
Введение в машинное обучениеGrigory Sapunov
 
“ComputerVision(Ruby && OpenCV)”, Людмила Дежкина ( Senior Ruby, DataArt)
 “ComputerVision(Ruby && OpenCV)”, Людмила Дежкина ( Senior Ruby, DataArt) “ComputerVision(Ruby && OpenCV)”, Людмила Дежкина ( Senior Ruby, DataArt)
“ComputerVision(Ruby && OpenCV)”, Людмила Дежкина ( Senior Ruby, DataArt)Alina Vilk
 
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...Ontico
 
Поисковая аналитика DDS-2 (2016)
Поисковая аналитика DDS-2 (2016)Поисковая аналитика DDS-2 (2016)
Поисковая аналитика DDS-2 (2016)Стас Поломарь
 
Multilabel classification in nlp
Multilabel classification in nlpMultilabel classification in nlp
Multilabel classification in nlpAlexei Tishurov
 
Gauss vs. Pareto (Rastyannikov Pavel)
Gauss vs. Pareto (Rastyannikov Pavel)Gauss vs. Pareto (Rastyannikov Pavel)
Gauss vs. Pareto (Rastyannikov Pavel)Pavel Rastyannikov
 
BigData Week Moscow 2013 - Case: Personalization
BigData Week Moscow 2013 - Case: PersonalizationBigData Week Moscow 2013 - Case: Personalization
BigData Week Moscow 2013 - Case: PersonalizationAnton Gorokhov
 
12. обработка информации
12. обработка информации12. обработка информации
12. обработка информацииAndrey Dolinin
 
Death by PowerPoint - Смерть через PowerPoint
Death by PowerPoint - Смерть через PowerPointDeath by PowerPoint - Смерть через PowerPoint
Death by PowerPoint - Смерть через PowerPointAlexey Komarov
 
Death by-powerpoint-rus1140
Death by-powerpoint-rus1140Death by-powerpoint-rus1140
Death by-powerpoint-rus1140Javier Sánchez
 
Интерпретация моделей машинного обучения
Интерпретация моделей машинного обученияИнтерпретация моделей машинного обучения
Интерпретация моделей машинного обученияДмитрий Колодезев
 
Алгоритмы и структуры данных осень 2013 лекция 1
Алгоритмы и структуры данных осень 2013 лекция 1Алгоритмы и структуры данных осень 2013 лекция 1
Алгоритмы и структуры данных осень 2013 лекция 1Technopark
 

Similaire à Сегментация и поиск совпадений в бинарном потоке (20)

Кластеризация и текстовый анализ
Кластеризация и текстовый анализКластеризация и текстовый анализ
Кластеризация и текстовый анализ
 
Ruby — Паттерны программирования
Ruby — Паттерны программированияRuby — Паттерны программирования
Ruby — Паттерны программирования
 
Интерпретация моделей машинного обучения
Интерпретация моделей машинного обученияИнтерпретация моделей машинного обучения
Интерпретация моделей машинного обучения
 
CV2015. Лекция 7. Поиск изображений по содержанию.
CV2015. Лекция 7. Поиск изображений по содержанию.CV2015. Лекция 7. Поиск изображений по содержанию.
CV2015. Лекция 7. Поиск изображений по содержанию.
 
Введение в машинное обучение
Введение в машинное обучениеВведение в машинное обучение
Введение в машинное обучение
 
“ComputerVision(Ruby && OpenCV)”, Людмила Дежкина ( Senior Ruby, DataArt)
 “ComputerVision(Ruby && OpenCV)”, Людмила Дежкина ( Senior Ruby, DataArt) “ComputerVision(Ruby && OpenCV)”, Людмила Дежкина ( Senior Ruby, DataArt)
“ComputerVision(Ruby && OpenCV)”, Людмила Дежкина ( Senior Ruby, DataArt)
 
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
 
Поисковая аналитика DDS-2 (2016)
Поисковая аналитика DDS-2 (2016)Поисковая аналитика DDS-2 (2016)
Поисковая аналитика DDS-2 (2016)
 
Multilabel classification in nlp
Multilabel classification in nlpMultilabel classification in nlp
Multilabel classification in nlp
 
Rgsu04
Rgsu04Rgsu04
Rgsu04
 
Rgsu04
Rgsu04Rgsu04
Rgsu04
 
Gauss vs. Pareto (Rastyannikov Pavel)
Gauss vs. Pareto (Rastyannikov Pavel)Gauss vs. Pareto (Rastyannikov Pavel)
Gauss vs. Pareto (Rastyannikov Pavel)
 
BigData Week Moscow 2013 - Case: Personalization
BigData Week Moscow 2013 - Case: PersonalizationBigData Week Moscow 2013 - Case: Personalization
BigData Week Moscow 2013 - Case: Personalization
 
12. обработка информации
12. обработка информации12. обработка информации
12. обработка информации
 
Смерть от Power Point
Смерть от  Power  PointСмерть от  Power  Point
Смерть от Power Point
 
Death By PowerPoint Rus
Death By PowerPoint RusDeath By PowerPoint Rus
Death By PowerPoint Rus
 
Death by PowerPoint - Смерть через PowerPoint
Death by PowerPoint - Смерть через PowerPointDeath by PowerPoint - Смерть через PowerPoint
Death by PowerPoint - Смерть через PowerPoint
 
Death by-powerpoint-rus1140
Death by-powerpoint-rus1140Death by-powerpoint-rus1140
Death by-powerpoint-rus1140
 
Интерпретация моделей машинного обучения
Интерпретация моделей машинного обученияИнтерпретация моделей машинного обучения
Интерпретация моделей машинного обучения
 
Алгоритмы и структуры данных осень 2013 лекция 1
Алгоритмы и структуры данных осень 2013 лекция 1Алгоритмы и структуры данных осень 2013 лекция 1
Алгоритмы и структуры данных осень 2013 лекция 1
 

Plus de Leonid Yuriev

libfpta: в памяти, с персистентностью, быстрее хайпа
libfpta: в памяти, с персистентностью, быстрее хайпаlibfpta: в памяти, с персистентностью, быстрее хайпа
libfpta: в памяти, с персистентностью, быстрее хайпаLeonid Yuriev
 
Движок LMDB - особенный чемпион
Движок LMDB - особенный чемпионДвижок LMDB - особенный чемпион
Движок LMDB - особенный чемпионLeonid Yuriev
 
OSSDEV-2015: ReOpenLDAP
OSSDEV-2015: ReOpenLDAPOSSDEV-2015: ReOpenLDAP
OSSDEV-2015: ReOpenLDAPLeonid Yuriev
 
DevConf-2015: Lightning Memory-Mapped Database (LMDB), ReOpen IT
DevConf-2015: Lightning Memory-Mapped Database (LMDB), ReOpen ITDevConf-2015: Lightning Memory-Mapped Database (LMDB), ReOpen IT
DevConf-2015: Lightning Memory-Mapped Database (LMDB), ReOpen ITLeonid Yuriev
 
Highload++2014: 1Hippeus - zerocopy messaging in the spirit of Sparta!
Highload++2014: 1Hippeus - zerocopy messaging in the spirit of Sparta!Highload++2014: 1Hippeus - zerocopy messaging in the spirit of Sparta!
Highload++2014: 1Hippeus - zerocopy messaging in the spirit of Sparta!Leonid Yuriev
 
Devconf-2014: Ноотропы для BigData
Devconf-2014: Ноотропы для BigDataDevconf-2014: Ноотропы для BigData
Devconf-2014: Ноотропы для BigDataLeonid Yuriev
 
РИТ-2014: Ноотропы RDF для BigData
РИТ-2014: Ноотропы RDF для BigDataРИТ-2014: Ноотропы RDF для BigData
РИТ-2014: Ноотропы RDF для BigDataLeonid Yuriev
 
Highload++2013: TopGun - архитектура терабитной платформы DPI
Highload++2013: TopGun - архитектура терабитной платформы DPIHighload++2013: TopGun - архитектура терабитной платформы DPI
Highload++2013: TopGun - архитектура терабитной платформы DPILeonid Yuriev
 

Plus de Leonid Yuriev (8)

libfpta: в памяти, с персистентностью, быстрее хайпа
libfpta: в памяти, с персистентностью, быстрее хайпаlibfpta: в памяти, с персистентностью, быстрее хайпа
libfpta: в памяти, с персистентностью, быстрее хайпа
 
Движок LMDB - особенный чемпион
Движок LMDB - особенный чемпионДвижок LMDB - особенный чемпион
Движок LMDB - особенный чемпион
 
OSSDEV-2015: ReOpenLDAP
OSSDEV-2015: ReOpenLDAPOSSDEV-2015: ReOpenLDAP
OSSDEV-2015: ReOpenLDAP
 
DevConf-2015: Lightning Memory-Mapped Database (LMDB), ReOpen IT
DevConf-2015: Lightning Memory-Mapped Database (LMDB), ReOpen ITDevConf-2015: Lightning Memory-Mapped Database (LMDB), ReOpen IT
DevConf-2015: Lightning Memory-Mapped Database (LMDB), ReOpen IT
 
Highload++2014: 1Hippeus - zerocopy messaging in the spirit of Sparta!
Highload++2014: 1Hippeus - zerocopy messaging in the spirit of Sparta!Highload++2014: 1Hippeus - zerocopy messaging in the spirit of Sparta!
Highload++2014: 1Hippeus - zerocopy messaging in the spirit of Sparta!
 
Devconf-2014: Ноотропы для BigData
Devconf-2014: Ноотропы для BigDataDevconf-2014: Ноотропы для BigData
Devconf-2014: Ноотропы для BigData
 
РИТ-2014: Ноотропы RDF для BigData
РИТ-2014: Ноотропы RDF для BigDataРИТ-2014: Ноотропы RDF для BigData
РИТ-2014: Ноотропы RDF для BigData
 
Highload++2013: TopGun - архитектура терабитной платформы DPI
Highload++2013: TopGun - архитектура терабитной платформы DPIHighload++2013: TopGun - архитектура терабитной платформы DPI
Highload++2013: TopGun - архитектура терабитной платформы DPI
 

Сегментация и поиск совпадений в бинарном потоке

  • 1. Сегментация и Поиск совпадений в бинарном потоке Леонид Юрьев Positive Technologies
  • 2. Аннотация Дан миллиард файлов неизвестного формата.  Как выявить даже частичные совпадения, если одни файлы могут включать другие полностью или частями?  Как делать это, имея доступ только к потоку байтов без начала и конца? Рассказ о разработанном подходе (методе) для решения таких задач. Принципиальные отличия в гибкости, в контроле над точностью и достоверностью, независимо от содержания и характера данных. Стоит уточнить:  Речь пойдет о способе сегментирования произвольного потока данных для последующего шинглирования.  При этом основной вопрос в том, как нарезать на вменяемые «шинглы» произвольную последовательность байтов без привязки к каким-либо абсолютным границам.
  • 3. О чем этот доклад? 1 000 000 000 файлов Выявление совпадающих фрагментов В потоке, без произвольного доступа Проблема сегментации бинарного потока данных Идея решения Метод конструирования резака
  • 4. Что считать совпадением? Что и как сравнивать… Размер и полезность:  2 бита, 3 байта, 10 раз по 4  42 подряд, 1 Килобайт Устойчивость к искажениям:  Обратный порядок, Инверсия  Разбавить «пробелами»… Оперируем байтами Равенство двух подстрок Видеть 42 и больше*
  • 5. Где возникает такая задача? 1. Дедупликация 2. Предотвращение утечек 3. Обнаружение утечек
  • 6. Ликбез-0: Работа с дайджестами блоков 1. Нарезаем на блоки 2. Считаем хэш-функцию (SHA1, MD5…) 3. Оперируем дайджестами (4…32 байта) Полное равенство или хэш-коллизия Видим поблочно Точность  размер блоков
  • 7. Ликбез-1: Блоками равного размера 1. Подряд на равные блоки 2. Последний дополняется или отбрасывается 3. Границы кратны размеру Хорошо для backup При вставке или удалении «хвост отваливается»
  • 8. Ликбез-2: Шинглирование слов  Черепица съешь ещё этих мягких французских булок, да выпей чаю съешь ещё этих мягких ещё этих мягких французских этих мягких французских булок мягких французских булок, да выпей французских булок, да выпей чаю 1. 2. 3. 4. 5.  9459da43  7237602b  56aef20f  01a31914  74890a17
  • 9. Ликбез-3: Шинглирование слов 1. По границам слов 2. Несколько слов в блоке 3. Блоки с наложением Хорошо для текстов Нужны границы слов
  • 10. Задача и штатные решения Набор образцов  Много, Большие  Конфиденциальны Обнаруживать фрагменты  В других файлах  В потоке Данные произвольны Только дайджесты  Сжатие объёма  Конфиденциальность Штатные варианты  Фиксированными блоками  Шинглирование слов – не подходят…
  • 11. Что делать нам? Сложности  Хвост не должен отваливаться  Нет структуры и слов Идея  Смотрим – как на утку сквозь прицел  Стреляем – когда ходит и крякает, как утка 1. Скользящее окно 2. Оценочная функция 3. Отмечаем границы Про вероятность  Схема детерминирована  Но данные произвольны
  • 12. На простом примере 1. Скользящее окно в 10 байт 2. Считаем MD5 3. Обозначаем границу, когда дайджест кратен 42 1. В среднем каждая 42 позиция будет границей 2. Границы зависят только от содержимого окна и синхронизируются 3. Замечаем совпадения длиной «Окно + Блок»
  • 13. Что тут плохо? Длина блоков  Отрицательное биноминальное распределение  𝑃 𝑛 = 𝑝 ∙ 1 − 𝑝 𝑛 Хочется  Другое распределение  Учитывать эвристики 1 20 40 60 80 100 𝑷 𝟏 = 𝟏 𝟒𝟐 𝑷 𝟏𝟎𝟎 = 𝟏 𝟒𝟐 𝟒𝟏 𝟒𝟐 𝟗𝟗 𝑷 𝒏 𝒏
  • 14. Ключи к решению 1. Комбинировать несколько функций 2. Со снижением вероятности «плохих случаев» 3. Без внутреннего состояния, строго от содержимого скользящего окна 4. Мелкие блоки тоже нужны
  • 15. Суть решения 1. Вложенное скользящее окно 2. Упорядоченный набор оценивающих функций 3. Просматриваем вперед до первой «утки» 𝐹1 = 𝐹2 = 𝐹 𝐾 = +1 +2 … +N-1+3+0 
  • 16. Свойства 1. Зависимость границ только от данных 2. Любые подходящие функции 3. Для худшего случая 𝑃 𝑤𝑜𝑟𝑠𝑡 = ς𝑖=1 𝐾 (1 − 𝑃𝑖) 𝑁 𝐹1 = 𝐹2 = 𝐹 𝑲 = +1 +2 … +N-1+3+0 
  • 17. + Распределение размеров блоков 1. Дойдём до nой позиции внутри строки 2. Если все предыдущие строки пустые 3. Сумма по всем функциям для позиции 𝑃 𝑛 = σ𝑖=1 𝐾 𝑃𝑖(1 − 𝑃𝑖) 𝑛 × ς 𝑗=1 𝑖−1 (1 − 𝑃𝑗) 𝑁 , при заданных 𝑵 и 𝑷 𝟏 … 𝑷 𝑲 𝐹1 = 𝐹2 = 𝐹 𝑲 = P1 P2 +1 +2 … +N-1+3+0 3 1 2 PK ?
  • 18. Пример распределения 𝑃 𝑛 = ෍ 𝑖=1 𝐾 𝑃𝑖(1 − 𝑃𝑖) 𝑛× ෑ 𝑗=1 𝑖−1 (1 − 𝑃𝑗) 𝑁 𝑷 𝟏 ≈ 𝑷 𝟒𝟐 ≈ 𝟏 𝟒𝟐 𝑷 𝟏𝟎𝟎 ≈ 𝟎 1 42 100 𝟏 𝟒𝟐 𝐹1 = 𝐹2 = 𝐹 𝑲 = P1 P2 +1 +2 … +N-1+3+0 PK ? 𝑷 𝒏 𝒏
  • 19. Возможности 1. Шинглировать мелкие блоки 2. Эвристики и разные типы блоков 3. Разные размеры вложенных окон
  • 20. Точность и Достоверность Достоверность  Вероятность коллизии  Ширина дайджестов Точность  Размер окна + размер блока 𝒏  Плотность вероятности 𝑷(𝒏) Баланс детализации  Мера влияния 𝑷 𝒏 ∙ 𝒏  Максимизация для желаемого 𝒏 1 20 42 60 80 100 𝑷 𝒏 ∙ 𝒏 𝒏 0 = lim 𝑛→∞ 𝑃 𝑛 ∙ 𝑛 𝑁 = න 𝑛=1 𝑁 𝑃 𝑛 ∙ 𝑛 42
  • 21. Связь с размером Индекса Точнее или Достовернее – больше Индекс Размер Индекса – предел по Колмогорову для результатов Меньше Индекс – больше пропусков, меньше достоверность Ошибка от внутренней Меры Жордана – функция от сжатия
  • 22. В чем новизна? Аналогов (пока) не найдено:  Патенты  Научные работы и алгоритмы  Давайте искать вместе Принципиальные отличия: 1. Нарезка бинарного потока, а не поиск подстрок 2. «Колмогоровское шинглирование» 3. Гибкость