Смотреть что такое "NUSH" в других словарях. Что такое бит и байт (килобайт, мегабайт, гигабайт, терабайт), а также особенности единиц измерения информации Процедура расширения ключа


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

  • 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 битную память состояния. Для доступа к памяти устройство управления шиной должно сначала выполнить одну из команд управления памятью. Все данные считываются и записываются начиная с младшего значащего бита.

Почему RSA Security рекомендует использовать ключи длиной 1024 бита, 2048 бит и даже 3072 бит, в то время как большинство алгоритмов симметричного шифрования ограничиваются длиной от 112 до 256 бит. Мол, почему бы нам не увеличить длину ключей, например, до миллиона - чтобы защититься от потенциального брутфорса со стороны суперкомпьютеров, которые ещё не изобретены.

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

С точки зрения брутфорса, принципиальная разница в том, что для взлома ключа RSA нужно найти сомножитель определённой длины (причём можно использовать предвычисленные таблицы). Это математическая задача, которую нельзя сильно усложнять, иначе обычная расшифровка сообщения будет занимать слишком много времени. На диаграмме показана скорость расшифровки на 2-гигагерцовом процессоре Pentium.

Для взлома симметричного шифра требуется перебрать 2^N комбинаций, где N - длина ключа. Расшифровка сообщения в любом случае происходит мгновенно, имея симметричный ключ. По оценке NIST , 256-битный симметричный ключ примерно соответствует 15360-битному ключу RSA. Лучше всего этот пример описан в книге «Прикладная криптография» Брюса Шнайера, которую можно процитировать.

Одним из следствий закона второго термодинамики является то, что для представления информации необходимо некоторое количество энергии. Запись одиночного бита, изменяющая состояние системы, требует количества энергии не меньше чем kT; где Т - абсолютная температура системы и k - постоянная Больцмана. (Не волнуйтесь, урок физики уже почти закончен.)

Приняв, что k = 1,38*10 -16 эрг/K, и что температура окружающей вселенной 3,2K, идеальный компьютер, работая при 3,2K, потреблял бы 4,4*10 -16 эрга всякий раз, когда он устанавливает или сбрасывает бит. Работа компьютера при температуре более низкой, чем температура космического пространства, потребовала бы дополнительных расходов энергии для отвода тепла.

Далее, энергия, излучаемая нашим Солнцем за год, составляет около 1,21*10 41 эргов. Это достаточно для выполнения 2*10 56 перемен бита в нашем идеальном компьютере, а этого, в свою очередь, хватит для того, что бы 187-битовый счетчик пробежал все свои значения. Если мы построим вокруг Солнца сферу Дайсона и перехватим без всяких потерь всю его энергию за 32 года, мы сможем получить компьютер для вычисления 2 192 чисел. Конечно, энергии для проведения каких-нибудь полезных вычислений с этим счетчиком уже не останется.

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

Эти числа не имеют ничего общего с самой аппаратурой, они просто показывают максимальные значения, обусловленные термодинамикой. Кроме того, эти числа наглядно демонстрируют, что вскрытие грубой силой 256-битового ключа будет невозможно, пока компьютеры построены из обычной материи и располагаются в обычном пространстве.

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

Бит информации

В компьютере информация хранится на специальных носителях. Вот самые основные и знакомые большинству из нас:

Жесткий диск (HDD, SSD) - оптический диск (CD, DVD) - съёмные USB-диски (флешки, USB-HDD) - карты памяти (SD, microSD и т.п.)

Ваш персональный компьютер или ноутбук получает информацию, в основном в виде файлов с различным объёмом данных. Каждый из этих файлов любой носитель данных на аппаратном уровне получает, обрабатывает, хранит и передаёт в виде последовательности сигналов. Есть сигнал — единица, нет сигнала — ноль. Таким образом вся храняшаяся на жестком диске информация — документы, музыка, фильмы, игры — предствалена в виде нулей: 0 и единиц: 1. Эта система исчисления называется двоичной (используется всего два числа).
Вот одна единица информации (без разницы 0 это или 1) и называеся бит . Само слово bit пришло к нам как аббревиатура от bi nary digit — двоичное число. Что примечательно, в английском языке есть слово bit — немного, кусочек. Таким образом, бит — это самая наименьшая единица объёма информации.

Сколько битов в Байте

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

00000001 10000000 11111111

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

Килобайт, Мегабайт, Гигабайт

Со временем, объёмы информации росли, причём в последние годы в геометрической прогрессии. Поэтому, решено было использовать приставки метрической системы СИ: Кило, Мега, Гига, Тера и т.п.
Приставка «кило» означает 1000, приставка «мега» подразумевает миллион, «гига» — миллиард и т.д. При этом нельзя проводить аналогии между обычным килобитом и килобайтом. Дело в том, что килобайт - это отнюдь не тысяча байт, а 2 в 10-й степени, то есть 1024 байт.

Соответственно, мегабайт — это 1024 килобайт или 1048576 байт.
Гигабайт получается равен 1024 мегабайт или 1048576 килобайт или 1073741824 байт.

Для простоты можно использовать такую таблицу:

Для примера хочу привести вот такие цифры:
Стандартный лист А4 с печатным текстом занимает в средем около 100 килобайт
Обычная фотография на простой цифровой фотоаппарат — 5-8 мегабайт
Фотографии, сделанные на профессиональный фотоаппарат — 12-18 мегабайт
Музыкальный трек формата mp3 среднего качества на 5 минут — около 10 мегабайт.
Обычный фильм на 90 минут, сжатый в обычном качестве — 1,5-2 гигабайта
Тот же фильм в HD-качестве — от 20 до 40 гигабайт.

P.S.:
Теперь отвечу на вопросы, которые мне наиболее часто задают новички.
1. Сколько Килобит в Мегабите? Ответ — 1000 килобит (по системе СИ)
2. Сколько Килобайт в Мегабайте? Ответ — 1024 Килобайта
3. Сколько Килобит в Мегабайте? Ответ — 8192 килобита
4. Сколько Килобайт в Гигабайте? Ответ — 1 048 576 Килобайт.

Данный материал является скорее теоретическим (по крайней мере – в большей своей части) и посвящен изучению влияния ширины шины видеопамяти на производительность графических ускорителей. Казалось бы, что тут тестировать? И так понятно, что видеокарты с шириной шины памяти 256-бит будут более производительны, чем такие же видеокарты у которых ширина шины памяти 128-бит, к примеру. Но не спешите с выводами. Может быть, относительно слабым графическим процессорам широкая шина памяти и не нужна? Когда разработчики видеочипов «урезают» ширину шины видеопамяти - это намеренное создание «бюджетного» решения (с целью вписаться в нужный ценовой диапазон) или же трезвый расчет, основанный на том, что больше то и не надо? С этими вопросами мы и попытаемся разобраться. Для экспериментов мы решили взять довольно старую видеокарту – GeForce 7600GT. В момент появления на рынке данный продукт являлся типичным представителем среднего класса и обладал всеми ключевыми особенностями middle-end решения. Это и шина памяти 128-бит, и относительно слабый видеопроцессор. Выбор данной видеокарты обусловлен тем, что к ней в пару можно подобрать аналог, практически не отличающийся по производительности видеопроцессора, но обладающий шиной памяти 256-бит. Многие наверное уже догадались, что мы имеем ввиду, однако подробно мы расскажем об этом чуть позже. А пока попробуем выяснить, насколько шина памяти шириной 128-бит ограничивает производительность GPU на видеокарте 7600GT.

Предварительные замечания

В качестве мерила производительности видеокарты мы будем использовать количество FPS (кадров/сек), которое видеокарта покажет в тесте Quake 4. Разрешение экрана выбиралось равным 1280х1024 точек и оставалось неизменным на протяжении всех тестов. Это типичное разрешение большинства современных мониторов с диагональю 17-19 дюймов. Графический режим в самой игре устанавливался на “High Quality”, с помощью видеодрайверов выбирались режимы тестирования “NO AA/AF” или “4AA/16AF”. В качестве тестовой платформы использовался следующий тестовый стенд: Данный стенд не является чемпионом по производительности среди современных CPU. Тем не менее, как неоднократно показывалось, при тестировании видеокарт middle-end производительность центрального процессора не является ограничивающим фактором. Стандартные частоты GeForce 7600GT составляют 560/700 МГц для GPU/видеопамяти соответственно. Для видеопамяти указана реальная частота в мегагерцах, а не эффективная (1400 МГц DDR), так сделано лишь для удобства построения графиков. Из этих же соображений мы будем задавать исходную частоту для видеопроцессора 7600GT равной не 560 МГц, а 600 МГц ровно.

Тестирование

В чем будет заключаться тестирование? Как вообще узнать, насколько ширина шины памяти ограничивает производительность GPU? Давайте будем рассматривать ситуацию следующим образом. У нас есть видеокарта, которая выполняет определенную "работу", и по величине FPS на выходе мы будем делать те или иные заключения. В нашем распоряжении имеется два параметра, которые мы можем изменять – частоту GPU и частоту видеопамяти видеокарты. Очевидно, что частота видеопамяти прямо определяет пропускную способность видеопамяти, при прочих неизменных параметрах (типа ширины шины памяти). Чтобы определить, насколько производительность видеокарты ограничивается «скоростью» видеопамяти, построим следующий график.

Мы понизили частоту видеопамяти на видеокарте 7600GT до 200 МГц (реальных), а затем увеличивали ее с шагом 50 МГц. Конечно, в реальности никто не будет добровольно понижать частоту видеопамяти, смысл в другом. Если у нас имеется два параметра, влияющих на итоговый результат, и мы предполагаем, что один из параметров является «ограничителем», то при линейном увеличении этого параметра мы должны наблюдать линейный рост итоговой величины. Чтобы проверить, так это или нет, давайте на вышеприведенном графике построим две касательные к графику, в левой и в правой части.

Как видно из графика, в левой части рост FPS с увеличением частоты видеопамяти является линейным, то есть, пропускной способности видеопамяти явно не хватает и она действительно является ограничивающим фактором. По мере роста частоты видеопамяти, касательная к графику начинает «наклоняться» в сторону оси Х, следовательно, увеличение частоты видеопамяти становится не столь эффективным средством повышения производительности видеокарты. Теоретически, если бы мы могли повышать частоту видеопамяти сколько угодно высоко, рано или поздно мы бы увидели, как линия графика стала бы параллельной оси Х, а значит общая производительность уже ограничивалась бы только мощностью видеопроцессора. Теория теорией, но можно ли такое увидеть на практике? Можно, почему нет. Раз мы не можем сильно разогнать видеопамять, давайте смоделируем подобную ситуацию, понизив производительность GPU, а частоты для видеопамяти оставив неизменными. На следующем графике мы понизили частоту GPU на видеокарте до значения 300 МГц.

Как видите, теория получает подтверждение. Когда реальная частота видеопамяти становится вдвое больше частоты GPU, мы уже практически не получаем роста результатов, даже при ширине шины памяти 128 бит. Впрочем, данный конкретный вывод может относиться исключительно к видеопроцессору 7600GT, поэтому не будем спешить с обобщениями. Теперь посмотрим, что произойдет, если мы «утяжелим» графический режим, включив полноэкранное сглаживание и анизотропную фильтрацию.

Очевидно, что основная нагрузка ложится на видеопамять. Для частоты GPU, равной 600 МГц, мы наблюдаем практически линейный рост результатов с увеличением частоты видеопамяти. Да и для частоты GPU 300 МГц на графике уже не наблюдается горизонтальной «полочки», которая свидетельствовала бы об избыточной пропускной способности видеопамяти. Примечательно, что в левой части графики для разных частот GPU сливаются в одну линию. По всей видимости, здесь скорость видеопамяти настолько ограничивает общую производительность, что нет разницы между GPU, работающими на частотах 600 МГц и 300 МГц. Наиболее пытливые читатели, наверное, уже задали себе вопрос – «какое же сочетание частот GPU/видеопамяти является оптимальным?». Как мы видели, при слишком низкой частоте видеопамяти GPU не может проявить себя в полную силу. Но и слишком сильно увеличивать частоту видеопамяти большого смысла нет, раз результаты перестают расти. Как обычно, однозначно ответить на данный вопрос вряд ли получится, потому что оптимальное сочетание частот зависит и от архитектуры GPU, и от «тяжести» графического режима, не говоря уже о том, что может меняться от одной игры к другой. Тем, кто предпочитает изучать проблемы с разных точек зрения, приведем еще пару графиков. Их отличие от предыдущих состоит в том, что в этот раз мы фиксировали реальную частоту видеопамяти (а не GPU) на уровнях 300 МГц и 600 МГц. Вот что получилось для режима без AA/AF.

Если установить реальную частоту видеопамяти на GeForce 7600GT равной 300 МГц, то изменение частоты GPU вообще никак не сказывается на общей производительности, и мы получаем горизонтальную «линию насыщения» на графике. Если же частота памяти равна 600 МГц, то прирост результатов от увеличения частоты GPU более заметен, но опять же, как только частота GPU достигает 600 МГц, рост результатов практически прекращается.

Если мы построим аналогичные графики для режима 4AA/16AF, то увидим уже две «линии насыщения». Вполне закономерный результат, поскольку в более тяжелом графическом режиме производительность видеокарты «упирается» в скорость работы видеопамяти. Подведем промежуточные итоги. Как следует из вышеприведенных графиков, в наших условиях тестирования для видеокарты 7600GT, обладающей шириной шины памяти 128 бит, оптимальное отношение реальной частоты видеопамяти к частоте графического процессора составляет примерно 1,5-2: 1. То есть, если частота видеопроцессора равна 600 МГц, частота видеопамяти должна находиться на уровне 900-1200 МГц (реальных). Рекомендованные частоты для типичной 7600GT равны 560/700 МГц для GPU/видеопамяти, следовательно, их соотношение равно 1:1,25, что несколько меньше найденного нами «оптимального» уровня. Как мы неоднократно подчеркивали, это «оптимальное» соотношение справедливо для 7600GT с шириной шины памяти 128 бит. А что будет, если мы увеличим ширину шины памяти в два раза? По идее, с точки зрения увеличения максимальной пропускной способности видеопамяти, она также возрастет вдвое, что можно было бы расценивать как удвоение рабочей частоты видеопамяти с шириной шины 128 бит и, следовательно, будет более точно соответствовать «оптимальному» соотношению частоты GPU и видеопамяти. Так это или нет, мы сейчас и попробуем выяснить.

7600GT 256-bit memory

Вы скажете, что таких видеокарт в природе не бывает. В общем-то, да, не бывает. Но есть другие видеокарты, из которых, при желании, можно получить аналог GeForce 7600GT с шириной шины памяти 256 бит. Собственно, мы так и сделали. Взяли видеокарту ASUS EN7900GS TOP , у которой штатные частоты равны 590/720 МГц и ширина шины памяти 256-бит. Затем, с помощью утилиты RivaTuner, отключили пиксельные и вершинные блоки таким образом, чтобы привести их в точное соответствие с конвейерной формулой GeForce 7600GT – 12p, 5v. Таким образом, в нашем распоряжении оказался аналог видеокарты 7600GT, обладающий похожими на 7600GT характеристиками GPU, но имеющий ширину шины памяти 256-бит вместо 128. На графиках мы будем отображать результаты этой видеокарты красным цветом. Ниже приведен график, аналогичный Графику №1 и дополненный результатами, полученными на аналоге GeForce 7600GT с шириной шины памяти 256-бит.

Очевидно, что увеличение ширины шины видеопамяти изрядно прибавляет производительности. При небольших частотах видеопамяти (левая часть графика), прирост производительности 7600GT 256-бит практически двукратный, по сравнению с обычной 7600GT 128-бит. C ростом частоты видеопамяти относительное превосходство 256-бит варианта 7600GT уменьшается, и на типовой частоте видеопамяти 700 МГц составляет всего 26%, что является вполне закономерным результатом. Выше было показано, что с ростом частоты видеопамяти, рано или поздно, мы получим на графике горизонтальную линию результатов, когда общая производительность видеокарты больше не ограничивается памятью и зависит только от GPU. Понятно, что для 256-бит варианта 7600GT такой «режим насыщения» будет достигнут быстрее. Что касается практической стороны вопроса, то 26% превосходства варианта с шириной шины памяти 256-бит над 128-битной 7600GT - это конечно существенно, но и производители видеокарт, получается, оказываются не так уж и неправы, когда в middle-end продуктах ограничиваются шиной памяти 128-бит. Ведь им, помимо чистой производительности, приходится принимать во внимание и экономические вопросы. А разработка видеопроцессора с контроллером памяти 256-бит будет сложнее, соответственно дороже, не говоря уже про усложненный и более дорогой дизайн самой печатной платы. Говоря простыми словами, не самому мощному видеопроцессору нет смысла подключать видеопамять по более широкой шине. Игра Quake 4 уже довольно старая, новые игры предъявляют к производительности GPU более высокие требования, и не факт, что даже с широкой шиной памяти средний GPU это «потянет». Проиллюстрировать это можно на простом примере. Построим еще один график, в тех же условиях что и предыдущий, но снизим частоту GPU вдвое.

И что же мы видим? При слабом GPU и номинальной частоте видеопамяти разница в результатах 7600GT 128-бит и 256-бит составляет всего 12%. Так что, если у вас слабый GPU, не нужно жаловаться на недостаток пропускной способности шины памяти. Слабый видеопроцессор просто не сможет воспользоваться ею в полной мере. Вполне возможно, что этим же фактом объясняется популярность памяти стандарта GDDR2 в сегменте видеокарт low-end, где производительность GPU настолько урезана, что ставить более скоростную видеопамять просто бессмысленно. Хорошо, с простым графическим режимом все понятно. А что будет, если мы включим полноэкранное сглаживание и анизотропную фильтрацию?

Очевидно, с возрастанием нагрузки на видеопамять прирост производительности от широкой шины памяти становится более заметен, и на типовой частоте видеопамяти 700 МГц равен 60%. Вот тут, пожалуй, можно и пожалеть, что продукты middle-end не оснащаются шириной шины памяти 256-бит (или выше). С другой стороны, много ли вы знаете современных игр, в которые можно играть с настройками 4AA/16AF на видеокартах среднего класса? Вот именно. Если и удастся выставить качественную графику в игре, то о полноэкранном сглаживании речь, как правило, не идет. И это вполне типичная ситуация для видеокарт среднего сегмента и современных им игр, которая повторяется в течение уже многих лет. Ну и, напоследок, приведем еще пару графиков. Результаты на первом из них получены в следующих условиях – изменялась частота GPU, а частота видеопамяти оставалась неизменной. Для стандартной 7600GT 128-бит частота памяти была выставлена в 600 МГц, для сэмулированной 7600GT 256-бит частота видеопамяти была установлена на значение 300 МГц. Таким образом, максимальная теоретическая пропускная способность видеопамяти у этих двух видеокарт была одинакова. Теперь посмотрим, насколько эффективно используется более широкая шина памяти в зависимости от частоты GPU.

Начиная с частоты GPU 300 МГц, видеокарта с шиной памяти 128-бит показывает более высокие результаты. Получается, что при прочих равных условиях узкая шина памяти оказывается более эффективной, с точки зрения производительности. Может быть, так происходит потому, что мы использовали простой графический режим? Давайте включим AA/AF и проверим еще раз.

Как ни странно, но и на этом графике мы видим превосходство 7600GT 128-бит над своим 256-битным аналогом, причем даже более заметное. По всей видимости, медленная, но широкая шина памяти используется не так эффективно, как узкая, но скоростная.

Заключение

Как выяснилось в ходе данного тестирования, шина памяти шириной 128-бит для видеопроцессоров класса middle-end определенно является фактором, сдерживающим производительность. Но не стоит преувеличивать степень этого ограничения. В типичных условиях использования видеокарт среднего класса – не самые высокие настройки графики в приложении и отсутствие полноэкранного сглаживания, переход к более широкой шине памяти способен добавить лишь пару десятков процентов к общей производительности видеосистемы, в то время как стоимость такого «перехода» может существенно сказаться на цене продукта. В целом, разработчики видеопроцессоров наверное правы в том, что не спешат с внедрением шины памяти 256-бит в продукты класса middle-end, как это ни грустно для нас, пользователей. Но и теряем мы не так уж и много. Хороший разгонный потенциал, который, как правило, присущ видеокартам middle-end, практически всегда позволяет скомпенсировать пару десятков «упущенных» процентов производительности видеокарты. Возможно, кого-то разочарует то, что в этом тестировании мы взяли уж очень старого представителя middle-end в лице GeForce 7600GT и «ветерана» Quake 4 в качестве тестируемого приложения. Но иначе было бы сложно подобрать точную «пару» видеокарт, отличающихся лишь шириной шины памяти, и многие нюансы не проявились бы так сильно. А использование более новой игры для тестов могло чрезмерно нагрузить «старичка» 7600GT, и опять же свести на нет разницу в результатах. Не расстраивайтесь. Мы продолжим наши исследования, и в следующих материалах изучим производительность современных представителей среднего класса в новых играх. Кстати, а вам интересно узнать, насколько эффективно используется шина памяти 512-бит в Radeon HD2900XT?

- Обсудить материал на .

Алгоритм шифрования CAST-256 разработан специалистами канадской компании Entrust Technologies. Основой алгоритма являются преобразова­ния широко используемого ранее и хорошо зарекомендовавшего себя алго­ритма CAST-128 (см. разд. 3.10), также разработанного компанией Entrust Technologies.

Основные характеристики и структура алгоритма

Алгоритм CAST-256 шифрует информацию 128-битными блоками и исполь­зует несколько фиксированных размеров ключа шифрования: 128, 160, 192, 224 или 256 битов.

128-битный блок данных разбивается на 4 субблока по 32 бита, каждый из которых в каждом раунде алгоритма подвергается определенному преобразо­ванию и накладывается на один из соседних субблоков. Разработчики алго­ритма классифицировали его как подстановочно-перестановочную сеть (SP-сеть, см. разд. 1.3). Однако ряд экспертов конкурса AES посчитали алгоритм CAST-256 сетью Фейстеля, в каждом раунде которой обрабатывается только один субблок, а количество «настоящих» раундов в 4 раза больше, чем заяв­лено в спецификации алгоритма .

В процессе работы алгоритма выполняется 12 раундов преобразований, в первых 6 из которых выполняется преобразование tl (называемое прямой функцией раунда), а в последних 6 раундах выполняется обратная функция раунда tl .

Преобразования tl и tl показаны на рис. 3.35 и 3.36 соответственно. Функция tl описана следующим образом:

где / - номер текущего раунда.

Преобразование tl состоит из следующих операций:

Функции /1,/2 и /3 выполняют несколько элементарных операций над 32-битным субблоком; они приведены, соответственно, на рис. 3.37, 3.38 и 3.39. Каждая из функций принимает три параметра:

□ значение обрабатываемого субблока (на рисунках обозначено как «дан­ные»);

□ 32-битный подключ раунда Km ni (называемый маскирующим подключом, поскольку первой операцией каждой из функций является наложение дан­ного ключа на обрабатываемый субблок);

□ 5-битный подключ раунда Kr ni (называемый подключом сдвига, посколь­ку данный ключ используется в операции циклического сдвига результата предыдущей операции на переменное число битов).

Рис. 3.35. Преобразование rl

Рис. 3.36. Преобразование г2

Рис. 3.37. Функция fi

Рис. 3.38. Функция fl

Рис. 3.39. Функция /3

Сложение и вычитание выполняются с 32-битными операндами по модулю 2 .

Функции 5|, 5 2 , 5 3 и S 4 являются табличными подстановками, выполняю­щими замену входного 8-битного значения на 32-битное. Таблицы являются различными, каждая из них содержит 256 32-битных фиксированных значе­ний (таблицы полностью приведены в Приложении 1).

Расшифровывание выполняется аналогично зашифровыванию, но подключи раундов используются в обратной последовательности, т. е. вместо подключа Kx ni используется подключ Ajc / i (1 W) (считая, что раунды нумеруются от 0 до И).

Процедура расширения ключа

Задача функции расширения ключа - выработать для каждого раунда 4 32-битных маскирующих подключа Km ni и 4 5-битных подключа сдвига Kr ni . То есть сформировать 1776 байтов ключевой информации.

Процедура расширения ключа является более сложной, чем собственно шиф­рование данных. Сначала 256-битный ключ шифрования делится на 8 фраг­ментов по 32 бита. Если используется ключ меньшего размера, то «лишние» фрагменты ключа считаются нулевыми.

После этого выполняется инициализация временных переменных, которая описана далее.

Затем выполняется 12 раундов преобразований, в каждом из которых произ­водятся следующие действия:

1. Выполняется функция W 2 j , где j - номер раунда процедуры расширения ключа (функция Wj приведена на рис. 3.40).

2. Выполняется функция W 2 j +\ .

3. По 5 младших битов четырех фрагментов результата операции (А\ С, Е, G ) становятся подключами Kr 0 j , Kr X j , Kr 2 j и АУ 3у соответственно.

4. Оставшиеся фрагменты (В’, D’, F \ Я’) становятся подключами Кт ъ ^ Km 2 j , Km X j и Km 0 j соответственно.

Как видно, в каждом раунде функции расширения ключа используются по 8 дополнительных переменных Tm nk и Tr nk , которые вычисляются сле­дующим образом:

□ алгоритм уступает в скорости ряду алгоритмов - участников конкурса, в том числе всем финалистам конкурса;

□ достаточно высокие требования к оперативной и энергонезависимой па­мяти затрудняют использование данного алгоритма в смарт-картах;

□ некоторые эксперты сочли алгоритм CAST-256 подверженным атакам по потребляемой мощности .