Смотреть что такое "NUSH" в других словарях. Единицы измерения объема информации 256 бит равно байт

NUSH («Наш») - блочный алгоритм симметричного шифрования, разработанный Анатолием Лебедевым и Алексеем Волчковым для российской компании LAN Crypto.

NUSH имеет несколько различных вариантов, имеющих разный размер блока (64, 128, 256 бит), различное число раундов (в зависимости от размера блока равно 36, 128 или 132 раунда) и использует длину ключа в 128, 192 или 256 бит. Алгоритм не использует S-блоки, а только такие операции, как AND, OR, XOR, сложение по модулю и циклические сдвиги. Перед первым и после последнего раунда проводится «отбеливание» ключа.

Данный алгоритм был выдвинут в проекте NESSIE , но не был выбран, так как было показано, что линейный криптоанализ может быть эффективнее, чем атака перебором.

На основе алгоритма шифрования можно построить и другие алгоритмы. Несколько их них изложены в настоящей статье.

Описание алгоритма

Шифрование

Введём обозначения. Пусть - длина шифруемого блока открытого текста . (start key) - выбирается по некоторому расписанию на основе ключа К. Побитово добавляется к исходному тексту: После этого происходит r-1 раундов, задаваемых следующими уравнениями, в которых (Round subKey)- раундовые подключи, # - побитовая конъюнкция или дизъюнкция , выбирается в соответствии с расписанием, , - известные константы, >>>j - циклический сдвиг вправо на j бит:

Последняя итерация отличается от основных только отсутствием перестановки после вычисления выражений в правых частях равенств:

Выход: зашифрованный блок

Расшифрование

По общей формуле для обращения произведения операторов строится и процедура расшифрования.

Выполняется одна итерация по расшифрованию:

( - длина , можно производить циклический сдвиг влево на )

После этого основной цикл расшифрования, состоящий из итераций, также несущественно отличающихся от предыдущей:

Комментарии

В некоторых источниках считают, что процедура шифрования состоит из в 4 раза меньшего числа раундов, состоящих из 4 итераций приведённого выше типа (без начального и конечного сложения по модулю 2). Так, сами авторы шифра записывали свой алгоритм следующим образом:

  • Определяли функцию R - «итерацию»:
  • Описывали начальное преобразование (сложение («+») с KS)
  • Говорили, что раунд состоит из 4 итераций:

где - к итерационному ключу добавляется соответствующая константа

  • Описывали конечное преобразование (сложение («+») с KF).

Алгоритмы аналогичны, поскольку операция «+» определена авторами отдельно от основного описания метода шифрования. Следует отметить, что расписание операций «+» можно изменить, выбирая обратимые бинарные операции над векторами длины . Нелинейная операция обычного сложения с игнорированием переполнения призвана усложнить линейный криптоанализ. А операция XOR помогают избежать дифференциального криптоанализа. В дальнейшем будет рассматриваться первое описание алгоритма, приведённое в статье китайских математиков, произведших линейный криптоанализ алгоритма.

Выбор операций «+» был произведён по итогам исследований распараллеливания вычислений на процессорах типа Pentium. Выбор изменения порядка регистров a, b, c, d от раунда к раунду ускоряет появление диффузии и конфузии. Базовые операции (XOR, сложение по модулю , OR, AND) и их порядок ускорили выполнение алгоритма, реализованного на языке С на большинстве платформ, а имплементация алгоритма на ассемблере достаточно короткая.

Простота реализации

Из приведённого описания видно, что для реализации алгоритма необходимо:

При этом отсутствуют таблицы подстановок, присутствующие, например, в ГОСТе, а раунд состоит из 6 операций. То, что сдвиг осуществляется на заранее известную величину, не зависящую ни от открытого текста, ни от ключа, существенно упрощает реализацию алгоритма на микросхемах. Простота алгоритма позволяет легко проверить, что в конкретной имплементации отсутствует так называемый «черный ход».

Параметры

Константы и

Длина N блока составляет 64 бита

Проводится 36 раундов

i i i i
0 ac25 9 6a29 18 96da 27 d25e
1 8a93 10 6d84 19 905f 28 a926
2 243d 11 34bd 20 d631 29 1c7b
3 262e 12 a267 21 aa62 30 5f12
4 f887 13 cc15 22 4d15 31 4ecc
5 c4f2 14 04fe 23 70cb 32 3c86
6 8e36 15 b94a 24 7533 33 28db
7 9fa1 16 df24 25 45fc 34 fc01
8 7dc0 17 40ef 26 5337 35 7cb1
i i i i
0 4 9 2 18 5 27 13
1 7 10 9 19 1 28 12
2 11 11 4 20 2 29 3
3 8 12 13 21 4 30 6
4 7 13 1 22 12 31 11
5 14 14 14 23 3 32 7
6 5 15 6 24 9 33 15
7 4 16 7 25 2 34 4
8 8 17 12 26 11 35 14

Длина блоков 128 бит

При длине блока 128 бит проводится 68 раундов. Поэтому задаются 68 32-битных констант и 68 констант .

Длина блока 256 бит

При длине блока 256 бит проводится 132 раундов. Поэтому задаются 132 64-битных константы и 132 константы .

Расписание ключей

Ключ представляется в виде конкатенации N/4-битных слов. KS и KF задаются произвольным образом, а в качестве раундовых ключей по очереди используются все

128-битный ключ

Блок в 64 бита

Ключ К делится на 8 слов

Блоки в 128 бит и 256 бит

Ключ К делится на 4 и 2 слова соответственно, поэтому раундовые ключи повторяются с периодом 4 или 2. В последнем случае среди KS и KF есть одинаковые.

192-битный ключ

В зависимости от длины блока ключ делится на 12, 6, и 3 n-битных частей, что определяет период повторения раундовых ключей.

256-битный ключ

Здесь ключ является объединением 16, 8 или 4 двоичных слов.

Расписание операции #

I # i # i # i #
0 AND 16 OR 32 OR 48 AND
1 OR 17 OR 33 OR 49 AND
2 AND 18 AND 34 AND 50 AND
3 OR 19 AND 35 OR 51 AND
4 OR 20 AND 36 OR 52 AND
5 OR 21 AND 37 AND 53 AND
6 OR 22 AND 38 OR 54 OR
7 OR 23 OR 39 AND 55 AND
8 AND 24 AND 40 OR 56 OR
9 OR 25 OR 41 AND 57 OR
10 OR 26 OR 42 AND 58 OR
11 AND 27 OR 43 OR 59 AND
12 OR 28 AND 44 OR 60 AND
13 AND 29 OR 45 AND 61 AND
14 OR 30 AND 46 AND 62 OR
15 OR 31 AND 47 AND 63 OR

Для дальнейших итераций все повторяется:

Быстродействие

В алгоритме отсутствуют операции с битовою сложностью выше, чем , где - битовая длина модуля или операндов (например, у произведения по модулю, нахождения обратного (по умножению) элемента или наибольшего общего делителя битовая сложность , а у возведения в степень - ). Поэтому естественно ожидать высокой скорости работы алгоритма. Авторами приводятся следующие данные:

Безопасность

Главной причиной отсеивания алгоритма NUSH в конкурсе NESSIE стала найденная Ву Венлингом и Фенгом Денго уязвимость алгоритма к линейному криптоанализу.

В своей статье «Линейный криптоанализ блочного шифра NUSH» они используют понятие сложности атаки , где характеризует потребности в памяти, а - в объёме вычислений.

Для N=64 и N=128 бит предложено 3 вида атак, а для N=256 - два. Сложности соответствующих атак:

Длина блока, бит Длина ключа, бит
64 128
192
256
128 128
192
256
256 128
192
256

Для некоторых случаев версия с 192-битным ключом существенно надежнее, чем с более длинным ключом. Также можно заметить, что для есть случаи, когда сложности атак шифра с самой маленькой длиной ключа и самой большой практически совпадают. Кроме того, увеличение длины ключа сказывается не так сильно на сложности атаки, как хотелось бы.

Таким образом, существуют атаки на шифр NUSH эффективнее полного перебора. Поэтому есть вероятность улучшения этих атак или достижения вычислительной техниой уровня, достаточного для взлома шифра в разумное время.

Криптоанализ алгоритма

В качестве примера рассмотрим вторую атаку на шифр с длиной блока N=64 бита. Криптоанализ основан на построении зависимостей между битами ключа, исходного и зашифрованного текста, справедливых с вероятностью, отличающейся от 1/2. Эти соотношения строятся на основе уравнения, справедливого с вероятностью 3/4

Это уравнение можно проверить, используя описание алгоритма, и учтя, что для последнего (младшего) разряда операции «+» и совпадают. Действительно, имеем соотношение . Добавив к обеим частя равенства соотношение получим требуемое.

Рассмотрев 4 первых раунда дешифрования, можно установить, что .

Используя Piling-up лемму, с вероятностью . Получили связь между битами ключа и открытым и зашифрованным текстами.

Из расписания ключей можно получить, что если длина ключа составляет 128 или 256 бит, то , если же ключ состоит из 192 бит, то . Из этих данных оцениваем временную сложность атаки, задаваемой следующим алгоритмом:

Сложность по объёму хранимой информации оценивается как . Именно стольким количеством пар открытый-шифрованный текст должен обладать криптоаналитик. При этом тексты отнюдь непроизвольные. Из приведенных соотношений видно, что зависят не от всех битов входного и выходного блоков. Соответственно, среди выборки блоков открытого и зашифрованных текстов должны быть блоки с отличающимися соответствующими битами. Работа алгоритма с меньшим числом известных текстов возможна, но тогда с меньшей вероятностью найденное «максимальное» число на втором этапе будет действительно соответствовать настоящему ключу в виду непревышения корня из дисперсии числа событий «уравнение выполняется» над мат. ожиданием разницы чисел этого события и ему противоположного (можно рассмотреть схему Бернулли, где вероятность «успеха» равна вероятности выполнения соотношения).

Другие предложенные в той же статье атаки отличаются анализом на последней стадии соотношений для других раундов и самостоятельного интереса не представляют.

Другие алгоритмы на основе NUSH

На основе NUSH можно построить другие алгоритмы. В частности:

  • схемы аутентификации

Хэш-функция

Перед началом хэширования происходит удлинение текста:

  • Добавить к тексту единичный бит
  • Добавить столько нулей, чтобы получился текст с длиной, кратной N (эти два этапа можно не выполнять, если исходная длина текста уже кратна N)
  • Приписать N-битовое представление начальной длины LEN (в битах) текста
  • Приписать результат побитового XOR между всеми N-битовыми блоками полученного на предыдущем шаге текста

В функции используются следующие переменные:

Начальные значения: , , где - константы, которые прибавляются во время шифрования к ключу KR, KS=KF=KR=0

For i = 0 to l-1

For j=0 to L/2-1 //L - число раундов для соответствующего вида NUSH { } H = NUSH(V) //Операция шифрования For j=15 to 4 For j=15 to 4

For j=0 to L/2-1 H = NUSH() For j=15 to 4

Значение хэш-функции длиной t*n (t<16) бит - первые t n-битовых слов регистра T

Код аутентичности сообщения

На основе хэш-функции может быть построена процедура аутентификации сообщения. От предыдущего алгоритма отличается только использованием ненулевого ключа.

Синхронный поточный шифр «NUSH Stream»

Пусть SYNC - известный двоичный вектор длины LENGTH. Есть два варианта этого шифра.

Вариант 1

Пусть N = LENGTH - длина блока, используемого при шифровании алгоритмом NUSH (LENGTH = 64, 128, 256) Пусть - вектор из COUNT N-битовых слов, который будет складываться с исходным текстом и с шифротекстом для шифрования и расшифрования соответственно.

For i =0 to COUNT −1

SYNC = (SYNC + 65257) mod

Вариант 2

Здесь N=LENGTH / 2, где соответственно LENGTH = 128, 256, 512. Пусть - вектор длины N, SYNC= - вектор длины 2N T - временный регистр длины N=4n, , , , - соответствующие константы алгоритма NUSH.

Производимые вычисления:

SYNC = SYNC ^ NUSH(SYNC)

SYNC = SYNC ^ NUSH(SYNC) T=SYNC

For i =0 to COUNT −1

T = (T + 127) mod

Асимметричное шифрование

Выбор параметров

Вводится специфическая группа G c определенной авторами алгоритма операцией на основе умножения Монтгомери (Montgomery multiplication).

Отличительные особенности:

  • 256 бит перезаписываемой энергонезависимой памяти
  • EEPROM организована как одна 256 байтная страница
  • 64 бит одноразово программируемой памяти, которая автоматически защищается от записи после программирования
  • Контроль, адресация и питание по одному проводу
  • 8 битный идентификационный код семейства DS1971 для идентификации ридером
  • Диапазон напряжения питания от 2,8 В до 6,0 В во всем температурном диапазоне от -40°C до +85°C

Функциональная схема:

Описание iButton:

256 битная EEPROM DS1971 семейства iButton является мощным перезаписываемым носителем информации, который предназначен для идентификации и хранении информации об изделии или владельце. Доступ к этой информации может быть осуществлен с минимальными аппаратурными затратами при помощи всего одного вывода микроконтроллера. DS1971 имеет регистрационный номер, запрограммированный лазером в процессе производства, состоящий из 48 битного уникального заводского номера, 8 битов CRC, и 8 битного кода семейства (14H) плюс 256 битную EEPROM. Питание при программировании и считывании прибора DS1971 поступает по одной линии связи 1-Wire. Данные передаются по последовательному протоколу 1-Wire, который требует только одной линии вывода данных и общего вывода. 48 битный серийный номер, содержащийся в памяти с лазерным программированием, обеспечивает полную идентификацию прибора. Прочный MicroCan корпус имеет высокую устойчивость к воздействию внешних неблагоприятных факторов, таких как загрязнение, влажность и вибрация. Его компактная форма в виде монеты, обеспечивает самовыравнивание в ответном контактном разъеме, что обеспечивает простоту использования человеком - оператором или автоматом. Аксессуары DS1971 позволяют закрепить его практически на любой поверхности, включая печатные платы, фото- идентификационные брелки и брелки для ключей. Приборы могут применяться для контроля за передвижением грузового транспорта и путешественников, управления доступом и хранения градуировочных констант.

Описание:

Блок-схема показывает распределение функций между управляющим блоком и секцией памяти DS1971. DS1971 имеет четыре главных модуля данных: 1) 64 битное ПЗУ с лазерным программированием, 2) 256 битную EEPROM с буферным блокнотом, 3) 64 битную однократно программируемую память с буферным блокнотом и 4) 8 битную память состояния. Для доступа к памяти устройство управления шиной должно сначала выполнить одну из команд управления памятью. Все данные считываются и записываются начиная с младшего значащего бита.

Для измерения длины есть такие единицы, как миллиметр, сантиметр, метр, километр. Известно, что масса измеряется в граммах, килограммах, центнерах и тоннах. Бег времени выражается в секундах, минутах, часах, днях, месяцах, годах, веках. Компьютер работает с информацией и для измерения ее объема также имеются соответствующие единицы измерения.

Мы уже знаем, что компьютер воспринимает всю информацию .

Бит – это минимальная единица измерения информации, соответствующая одной двоичной цифре («0» или «1»).

Байт состоит из восьми бит. Используя один байт, можно закодировать один символ из 256 возможных (256 = 2 8). Таким образом, один байт равен одному символу, то есть 8 битам:

1 символ = 8 битам = 1 байту.

Буква, цифра, знак препинания – это символы. Одна буква – один символ. Одна цифра – тоже один символ. Один знак препинания (либо точка, либо запятая, либо вопросительный знак и т.п.) – снова один символ. Один пробел также является одним символом.

Изучение компьютерной грамотности предполагает рассмотрение и других, более крупных единиц измерения информации.

Таблица байтов:

1 байт = 8 бит

1 Кб (1 Килобайт ) = 2 10 байт = 2*2*2*2*2*2*2*2*2*2 байт =
= 1024 байт (примерно 1 тысяча байт – 10 3 байт)

1 Мб (1 Мегабайт ) = 2 20 байт = 1024 килобайт (примерно 1 миллион байт – 10 6 байт)

1 Гб (1 Гигабайт ) = 2 30 байт = 1024 мегабайт (примерно 1 миллиард байт – 10 9 байт)

1 Тб (1 Терабайт ) = 2 40 байт = 1024 гигабайт (примерно 10 12 байт). Терабайт иногда называют тонна .

1 Пб (1 Петабайт ) = 2 50 байт = 1024 терабайт (примерно 10 15 байт).

1 Эксабайт = 2 60 байт = 1024 петабайт (примерно 10 18 байт).

1 Зеттабайт = 2 70 байт = 1024 эксабайт (примерно 10 21 байт).

1 Йоттабайт = 2 80 байт = 1024 зеттабайт (примерно 10 24 байт).

В приведенной выше таблице степени двойки (2 10 , 2 20 , 2 30 и т.д.) являются точными значениями килобайт, мегабайт, гигабайт. А вот степени числа 10 (точнее, 10 3 , 10 6 , 10 9 и т.п.) будут уже приблизительными значениями, округленными в сторону уменьшения. Таким образом, 2 10 = 1024 байта представляет точное значение килобайта, а 10 3 = 1000 байт является приблизительным значением килобайта.

Такое приближение (или округление) вполне допустимо и является общепринятым.

Ниже приводится таблица байтов с английскими сокращениями (в левой колонке):

1 Kb ~ 10 3 b = 10*10*10 b= 1000 b – килобайт

1 Mb ~ 10 6 b = 10*10*10*10*10*10 b = 1 000 000 b – мегабайт

1 Gb ~ 10 9 b – гигабайт

1 Tb ~ 10 12 b – терабайт

1 Pb ~ 10 15 b – петабайт

1 Eb ~ 10 18 b – эксабайт

1 Zb ~ 10 21 b – зеттабайт

1 Yb ~ 10 24 b – йоттабайт

Выше в правой колонке приведены так называемые «десятичные приставки», которые используются не только с байтами, но и в других областях человеческой деятельности. Например, приставка «кило» в слове «килобайт» означает тысячу байт, также как в случае с километром она соответствует тысяче метров, а в примере с килограммом она равна тысяче грамм.

Продолжение следует…

Возникает вопрос: есть ли продолжение у таблицы байтов? В математике есть понятие бесконечности, которое обозначается как перевернутая восьмерка: ∞.

Понятно, что в таблице байтов можно и дальше добавлять нули, а точнее, степени к числу 10 таким образом: 10 27 , 10 30 , 10 33 и так до бесконечности. Но зачем это надо? В принципе, пока хватает терабайт и петабайт. В будущем, возможно, уже мало будет и йоттабайта.

Напоследок парочка примеров по устройствам, на которые можно записать терабайты и гигабайты информации.

Есть удобный «терабайтник» – внешний жесткий диск, который подключается через порт USB к компьютеру. На него можно записать терабайт информации. Особенно удобно для ноутбуков (где смена жесткого диска бывает проблематична) и для резервного копирования информации. Лучше заранее делать резервные копии информации, а не после того, как все пропало.

Флешки бывают 1 Гб, 2 Гб, 4 Гб, 8 Гб, 16 Гб, 32 Гб, 64 Гб и даже 1 терабайт.

Поскольку единого мнения о характеристиках якобы готовящихся к выходу видеочипов NV36 и NV38 пока не существует, сейчас самое время поразмышлять о некоторых спорных вопросах. Одним из них, в частности, является прогноз в отношении разрядности шины памяти будущих решений от Nvidia. В ходе "уточнения слухов" о характеристиках NV36 шина памяти то приобретала ширину 256 бит, то вновь ее лишалась в пользу более скромных 128 бит. Каково значение этого параметра для разработчиков и что оно может дать пользователю? Ответить на этот вопрос попробовали наши коллеги с сайта Beyond 3D .

Итак, является ли на сегодняшний день 256-битная шина памяти исключительной прерогативой дорогих видеокарт? Вероятно, что даже несколько месяцев назад можно было ответить утвердительно, но сейчас поводов для такой уверенности становится все меньше...

Долгое время считалось, что разводка платы с 256-битной шиной памяти способна значительно увеличить себестоимость производства, и оправдан такой шаг мог быть только для высокодоходных решений верхнего ценового диапазона. Видеокарты Matrox Parhelia, Wildcat VP и Radeon 9700 перешли на использование 256-битной шины еще в 2002 году, для их цены это было оправдано. Но не будем забывать, что знаменитый Radeon 9500 на "правильном дизайне" использует все ту же 256-битную шину, а купить его можно было ровно за цену варианта со 128-битной шиной. Так ли уж важен фактор себестоимости?

В настоящее время объем памяти в 128 Мб стал нормой для большинства видеокарт среднего ценового диапазона. При этом число чипов памяти обычно равно восьми. При 256-битной шине памяти также достаточно использовать восемь чипов, если каждый из них имеет 32-битный доступ. Чтобы не провоцировать заметный разрыв в производительности флагманских видеоплат с 256-битной шиной и более дешевых плат со 128-битной шиной, проектировщики вынуждены использовать на платах со 128-битной шиной более быстрые чипы памяти (в плане таймингов), что обходится дороже памяти для 256-битного варианта, где тайминги не играют большой роли.

Дилемма достаточно проста: 8 очень быстрых чипов в 128-битной конфигурации или 8 менее быстрых чипов в 256-битной конфигурации. В переводе на скупой язык экономики выбор заключается в следующем: более дорогие чипы памяти или менее дорогие чипы памяти плюс несколько более дорогой дизайн печатной платы.

По рассмотренным причинам мы вполне признаем вариант плат на базе NV36 с 256-битной шиной памяти экономически целесообразным. Пропускная способность памяти не будет упираться в ограничения шины, возможно, это слегка поможет увеличить производительность видеоплат в тяжелых графических режимах. Учитывая современную тенденцию к усложнению графических сцен, 256-битная шина памяти не повредит даже такому потенциально урезанному решению, как NV36. Осталось только подождать завершения конференции SIGGRAPH, и мы наверняка узнаем правду...

Здравствуйте, уважаемые читатели блога сайт! В условиях бурного развития информационных технологий недурственно бы получить знания по некоторым фундаментальным аспектам, хотя бы основным. Это может оказать серьезную помощь в дальнейшем.

В интернете, которым мы пользуемся благодаря компьютерам, вся информация хранится или передается в закодированном цифровом формате, а потому должны обязательно существовать способы измерить объем этих данных, ведь от этого зависит системность работы с ними. Такими единицами измерения служат бит и байт.

По аналогии с известными нам физическими единицами измерения, которые при большой их величине для удобства исчисления получают увеличительные приставки (1000 метров = 1 километр, 1000 грамм = 1 килограмм), единица информации байт тоже имеет свои производные (килобайт, мегабайт, гигабайт и т.д.). Однако, в случае бита и байта существуют нюансы, о которых я подробнее и поведаю.

Что представляют из себя единицы информации бит (bit) и байт (byte)

Чтобы было понятнее, придется изложить все поподробнее и начать, так сказать, с истоков. Однако постараюсь донести информацию без заумных математических формул и терминов. Дело в том, что существует несколько позиционных систем счисления. Не буду их перечислять, поскольку в этом нет необходимости.

Двоичная и десятичная системы счисления

Самая известная из них, с которой мы все сталкиваемся ежедневно, это десятичная система. В ней любое число состоит из цифр (от 0 до 9), каждая из которых является разрядом, занимая строго соответствующую ей позицию. Причем разрядность увеличивается справа налево (единицы, десятки, сотни, тысячи и т.д.).

Возьмем для примера число 249, которое можно представить в виде суммы произведений цифр на 10 в степени, соответствующей данному разряду:

249 = 2×10 2 + 4×10 1 + 9×10 0 = 200 + 40 + 9

Таким образом, нулевой разряд - это единицы (10 0), первый - десятки (10 1), второй - сотни (10 2) и т.д. В компьютере, как и в других электронных устройствах, вся информация распределяется по файлам () и кодируется соответствующим образом в цифровом формате, причем в силу простоты использования применяется двоичная система счисления, на которой остановлюсь отдельно.

В двоичной системе числа представляются с помощью всего двух цифр: 0 и 1. Попробуем записать уже рассмотренное нами число 249 в двоичной системе, чтобы понять ее суть. Для этого делим его на 2, получив целое частное с остатком 1. Эта единичка и будет самым младшим разрядом, который будет, как и в случае десятичной системы, крайним справа.

Далее продолжаем операцию деления и каждый раз целые числа также делим на 2, получая при этом в остатке 0 или 1. Их последовательно и записываем справа налево, получив в итоге 249 в двоичной системе. Операцию деления следует проводить до тех пор, пока в результате не появится нуль:

249/2 = 124 (остаток 1) 124/2 = 62 (остаток 0) 62/2 = 31 (остаток 0) 31/2 = 15 (остаток 1) 15/2 = 7 (остаток 1) 7/2 = 3 (остаток 1) 3/2 = 1 (остаток 1) 1/2 = 0 (остаток 1)

Теперь записываем цифры в остатке последовательно справа налево и получаем наше подопытное число в двоичной системе:

11111001

Чтобы не осталось темных пятен, проведем обратное действие и попробуем перевести то же самое число из двоичной в десятичную систему, проверив заодно правильность выше изложенных действий. Для этого умножаем опять же по порядку слева направо нуль или единицу на 2 в степени, соответствующей разряду (по аналогии с десятичной системой):

1×2 7 + 1×2 6 + 1×2 5 + 1×2 4 + 1×2 3 + 0×2 2 + 0×2 1 + 1×2 0 = 128 + 64 + 32 + 16 + 8 + 0 + 0 + 1 = 249

Как видите все получилось, и мы смогли преобразовать число, записанное в двоичной системе, на его запись в десятичной системе счисления.

Сколько бит в байте при использовании двоичной системы в информатике

Я не зря предоставил чуть выше краткий математический экскурс, поскольку именно двоичная система служит основой измерения, используемой в электронных устройствах. Базовой единицей количества информации, равной разряду в двоичной системе, как раз и является бит.

Этот термин происходит от английского словосочетания b inary digit (bit ), что означает двоичное число. Таким, образом, бит может принимать лишь два возможных значения: 0 или 1. В информатике это означает два совершенно равных с точки зрения вероятности результата ("да" или "нет") и не допускает другого толкования.

Это очень важно с точки зрения корректной работы системы. Идем дальше. Количество бит, которое обрабатывается компьютером в один момент, называется байтом (byte) . 1 байт равен 8 битам и, соответственно, может принимать одно из 2 8 (256) значений, то есть от 0 до 255:


Итак, нам теперь доподлинно известно, что такое байт, и какую роль он играет в качестве единицы измерения при обработке информации, хранящейся и обрабатываемой в цифровом виде. Кстати, в международном формате байт может обозначаться двумя способами - byte или B.

Перевести числа в десятичном формате на двоичную систему можно с помощью калькулятора. Если у вас ОС Windows 7, то вызвать этот инструмент можно так: Пуск - Все программы - Стандартные - Калькулятор. В меню «Вид» выбираете формат «Программист» и вводите желаемое число (в моем примере это 120):


Теперь включите радиокнопки «Bin» и «1 байт», после чего получаете запись данного числа в двоичной системе:


На что здесь следует обратить внимание? Во-первых , в строке на дисплее представлены лишь семь разрядов (биты со значениями ноль или единица), хотя мы уже знаем, что их должно быть восемь, если значение байта от 0 до 255:

Здесь все просто. Если самый старший разряд (бит), расположенный крайним слева, принимает значение 0, то он просто не записывается. Два или более нулевых бита тоже опускаются (по аналогии с десятичными числами - ведь к сотням мы не прописываем 0 тысяч, например).

Доказательством может служить полная запись полученного числа, которая отображается мелким шрифтом чуть ниже:

0111 1000

Если вы внимательны, то увидите, что здесь во-вторых . Это способ записи в виде двух частей, каждая из которых состоит из четырех бит. В информатике используется еще такое понятие как полубайт, или ниббл (nibble). Это удобно тем, что ниббл можно представить как разряд в шестнадцатеричной системе, которая широко используется в программировании.

Для обработки данных требуется более 1 байта - что тогда?

Выше мы поговорили о том, что байт содержит восемь бит. Это позволяет выразить 256 (два в восьмой степени) различных значений. Однако на практике в основном этого далеко не достаточно и во многих случаях приходится использовать не один, а несколько byte. В качестве примера воспользуемся еще раз калькулятором Windows и переведем число 1000 в двоичную систему:


Как видите, для этого пришлось отщипнуть пару разрядов из второго байта. На практике в компьютерах для обработки достаточно объемной информации применяется такое понятие как машинное слово , которое может содержать 16, 32, 64 bit.

С их помощью можно выразить соответственно 2 16 , 2 32 и 2 64 различных значений. Но в этом случае нельзя говорить о 2, 4 или 8 байтах, это немного разные вещи. Отсюда растут ноги из упоминания, например, 32-, 64-разрядных (-битных) процессоров или других устройств.


Сколько байт в килобайте, мегабайте, гигабайте, терабайте

Ну а теперь самое время перейти к производным байта и представить, какие приставки увеличения здесь используются. Ведь байт как единица очень маленькая величина, и для удобства очень даже полезно использовать аналоги, которые бы обозначали 1000 B, 1 000 000 B и т.д. Здесь тоже есть свои нюансы, о которых и поговорим ниже.

Строго говоря, для представления величин корректно использовать приставки для двоичной системы счисления, которые кратны 2 10 (1024). Это кибибайт, мебибайт, гебибайт и т.д.

1 кибибайт = 2 10 (1024) байт 1 мебибайт = 2 10 (1024) кибибайт = 2 20 (1 048 576) байт 1 гебибайт = 2 10 (1024) мебибайт = 2 20 (1 048 576) кибибайт = 2 30 (1 073 741 824) байт 1 тебибайт = 2 10 (1024) гебибайт = 2 20 (1 048 576) мебибайт = 2 30 (1 073 741 824) кибибайт = 2 40 (1 099 511 627 776) байт

Но данные словосочетания не прижились в широком использовании. Возможно, одной из причин стала их неблагозвучность. Поэтому пользователи (и не только) повсеместно употребляют вместо двоичных десятеричные приставки (килобайты, мегабайты, гигабайты, терабайты), что является не совсем корректным, поскольку по сути (в соответствии с правилами десятичной системы счисления) это означает следующее:

1 килобайт = 10 3 (1000) байт 1 мегабайт = 10 3 (1000) килобайт = 10 6 (1 000 000) байт 1 гигабайт = 10 3 (1000) мегабайт = 10 6 (1 000 000) килобайт = 10 9 (1 000 000 000) байт 1 терабайт = 10 3 (1000) гигабайт = 10 6 (1 000 000) мегабайт = 10 9 (1 000 000 000) килобайт = 10 12 (1 000 000 000 000) байт

Но раз уж так сложилось, ничего не поделаешь. Важно лишь помнить, что на практике часто используются килобайт (Кбайт), мегабайт (Мбайт), гигабайт (Гбайт), терабайт (Тбайт) именно в качестве производных от байта как единицы измерения количества информации в двоичной системе. И в этом случае употребляют, например, термин "килобайт", имея ввиду именно 1024 байта и не что иное.

Однако, очень часто производители накопителей (включая жесткие диски, флэшки, DVD- и CD-диски) при указании объема для хранения информации применяют именно десятичные приставки по прямому назначению (1 Кбайт = 1000 байт), в то время как тот же Виндовс, например, рассчитывает их размер в двоичной системе.

Отсюда и выходит некоторое несоответствие, которое может запутать простого пользователя. Скажем, в документации указана емкость диска 500 Гб , в то время как Windows показывает его объем равным 466,65 Гбайт .

По сути никакого расхождения нет, просто размер накопителя присутствует в разных системах счисления (тот же пень, только сбоку). Для неопытных юзеров это крайне неудобно, но, как я уже сказал, приходится с этим мириться.

Резюмируя, отмечу следующее. Скажем, вам зададут вопрос: сколько байт в килобайте? Теоретически корректным будет ответ: 1 килобайт равен 1000 байтам. Просто надо помнить, что на практике по большей части десятичные приставки используются в качестве двоичных, которые кратны 1024, хотя иногда они применяются по прямому назначению и кратны именно 1000.

Вот такая арифметика, надеюсь, что вы не запутались. В публикации я упомянул килобайт, мегабайт, гигабайт и терабайт, а что дальше? Какие еще более крупные единицы количества информации возможны? На этот вопрос ответит таблица, где указаны не только соотношение единиц в обеих системах, но и их обозначения в международном и российском форматах:

Двоичная система Десятичная система
Название Обозначение Степень Название Обозначение Степень
Рос. Межд. Рос. Межд.
байт Б B 2 0 байт Б B 10 0
кибибайт КиБ KiB 2 10 килобайт Кбайт KB 10 3
мебибайт МиБ MiB 2 20 мегабайт Мбайт MB 10 6
гибибайт ГиБ GiB 2 30 гигабайт Гбайт GB 10 9
тебибайт ТиБ TiB 2 40 терабайт Тбайт TB 10 12
пебибайт ПиБ PiB 2 50 петабайт Пбайт PB 10 15
эксбибайт ЭиБ EiB 2 60 эксабайт Эбайт EB 10 18
зебибайт ЗиБ ZiB 2 70 зеттабайт Збайт ZB 10 21
йобибайт ЙиБ YiB 2 80 йоттабайт Ибайт YB 10 24

Ежели желаете быстро определить, например, сколько мегабайт в гигабайте (хотя опытный пользователь, конечно, легко обойдется в этом случае без таблицы), то ищите в таблице ячейки, соответствующее количеству байт в мегабайте и гигабайте, а затем делите большее значение на меньшее.

10 9 /10 6 = 1 000 000 000/1 000 000 = 1000

Получается, что в 1 гигабайте 1000 мегабайт. Точно также можно переводить производные в двоичной системе - мебибайты в кибибайты, тебибайты в гибибайты и т.д.

Переводим байты в биты, килобайты, мегабайты, гигабайты, терабайты в онлайн конвертере

Публикация была бы неполной, если бы я не привел инструмент, с помощью которого можно осуществить перевод byte в различные производные. В сети много разнообразных конвертеров, посредством которых можно произвести эти нехитрые операции. Вот один из них , который мне приглянулся.

Этот конвертер удобен тем, что введя количество byte, можно сразу получить результат во всех возможных измерениях (в том числе перевести биты в байты):

Из данного примера следует, что 3072 байта равно 24576 битам, 3,0720 килобайтам или 3 кибибайтам. Кроме этого, чуть ниже расположены ссылки на миникалькуляторы, где вы сможете быстро произвести конкретный перевод из одной системы единиц в другую.

Понравилась статья? Поделиться с друзьями: