Changeset 1743


Ignore:
Timestamp:
Jul 19, 2010, 9:29:50 PM (11 years ago)
Author:
schomburg
Message:

Limitation on Kuehn Signature Generation editable by User
beta version of helpfile Gen_Kuehn_Sig_Tab.html

Location:
trunk/PKCS1
Files:
3 added
7 edited

Legend:

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

    r1742 r1743  
    1111namespace PKCS1.Library
    1212{
    13     class KuehnSignature : Signature, IGuiLogMsg
     13    public class KuehnSignature : Signature, IGuiLogMsg
    1414    {
     15        private int m_Iterations = 250000;
     16        public int Iterations
     17        {
     18            get { return this.m_Iterations; }
     19            set { this.m_Iterations = (int)value; }
     20        }
     21
    1522        public KuehnSignature()
    1623        {
     
    5562            int iMsgLength = bMessage.Length;
    5663            bool isEqual = false;
    57             int limit = 250000;
    5864            int countLoops = 0;
    5965
     
    6369            byte[] resultArray = new byte[this.m_KeyLength/8];
    6470
    65             while (!isEqual && (countLoops < limit))
     71            while (!isEqual && (countLoops < this.m_Iterations))
    6672            {
    6773                hashDigest = Hashfunction.generateHashDigest(ref bMessage, ref hashFuncIdent); // Hashwert wird erzeugt
     
    99105                }
    100106            }
    101             if (countLoops != limit)
     107            if (countLoops != this.m_Iterations)
    102108            {
    103109                Datablock.getInstance().Message = bMessage;
  • trunk/PKCS1/OnlineHelp/HelpFiles/de/Gen_Bleichenb_Sig_Tab.html

    r1663 r1743  
    11<h2>Bleichenbacher Signatur generieren</h2>
    2 In diesem Tab wird eine gefälschte Signatur generiert, welche in ver- und entschlüsselter Form dargestellt wird.
     2In diesem Tab wird eine gefälschte Signatur generiert, die in ver- und entschlüsselter Form dargestellt wird.
    33Eine Signatur, die von fehlerhaften Implementierungen als valide erkannt wird, hat folgende Struktur:
    44'00' '01' PS '00' HI HW GG. </br>
  • trunk/PKCS1/OnlineHelp/HelpFiles/de/Gen_Kuehn_Sig_Tab.html

    r1663 r1743  
    11<h2>Kuehn Signatur generieren</h2>
    2 Hier fehlt noch Text
     2In diesem Tab können Signaturen gefälscht werden nach der Methode wie sie Ulrich Kühn beschrieben hat.
     3Die Signaturen ähneln denen von Bleichenbacher
     4
     5Position nicht wählbar sondern XX Byte als Padding werden genutzt, das kürzest mögliche.
     6Garbage == FF und nicht berechnet wie bei Bleichenbacher. Bei dieser Implementierung ist die Signatur schon
     7nach dem Kubikwurzelziehen dargestellt, daher kann der dargestellte Garbage von dem FF Schema abweichen.
     81024 Bit Signaturen möglich.
     9Solange probieren bis dass die Berechnung der dritten Wurzel und das Potenzieren das gleiche Ergebnis liefern.
     10Dabei werden nur die 46 signifikanten Bytes (von links) verglichen, da sich hier der Paddingstring,
     11Hashidentifier und Hashwert befinden. Fehlerhafte Implementierungen der Verifikation vergleichen auch nur diese
     12Bytes und der Rest wird nicht beachtet.
     13
     14Da oft die Kubikwurzel berechnet werden muss, kann es lange dauern. (Limit von 25000 einstellbar)
     15
     16
  • trunk/PKCS1/PKCS1.csproj

    r1742 r1743  
    329329    <Content Include="OnlineHelp\HelpFiles\de\Gen_Datablock_Tab.html" />
    330330    <Content Include="OnlineHelp\HelpFiles\de\Gen_PKCS1_Sig_Tab.html" />
    331     <Content Include="OnlineHelp\HelpFiles\de\Gen_Bleichenb_Sig_Tab.html" />
    332     <Content Include="OnlineHelp\HelpFiles\de\Gen_Kuehn_Sig_Tab.html" />
     331    <Content Include="OnlineHelp\HelpFiles\de\Gen_Bleichenb_Sig_Tab.html">
     332      <SubType>Designer</SubType>
     333    </Content>
     334    <Content Include="OnlineHelp\HelpFiles\de\Gen_Kuehn_Sig_Tab.html">
     335      <SubType>Designer</SubType>
     336    </Content>
    333337    <Content Include="OnlineHelp\HelpFiles\de\KeyGen_PubExponent.html" />
    334338    <Content Include="OnlineHelp\HelpFiles\de\KeyGen_ModulusSize.html" />
  • trunk/PKCS1/WpfControls/Components/SigGenKuehnControl.xaml

    r1742 r1743  
    1 <UserControl x:Class="PKCS1.WpfControls.Components.SigGenKuehnControl"
     1<UserControl x:Class="PKCS1.WpfControls.Components.SigGenKuehnControl" x:Name="This"
    22    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    33    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
     4    xmlns:my="clr-namespace:PKCS1.WpfResources"
     5    xmlns:lib="clr-namespace:PKCS1.Library"
    46    VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
     7    <UserControl.Resources>
     8        <my:ErrorsToMessageConverter x:Key="eToMConverter" />
     9    </UserControl.Resources>
    510    <Grid>
    611        <Grid.RowDefinitions>
     
    2227                        <RowDefinition Height="auto" />
    2328                        <RowDefinition Height="auto" />
    24                         <RowDefinition Height="auto" />
     29                        <RowDefinition Height="*" />
    2530                    </Grid.RowDefinitions>
    2631                    <Label Grid.Row="0" Name="lblRsaKeySize" Margin="5,0,5,5" HorizontalAlignment="Left" VerticalAlignment="Top">RSA-Schlüsselgröße (in Bit):</Label>
    2732                    <Label Grid.Row="1" Name="lblPublicKey" Margin="5,0,5,5" HorizontalAlignment="Left" VerticalAlignment="Top">Öffentlicher Schlüssel:</Label>
     33                    <Label Grid.Row="2" Name="lblIterations" Margin="5,0,5,5" HorizontalAlignment="Left" VerticalAlignment="Top">Anzahl an Iterationen:</Label>
    2834                </Grid>
    2935                <!-- middle -->
     
    3238                        <RowDefinition Height="auto" />
    3339                        <RowDefinition Height="auto" />
     40                        <RowDefinition Height="auto" />
    3441                        <RowDefinition Height="*" />
    3542                    </Grid.RowDefinitions>
    3643                    <Label Grid.Row="0" Name="lblRsaKeySizeRes" Margin="5,0,5,5" HorizontalAlignment="Left" VerticalAlignment="Top" MinWidth="50" MaxWidth="150"></Label>
    3744                    <Label Grid.Row="1" Name="lblPublicKeyRes" Margin="5,0,5,5" HorizontalAlignment="Left" VerticalAlignment="Top" MinWidth="50" MaxWidth="150"></Label>
     45                    <TextBox Grid.Row="2" Name="tbIterations" Margin="5,0,5,5" HorizontalAlignment="Left" VerticalAlignment="Top" MinWidth="50">                       
     46                        <Binding ElementName="This" Path="Signature.Iterations" UpdateSourceTrigger="PropertyChanged">
     47                            <Binding.ValidationRules>
     48                                <my:NumberValidationRule UpperBound="500000" LowerBound="0" />
     49                            </Binding.ValidationRules>
     50                        </Binding>
     51                    </TextBox>
     52                    <TextBlock Grid.Row="3"  Foreground="Red" FontWeight="Bold" FontSize="10"
     53                                Text="{Binding ElementName=tbIterations,
     54                                Path=(Validation.Errors),
     55                                Converter={StaticResource eToMConverter}}" />
    3856                </Grid>
    3957                <!-- right -->
  • trunk/PKCS1/WpfControls/Components/SigGenKuehnControl.xaml.cs

    r1742 r1743  
    2222    {
    2323        private KuehnSignature m_signature = new KuehnSignature();
     24        public KuehnSignature Signature
     25        {
     26            get { return this.m_signature; }
     27            set { this.m_signature = (KuehnSignature)value; }
     28        }
    2429
    2530        public SigGenKuehnControl()
     
    4045            Cursor = Cursors.Wait;
    4146
    42             this.m_signature = (KuehnSignature)SignatureHandler.getInstance().getKuehnSig();
     47            this.Signature = (KuehnSignature)SignatureHandler.getInstance().getKuehnSig();
    4348
    44             if (this.m_signature.GenerateSignature())
     49            if (this.Signature.GenerateSignature())
    4550            {
    46                 UserControlHelper.loadRtbColoredSig(this.rtbResult, this.m_signature.GetSignatureDecToHexString());
    47                 this.tbResultEncrypted.Text = this.m_signature.GetSignatureToHexString();
    48                 SignatureHandler.getInstance().setKuehnSig(this.m_signature);
     51                UserControlHelper.loadRtbColoredSig(this.rtbResult, this.Signature.GetSignatureDecToHexString());
     52                this.tbResultEncrypted.Text = this.Signature.GetSignatureToHexString();
     53                SignatureHandler.getInstance().setKuehnSig(this.Signature);
    4954            }
    5055            else
  • trunk/PKCS1/WpfControls/RsaKeyGen/RsaKeyGenControl.xaml

    r1742 r1743  
    1 <UserControl x:Class="PKCS1.WpfControls.RsaKeyGen.RsaKeyGenControl" x:Name="This"
     1<UserControl x:Class="PKCS1.WpfControls.RsaKeyGen.RsaKeyGenControl"
    22    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    33    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Note: See TracChangeset for help on using the changeset viewer.