Changeset 1663


Ignore:
Timestamp:
Jun 17, 2010, 11:53:24 AM (11 years ago)
Author:
schomburg
Message:

fixed Help texts
added GuiLogMessages - not working yet

Location:
trunk/PKCS1
Files:
2 added
14 edited

Legend:

Unmodified
Added
Removed
  • trunk/PKCS1/Library/BleichenbacherSignature.cs

    r1650 r1663  
    44using System.Text;
    55using Org.BouncyCastle.Math;
     6using Cryptool.PluginBase;
    67
    78
    89namespace PKCS1.Library
    910{
    10     class BleichenbacherSignature : Signature
     11    class BleichenbacherSignature : Signature, IGuiLogMsg
    1112    {
     13        public BleichenbacherSignature()
     14        {
     15            this.registerHandOff();
     16        }
     17
    1218        protected int m_dataBlockStartPos = 2072;
    1319        public int DataBlockStartPos
     
    3339        public override void GenerateSignature()
    3440        {
     41            this.SendGuiLogMsg("Message Generation started", NotificationLevel.Info);
     42
    3543            this.m_KeyLength = RSAKeyManager.getInstance().RsaKeySize;
    3644
     
    194202        }
    195203        */
     204
     205        public event GuiLogHandler OnGuiLogMsgSend;
     206
     207        public void registerHandOff()
     208        {
     209            GuiLogMsgHandOff.getInstance().registerAt(ref OnGuiLogMsgSend);
     210        }
     211
     212        public void SendGuiLogMsg(string message, Cryptool.PluginBase.NotificationLevel logLevel)
     213        {
     214            if (null != OnGuiLogMsgSend)
     215            {
     216                OnGuiLogMsgSend(message, logLevel);
     217            }
     218        }
    196219    }
    197220}
  • trunk/PKCS1/Library/Delegates.cs

    r1650 r1663  
    33using System.Linq;
    44using System.Text;
     5using Cryptool.PluginBase;
    56
    67namespace PKCS1.Library
     
    1011    public delegate void SigGenerated(SignatureType type);
    1112    public delegate void VoidDelegate();
     13    public delegate void GuiLogHandler(string message, NotificationLevel logLevel);
    1214}
  • trunk/PKCS1/Library/KuehnSignature.cs

    r1650 r1663  
    66using Org.BouncyCastle.Utilities.Encoders;
    77using Org.BouncyCastle.Math;
     8using System.Security.Cryptography;
     9using Cryptool.PluginBase;
    810
    911namespace PKCS1.Library
    1012{
    11     class KuehnSignature : Signature
     13    class KuehnSignature : Signature, IGuiLogMsg
    1214    {
     15        public KuehnSignature()
     16        {
     17            this.registerHandOff();
     18        }
     19
    1320        public override void GenerateSignature()
    1421        {
     
    4552            int countLoops = 0;
    4653
     54            SHA1Managed sha1Hash = new SHA1Managed();
     55            this.SendGuiLogMsg("Signature tests started", NotificationLevel.Info);
     56
    4757            while (!isEqual && (countLoops < limit))
    4858            {
    4959                //byte[] hashDigest = Hashfunction.generateHashDigest(message, hashFuncIdent); // Hashwert wird erzeugt
    50                 byte[] hashDigest = Hashfunction.generateHashDigest(bMessage, hashFuncIdent); // Hashwert wird erzeugt
     60                //byte[] hashDigest = Hashfunction.generateHashDigest(bMessage, hashFuncIdent); // Hashwert wird erzeugt
     61                byte[] hashDigest = sha1Hash.ComputeHash(bMessage);
    5162                Array.Copy(hashDigest, 0, A, 11 + hashIdent.Length, hashDigest.Length); // erzeugter Hashwert wird in den Datenblock kopiert
    5263                Array.Copy(A, 0, S, 0, A.Length); // erzeugter Datenblock wird in erzeugte Signatur S kopiert
     
    7889                if (!isEqual)
    7990                {
     91                   
    8092                    byte[] tmp1 = { bMessage[iMsgLength - 3], bMessage[iMsgLength - 2], bMessage[iMsgLength - 1] };
    8193
     
    97109            this.m_bSigGenerated = true;
    98110            this.OnRaiseSigGenEvent(SignatureType.Kuehn);
    99         }     
     111        }
     112
     113        public event GuiLogHandler OnGuiLogMsgSend;
     114
     115        public void registerHandOff()
     116        {
     117            GuiLogMsgHandOff.getInstance().registerAt(ref OnGuiLogMsgSend);
     118        }
     119
     120        public void SendGuiLogMsg(string message, NotificationLevel logLevel)
     121        {
     122            if (null != OnGuiLogMsgSend)
     123            {
     124                OnGuiLogMsgSend(message, logLevel);
     125            }
     126        }
    100127    }
    101128}
  • trunk/PKCS1/OnlineHelp/HelpFiles/de/Gen_Bleichenb_Sig_Tab.html

    r1659 r1663  
    2929<strong>HI</strong>
    3030Hash-Identifier. Der erste Teil des <a href="help://Gen_Datablock_Tab">Datenblock</a>. Hier sind Informationen wie z.B. der verwendete
    31 Hashfunktion in ASN.1-codierter Form enrhalten.
     31Hashfunktion in ASN.1-codierter Form enthalten.
    3232</li>
    3333<li>
  • trunk/PKCS1/OnlineHelp/HelpFiles/de/Gen_Kuehn_Sig_Tab.html

    r1650 r1663  
    11<h2>Kuehn Signatur generieren</h2>
    2 Ihre Wahl der Methode zur Faktorisierung  bestimmt die Laufzeit und den Resourcenverbrauch der Faktorisierung.
    3 <ul>
    4 <li>
    5 <strong>Probedivision<br /></strong>
    6 Die Probedivision ist das Verfahren mit der größen Laufzeit. Es benötig sehr viel Arbeitsspeicher und Prozessorzeit.
    7 Sollte nach 100.000 Versuchen kein Faktor gefunden werden, wird das Verfahren automatisch beendet.
    8 </li>
    9 </ul>
     2Hier fehlt noch Text
  • trunk/PKCS1/OnlineHelp/HelpFiles/de/Gen_PKCS1_Sig_Tab.html

    r1659 r1663  
    2626<strong>HI</strong>
    2727Hash-Identifier. Der erste Teil des <a href="help://Gen_Datablock_Tab">Datenblock</a>. Hier sind Informationen wie z.B. der verwendete
    28 Hashfunktion in ASN.1-codierter Form enrhalten.
     28Hashfunktion in ASN.1-codierter Form enthalten.
    2929</li>
    3030<li>
  • trunk/PKCS1/OnlineHelp/HelpFiles/de/KeyGen.html

    r1659 r1663  
    11<h2>RSA-Schlüsselgenerierung</h2>
    2 Um PKCS#1-Signaturen generieren und validieren zu können ist ein RSA-Schlüsselpaar notwendig. Dieses besteht aus einem privaten und einem öffentlichen Schlüssel, sowie einem sog. RSA-Modul welcher bei Beiden Schlüsseln gleich ist.</br>
    3 Da für die hier dargestellten Angriffe auf die PKCS#1-Signaturen der Wert des öffentlichen Schlüssels und die Länge des Moduls (in Bit) wichtig sind, können hier diese Parameter eingegeben werden. Der öffentliche Schlüssel, sowie der Modul werden dann generiert.
     2Um PKCS#1-Signaturen erzeugen und validieren zu können, ist ein RSA-Schlüsselpaar notwendig. Dieses besteht aus einem privaten und einem öffentlichen Schlüssel, sowie einem sog. RSA-Modul, der bei beiden Schlüsseln gleich ist.</br>
     3Für die hier dargestellten Angriffe auf die PKCS#1-Signaturen sind der Wert des öffentlichen Schlüssels und die Länge des Moduls (in Bit) wichtig. Diese Parameter können hier konfiguriert werden. Der öffentliche Schlüssel sowie der Modul werden dann generiert.
    44</br></br>
    5 <strong>Es ist notwendig zuerst einen Schlüssel zu generieren bevor man die Signaturen generieren kann!</strong>
     5<strong>Es ist notwendig, zuerst einen Schlüssel zu erzeugen, bevor man die Signaturen generieren kann!</strong>"
  • trunk/PKCS1/OnlineHelp/HelpFiles/de/SigGen.html

    r1659 r1663  
    11<h2>PKCS #1-Signaturgenerierung</h2>
    2 <strong>Um PKCS#1-Signaturen erzeugen zu können muss zuerst ein RSA-Schlüsselpaar in der entsprechenden Maske
     2<strong>Um PKCS#1-Signaturen erzeugen zu können, muss zuerst ein RSA-Schlüsselpaar in der entsprechenden Maske
    33 erzeugt werden</strong></br>
    44 <strong>Zuerst muss der Datenblock erzeugt werden, bevor die komplette Signatur generiert werden kann!</strong>
     
    77RSA-Schlüssel zu erzeugen.</br>
    88Um eine PKCS#1-Signatur zu erzeugen, wird zunächst der <a href="help://Gen_Datablock_Tab">Datenblock</a> generiert.
    9 Anschließend wird der Padding-String erzeugt, um die Signatur in ein spezifiziertes
    10 <a href="help://Gen_PKCS1_Sig_Tab">Format</a> zu bringen. Ist dies erfolgt, wird mit dem privaten Schlüssel verschlüsselt.
     9Anschließend wird der Padding-String erzeugt, um die Signatur in ein spezifisches
     10<a href="help://Gen_PKCS1_Sig_Tab">Format</a> zu bringen. Ist dies erfolgt, wird mit dem privaten Schlüssel signiert.
  • trunk/PKCS1/OnlineHelp/HelpFiles/de/SigGenFakeBleichenbacher.html

    r1659 r1663  
    11<h2>Bleichenbacher Angriff</h2>
    22<strong>Um den Bleichenbacher Angriff durchführen zu können, muss zuerst ein RSA-Schlüsselpaar in der entsprechenden Maske erzeugt werden</strong></br>
    3  <strong>Zuerst muss der Datenblock generiert werden, bevor die komplette Signatur generiert werden kann!</strong>
     3 <strong>Zuerst muss der Datenblock erzeugt werden, bevor die komplette Signatur generiert werden kann!</strong>
    44 </br></br>
    55 Um eine gefälschte Signatur zu erzeugen, wird zunächst der <a href="help://Gen_Datablock_Tab">Datenblock</a> wie in
  • trunk/PKCS1/OnlineHelp/HelpFiles/de/SigVal.html

    r1659 r1663  
    11<h2>Signaturvalidierung</h2>
    2 Zur Validierung von PKCS#1-Signaturen werden diese Signaturen zunächst mit dem öffentlichen Schlüssel entschlüsselt.
    3 Die entschlüsselte Signatur sollte eine Struktur wie <a href="help://Gen_PKCS1_Sig_Tab">hier</a> beschrieben, aufweisen.
    4 Bei der Validierung wird als nächster Schritt der <a href="help://Gen_Datablock_Tab">Datenblock</a> ausgelesen.</br>
     2Bei der Validierung einer PKCS#1-Signatur wird eine Operation mit dem öffentlichen Schlüssel durchgeführt.
     3Das Ergebnis dieser Operation sollte eine Struktur aufweisen, wie <a href="help://Gen_PKCS1_Sig_Tab">hier</a> beschrieben.
     4Als nächster Schritt wird der <a href="help://Gen_Datablock_Tab">Datenblock</a> ausgelesen.</br>
    55Dieses Extrahieren des Datenblock kann auf eine korrekte oder auf eine fehlerhafte Art und Weise geschehen. Die fehlerhafte
    66Implementierung war bis zum Entdecken des möglichen Angriffs (2006) in vielen Anwendungen zu finden.
  • trunk/PKCS1/OnlineHelp/HelpFiles/de/StartControl.html

    r1659 r1663  
    33Hier finden Sie detaillierte Informationen zu PKCS#1-Signaturen und dem Bleichenbacher Angriff.</br></br>
    44In die verschiedenen Masken dieses Plugins gelangen Sie mit Hilfe der Navigation auf der linken Seite. In den verschiedenen Masken
    5 wiederum finden Sie mehrere Hilfebuttons. Wenn Sie auf diese klicken, bekommen Sie detailierte Informationen über das jeweilige Thema.
     5wiederum finden Sie mehrere Hilfebuttons. Wenn Sie auf diese klicken, bekommen Sie detaillierte Informationen über das jeweilige Thema.
  • trunk/PKCS1/PKCS1.csproj

    r1650 r1663  
    2323    <DebugType>full</DebugType>
    2424    <Optimize>false</Optimize>
    25     <OutputPath>bin\Debug\</OutputPath>
     25    <OutputPath>..\..\CrypBuild\x86\Debug\CrypPlugins\</OutputPath>
    2626    <DefineConstants>DEBUG;TRACE</DefineConstants>
    2727    <ErrorReport>prompt</ErrorReport>
     
    8282  <ItemGroup>
    8383    <Compile Include="Library\BleichenbacherSignature.cs" />
     84    <Compile Include="Library\GuiLogMsgHandOff.cs" />
     85    <Compile Include="Library\IGuiLogMsg.cs" />
    8486    <Compile Include="Library\MathFunctions.cs" />
    8587    <Compile Include="Library\Datablock.cs" />
  • trunk/PKCS1/PKCS1Plugin.cs

    r1650 r1663  
    66using Cryptool.PluginBase;
    77using PKCS1.WpfVisualization;
     8using PKCS1.Library;
    89
    910namespace PKCS1
     
    2223        {
    2324            this.settings = new PKCS1Settings();
     25            GuiLogMsgHandOff.getInstance().OnGuiLogMsgSend += GuiLogMessage; // bei weiterleitung registrieren
    2426        }
    2527
     
    3234
    3335        #endregion
     36
     37        private void GuiLogMessage(string message, NotificationLevel logLevel)
     38        {
     39            if (OnGuiLogNotificationOccured != null)
     40            {
     41                OnGuiLogNotificationOccured(this, new GuiLogEventArgs(message, this, logLevel));
     42            }
     43        }
    3444
    3545        #region IPlugin Member
  • trunk/PKCS1/WpfControls/Start.htm

    r1659 r1663  
    1414        <h2>PKCS#1-Signaturen / Bleichenbacher Angriff</h2>
    1515        <p align="justify">
    16         PKCS#1-Signaturen basieren auf dem RSA Verschlüsselungsverfahren. Der Angriff von Daniel Bleichenbacher zielt nicht
     16        PKCS#1-Signaturen basieren auf dem RSA-Verschlüsselungsverfahren. Der Angriff von Daniel Bleichenbacher zielt nicht
    1717        auf das Verschlüsselungsverfahren selbst, sondern auf Implementierungsfehler, die in mehreren RSA-Klassenbibliotheken
    18         zu finden waren. Der Angriff wurde 2006 publiziert und seitdem ist die Spezifikation für die Signaturen verändert
    19         und die betroffenen Klassenbibliotheken ausgebessert.   
     18        zu finden waren. Der Angriff wurde 2006 publiziert und seitdem wurde die Spezifikation für die Signaturen verändert
     19    und die betroffenen Klassenbibliotheken ausgebessert.
    2020        </p>
    2121        <p align="justify">
Note: See TracChangeset for help on using the changeset viewer.