• No results found

Software beveiliging met een 'key'

N/A
N/A
Protected

Academic year: 2021

Share "Software beveiliging met een 'key'"

Copied!
10
0
0

Bezig met laden.... (Bekijk nu de volledige tekst)

Hele tekst

(1)

Software beveiliging met een 'key'

Citation for published version (APA):

Molenaar, J. (1988). Software beveiliging met een 'key'. (WD report; Vol. 8802). Radboud Universiteit Nijmegen.

Document status and date: Gepubliceerd: 01/01/1988

Document Version:

Uitgevers PDF, ook bekend als Version of Record

Please check the document version of this publication:

• A submitted manuscript is the version of the article upon submission and before peer-review. There can be important differences between the submitted version and the official published version of record. People interested in the research are advised to contact the author for the final version of the publication, or visit the DOI to the publisher's website.

• The final author version and the galley proof are versions of the publication after peer review.

• The final published version features the final layout of the paper including the volume, issue and page numbers.

Link to publication

General rights

Copyright and moral rights for the publications made accessible in the public portal are retained by the authors and/or other copyright owners and it is a condition of accessing publications that users recognise and abide by the legal requirements associated with these rights. • Users may download and print one copy of any publication from the public portal for the purpose of private study or research. • You may not further distribute the material or use it for any profit-making activity or commercial gain

• You may freely distribute the URL identifying the publication in the public portal.

If the publication is distributed under the terms of Article 25fa of the Dutch Copyright Act, indicated by the “Taverne” license above, please follow below link for the End User Agreement:

www.tue.nl/taverne

Take down policy

If you believe that this document breaches copyright please contact us at:

openaccess@tue.nl

providing details and we will investigate your claim.

(2)

mei 1988 Wiskundige Dienstverlening Faculteit W&N Toernooiveld 6525 ED Nijmegen 080-613138

(3)

1

SOFTWARE BEVEILIGING MET EEN ' KEY' .

INLEIDING.

Een van de mogelijkheden om illegaal gebruik van software te voorkomen is het toepassen van een 'key' in de vorm van een aan de computer toegevoegde chip. Voor een uitgebreide beschrijving van zo'n systeem verwijzen we naar [ 1,2,3,4 ]. Het basis idee hiervan is de software tijdens het draaien regelmatig te laten communiceren met de 'key' . Deze reageert op een unieke wijze, zodat gekontroleerd kan worden of de juiste 'key' aanwezig is. De communicatie bestaat uit het opgeven aan de 'key' van een invoergetal, waaraan de 'key' het juiste uitvoergetal moet toevoegen. Alleen de eigenaar van de software met bijbehorende 'key' weet welk uitvoergetal behoort bij welk invoergetal. In een bijdrage aan de uitwerking van deze methode is onderzocht, welke algorithmen geschikt zijn om in de 'key' te implementeren.

De minimale eisen voor een dergelijk algorithme zijn :

1) het algorithme moet uniek gemaakt kunnen worden met een sleutelgetal.

2) De rekentijd moet zeer kort zijn, omdat toepassingen de communicatie tussen software executeren onderbreekt.

in en

de huidige 'key' het

3) Het algorithme mag niet snel te vinden zijn, bijvoorbeeld met behulp van statistische technieken. Met name het sleutelgetal mag niet te herleiden ZlJn. Een hoge mate van ongecorreleerdheid tussen invoer en uitvoer is daarom gewenst.

In een tussentijdse rapportage [ 5 ] ZlJn de volgende twee algorithmen voorgesteld, die in aanmerking zouden kunnen komen 1) Lehmer's algorithme 6, pp 9,10 ]

2) Een modificatie van een algorithme van Mitchell en Moore [ 6,

(4)

RESOLTATEN EN CONCLOSIES.

Implementatie van beide algorithmen heeft uitgewezen, dat de rekentijd van 1) ver buiten de gewenste marges ligt, terwijl 2) op dit punt goed voldoet. Beide algorithmen voldoen overigens aan eisen 1) en 3). We concluderen hieruit dat algorithme 2) een geschikte keuze is. Een verbale omschrijving alsmede enkele testresultaten worden gepresenteerd in de volgende paragraaf. Een FORTRAN-listing is als appendix bijgevoegd.

Het kraken van de 'key', oftewel het vinden van het gebruikte algorithme en/of sleutelgetal, is niet de zwakste schakel in het beveiligingssysteem. De operationele aspekten behoeven zeker zoveel aandacht. Hierbij valt te denken aan :

a. Het mogelijkerwijze onderscheppen van de communicatie tussen software en de 'key', waarna de 'key' respons gesimuleerd zou kunnen worden.

b. Het opsporen en eventueel verwijderen van de gedeelten in de software, die de communicatie met de 'key' verzorgen.

Mogelijke maatregelen tegen a. :

Varieer de data, die tussen de software en de 'key' uitgewisseld worden door deze bijvoorbeeld te laten afhangen van de datum en de tijd. Een kraker kan dan niet nagaan of hij alle voorkomende respons kent.

- Neem de chip op in de computer, het liefst in de CPU. Dit zal grote technische vaardigheid vereisen van een kraker.

Mogelijke maatregelen tegen b. :

- Gebruik het uitvoergetal voor een sprongopdracht in de soft-ware in plaats van het te testen door vergelijking.

Plaats het invoergetal niet in de software, maar laat het berekenen, liefst op een plaats in het programma ver van de call naar de 'key'.

- Neem in het programma een checksum op, zodat gekontroleerd kan worden of er gedeelten uit het programma verwijderd zijn.

Algorithme 2) is met een kleine aanpassing ook geschikt om zeer snel een unieke bitstream te genereren, waarmee over te zenden data gecodeerd en gedecodeerd kunnen worden. Zender en ontvanger dienen dan te beschikken over identieke 'keys'. Dit wordt op een aantrekkelijke manier verwezenlijkt, indien beiden hun 'key' vlak voor de communicatie voorzien van hetzelfde sleutelgetal. De overzending van het sleutelgetal kan weer apart beveiligd worden. Hiervoor zijn systemen, die werken met een combinatie van een 'public key' en een 'private key', heel geschikt. Het sleutelge-tal zelf behoeft dan niet te worden uitgewisseld, maar informatie met behulp waarvan alleen de zender en de ontvanger het sleutel-getal kunnen berekenen.

(5)

3

HET ALGORITHME.

Het algorithme bestaat uit de volgende stappen :

- Definieer een array nwerk(O : 227) van binaire posities. - Zet nwerk(O)

=

0

- Kies een invoergetal van maximaal 7 decimale cijfers.

- Reken dit om in binaire representatie. Dit levert een rij nullen en enen met maximale lengte 24.

- Plaats deze rij in omgekeerde volgorde op de posities 1 tot en met 24 van nwerk, zodanig dat element nwerk(1) afkomstig is van het laagste decimale cijfer van het invoergetal.

- Kies een sleutelgetal van maximaal 9 decimale cijfers.

- Reken dit om in binaire representatie. Dit levert een rij nullen en enen met maximale lengte 30.

- Plaats deze rij in omgekeerde volgorde op de posities 25 tot en met 54 van nwerk, zodanig dat element nwerk(25) afkomstig is van het laagste decimale cijfer van het sleutelgetal.

- Bereken de elementen 55 tot en met 227 van nwerk met het algorithme

nwerk(i)

= [

nwerk(i-24) + nwerk(i-55)] modulo 2

- Lees de rij nullen en enen op posities 201 tot en met 227 van en reken deze rij om naar een decimaal getal, zodanig dat element 201 correspondeert met de O-de macht van 2 en element 227 met de 26-ste macht van 2.

- Neem het resulterende decimale getal modulo resultaat is het uitvoergetal, dat maximaal uit cijfers) bestaat.

(10**7). Het 7 (decimale

(6)

TESTS.

Het algorithme dient bij een gegeven invoergetal van maximaal 7 cijfers een uitvoergetal van maximaal 7 cijfers te construeren op een grillige en niet achterhaalbare Wl]ze. Om dit ideaal te benaderen zijn de volgende twee eisen gesteld :

1. Bij invoer van de rij 1,2,3, •... ,9999999 moet de correspon-derende rij uitvoergetallen grillig ('random') zijn, oftewel

'witte ruis' benaderen. Om dit te testen beschouwen we de correlatiecoefficienten c(i) tussen de uitvoerrij zelf en de rijen, die verkregen worden door alle getallen van de uitvoerrij i plaatsen op te schuiven, waarbij i varieert over 1,2,3, . . . . Zoals bekend liggen correlatiecoefficienten in het interval

[-1,+1]. Waarden in de buurt van +1 resp. -1 corresponderen met een grate positieve resp. negatieve correlatie, terwijl waarden in de buurt van 0 betekenen, dat de twee reeksen ongecorreleerd zijn.

2. Bij invoer van de rij resulterende uitvoergetallen interval [1,9999999].

1,2,3, . . . ,9999999 moeten homogeen verdeeld zijn over

de het

Merk op dat deze eisen afzonderlijk niet sterk ZlJn en alleen in combinatie een bevredigend algorithme opleveren. Twee voorbeel-den:

- Een konstant uitvoergetal levert c(i)

=

0 op voor iedere i en voldoet uitstekend aan eis 1., maar niet aan 2.

- Een algorithme, dat invoer en uitvoergetal gelijk maakt, voldoet prima aan eis 2., maar niet aan 1.

(7)

5

TESTRESULTATEN.

De prestaties van het algorithme zijn als volgt getest : Voor het sleutelgetal werd gekozen 123456789.

Omdat het het aantal mogelijke invoergetallen erg groot is, werd voor het berekenen van de c(i) een steekproef genomen, namelijk de rij getallen 1234567 tot en met 1234567 + 10000.

Variatie van deze parameters leverde op dat onderstaande resultaten representatief geacht kunnen worden voor het gedrag van het algorithme in het algemeen.

De berekende waarden voor c ( i) ' i = 1,20 zijn c ( 1) = -0.029 c ( 11) = 0.050 c(2) = -0.032 c(12) = 0.085 c (3) = 0.027 c(13) = 0.039 c ( 4) = 0.133 c(14) = 0.020 c (5) = -0.120 c(15) = -0.012 c ( 6) = 0.013 c (16) = -0.112 c (7) = 0.022 c(17) = 0.026 c ( 8) = 0.002 c (18) = 0.055 c ( 9) -0.120 c (19) 0.058 c(10)= 0.075 c (20) = -0.044

We zien, dat de meeste c(i) waarden heel dicht in de buurt van 0 liggen. Zelfs de enkele uitschieters komen in absolute waarde niet boven de 0.15.

De verdeling over het interval [ 1' 9999999] was als volgt tussen 0 en 999999 10.46 % tussen 1000000 en 1999999 10.47 % tussen 2000000 en 2999999 10.47 % tussen 3000000 en 3999999 10.44 % tussen 4000000 en 4999999 9.71 % tussen 5000000 en 5999999 9.63 % tussen 6000000 en 6999999 9.74 % tussen 7000000 en 7999999 9.64 % tussen 8000000 en 8999999 9.68 % tussen 9000000 en 9999999 9.76 %

Deze getallen duiden op een zeer homogene verdeling. Er is een tendens om de getallen onder de 4000000 procentueel iets vaker te genereren dan de getallen boven de 4000000, maar de discrepantie is zo klein dat het niet de moeite waard is om hiervoor nog te corrigeren.

(8)

REFERENTIES.

[ 1 ] The KEY, Beschrijving en Handleiding, Data and Software Security B.V., Accustraat 25, 3903 LX Veenendaal.

[ 2 ] Software Protection Myth or Reality, James R. Gosler,

Advances in Cryptology, Crypto '85 Proceedings, Lecture Notes in Computing Science 218, Springer Verlag, 1986.

[ 3 ] Hardware Protection Against Software Piracy, Tim Mande and

Derwe Mande, Communications of the ACM, September 1984, Vol. 27,

no. 9, pp 950-959.

[ 4 ] How Can We Stop Software Piracy, Chris Morgan, Byte, Vol.

6, no . 5, 1 9 81 , pp 6-1 0 .

[ 5 ] Software Beveiliging met behulp van Wiskundige men, Tussentijdse Rapportage, S.W.Rienstra, J.Molenaar, oktober 1987.

Algorith-H.A.E.Duits,

[ 6 ] The Art of Computer Programming, Volume 2, D.E.Knuth, Addison-Wesley Publishing Company, 1981.

(9)

I~ 'c I

c

\.: 7

?ROGRAHHA VOOR RAN~OU GETALLEN (ALGORITHME 2)

=============================================~

IMP~ICIT REAL•2 (A-H10-Z)

DIMENSION NWERK(0:227)

IliiTIALISA':'IE

=============

DE SLECTEL VOOR DE PROCEDURE IS: NKEY = 123456789

WRITE(61*) I HET SLEUTEL GETAL =? I INKEY

READ(5 1 •,EHD=2J) NKEY

20 RDElrD 5

WRITE(6,*) I HET INVOER GETAL ? I

READ (

s

I " ' I EHD=30 l

:rnrv

3C REWIHD 5 IF (NINV.LT.O) STOP DO 40 I

=

0 I 54 NWERK ( I) = · · 40 CONTINUE

C HET OMSCHRIJVEN VAN HET INVOER EN SLEUTEL GETAL VAN DECIMALE C NAAR BINAIRE REPRESENTATIE

c

==========================================================

NI

=

2 ** 30 NH

=

NKEY DO 50 I

=

54,25,-1 NI = NI I 2 IF (NH.GE.NI) THEN NWERK(I)

=

1 NH

=

NH - NI END IF 50 CONTINUE NI

=

2 ** 24 NH = NINV DO 55 I = 241 11 -1 NI

=

NI I 2 IF (NH.GE.NI) THEN NWERK(I)

=

1 NH

=

NH - NI END IF 55 CONTINUE C DE PROCEDURE

c

============

DO 60 I

=

55 I 227

NWERK(I)

=

MOD(NWERK(I-24) + NWERK(I-55) ,2) 60 CONTINUE

C OMSCHRIJVEN VAN DE BINAIRE UITKOMST NAAR EEN DECIMAAL GETAL

(10)

lK = l!C + In-1'ERK ( 2 2 S - I) ~ lH ~H

=

NI * 2

7 tJ COlJT:::lH.JE

~C

=

HOD;Nci:000~000) \~RI?E ( 6 I 8 c) lHliV lliC

FORl'LC;.T ( TlO I : LiVOE? .. I IlO I '

GOTC 20

EiiD

Referenties

GERELATEERDE DOCUMENTEN

2 De invloed van de ruimtetemperatuur (boven) op de relatieve luchtvochtigheid (onder) wordt geheel overheerst door de invloed van de verdamping van het volgroeide gewas... Invloed

• Entomophthorales bieden meer perspectief voor haardbestrijding van bladluis dan de

Parallel to the last project, we envisioned such a biaryl- functionalized core to be a promising candidate for developing the first bis-phosphine ligand based on

The ease of dispersion of the contents of Aspen Stavudine capsules was equivalent to that of Zerit, and resulted in a mean recovery of active drug from solution of over 97%,

Because of the risk of developing serious illness after exposure to hazardous chemical substances, it is vital and required by the Occupational Health and Safety Act

The absence of guidelines for pricing poli- cies and approaches adds to the difficulties South African managers and entrepreneurs experience in determining prices

The study was limited only to those consumers who had some knowledge about the textile product labels. The information therefore lacks the perceptions of those who do not know

Door PPO is een levenscyclusanalyse (LCA) uitgevoerd van vaste rundermest, runderdrijfmest, digestaat, effluent en dikke fractie van gescheiden digestaat, GFT-compost en