private bool GetResult()
        {
            try
            {
                Believe formula = Formula as Believe;

                if (formula != null &&                                                                                                //First formula must be of type Believe
                    formula.Formula.GetType() == typeof(Believe) && ((Believe)formula.Formula).Formula.GetType() == typeof(SharedKey) // there are two believe formulas and one SharedKey formulas
                    )
                {
                    var encryptedFormula1 = formula.Formula as Believe;
                    var encryptedFormula2 = encryptedFormula1.Formula as SharedKey;
                    if (encryptedFormula2 != null && (Equals(formula.Agent1, encryptedFormula2.Agent1) &&
                                                      Equals(encryptedFormula1.Agent1, encryptedFormula2.Agent2))) //The  Agents are the same
                    {
                        return(true);
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
            return(false);
        }
Example #2
0
        public bool UpdateBelieve(Believe believe)
        {
            try
            {
                var b = (from Believe in data.Believes
                         where Believe.ID_Tin == believe.ID_Tin
                         select Believe).Single();
                b.ID_Tin     = believe.ID_Tin;
                b.TieuDe     = believe.TieuDe;
                b.NgayDang   = believe.NgayDang;
                b.URL_Hinh   = believe.URL_Hinh;
                b.Ngay       = believe.Ngay;
                b.NoiDung    = believe.NoiDung;
                b.ID_LoaiTin = believe.ID_LoaiTin;
                b.SoLanXem   = believe.SoLanXem;
                b.TinNoiBat  = believe.TinNoiBat;

                data.SubmitChanges();
                return(true);
            }
            catch
            {
                return(false);
            }
        }
        private BaseLogic GetResult()
        {
            try
            {
                Believe formula1 = Formula1 as Believe;

                if (formula1 != null &&                            //First formula must be of type Receives
                    formula1.Formula.GetType() == typeof(Believe)) //The second parameter must be an encrypted value with key K
                {
                    var believeFormula = formula1.Formula as Believe;

                    if (believeFormula.Message.Equals("X1...Xi...Xn")) //The encrypted message key and the shared key between Agent1 and Agent2 are identical

                    {
                        return(new Believe()
                        {
                            Agent1 = formula1.Agent1,
                            Formula = new Believe()
                            {
                                Agent1 = believeFormula.Agent1,
                                Message = "Xi"
                            }
                        });
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
            return(null);
        }
        private bool GetResult()
        {
            try
            {
                Believe formula = Formula as Believe;

                if (formula != null && //First formula must be of type Believe
                    formula.Formula.GetType() == typeof(SharedKey)
                    )                  //The second parameter must be an encrypted value with key K
                {
                    var encryptedFormula = formula.Formula as SharedSecret;
                    if (Equals(formula.Agent1, encryptedFormula.Agent1) ||
                        Equals(formula.Agent1, encryptedFormula.Agent1))  //The  Agents are the same
                    {
                        return(true);
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
            return(false);
        }
        private BaseLogic GetResult()
        {
            try
            {
                Believe formula1 = Formula1 as Believe;

                if (formula1 != null &&
                    formula1.Formula.GetType() == typeof(Fresh))
                {
                    //                    var saidFormula = formula1.Formula as Fresh;

                    //                    if (saidFormula.Message.Equals(freshFormula.Message, StringComparison.InvariantCultureIgnoreCase) &&//The encrypted message key and the shared key between Agent1 and Agent2 are identical
                    //                        Equals(formula1.Agent1, formula2.Agent1)) //The first Agents are the same
                    //                    {
                    return(new Believe
                    {
                        Agent1 = formula1.Agent1,
                        Formula = new Fresh()
                        {
                            Formula = Formula2
                        }
                    });
                    //                    }
                }
            }
            //            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
            return(null);
        }
        private static BaseLogic RuleLogic(BaseLogic _formula1, BaseLogic _formula2)
        {
            try
            {
                var formula1 = _formula1 as Believe;
                var formula2 = _formula2 as Believe;

                if (formula1 != null &&
                    formula2 != null &&
                    formula1.Agent1.Equals(formula2.Agent1))
                {
                    var concatenate = new Concatenate();
                    concatenate.Formulas.Add(formula1.Formula);
                    concatenate.Formulas.Add(formula2.Formula);
                    var believe = new Believe
                    {
                        Agent1  = formula1.Agent1,
                        Formula = concatenate
                    };
                    return(believe);
                }
                ;
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
            return(null);
        }
Example #7
0
 public bool AddBelieve(Believe believe)
 {
     try
     {
         data.Believes.InsertOnSubmit(believe);
         data.SubmitChanges();
         return(true);
     }
     catch
     {
         return(false);
     }
 }
Example #8
0
        private static BaseLogic RuleLogic(BaseLogic _formula1, BaseLogic _formula2)
        {
            try
            {
                Receives formula1 = _formula1 as Receives;
                Believe  formula2 = _formula2 as Believe;

                if (formula1 != null &&                               //First formula must be of type Receives
                    formula1.Formula.GetType() == typeof(Encryption)) //The second parameter must be an encrypted value with key K
                {
                    var encryptionFormula = formula1.Formula as Encryption;

                    if (formula2 != null &&                              //Second formula must be of type Believes
                        formula2.Formula.GetType() == typeof(SharedKey)) //The second parameter must be a shared key K
                    {
                        var sharedKey = formula2.Formula as SharedKey;
                        if (encryptionFormula.Key.Equals(sharedKey.Key, StringComparison.InvariantCultureIgnoreCase) && //The encrypted message key and the shared key between Agent1 and Agent2 are identical
                            Equals(formula1.Agent1, formula2.Agent1) /*&&//The first Agents are the same
                                                                      * sharedKey.Agent1.Equals(formula1.Agent1)*/)// the shared key agent is the same with the agent from the first formula.
                        {
                            var logic = new Believe
                            {
                                Agent1  = formula1.Agent1,
                                Formula = new Said()
                                {
                                    Agent1 = sharedKey.Agent2
                                }
                            };
                            if (encryptionFormula.Formula != null)
                            {
                                ((Said)logic.Formula).Formula = encryptionFormula.Formula;
                            }
                            else
                            {
                                logic.Formula.Message = encryptionFormula.Message;
                            }
                            return(logic);
                        }
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
            return(null);
        }
Example #9
0
        public bool DeleteBelieve(int id)
        {
            try
            {
                Believe be = (from Believe in data.Believes
                              where Believe.ID_LoaiTin == id
                              select Believe).Single();

                data.Believes.DeleteOnSubmit(be);
                return(true);
            }
            catch
            {
                return(false);
            }
        }
Example #10
0
        private BaseLogic GetResult()
        {
            try
            {
                Sees    formula1 = Formula1 as Sees;
                Believe formula2 = Formula2 as Believe;

                if (formula1 != null &&
                    formula1.Formula.GetType() == typeof(EncryptedSecret))
                {
                    if (formula2 != null &&
                        formula2.Formula.GetType() == typeof(SharedSecret))
                    {
                        var sharedSecretFormula  = formula2.Formula as SharedSecret;
                        var sharedSecretFormula2 = formula1.Formula as EncryptedSecret;

                        if (sharedSecretFormula2 != null && sharedSecretFormula != null &&
                            sharedSecretFormula.Key.Equals(sharedSecretFormula2.Key, StringComparison.InvariantCultureIgnoreCase) &&
                            formula1.Agent1.Equals(formula2.Agent1) &&
                            sharedSecretFormula.Agent2.Equals(formula1.Agent1))
                        {
                            return(new Believe
                            {
                                Agent1 = formula1.Agent1,
                                Formula = new Said
                                {
                                    Agent1 = sharedSecretFormula.Agent1,
                                    Message = sharedSecretFormula.Key
                                }
                            });
                        }
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
            return(null);
        }
Example #11
0
        private BaseLogic GetResult()
        {
            try
            {
                Sees    formula1 = Formula1 as Sees;
                Believe formula2 = Formula2 as Believe;


                if (formula1 != null &&
                    formula1.Formula.GetType() == typeof(EncryptedSecret))
                {
                    if (formula2 != null &&
                        formula2.Formula.GetType() == typeof(PublicEncryption))
                    {
                        var encryptedFormula = formula2.Formula as PublicEncryption;
                        var encryptedSecret  = formula1.Formula as EncryptedSecret;
                        if (encryptedSecret != null && (encryptedFormula != null && (encryptedFormula.Key.Equals(encryptedSecret.Key) &&
                                                                                     Equals(formula1.Agent1, formula2.Agent1) &&
                                                                                     encryptedFormula.Agent1.Equals(formula1.Agent1))))
                        {
                            return(new Believe
                            {
                                Agent1 = formula1.Agent1,
                                Formula = new Said
                                {
                                    Agent1 = encryptedFormula.Agent1,
                                    Message = encryptedSecret.Message
                                }
                            });
                        }
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
            return(null);
        }
        private BaseLogic GetResult()
        {
            try
            {
                Believe formula1 = Formula1 as Believe;
                Believe formula2 = Formula2 as Believe;

                if (formula1 != null && //First formula must be of type Believe
                    formula1.Formula.GetType() == typeof(Fresh))
                {
                    var freshFormula = formula1.Formula as Fresh;

                    if (formula2 != null && //Second formula must be of type Believes
                        formula2.Formula.GetType() == typeof(Said))
                    {
                        var said = formula2.Formula as Said;
                        if (said != null && (freshFormula != null &&
                                             (freshFormula.Message.Equals(said.Message, StringComparison.InvariantCultureIgnoreCase) &&
                                              Equals(formula1.Agent1, formula2.Agent1)))) //The first Agents are the same
                        {
                            return(new Believe
                            {
                                Agent1 = formula1.Agent1,
                                Formula = new Believe
                                {
                                    Agent1 = said.Agent1,
                                    Message = said.Message
                                }
                            });
                        }
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
            return(null);
        }
        private BaseLogic GetResult()
        {
            try
            {
                Believe formula1 = Formula1 as Believe;
                Believe formula2 = Formula2 as Believe;

                if (formula1 != null &&
                    formula1.Formula.GetType() == typeof(Controls))
                {
                    var controlFormula = formula1.Formula as Controls;

                    if (formula2 != null &&
                        formula2.Formula.GetType() == typeof(Believe))
                    {
                        var believeFormula = formula2.Formula as Believe;
                        if (believeFormula != null && (controlFormula != null &&
                                                       (formula1.Agent1.Equals(formula2.Agent1) &&
                                                        controlFormula.Agent1.Equals(believeFormula.Agent1) &&
                                                        controlFormula.Message.Equals(believeFormula.Message, StringComparison.InvariantCultureIgnoreCase))))
                        {
                            return(new Believe
                            {
                                Agent1 = formula1.Agent1,
                                Message = controlFormula.Message
                            });
                        }
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
            return(null);
        }
Example #14
0
        public void InitializeAssumptions()
        {
            #region A bel A <Kab> B

            var f1 = new Believe
            {
                Agent1  = AgentList["A"],
                Formula = new SharedKey()
            };
            ((SharedKey)f1.Formula).Agent1 = f1.Agent1;
            ((SharedKey)f1.Formula).Agent2 = AgentList["B"];
            ((SharedKey)f1.Formula).Key    = "Kab";
            InitialAssumptions.Add(f1);

            #endregion

            #region B bel A<Kab> B

            var f2 = new Believe
            {
                Agent1  = AgentList["B"],
                Formula = new SharedKey()
            };
            ((SharedKey)f2.Formula).Agent1 = AgentList["A"];
            ((SharedKey)f2.Formula).Agent2 = AgentList["B"];
            ((SharedKey)f2.Formula).Key    = "Kab";
            InitialAssumptions.Add(f2);

            #endregion

            #region B bel A <Kab'> B

            var f3 = new Believe
            {
                Agent1  = AgentList["B"],
                Formula = new SharedKey()
            };
            ((SharedKey)f3.Formula).Agent1 = AgentList["A"];
            ((SharedKey)f3.Formula).Agent2 = AgentList["B"];
            ((SharedKey)f3.Formula).Key    = "Kab'";
            InitialAssumptions.Add(f3);

            #endregion

            #region A bel B controls A<K>B

            var f4 = new Believe {
                Agent1 = AgentList["A"]
            };
            var f5 = new Controls {
                Agent1 = AgentList["B"]
            };
            var f6 = new SharedKey();
            f4.Formula = f5;
            f5.Formula = f6;
            f6.Agent1  = AgentList["A"];
            f6.Agent2  = AgentList["B"];
            f6.Key     = "K";
            InitialAssumptions.Add(f4);

            #endregion

            #region A bel fresh(Na)

            var f10 = new Believe {
                Agent1 = AgentList["A"]
            };
            var f11 = new Fresh {
                Message = "Na"
            };
            f10.Formula = f11;
            InitialAssumptions.Add(f10);

            #endregion

            #region B bel fresh(Nb)

            var f12 = new Believe {
                Agent1 = AgentList["B"]
            };
            var f13 = new Fresh {
                Message = "Nb"
            };
            f12.Formula = f13;
            InitialAssumptions.Add(f12);

            #endregion

            #region B bel fresh(Nb')

            var f14 = new Believe {
                Agent1 = AgentList["B"]
            };
            var f15 = new Fresh {
                Message = "Nb'"
            };
            f14.Formula = f15;
            InitialAssumptions.Add(f14);

            #endregion
        }
        public void InitializeAssumptions()
        {
            #region A bel A <Kas>S

            var f1 = new Believe
            {
                Agent1  = AgentList["A"],
                Formula = new SharedKey()
            };
            ((SharedKey)f1.Formula).Agent1 = f1.Agent1;
            ((SharedKey)f1.Formula).Agent2 = AgentList["S"];
            ((SharedKey)f1.Formula).Key    = "Kas";
            InitialAssumptions.Add(f1);

            #endregion

            #region S bel A<Kas>S

            var f2 = new Believe
            {
                Agent1  = AgentList["S"],
                Formula = new SharedKey()
            };
            ((SharedKey)f2.Formula).Agent1 = AgentList["A"];
            ((SharedKey)f2.Formula).Agent2 = AgentList["S"];
            ((SharedKey)f2.Formula).Key    = "Kas";
            InitialAssumptions.Add(f2);

            #endregion

            #region S bel A<Kab>S

            var f3 = new Believe
            {
                Agent1  = AgentList["S"],
                Formula = new SharedKey()
            };
            ((SharedKey)f3.Formula).Agent1 = AgentList["A"];
            ((SharedKey)f3.Formula).Agent2 = AgentList["S"];
            ((SharedKey)f3.Formula).Key    = "Kab";
            InitialAssumptions.Add(f3);

            #endregion

            #region A bel S controls A<K>B

            var f4 = new Believe {
                Agent1 = AgentList["A"]
            };
            var f5 = new Controls {
                Agent1 = AgentList["S"]
            };
            var f6 = new SharedKey();
            f4.Formula = f5;
            f5.Formula = f6;
            f6.Agent1  = AgentList["A"];
            f6.Agent2  = AgentList["B"];
            f6.Key     = "K";
            InitialAssumptions.Add(f4);

            #endregion

            #region B bel S controls A<K>B

            var f7 = new Believe {
                Agent1 = AgentList["B"]
            };
            var f8 = new Controls {
                Agent1 = AgentList["S"]
            };
            var f9 = new SharedKey();
            f7.Formula = f8;
            f8.Formula = f9;
            f9.Agent1  = AgentList["A"];
            f9.Agent2  = AgentList["B"];
            f9.Key     = "K";
            InitialAssumptions.Add(f7);

            #endregion

            #region A bel fresh(TS)

            var f10 = new Believe {
                Agent1 = AgentList["A"]
            };
            var f11 = new Fresh {
                Message = "TS"
            };
            f10.Formula = f11;
            InitialAssumptions.Add(f10);

            #endregion

            #region B bel fresh(TS)

            var f12 = new Believe {
                Agent1 = AgentList["B"]
            };
            var f13 = new Fresh {
                Message = "TS"
            };
            f12.Formula = f13;
            InitialAssumptions.Add(f12);

            #endregion

            #region B bel fresh(TA)

            var f14 = new Believe {
                Agent1 = AgentList["B"]
            };
            var f15 = new Fresh {
                Message = "TA"
            };
            f14.Formula = f15;
            InitialAssumptions.Add(f14);

            #endregion

            #region A bel fresh(TA)

            var f16 = new Believe {
                Agent1 = AgentList["A"]
            };
            var f17 = new Fresh {
                Message = "TA"
            };
            f16.Formula = f17;
            InitialAssumptions.Add(f16);

            #endregion

            #region B bel B <Kbs>S

            var f18 = new Believe
            {
                Agent1  = AgentList["B"],
                Formula = new SharedKey()
            };
            ((SharedKey)f18.Formula).Agent1 = f18.Agent1;
            ((SharedKey)f18.Formula).Agent2 = AgentList["S"];
            ((SharedKey)f18.Formula).Key    = "Kbs";
            InitialAssumptions.Add(f18);

            #endregion

            #region S bel B <Kbs>S

            var f19 = new Believe
            {
                Agent1  = AgentList["S"],
                Formula = new SharedKey()
            };
            ((SharedKey)f19.Formula).Agent1 = AgentList["B"];
            ((SharedKey)f19.Formula).Agent2 = AgentList["S"];
            ((SharedKey)f19.Formula).Key    = "Kbs";
            InitialAssumptions.Add(f19);

            #endregion
        }
Example #16
0
        public void InitializeAssumptions()
        {
            #region A bel A <Kas>S

            var i1 = new Believe
            {
                Agent1  = AgentList["A"],
                Formula = new SharedKey()
            };
            ((SharedKey)i1.Formula).Agent1 = AgentList["A"];
            ((SharedKey)i1.Formula).Agent2 = AgentList["S"];
            ((SharedKey)i1.Formula).Key    = "Kas";
            InitialAssumptions.Add(i1);

            #endregion

            #region B bel B <Kbs>S

            var i2 = new Believe
            {
                Agent1  = AgentList["B"],
                Formula = new SharedKey()
            };
            ((SharedKey)i2.Formula).Agent1 = AgentList["B"];
            ((SharedKey)i2.Formula).Agent2 = AgentList["S"];
            ((SharedKey)i2.Formula).Key    = "Kbs";
            InitialAssumptions.Add(i2);

            #endregion

            #region A bel S controls A<K>B

            var i3 = new Believe {
                Agent1 = AgentList["A"]
            };
            var i4 = new Controls {
                Agent1 = AgentList["S"]
            };
            var i5 = new SharedKey();
            i3.Formula = i4;
            i4.Formula = i5;
            i5.Agent1  = AgentList["A"];
            i5.Agent2  = AgentList["B"];
            i5.Key     = "K";
            InitialAssumptions.Add(i3);

            #endregion

            #region B bel S controls A<K>B

            var i6 = new Believe {
                Agent1 = AgentList["B"]
            };
            var i7 = new Controls {
                Agent1 = AgentList["S"]
            };
            var i10 = new SharedKey();
            i6.Formula = i7;
            i7.Formula = i10;
            i10.Agent1 = AgentList["A"];
            i10.Agent2 = AgentList["B"];
            i10.Key    = "K";
            InitialAssumptions.Add(i6);

            #endregion

            #region A bel fresh(Na)

            var i11 = new Believe
            {
                Agent1  = AgentList["A"],
                Formula = new Fresh()
            };
            ((Fresh)i11.Formula).Message = "Na";
            InitialAssumptions.Add(i11);

            #endregion


            #region B bel fresh(Nb)

            var i12 = new Believe
            {
                Agent1  = AgentList["B"],
                Formula = new Fresh()
            };
            ((Fresh)i12.Formula).Message = "Nb";
            InitialAssumptions.Add(i12);

            #endregion


            #region A bel S controls fresh(A,K>B)

            var i13 = new Believe {
                Agent1 = AgentList["A"]
            };
            var i14 = new Controls {
                Agent1 = AgentList["S"]
            };
            var i15 = new Fresh();
            i13.Formula = i14;
            i14.Formula = i15;
            i15.Formula = new SharedKey();
            ((SharedKey)i15.Formula).Key    = "K";
            ((SharedKey)i15.Formula).Agent1 = AgentList["A"];
            ((SharedKey)i15.Formula).Agent1 = AgentList["B"];
            InitialAssumptions.Add(i13);

            #endregion
        }