Changeset 916


Ignore:
Timestamp:
Nov 29, 2009, 6:45:54 PM (12 years ago)
Author:
oruba
Message:

simple changes in function GenerateBlackboxOutputBit()

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/CrypPlugins/Trivium/Trivium.cs

    r914 r916  
    3737
    3838        #region Public Variables
    39         /*public uint[] a = new uint[93];
    40         public uint[] b = new uint[84];
    41         public uint[] c = new uint[111]; */
    4239        public List<uint> a = new List<uint>(new uint[93]);
    4340        public List<uint> b = new List<uint>(new uint[84]);
    4441        public List<uint> c = new List<uint>(new uint[111]);
    45         //public uint t1, t2, t3;
    46         public int masterSlaveRounds = 0;
    4742        #endregion
    4843
     
    513508                i++;
    514509            }
    515             int myRounds;
    516             if (masterSlaveRounds != 0)
    517                 myRounds = masterSlaveRounds;
    518             else
    519                 myRounds = settings.InitRounds;
    520             for (i = 0; i < myRounds; i++) // default 1152 = 4 * 288
     510            int initRounds = settings.InitRounds;
     511            for (i = 0; i < initRounds; i++) // default 1152 = 4 * 288
    521512            {
    522513                a.Insert(0, c[65] ^ (c[108] & c[109]) ^ c[110] ^ a[68]);
     
    665656        public event IControlStatusChangedEventHandler OnStatusChanged;
    666657        private Trivium plugin;
    667         private TriviumSettings pluginSettings;
    668 
     658       
    669659        public CubeAttackControl(Trivium Plugin)
    670660        {
     
    672662        }
    673663
    674         public CubeAttackControl(TriviumSettings PluginSettings)
    675         {
    676             this.pluginSettings = PluginSettings;
    677         }
    678 
    679664        #region IControlEncryption Members
    680665
    681         // here comes the slave side implementation
    682         /*public int GenerateTriviumKeystream(int[] IV, int[] key, int length, bool byteSwapping)
    683         {
    684             string resultString;
    685             int resultInt;
    686             //pluginSettings.InitRounds = rounds;
    687 
    688             if (key == null)
    689             {
    690                 key = new int[((TriviumSettings)plugin.Settings).InputKey.Length * 4];
    691                 key = plugin.hextobin(((TriviumSettings)plugin.Settings).InputKey.ToCharArray());
    692                 // key = new int[] { 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1 };
    693             }
    694            
    695             //plugin.masterSlaveRounds = rounds;
    696             plugin.masterSlaveRounds = ((TriviumSettings)plugin.Settings).InitRounds;
    697             plugin.initTrivium(IV, key);
    698 
    699             resultString = plugin.keystreamTrivium(length);
    700 
    701             return resultInt = Int32.Parse(resultString.Substring(resultString.Length - 1, 1));
    702         }
    703         */
    704 
    705         // here comes the slave side implementation
    706666        public int GenerateBlackboxOutputBit(object IV, object key, object length)
    707667        {
    708             string resultString;
    709             int resultInt;
    710 
    711             // convert from object
    712             int[] triviumIV = IV as int[];
    713             int[] triviumKey = key as int[];
    714             int triviumLength = (int)length;
    715 
    716             if (triviumKey == null)
    717             {
    718                 triviumKey = new int[((TriviumSettings)plugin.Settings).InputKey.Length * 4];
    719                 triviumKey = plugin.hextobin(((TriviumSettings)plugin.Settings).InputKey.ToCharArray());
    720                 // key = new int[] { 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1 };
    721             }
    722 
    723             //plugin.masterSlaveRounds = rounds;
    724             plugin.masterSlaveRounds = ((TriviumSettings)plugin.Settings).InitRounds;
    725             plugin.initTrivium(triviumIV, triviumKey);
    726 
    727             resultString = plugin.keystreamTrivium(triviumLength);
    728 
    729             return resultInt = Int32.Parse(resultString.Substring(resultString.Length - 1, 1));
     668            if (key == null) // Online phase
     669                plugin.initTrivium(IV as int[], plugin.hextobin(((TriviumSettings)plugin.Settings).InputKey.ToCharArray()));
     670            else // Preprocessing phase
     671                plugin.initTrivium(IV as int[], key as int[]);
     672            return Int32.Parse(plugin.keystreamTrivium((int)length).Substring(plugin.keystreamTrivium((int)length).Length - 1, 1));
    730673        }
    731674
Note: See TracChangeset for help on using the changeset viewer.