Объясните понятие энтропии Шеннона на примере строки "ABABABAB..." и строки с равновероятными символами, вычислите значения энтропии, обсудите связь между энтропией и сжатием данных, а также конфликт между эффективным сжатием и требованиями к криптографической стойкости
Для дискретной случайной величины X с вероятностями pxxx энтропия определяется как HXXX = −∑ pxxx log2 pxxx. Это среднее количество бит неопределённости или«информации»или «информации»или«информации» о значении X; в теории источников — нижняя граница средней длины любых кодов для этого источника.
Примеры и вычисления
1) Строка "ABABABAB..." — два способа её рассматривать: a) Если вы моделируете источник как независимые броски с pAAA=pBBB=1/2 i.i.d.равновероятныесимволыi.i.d. равновероятные символыi.i.d.равновероятныесимволы, то HXXX = −1/21/21/2 log21/21/21/2 − 1/21/21/2 log21/21/21/2 = 1 бит на символ. Интерпретация: если вы не учитываете зависимость между символами, то каждый символ в среднем даёт 1 бит неопределённости. b) Если же строка действительно детерминирована как строго чередующиеся символы период2период 2период2, то будущие символы полностью предсказуемы после того, как вы знаете фазу какойсимволбылпервымкакой символ был первымкакойсимволбылпервым. В этом случае энтропия-скорость источника entropyrateentropy rateentropyrate
Hrate = lim{n→∞} HX1,...,XnX1,...,XnX1,...,Xn/n = 0 бит/символ, потому что единственная неопределённость — это выбор начального символа 1бит1 бит1бит, а при больших n средняя неопределённость на символ стремится к 0. То есть такой источник с памятью имеет нулевую асимптотическую неопределённость.
Замечание: HX1X1X1 = 1 бит еслипервыйсимволравновероятенесли первый символ равновероятенеслипервыйсимволравновероятен, HX2∣X1X2|X1X2∣X1 = 0 бит следующийоднозначноопределёнследующий однозначно определёнследующийоднозначноопределён, поэтому среднее по блоку быстро падает.
2) Строка с равновероятными символами алфавитразмераk,каждыйсимволсp=1/kалфавит размера k, каждый символ с p=1/kалфавитразмераk,каждыйсимволсp=1/k: H = −∑_{i=1..k} 1/k1/k1/k log21/k1/k1/k = log2 k бит на символ. Примеры: для двоичного алфавита k=2 → H=1 бит/символ; для 26 букв H = log2 26 ≈ 4.7 бит/символ.
Связь между энтропией и сжатием
Закон Шеннона теоремаокодированииисточникатеорема о кодировании источникатеоремаокодированииисточника говорит: при кодировании длинных блоков средняя длина кода вбитах/символв битах/символвбитах/символ не может быть меньше энтропии источника; существуют коды, приближающиеся к H при большом блоке.Интерпретация: Источник с низкой энтропией на символ многоизбыточности,закономерностеймного избыточности, закономерностеймногоизбыточности,закономерностей хорошо сжимается — среднее количество бит на символ можно существенно снизить.Источник с высокой энтропией близкойкlog2∣alphabet∣близкой к log2|alphabet|близкойкlog2∣alphabet∣ почти несжимаем — оптимальный код даёт мало выигрыша по сравнению с тупой фиксацией битов.Примеры: Для детерминантной строки "ABAB..." энтропия-скорость 0 → в теории вы можете сжать её до Olognlog nlogn бит (записать правило "повторять 'AB' n/2 раз") vs исходный n символов.Для i.i.d. равновероятных символов размером k оптимальное сжатие даёт ≈ n log2 k бит, то есть нет существенной экономии по сравнению с минимальным битовым представлением.
Конфликт между эффективным сжатием и криптографической стойкостью
Цель сжатия — удалить избыточность, сделать данные компактными. Цель шифрования — сделать данные непредсказуемыми/неотличимыми от случайной последовательности.Последствия: 1) После хорошего шифрования идеальныйшифридеальный шифридеальныйшифр ciphertext должен выглядеть как равномерно распределённая случайная строка — максимально высокая энтропия на символ, поэтому ciphertext не сжимается. 2) Поэтому сжатие обычно выполняют до шифрования compress→encryptcompress → encryptcompress→encrypt. Сжатие уменьшает избыточность, что убирает возможные утечки через повторяющиеся паттерны. 3) Однако сжатие может привести к уязвимостям: если злоумышленник может наблюдать длину зашифрованного и/или сжатого сообщения и управлять частью вводимых данных, он может по изменениям длины вывести информацию о секретных частях атакиCRIME,BREACHатаки CRIME, BREACHатакиCRIME,BREACH. Причина — изменение совпадения между атакуемыми строками и секретом меняет степень сжатия, а это отражается в длине выходных данных.Практические рекомендации из этой двойственности: Сжимайте перед шифрованием, если хотите убрать избыточность, но не давайте атакам возможность запрашивать/наблюдать сжатые результаты с изменяемым вводом, который зависит от секретов.Для сетевых протоколов часто отключают компрессию для секретных полей или применяют защиту фиксированнаядлина,padding,независимыеблокификсированная длина, padding, независимые блокификсированнаядлина,padding,независимыеблоки, чтобы длина не была информативной.Современные криптографические принципы: шифрование должно давать индуцированное распределение, которое не даёт компрессионной выгоды и устойчиво к выбранным-plaintext атакам.
Короткое резюме
Энтропия Шеннона измеряет среднюю неопределённость бит/символбит/символбит/символ. Для равновероятного алфавита размером k H = log2 k. Для i.i.d. бинарного равновероятного источника H = 1 бит/символ.Но для источников с памятью (например строгое "ABAB...") энтропия-скорость может быть значительно ниже внашемслучае0в нашем случае 0внашемслучае0, и такие источники легко сжимаются.Компрессия удаляет статистическую структуру; шифрование, напротив, стремится её замаскировать. Комбинация сжатия и шифрования должна быть построена аккуратно, потому что сжатие может стать каналом утечки атакатакатак несмотря на то, что оно обычно полезно для предварительной обработки перед шифрованием.
Коротко — что такое энтропия Шеннона:
Для дискретной случайной величины X с вероятностями pxxx энтропия определяется какHXXX = −∑ pxxx log2 pxxx.
Это среднее количество бит неопределённости или«информации»или «информации»или«информации» о значении X; в теории источников — нижняя граница средней длины любых кодов для этого источника.
Примеры и вычисления
1) Строка "ABABABAB..." — два способа её рассматривать:
a) Если вы моделируете источник как независимые броски с pAAA=pBBB=1/2 i.i.d.равновероятныесимволыi.i.d. равновероятные символыi.i.d.равновероятныесимволы, то
HXXX = −1/21/21/2 log21/21/21/2 − 1/21/21/2 log21/21/21/2 = 1 бит на символ.
Интерпретация: если вы не учитываете зависимость между символами, то каждый символ в среднем даёт 1 бит неопределённости.
b) Если же строка действительно детерминирована как строго чередующиеся символы период2период 2период2, то будущие символы полностью предсказуемы после того, как вы знаете фазу какойсимволбылпервымкакой символ был первымкакойсимволбылпервым. В этом случае энтропия-скорость источника entropyrateentropy rateentropyrate Hrate = lim{n→∞} HX1,...,XnX1,...,XnX1,...,Xn/n = 0 бит/символ,
потому что единственная неопределённость — это выбор начального символа 1бит1 бит1бит, а при больших n средняя неопределённость на символ стремится к 0. То есть такой источник с памятью имеет нулевую асимптотическую неопределённость.
Замечание: HX1X1X1 = 1 бит еслипервыйсимволравновероятенесли первый символ равновероятенеслипервыйсимволравновероятен, HX2∣X1X2|X1X2∣X1 = 0 бит следующийоднозначноопределёнследующий однозначно определёнследующийоднозначноопределён, поэтому среднее по блоку быстро падает.
2) Строка с равновероятными символами алфавитразмераk,каждыйсимволсp=1/kалфавит размера k, каждый символ с p=1/kалфавитразмераk,каждыйсимволсp=1/k:
H = −∑_{i=1..k} 1/k1/k1/k log21/k1/k1/k = log2 k бит на символ.
Примеры: для двоичного алфавита k=2 → H=1 бит/символ; для 26 букв H = log2 26 ≈ 4.7 бит/символ.
Связь между энтропией и сжатием
Закон Шеннона теоремаокодированииисточникатеорема о кодировании источникатеоремаокодированииисточника говорит: при кодировании длинных блоков средняя длина кода вбитах/символв битах/символвбитах/символ не может быть меньше энтропии источника; существуют коды, приближающиеся к H при большом блоке.Интерпретация:Источник с низкой энтропией на символ многоизбыточности,закономерностеймного избыточности, закономерностеймногоизбыточности,закономерностей хорошо сжимается — среднее количество бит на символ можно существенно снизить.Источник с высокой энтропией близкойкlog2∣alphabet∣близкой к log2|alphabet|близкойкlog2∣alphabet∣ почти несжимаем — оптимальный код даёт мало выигрыша по сравнению с тупой фиксацией битов.Примеры:
Для детерминантной строки "ABAB..." энтропия-скорость 0 → в теории вы можете сжать её до Olognlog nlogn бит (записать правило "повторять 'AB' n/2 раз") vs исходный n символов.Для i.i.d. равновероятных символов размером k оптимальное сжатие даёт ≈ n log2 k бит, то есть нет существенной экономии по сравнению с минимальным битовым представлением.
Конфликт между эффективным сжатием и криптографической стойкостью
Цель сжатия — удалить избыточность, сделать данные компактными. Цель шифрования — сделать данные непредсказуемыми/неотличимыми от случайной последовательности.Последствия:1) После хорошего шифрования идеальныйшифридеальный шифридеальныйшифр ciphertext должен выглядеть как равномерно распределённая случайная строка — максимально высокая энтропия на символ, поэтому ciphertext не сжимается.
2) Поэтому сжатие обычно выполняют до шифрования compress→encryptcompress → encryptcompress→encrypt. Сжатие уменьшает избыточность, что убирает возможные утечки через повторяющиеся паттерны.
3) Однако сжатие может привести к уязвимостям: если злоумышленник может наблюдать длину зашифрованного и/или сжатого сообщения и управлять частью вводимых данных, он может по изменениям длины вывести информацию о секретных частях атакиCRIME,BREACHатаки CRIME, BREACHатакиCRIME,BREACH. Причина — изменение совпадения между атакуемыми строками и секретом меняет степень сжатия, а это отражается в длине выходных данных.Практические рекомендации из этой двойственности:
Сжимайте перед шифрованием, если хотите убрать избыточность, но не давайте атакам возможность запрашивать/наблюдать сжатые результаты с изменяемым вводом, который зависит от секретов.Для сетевых протоколов часто отключают компрессию для секретных полей или применяют защиту фиксированнаядлина,padding,независимыеблокификсированная длина, padding, независимые блокификсированнаядлина,padding,независимыеблоки, чтобы длина не была информативной.Современные криптографические принципы: шифрование должно давать индуцированное распределение, которое не даёт компрессионной выгоды и устойчиво к выбранным-plaintext атакам.
Короткое резюме
Энтропия Шеннона измеряет среднюю неопределённость бит/символбит/символбит/символ. Для равновероятного алфавита размером k H = log2 k. Для i.i.d. бинарного равновероятного источника H = 1 бит/символ.Но для источников с памятью (например строгое "ABAB...") энтропия-скорость может быть значительно ниже внашемслучае0в нашем случае 0внашемслучае0, и такие источники легко сжимаются.Компрессия удаляет статистическую структуру; шифрование, напротив, стремится её замаскировать. Комбинация сжатия и шифрования должна быть построена аккуратно, потому что сжатие может стать каналом утечки атакатакатак несмотря на то, что оно обычно полезно для предварительной обработки перед шифрованием.