Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Приложение №4.

Читайте также:
  1. Приложение
  2. Приложение
  3. ПРИЛОЖЕНИЕ
  4. Приложение
  5. ПРИЛОЖЕНИЕ
  6. ПРИЛОЖЕНИЕ
  7. Приложение

Основной цикл шифрования на SSE в восемь потоков.

 

SSE0, SSE1, SSE6, SSE7 содержат поочередно накопители1 и накопители2 (восемь накопителей по 4 байта каждый)

Сначала готовятся индексные регистры для работы коммутатора

- младшие тетрады в байтах маскируются

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

Сборка индексных регистров оптимизирована, но суть та же, что и в примере №3

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

Ключи шифрования находятся в ОП.

 

Use64

macro zxmm kl

{

;/////подготовка блока замен 1 накопитель

vpsrlq xmm3,xmm5,4;

pand xmm5,[esp+080h]; технологическая маска выделения младших тетрад

pand xmm3,[esp+080h]; технологическая маска выделения младших тетрад

 

 

;/////замена 1-2байт -м.т. 3-4байт с.т.

vpblendw xmm2,xmm3,xmm5,055h;

 

;/////замена 1-2байт - с.т. 3-4байт м.т.

pblendw xmm5,xmm3,0aah;

 

;/////////блок замен 1-2 байты - 1 накопитель

vpshufb xmm15,xmm8,xmm2;

pand xmm15,[esp];

vpshufb xmm14,xmm9,xmm2;

pand xmm14,[esp+20h];

por xmm14,xmm15;

 

;/////////блок замен 3-4 байты - 1 накопитель

vpshufb xmm12,xmm10,xmm5;

pand xmm12,[esp+40h];

por xmm12,xmm14;

vpshufb xmm13,xmm11,xmm5;

pand xmm13,[esp+60h];

 

;/////подготовка блока замен -2 накопитель

vpsrlq xmm3,xmm4,4;

pand xmm4,[esp+80h];

pand xmm3,[esp+080h];

 

;/////замена 1-2байт -м.т. 3-4байт с.т.

vpblendw xmm2,xmm3,xmm4,055h;

 

;/////замена 1-2байт - с.т. 3-4байт м.т.

pblendw xmm4,xmm3,0aah;

 

;/////////блок замен 1-2 байты - 2 накопитель

vpshufb xmm14,xmm8,xmm2;

pand xmm14,[esp];

vpshufb xmm15,xmm9,xmm2;

pand xmm15,[esp+20h];

por xmm14,xmm15;

 

;/////////блок замен 3-4 байты - 2 накопитель

vpshufb xmm3,xmm10,xmm4;

pand xmm3,[esp+40h];

por xmm14,xmm3;

vpshufb xmm15,xmm11,xmm4;

pand xmm15,[esp+60h];

}

 

;///////////////////////////////тестовый модуль 1 проход

macro c1 kl;

{

zxmm kl;

 

;/////циклический сдвиг на 11 влево - 1 накопитель

por xmm13,xmm12;

vpslld xmm12,xmm13,11;

psrld xmm13,21;

xorps xmm7,xmm12;

xorps xmm7,xmm13; суммирование заполнение1 1 накопитель

vpaddd xmm5,xmm7,[esp+100h+kl*32]; сложить заполнение с ключом

 

;/////циклический сдвиг на 11 влево - 2 накопитель

por xmm15,xmm14;

vpslld xmm14,xmm15,11;

psrld xmm15,21;

xorps xmm1,xmm14;

xorps xmm1,xmm15; суммирование заполнение1 2 накопитель

vpaddd xmm4,xmm1,[esp+120h+kl*32]; сложить заполнение с ключом

}

 

;///////////////////////////////тестовый модуль 2 проход

macro c2 kl;

{

zxmm kl;

 

;/////циклический сдвиг на 11 влево - 1 накопитель

por xmm13,xmm12;

vpslld xmm12,xmm13,11;

psrld xmm13,21;

xorps xmm6,xmm12;

xorps xmm6,xmm13; суммирование заполнение 0 1 накопитель

vpaddd xmm5,xmm6,[esp+100h+kl*32]; сложить заполнение с ключом

 

;/////циклический сдвиг на 11 влево - 2 накопитель

por xmm15,xmm14;

vpslld xmm14,xmm15,11;

psrld xmm15,21;

xorps xmm0,xmm14;

xorps xmm0,xmm15; суммирование заполнение 0 2 накопитель

vpaddd xmm4,xmm0,[esp+120h+kl*32]; сложить заполнение с ключом

}

 


Дата добавления: 2015-07-08; просмотров: 145 | Нарушение авторских прав


Читайте в этой же книге: Традиционная реализация ГОСТ 28147-89 | Многопоточная реализация ГОСТ 28147-89 | Использование SSE регистров и AVX команд современных процессоров для реализации ГОСТ 28147-89 | Выполнение этих требований позволит гарантировать полную изоляцию и неизменность программного кода криптопроцедур и используемой в них секретной информации. | Цена вопроса |
<== предыдущая страница | следующая страница ==>
Основной цикл шифрования на SSE в четыре потока.| ГЛОМЕРУЛОНЕФРИТ

mybiblioteka.su - 2015-2024 год. (0.01 сек.)