Talk:Main step of GOST 28147-89: Difference between revisions
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)