Toon posts:

[Alg]Eigen encryptie systeem

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ga als (een deel) van mn profielwerkstuk een eigen encryptiesysteem maken. Nu is er van alles door mn hoofd geschoten maar het beste wat ik tot nu toe heb bedacht is het gebruiken van functies. Zoals bv de simpele functie y = x². Alleen nu lukt het coderen wel, dus k kan van een izn op zich wel een functie maken door bv de letters om te zetten naar cijfers(a=1, b=2 of hoe dan ook) en dan x*y. Maar nu moet ik wel zeker weten dat ieder letter maar 1 beeld heeft, hoe is dat te bewijzen?

En het aller belangrijkste is dit weer terug te halen naar het oorpronkelijke.

Vinden jullie dit een goeie methode(hij hoeft niet perfect te zijn maar gewoon een beetje werken) of hebben jullie betere suggesties :)

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

x = wortel(y) en x=-wortel(y). Als weet dat je alleen met positieve integer waardes werkt (de chars), dan heb je dus altijd 1 orgineel per beeld:x = wortel(y)

[ Voor 6% gewijzigd door Alarmnummer op 20-07-2004 20:28 ]


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 14:53

NMe

Quia Ego Sic Dico.

Als elke letter positief is, en je gebruikt y=x², dan heeft elk origineel maar één beeld, en andersom. Het kwadraat van een positieve integer is namelijk nooit gelijk aan het kwadraat van een andere positieve integer.
Probleem met je encryptie wordt alleen: hoe ga je het scheiden? 26² heeft meer "plaats" nodig dan 1² enzo.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Cavorka
  • Registratie: April 2003
  • Laatst online: 27-03-2018

Cavorka

Internet Entrepreneur

Wat je zoekt is dus een bijectieve afbeelding (zie: hier). Misschien niet echt middelbare-school stof, maar in short is het dus een 1 op 1 afbeelding, waarbij elk punt maar 1 bron heeft.

Dit is bijvoorbeeld zoiets
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<?php

// EVOlution Encrypter V0.3
// Copyright 2002-2003 Onno van Braam, http://www.onnovanbraam.com
// Can be used under the GNU license and keep my name and URL here.

/* How to use? Just include it and use the function
encrypt(text_to_encrypt, mode), where mode 1 is 
encrypt and mode 2 is decrypt. You get the en/decrypted text returned */

/* Dataset: all signs, letters, stuff */
$dataset = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 
'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 
'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 
'V', 'W', 'X', 'Y', 'Z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '!', '@', 
'#', '$', '%', '^', '&', '*', '(', ')', '_', '-', '=', '+', '[', '{', ']', '}', '|', '\'', 
' ', ',', '.', '?', ':', ';') ;
$datalength = count($dataset) ;

function encrypt ($string, $mode) {

$length = strlen($string) ;

for ($i = 0 ; $i < $length ; $i ++) {
    global $datalength, $dataset ;
    $letter = substr($string, $i, 1) ;
    
    foreach($dataset AS $index => $value) {
    if ($value == $letter) {
        if ($mode == 1) {
            $newindex = ($index + ($i^5)) % $datalength ;
            $newletter = $dataset[$newindex] ;
            $newstring .= $newletter ;
            } /* Mode I: Encrypt */    
        
        if ($mode == 2) {
            $newindex = ($index - ($i^5)) ;
            if ($newindex < 0) {
                $newindexcalc = (abs($newindex) % $datalength) ;
                $newindex = $datalength - $newindexcalc ;
            }
            if ($newindex == $datalength) { $newindex = 0 ; }
            $newletter = $dataset[$newindex] ;
            $newstring .= $newletter ;
            } /* Mode II: Decrypt */    

        }
    }    /* While */
}    /* For */
return $newstring ;
}    /* End of function */
?>


Megalomp, en totaal geen rekening houdend met speciale tekens enzo, maar het idee was er. Een combinatie van de positie van het character en de plaats in een eventuele look-up table zou een begin kunnen zijn.

Ik gebruikte hier dus een totaal willekeurige functie: x5.

[ Voor 168% gewijzigd door Cavorka op 20-07-2004 20:35 ]

the-blueprints.com - The largest free blueprint collection on the internet: 50000+ drawings.


  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 22-05 23:32

alienfruit

the alien you never expected

Ik heb een nog wel een thesis over een encryptiesysteem :) Een suggestie voor vertrouwelijke informatie te delen met meerdere mensen met de mogelijkheid om deze groep uit te breiden enzo :+

  • eghie
  • Registratie: Februari 2002
  • Niet online

eghie

Spoken words!

Cavorka schreef op 20 juli 2004 @ 20:30:
Wat je zoekt is dus een bijectieve afbeelding (zie: hier). Misschien niet echt middelbare-school stof, maar in short is het dus een 1 op 1 afbeelding, waarbij elk punt maar 1 bron heeft.

Dit is bijvoorbeeld zoiets
PHP:
1
2
3
4
<?php

 ...
?>


Megalomp, en totaal geen rekening houdend met speciale tekens enzo, maar het idee was er. Een combinatie van de positie van het character en de plaats in een eventuele look-up table zou een begin kunnen zijn.

Ik gebruikte hier dus een totaal willekeurige functie: x5.
Jij gebruikt daar dus een array index om het karakter aan een nr te koppelen. Je zegt al zelf dat je nu niet met speciale karakters rekening houd. Kun je toch beter naar ascii code omzetten en dan mee gaan rekenen en dan weer terug naar karakter dan heb je de speciale tekens er ook in.

Dit zeg ik ff voor de ts, dat hij het iig niet zo gaat doen, want ik weet dat je er zelf al wel achter was. Of dit moet een voordeel hebben boven ascii wat ik niet weet.

[ Voor 56% gewijzigd door eghie op 20-07-2004 22:02 ]


Verwijderd

Topicstarter
mja ik was al van plan om met ascii te werken, maar wat k me afvroeg. Ik maak dit in C++ alleen k heb daar al een heeel tijd niet meer mee gewerkt en nu wou ik laatst proberen om een charom te zetten naar een int maar met gewoon casten ging dat niet. Hoe moest datook alweer

en daarnaast lijkt het me beter om met ascii te werken omdat je dan in de meeste gevallen grotere waarden krijgt(ik bedoel groter dan wanneer a=1 b-2 enz)

  • eghie
  • Registratie: Februari 2002
  • Niet online

eghie

Spoken words!

ascii waarden zijn van 0 tot 255 geloof ik. Zie http://www.asciitable.com/ voor een ascii tabel. Ik denk dat je die karakter naar byte moet casten, mischien dat het werkt of gebruik "atoi(..)". Ik zie trouwens ook wel eens Karakter.ToInt() voorbij komen, mischien werkt dat ook nog wel.

[ Voor 21% gewijzigd door eghie op 20-07-2004 22:39 ]


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-05 23:07

.oisyn

Moderator Devschuur®

Demotivational Speaker

Laten we maar gewoon een unsigned char naar een int casten, atoi is om een textueel getal (zoals "1234") naar een int te converteren ;)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.

Pagina: 1