コード例 #1
0
ファイル: D32.cs プロジェクト: ViacheslavSoroka/Crypto
        private ulong[] DecryptFile()
        {
            BasicStep[] K             = new BasicStep[8];
            ulong[]     ulongDecrFile = new ulong[ulongFile.Length];

            for (int k = 0; k < ulongFile.Length; k++)
            {
                ulongDecrFile[k] = ulongFile[k];

                for (int i = 0; i < K.Length; i++)
                {
                    K[i]             = new BasicStep(ulongDecrFile[k], uintKey[i]);
                    ulongDecrFile[k] = K[i].BasicEncrypt(false);
                }

                for (int j = 0; j < 3; j++)
                {
                    for (int i = K.Length - 1; i >= 0; i--)
                    {
                        K[i] = new BasicStep(ulongDecrFile[k], uintKey[i]);

                        if ((j == 2) && (i == 0))
                        {
                            ulongDecrFile[k] = K[i].BasicEncrypt(true);
                        }
                        else
                        {
                            ulongDecrFile[k] = K[i].BasicEncrypt(false);
                        }
                    }
                }
            }

            return(ulongDecrFile);
        }
コード例 #2
0
        public ICollection <BasicStep> GetterminalState()
        {
            var terminal = new BasicStep[_steps.Count];

            _steps.Values.CopyTo(terminal, 0);
            return(terminal);
        }
コード例 #3
0
ファイル: E32.cs プロジェクト: ElenaGayazova/Gost-28147-89
        private ulong[] EncryptFile()
        {
            BasicStep[] K             = new BasicStep[8];
            ulong[]     ulongEncrFile = new ulong[_ulongFile.Length];

            for (int k = 0; k < _ulongFile.Length; k++)
            {
                ulongEncrFile[k] = _ulongFile[k];

                for (int j = 0; j < 3; j++)
                {
                    for (int i = 0; i < K.Length; i++)
                    {
                        K[i]             = new BasicStep(ulongEncrFile[k], _uintKey[i]);
                        ulongEncrFile[k] = K[i].BasicEncrypt(false);
                    }
                }

                for (int i = K.Length - 1; i >= 0; i--)
                {
                    K[i] = new BasicStep(ulongEncrFile[k], _uintKey[i]);

                    if (i != 0)
                    {
                        ulongEncrFile[k] = K[i].BasicEncrypt(false);
                    }
                    else
                    {
                        ulongEncrFile[k] = K[i].BasicEncrypt(true);
                    }
                }
            }

            return(ulongEncrFile);
        }