Ejemplo n.º 1
0
        public Gost(string message, string key)
        {
            Message = message;
            Key     = key;

            RightPart = Utills.StickedBinaryMsg(Message.Substring(Message.Length / 2, Message.Length / 2));
            LeftPart  = Utills.StickedBinaryMsg(Message.Substring(0, Message.Length / 2));

            KeyX0 = Utills.StickedBinaryMsg(Key);

            RightWithKey = Utills.Modulo2Pow32(RightPart, KeyX0);

            Substituted = SubstituteElements(RightWithKey);

            Shifted = Utills.Shift(Substituted, -11);

            Result = Utills.Modulo2(LeftPart, Shifted);
        }
Ejemplo n.º 2
0
        public Des(string message, string key)
        {
            Message = message;
            Key     = key;
            LPart   = message.Substring(0, message.Length / 2);
            RPart   = message.Substring(message.Length / 2, message.Length / 2);

            BinaryMessage          = Utills.StickedBinaryMsg(Message);
            InitialPermutedMessage = PermuteElements(BinaryMessage, InitialPermutation);
            LPart                = InitialPermutedMessage.Substring(0, InitialPermutedMessage.Length / 2);
            RPart                = InitialPermutedMessage.Substring(InitialPermutedMessage.Length / 2, InitialPermutedMessage.Length / 2);
            ExtendeRBlock        = ExtendBlockSize(RPart);
            BinaryKey            = GenerateKey(Utills.StickedBinaryMsg(Key));
            KeyWithExtendedR     = Utills.Modulo2(ExtendeRBlock, BinaryKey, 48);
            SBlockSubstituted    = SBlockSubstitution(KeyWithExtendedR, SubstitutionBoxes);
            SBlockSubstituted    = PermuteElements(SBlockSubstituted, ExpansionFunction);
            ConcatedRL           = string.Concat(LPart + SBlockSubstituted);
            FinalPermutedMessage = PermuteElements(ConcatedRL, FinalPermutation);
        }