А л г о р и т м   ш и ф р о в а н и я  Г О С Т -28147-89
д е м о н с т р а ц и о н н а я  п р о г р а м м а  к  л а б о р а т о р н о й  р а б о т е  п о  к у р с у  "Т е х н о л о г и и  о б р а б о т к и  и н ф о р м а ц и и "/"Т е о р и я  и н ф о р м а ц и и "
р а з д е л 
"К р и п т о г р а ф и ч е с к о е  к о д и р о в а н и е "

(c) А л е к с а н д р о в  О .Е ., 2010

!!!П Р И М Е Ч А Н И Е : н а ж и м а й т е  к л а в и ш у  F9 - а в т о м а т и ч е с к и й  п е р е с ч е т  о т к л ю ч е н .
С п р а в а  о т  в е р т и к а л ь н о й  л и н и и  р а с п о л о ж е н ы  П Р О В Е Р О Ч Н Ы Е  в ы з о в ы  
ф у н к ц и й . Д л я  п р и м е р а .

1. С т р у к т у р ы  д а н н ы х  и  к о н с т а н т ы  а л г о р и т м а 

Г О С Т -28147-89 р а б о т а е т  с  д а н н ы м и  П О -Б Л О Ч Н О . Б л о к  д а н н ы х  с о с т а в л я е т  64 б и т а  и л и  8 б а й т . П о с к о л ь к у  о с н о в н ы е  п р е о б р а з о в а н и я  в ы п о л н я ю т с я  н а д  п о л о в и н о й  б л о к а , т о  в ы б е р е м  ф о р м а т  п р е д с т а в л е н и я  б л о к а  к а к  в е к т о р  и з   Д В У Х  э л е м е н т о в  п о  32 б и т а .
Т е с т о в ы й  б л о к  д л я  п р и м е р а 

Т е с т о в ы й  к л ю ч  д л я  п р и м е р а 

К л ю ч  Г О С Т -28147-89 с о с т о и т  и з  256 б и т  . В ы б е р е м  ф о р м а т  п р е д с т а в л е н и я  к л ю ч а  в  в и д е  в е к т о р а  и з  В О С Ь М И  32 б и т н ы х  ч и с е л .  

Т е с т о в ы й  э л е м е н т  к л ю ч а  д л я  п р и м е р а 

Д л я  г е н е р а ц и и  г а м м ы  Г О С Т -28147-89 и с п о л ь з у е т  д в е  ц е л о ч и с л е н н ы х  к о н с т а н т ы : C1=1010104h;  C2=1010101h (ш е с т н а д ц а т е р и ч н ы е  з н а ч е н и я )
в  в е к т о р е   к о н с т а н т ы  и д у т  в  п о р я д к е  
, п о с к о л ь к у  Г О С Т  п р е д п и с ы в а е т  с у м м и р о в а т ь  м л а д ш у ю  ч а с т ь  б л о к а  с  к о н с т а н т о й  , а  с т а р ш у ю  - с  .

Д л я  п р о ц е д у р ы  з а м е н  (с м . п . 1.2.) Г О С Т -28147-89 и с п о л ь з у е т с я  т а б л и ц а  р а з м е р о м  8 с т р о к  и  16 с т о л б ц о в , с о с т о я щ а я  и з  з н а ч е н и й  р а з м е р о м  4 б и т а .
Т е с т о в а я  т а б л и ц а  з а м е н  д л я  п р и м е р а 

З а г о л о в о к  ш и ф р о в а н н о г о  ф а й л а  - н а д п и с ь  "Г О С Т 89#0" в  к о д и р о в к е  ASCII 1256.

'Г О С Т  89#0'
З н а ч е н и я  у п р а в л я ю щ е г о  ф л а г а  т и п а  ш и ф р о в а н и я  (б а й т ) - э т о  д л я  п р о г р а м м ы , Г О С Т -28147-89 т у т  н и п р и ч е м .

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

Д о п о л н и т е л ь н ы е  ф у н к ц и и  д л я  п р е о б р а з о в а н и й  д а н н ы х  и з  о д н о г о  п р е д с т а в л е н и я  в  д р у г о е .

Ф у н к ц и и  ч т е н и я  к л ю ч е в ы х  ф а й л о в  (к л ю ч , т а б л и ц а  з а м е н  и  с и н х р о п о с ы л к а ) д е м о н с т р а ц и о н н о й  п р о г р а м м ы  ш и ф р о в а н и я  н а  Delphi, ч т о б ы  и м е т ь  в о з м о ж н о с т ь  р а б о т а т ь  с  о д и н а к о в ы м и  п а р а м е т р а м и  и  с р а в н и в а т ь  р а б о т у  р е а л и з а ц и й  Г О С Т -28147-89. 

3. П р е о б р а з о в а н и я  Г О С Т -28147-89

3.1. Б а з о в ы й  ш а г  к р и п т о п р е о б р а з о в а н и я 

Ф у н к ц и я   в ы ч и с л я е т  б а з о в ы й  ш а г  к р и п т о п р е о б р а з о в а н и я  д л я  б л о к а   с  т а б л и ц е й  з а м е н   и  э л е м е н т о м  к л ю ч а   (с м . п ??? в  Р у к о в о д с т в е ) . П а р а м е т р  о з н а ч а е т , ч т о  б у д е т  в ы п о л н е н а  П Р О В Е Р К А  п р а в и л ь н о с т и  в х о д н ы х  д а н н ы х , и н а ч е  п р о в е р к а  п р о п у с к а е т с я .

3.2. Б а з о в ы е  ц и к л ы  ш и ф р о в а н и я  и  д е ш и ф р о в а н и я  б л о к а  д а н н ы х 
Ф у н к ц и я   о с у щ е с т в л я е т  б а з о в ы й  ц и к л  ш и ф р о в а н и я  о д н о г о  б л о к а  (ш и ф р о в а н и е  п р о с т о й  з а м е н о й ) с  т а б л и ц е й  з а м е н    и  к л ю ч о м  .

Ф у н к ц и я   о с у щ е с т в л я е т  б а з о в ы й  ц и к л  д е ш и ф р о в а н и я  о д н о г о  б л о к а  (д е ш и ф р о в а н и е  п р о с т о й  з а м е н о й )  с  т а б л и ц е й  з а м е н    и  к л ю ч о м  .

3.3. П р о ц е д у р ы  ш и ф р о в а н и я  и  д е ш и ф р о в а н и я  м а с с и в о в  д а н н ы х  в  р е ж и м е  п р о с т а я  з а м е н а  

Ф у н к ц и и   и   ш и ф р у ю т  и  д е ш и ф р у ю т  в е к т о р  б а й т   в  р е ж и м е  "п р о с т а я  з а м е н а ".

3.4. П р о ц е д у р ы  ш и ф р о в а н и я  и  д е ш и ф р о в а н и я  п р о и з в о л ь н о г о  ф а й л а  в  р е ж и м е  п р о с т а я  з а м е н а  

В Н И М А Н И Е ! В  с и л у  о г р а н и ч е н и й  MathCAD п о  в о з м о ж н о с т я м  ч т е н и я /з а п и с и  ф а й л о в  п р о ц е д у р ы  д а н н о г о  р а з д е л а  н е  м о г у т  о б р а б а т ы в а т ь  с л и ш к о м  б о л ь ш и е  ф а й л ы . Р е а л ь н о е  о г р а н и ч е н и е  р а з м е р а  з а в и с и т  о т  д о с т у п н о г о  О З У  к о м п ь ю т е р а .

Д е м о н с т р а ц и я  ш и ф р о в а н и я  и  д е ш и ф р о в а н и я  ф а й л а 

Ч и т а е м  к л ю ч е в ы е  п а р а м е т р ы 

И м е н а  ф а й л о в . М о ж н о  и с п о л ь з о в а т ь  л ю б ы е , н о  О С Т О Р О Ж Н О !

И с х о д н ы й  ф а й л  (п р и м е р , н о  м о ж н о  у к а з а т ь  Л Ю Б О Й  ф а й л  н е  с л и ш к о м  б о л ь ш о г о  р а з м е р а  д о  1Г б )

Ш и ф р у е м  ф а й л   в   

Р е з у л ь т а т  ш и ф р о в а н и я 

Д е ш и ф р у е м  ф а й л   в   

Р е з у л ь т а т  д е ш и ф р о в а н и я 

П р о в е р к а  д е ш и ф р о в а н и я 

3.5. П р о ц е д у р ы  ш и ф р о в а н и я  и  д е ш и ф р о в а н и я  м а с с и в о в  д а н н ы х  в  р е ж и м е  г а м м и р о в а н и я  (г е н е р а ц и я  п с е в д о с л у ч а й н о й  п о с л е д о в а т е л ь н о с т и ) 

Г е н е р а т о р  г а м м ы  (п с е в д о с л у ч а й н о й  п о с л е д о в а т е л ь н о с т и ) , а р г у м е н т   - п р е д ы д у щ е е  з н а ч е н и е  г а м м ы . В о з в р а щ а е т  с л е д у ю щ е е  з н а ч е н и е  г а м м ы .

Ш и ф р о в а н и е  и  д е ш и ф р о в а н и е  б л о к а  г а м м и р о в а н и е м  . П а р а м е т р   -  п р е д ы д у щ е е  з н а ч е н и е  г е н е р а т о р а  г а м м ы . В о з в р а щ а е т  ш и ф р о в а н н ы й  б л о к  и  н о в о е  з н а ч е н и е  г е н е р а т о р а  г а м м ы .

Ф у н к ц и я   ш и ф р у е т  и  д е ш и ф р у е т  м а с с и в  б а й т  г а м м и р о в а н и е м . П а р а м е т р  - с и н х р о п о с ы л к а .

3.6. П р о ц е д у р ы  ш и ф р о в а н и я  и  д е ш и ф р о в а н и я  п р о и з в о л ь н о г о  ф а й л а  в  р е ж и м е  г а м м и р о в а н и я  

В Н И М А Н И Е ! В  с и л у  о г р а н и ч е н и й  MathCAD п о  в о з м о ж н о с т я м  ч т е н и я /з а п и с и  ф а й л о в  п р о ц е д у р ы  д а н н о г о  р а з д е л а  н е  м о г у т  о б р а б а т ы в а т ь  с л и ш к о м  б о л ь ш и е  ф а й л ы . Р е а л ь н о е  о г р а н и ч е н и е  р а з м е р а  з а в и с и т  о т  д о с т у п н о г о  О З У  к о м п ь ю т е р а .

Д е м о н с т р а ц и я  ш и ф р о в а н и я  и  д е ш и ф р о в а н и я  ф а й л а  Г А М М И Р О В А Н И Е М 

И м е н а  ф а й л о в . М о ж н о  и с п о л ь з о в а т ь  л ю б ы е , н о  О С Т О Р О Ж Н О !

И с х о д н ы й  ф а й л  (п р и м е р , н о  м о ж н о  у к а з а т ь  Л Ю Б О Й  ф а й л  н е  с л и ш к о м  б о л ь ш о г о  р а з м е р а  д о  1Г б )

Ш и ф р у е м  ф а й л   в   

Р е з у л ь т а т  ш и ф р о в а н и я 

Д е ш и ф р у е м  ф а й л   в   

Р е з у л ь т а т  д е ш и ф р о в а н и я 

П р о в е р к а  д е ш и ф р о в а н и я 

3.7. Б а з о в ы е  ц и к л ы  г е н е р а ц и и  и м и т о в с т а в к и 
Ф у н к ц и я   о с у щ е с т в л я е т  б а з о в ы й  ц и к л  г е н е р а ц и и  и м и т о в с т а в к и  (п е р в ы е  16 ц и к л о в  ш и ф р о в а н и я  п р о с т о й  з а м е н о й ) о д н о г о  б л о к а   с  т а б л и ц е й  з а м е н    и  к л ю ч о м  .

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

3.8. П р о ц е д у р ы  ш и ф р о в а н и я  и  д е ш и ф р о в а н и я  м а с с и в о в  д а н н ы х  в  р е ж и м е  п р о с т а я  з а м е н а  с  и м и т о в с т а в к о й  

3.9. П р о ц е д у р ы  ш и ф р о в а н и я  и  д е ш и ф р о в а н и я  м а с с и в о в  д а н н ы х  в  р е ж и м е  г а м м и р о в а н и я  с  и м и т о в с т а в к о й  

3.10. П р о ц е д у р ы  ш и ф р о в а н и я  и  д е ш и ф р о в а н и я  п р о и з в о л ь н о г о  ф а й л а  в  р е ж и м е  г а м м и р о в а н и я  c и м и т о в с т а в к о й 

В Н И М А Н И Е ! В  с и л у  о г р а н и ч е н и й  MathCAD п о  в о з м о ж н о с т я м  ч т е н и я /з а п и с и  ф а й л о в  п р о ц е д у р ы  д а н н о г о  р а з д е л а  н е  м о г у т  о б р а б а т ы в а т ь  с л и ш к о м  б о л ь ш и е  ф а й л ы . Р е а л ь н о е  о г р а н и ч е н и е  р а з м е р а  з а в и с и т  о т  д о с т у п н о г о  О З У  к о м п ь ю т е р а .

И м е н а  ф а й л о в . М о ж н о  и с п о л ь з о в а т ь  л ю б ы е , н о  О С Т О Р О Ж Н О !

И с х о д н ы й  ф а й л  (п р и м е р , н о  м о ж н о  у к а з а т ь  Л Ю Б О Й  ф а й л  н е  с л и ш к о м  б о л ь ш о г о  р а з м е р а  д о  1Г б )

Ш и ф р у е м  ф а й л   в   

Р е з у л ь т а т  ш и ф р о в а н и я 

Д е ш и ф р у е м  ф а й л   в   

Р е з у л ь т а т  д е ш и ф р о в а н и я 

П р о в е р к а  д е ш и ф р о в а н и я