Talk:Main step of GOST 28147-89: Difference between revisions

From Rosetta Code
Content added Content deleted
 
Line 6: Line 6:


- Thanks. --[[User:Paddy3118|Paddy3118]] 20:22, 31 August 2012 (UTC)
- Thanks. --[[User:Paddy3118|Paddy3118]] 20:22, 31 August 2012 (UTC)

: Hi!
:* The goal of the task is the comparison of programming languages for the implementation of some specific cryptographic algorithm, originally designed for efficient execution on 32-bit and 64-bit machines (though created in the 70's), while it operates with a 4-bit block; comparison of low-level with high-level languages in this aspect for the sake of brevity and clarity of code execution speed, consumption of computer resources and so on.
:* The task can be considered solved if the algorithm is implemented only true converts the input data.
:* Verification example can be used as follows:
::the input is a text block size of 8 bytes:
:: <code>[21][04][3B][04][30][04][32][04]</code>;
::and item key, size 4 bytes:
:: <code>[F9][04][C1][E2]</code>.
::Incoming text block is divided into two parts:
:: <code>[21][04][3B][04]</code> и <code>[30][04][32][04]</code>.
::First we add modulo 2<sup>32</sup> with the received key element, the result is
:: <code>[1A][09][FC][E6]</code>.
::Further, in this block is replaced with the replacement table. Are replaced by:
:: <code>[A]</code> to <code>[1]</code>, <code>[1]</code> to <code>[B]</code>, <code>[9]</code> to <code>[F]</code>, <code>[0]</code> to <code>[7]</code>, <code>[C]</code> to <code>[0]</code>, ::<code>[F]</code> to <code>[E]</code>, <code>[6]</code> to <code>[5]</code> and <code>[E]</code> to <code>[8]</code>.
::Finally, we obtain
:: <code>[B1][7F][E0][85]</code>.
::Next is the cyclic shift of reading towards senior level by 11 bits:
:: <code>[2F][8C][FD][03]</code>.
::This value is made up bit by bit modulo 2 with the second part on the input 8-bit block, the result is
:: <code>[1F][88][CF][07]</code>.
::Now is 8-byte block of data in the first part of which is located just obtained value, and the second - the first part was on the input 8-byte block. The resulting value
:: <code>[1F][88][CF][07][21][04][3B][04]</code>
::and will be the result of the step.
: [[User:Русский|Русский]] 18:54, 1 September 2012 (UTC)

Revision as of 18:54, 1 September 2012

task specifics

Hi,

  • What is goal of the task?
  • How does one know one has completed the task?
  • Do you have sample tests and sample output?

- Thanks. --Paddy3118 20:22, 31 August 2012 (UTC)

Hi!
  • The goal of the task is the comparison of programming languages for the implementation of some specific cryptographic algorithm, originally designed for efficient execution on 32-bit and 64-bit machines (though created in the 70's), while it operates with a 4-bit block; comparison of low-level with high-level languages in this aspect for the sake of brevity and clarity of code execution speed, consumption of computer resources and so on.
  • The task can be considered solved if the algorithm is implemented only true converts the input data.
  • Verification example can be used as follows:
the input is a text block size of 8 bytes:
[21][04][3B][04][30][04][32][04];
and item key, size 4 bytes:
[F9][04][C1][E2].
Incoming text block is divided into two parts:
[21][04][3B][04] и [30][04][32][04].
First we add modulo 232 with the received key element, the result is
[1A][09][FC][E6].
Further, in this block is replaced with the replacement table. Are replaced by:
[A] to [1], [1] to [B], [9] to [F], [0] to [7], [C] to [0], ::[F] to [E], [6] to [5] and [E] to [8].
Finally, we obtain
[B1][7F][E0][85].
Next is the cyclic shift of reading towards senior level by 11 bits:
[2F][8C][FD][03].
This value is made up bit by bit modulo 2 with the second part on the input 8-bit block, the result is
[1F][88][CF][07].
Now is 8-byte block of data in the first part of which is located just obtained value, and the second - the first part was on the input 8-byte block. The resulting value
[1F][88][CF][07][21][04][3B][04]
and will be the result of the step.
Русский 18:54, 1 September 2012 (UTC)