SE461689B - Programminne med adressingaangsorgan, datautgaangsorgan och ett skyddsarrangemang mot obehoeriga laasoperationer - Google Patents

Programminne med adressingaangsorgan, datautgaangsorgan och ett skyddsarrangemang mot obehoeriga laasoperationer

Info

Publication number
SE461689B
SE461689B SE8302511A SE8302511A SE461689B SE 461689 B SE461689 B SE 461689B SE 8302511 A SE8302511 A SE 8302511A SE 8302511 A SE8302511 A SE 8302511A SE 461689 B SE461689 B SE 461689B
Authority
SE
Sweden
Prior art keywords
memory
program
address
word
verification
Prior art date
Application number
SE8302511A
Other languages
English (en)
Other versions
SE8302511D0 (sv
SE8302511L (sv
Inventor
H Vrielink
Original Assignee
Philips Nv
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Philips Nv filed Critical Philips Nv
Publication of SE8302511D0 publication Critical patent/SE8302511D0/sv
Publication of SE8302511L publication Critical patent/SE8302511L/sv
Publication of SE461689B publication Critical patent/SE461689B/sv

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Storage Device Security (AREA)

Description

461 689 information, varvid nämnda verifieringsenhet innefattar första medel för ' lagring av nünda- tilläggsinformation när ett första programord är läst från minnet, varvid tilläggsinformationen hänför sig till ett efterföljande program- ord vilket är bestämt av nämnda följd och vilket följer efter det första pro- gramordet, varvid verifieringsenheten innefattar andra medel för verifiering, när ett andra programord är läst från minnet, om programinfomationen hos det lästa andra programordet motsvarar den lagrade tilläggsinformationen hänförande sig till det efterföljande programordet, och för alstring av en första signal när nämnda verifiering resulterar i överensstämmelse och en andra signal när nämnda verifiering resulterar i icke överensstämmelse, varvid val enheten .inne- fattar en styringäng för mottagning av nämnda första och andra signaler för att föra det lästa programordet från minnet till en utgång under styrning av nïämnda första signal och för att spärra överföringen av åtminstone ett programord från minnet under styrning av nämnda andra signal och att ersätta detta programord på utgången med ett störord från datakällan. Programorden är lagrade i minnet i en väldefinienad följd. Följden i vilken programorden hämtas av databehand- lingsenheten under programexekveringen avviker emellertid från den väldefinie- rade följden i vilken programorden är lagrade i minnet. Exempelvis görs vanli- gen under styrning av databehandlingsenheten hopp till exempelvis underprogram.
Endast programskrivaren och databehandlingsenheten känner till i vilken följd programorden måste läsas från minnet för programmets exekvering. En obehörig läsare skulle inte känna till denna följd och kommer att läsa programorden från minnet i någon annan följd, exempelvis ett efter ett i den följd de har lag- rats. När den följd som är bestämd av databehandlaren inte respekteras komer minnets första utsignal att spärras med avseende på åtminstone ett av program- orden från minnet till utgången och det programord som skulle vara utsignal kommer att ersättas av ett störord från datakällan. Detta störord från data- källan är fullständigt oanvändbart för programexekveringen. Detta komer inte att upptäckas av den obehörige läsaren under kopieringsförfarandet, eftersom skenbara programord utaatas pä anordningens utgång som vanligt. När emellertid det kopierade används komer det att inses att det är oanvändbart.
Ett första föredraget utförande av anordningen- enligt uppfinningen är kännetecknat av att nhnda anslutning av minnet innefattar en adressingång på minnet, varvid nämnda programinformation innefattar åtminstone en del av prog- ramordets adress. Nämnda verifiering kan enkelt realiseras på basis av några bitar av adressen hos programordet som är adresserat av databehandlingsenheten.
Nämnda första medel hos verifieringsenheten innefattar företrädesvis ett 461 689 egenregister och en minnestabell, varvid en första ingång på nämnda egenregis- ter är ansluten till den första ingången på verifieringsenheten, och en utgång på databehandlingsenheten är ansluten till en andra ingång på egenre- gistret för att mata en styrsignal för en läsoperation, medan en utgång på nämnda egen- register är ansluten till en adressingång på minnestabellen för lagring av programordadresser, varvid nämnda tilläggsinformation innefattar en adress för ett läge i minnestabellen. När en sådan minnestabell används, i vilken program- ordens adresser är lagrade, kan verifieringen utföras på alla bitarna hos adressordet, utan att ett väsentligt minnesutrymme tas i anspråk för lagringen av tilläggsinfonmationen.
Ett andra föredraget utförande av anordningen enligt uppfinningen är kännetecknat av att nämnda anslutning hos minnet innefattar en datautgång på minnet, varvid nhnda programinfonnation innefattar åtminstone en del av pro- gramordet. Utöver verifieringen på basis av adressorden är således verifiering även på basis av själva programorden möjlig. ' Ett ytterligare föredraget utförande av anordningen enligt uppfinningen är kännetecknat av att nämnda programord som skall skyddas är uppdelade i två olika grupper, varvid exklusiv tilläggsinfonnation tilläggs till varje program- ord i en första grupp och icke exklusiv tilläggsinfonnation tilläggs till varje programord i en andra grupp, varvid nämnda verifieringsenhet innefattar identi- fieringsmedel som reagerar på identifieringen av tilläggsinfonnation hos nämnda andra grupp och för deaktivering av veri fi eringsenheten under styrning av till- äggsinformation hos nämnda andra grupp, varigenom nämnda första signal alstras.
Tillägget av av exklusiv tilläggsinfomation till varje programord kräver ett stort lagringsutrymme och effektiviteten hos anordningen för att skydda mot obehörig läsning ökas endast något därigenom. Det räcker att endast förse en första grupp av programord med exklusiv tilläggsinfonnation och att tillägga icke exklusiv tilläggsinfonnation till programorden som inte utgör del av denna grupp, exempelvis kan alla programord i den andra gruppen ha sanma tilläggsin- fonnation. På grund av denna delning i första och andra grupper, konmer endast ett litet lagringsutrymme av det tillgängliga att beläggas med tilläggsinforma- tionen.
Nämnda datakälla innefattar företrädesvis en slumpgenerator. När en slump- generator används kan olika störprogramord alstras varje gång en obehörig läsa- re försöker att kopiera minnesinnehållet.
Utföranden av uppfinningen kommer att beskrivas nänmare nedan medelst exempel med hänvisning till bifogade ritningar, där Fi g. la visar ett utförande 461 689 av en anordning för att skydda mot obehörig läsning enligt uppfinningen i vil- ken verifiering utförs pä grundval av adressignaler, Fig. lb visar ett antal vägformsdiagraan som illustrerar funktionen hos anordningen enligt uppfinningen, Fi g. 2 visar ett andra utförande av en anordning enligt uppfinningen och I-'_i_g_¿_3 visar ytterligare ett utförande av en anordning enligt uppfinningen, i vilken verifieringen utförs pä basis av programord.
Ett databehandlingssystesn använder en databehandlingsenhet för behandling av data i överensstänanel se med ett program. Detta program är lagrat i ett minne, ibland benämnt programinnet, i form av programord såsom exempelvis instruktioner, data, etc. Detta minne är normalt ett icke flyktigt minne exem- pelvis ett ROM, ett PRM, BARG-l eller annat integrerat kretsminne. Ett programs programord är lagrade i minnet i en given följd. När programet exekveras kom- mer databehandlingsenheten (dataprocessorenheten) att läsa programorden i minnet i en följd som är bestämd av progranmets innehåll och karaktär. Följden avviker frän en given (sekventiell) följd i vilken programorden är lagrade i minnet. Detta innebär att under databehandlingsenhetens styrning görs hopp i läsningen av programorden som är lagrade i minnet. En obehörig läsare känner inte till den följd i vilken prograrnorden lästs frän minnet av databehandlings- enheten under programmets exekvering. När en obehörig läsare försöker läsa pro- grammet frän minnet komer han antagligen att läsa programorden i en följd (exempelvis den sekventiella följden) som avviker frän den följd som databe- handl i ngsenheten använder.
För att ästadkonlna skydd mot obehörig läsning utnyttjar uppfinningen det faktun att den obehöriga läsaren inte känner till den följd som dataprocessorn använder.
Uppfinningen komer att beskrivas med hänvisning till ett antal utföranden i vilka i varje utförande instruktionsord är de valda programorden som används.
Uppfinningen kan emellertid även tillmas pä samna sätt under användande av dataord eller någon annan typ av programord.
Fi g. la visar ett enkelt utförande av anordningen för att skydda mot obe- hörig läsning enligt uppfinningen. En minnesanordning 20 innefattar ett minne, exempelvis ett ROM. en adressingäng som har en bredd pä exempelvis 11 =bitar och är ansluten till en adressbuss 2 pä skyddsanordningen. En första datautgäng pä minnet 1 är ansluten via en första databuss 9 pä exempelvis 8 bitar till en första ingäng pä en valenhet 7. En andra datautgäng pä minnet är ansluten till en första ingäng pä en verifieringsenhet 21 via en andra databuss 13. En andra ingäng pä verifieringsenheten 21 är ansluten till ett antal linjer, exempelvis 461 689 4, på adressbussen 2. En andra ingång på valenheten 7 är ansluten till len ut- gång på en datakälla 8. Valenheten 7 innefattar även en styringång S som är ansluten till en utgång på verifieringsenheten 21. En linje 11 här en signal É (Chip Select) som presenteras för en ingång Eš på minnet 1 och även för en I tredje ingång på verifieringsenheten 21. Verifieringsenheten 21 innefattar en jämförarenhet 3, vars första, andra och tredje ingång är ansluten till den för- sta, andra resp tredje utgången på verifieringsenheten 21. Den första ingången på verifieringsenheten 21 är även ansluten till en första ingång på en logisk ELLER-anordning 4. Veri fi eringsenheten 21 innefattar även en logisk OCH-grind 5 vars utgång är ansluten till en klockingång på en vippa 6. Signalen FS' på veri- fieringsenhetens 21 tredje ingång inverteras via en inverterare 10 och är förd till en första ingång på den logiska OCH-grinden 5. En andra ingång på den lo- gi ska OCH-grinden 5 är ansluten till utgången på jämförarenheten 3 via en linje 12, och en tredje ingång på den logiska OCH-grinden 5 är ansluten till en ut- gång på den logi ska ELLER-anordningen 4. En utgång på vippan 6 är ansluten till utgången på verifieringsenheten 21.
I minnet är ett utrymsne 14 på exempelvis 4 bitar reserverat för att till varje instruktion tillägga tilläggsinfonnation som hänför sig till en nästkomm- ande instruktion som skall hämtas av en ansluten databehandlingsenhet 15 under progranmets exekvering.
I det föreliggande utförandet ti lläggs de fyra mest signifikanta bitarna av adresserna för den nästkonlnande instruktionen som skall hämtas av databe- handlingsenheten till var och en av en serie av instruktioner i detta utrynlne 14 som tilläggsinformation. Det är alternativt möjligt att använda mest signi- fikanta adressbitar hos den nästkomnande instruktionen som skall hämts av data- behandlingsenheten som tilläggsinfonnation för var och en av instruktionerna, men ett större lagringsutrynnne krävs då medan anordningens effektivitet för att skydda mot obehörig läsning endast ökas något, vilket konmer att förklaras ne- dan. Istället för mest signifikanta bitar kan alternativt minst signifikanta bitar eller olika bitkorlibinationer väljas från adressen hos den nästkonmande instruktionen som ti lläggsi nfonnationen. För de andra instruktionerna som inte tillhör nämnda 'serie innehåller tilläggsinfomationen ett bestämt värde, exem- pelvis har alla bitar hos ti lläggsinfonnationen värdet noll. Varje sådan annan instruktion kan då identifieras som nästa instruktion. Programordet kan således uppdelas i två grupper, nämligen en första grupp i vilken varje programord innehåller exklusiv tilläggsinfonnation och en andra grupp i vilken tilläggs- informationen är gernensam för alla programord hos den andra gruppen. Det är 461 689 absolut nödvändigt för tilläggsinformationen att stå i samband med nästa instruktion. Tilläggsinfonnationen kan även stå i samband med en ytterligare instruktion som hämtas av databehandlingsenheten. I detta fall kräver emeller- tid anordningen fler element, exempelvis en räknare, varigenom den blir dyrare och mer komplex.
När en första instruktion adresseras i minnet 1 av databehandlingsenheten 15 adresseras även tilläggsinformationen som är förbunden med den relevanta instruktionen. Under minnets 1 adressering är signalen få vid en låg nivå som frængår av Fi g. lb. När minnet 1 adresseras av databehandlhingsenheten 15_konlner den första instruktionen som hämtas liksom den därmed förbundna tilläggsinfor- mationen att finnas på den första datautgången resp den andra datautgången på minnet 1 (datasignalen DAT är hög, Fig. lb). Tilläggsinfomationen som är för- bunden med den relevanta första instruktionen överförs via den andra databussen 13 till jämförarenheten 3 i vilken den lagras, exempelvis i ett egenregister hos jämförarenheten. Eftersom egenregistret reagerar för den i positiv rikt- ning gående fl anken på signalen FS., äger lagring run när signalens C-š nivå änd- ras från låg till hög. När databehandlingsenheten därefter hämtar en andra in- struktion från minnet utförs ett jämföringsförfarande av jämförarenheten 3.
Detta jämföringsförfarande utförs under styrning av signal ens få i negativ riktning gående fl ank och i detta utförande jämförs de fyra mest signifikanta adressbitarna hos den andra instruktionens adress, såsom de är presenterade på jüförarenhetens 3 andra ingång med tilläggsinformationen som är lagrad i jäm- förarenhetens 3 egenregi ster.
Resultatet av jämföringsförfarandet är positivt när minnet 1 är adresserat i korrekt följd, såsom bestämt av databehandlingsenhetens 15 program, d v s när de fyra mest signifikanta bitarna hos nämnda andra instruktionsadress motsvarar de fyra mest signifikanta bitarna hos adressen på nämnda nästkonmande instruk- tion som redan finns i egenregistret som tilläggsinfomation.
Resultatet av jämföringsförfarandet är negativt om minnet 1 är adresserat i en felaktig följd, exempelvis när minnets innehåll kopieras och instruktio- nerna inte hämtas i den följd som är bestämd av databehandlingsenhetens pro- gran. Så är fallet eftersom adressen hos nämnda andra instruktion 'då avviker från adressen~för nännda nästkomnande instruktion.
Resultatet av jäniföringsförfarandet uppträder i inverterad form på ut- gången få på jämförarenheten 3 och presenteras via linjen 12 för nämnda andra ingång på den logiska OCH-grinden 5. Den första ingången på den logiska OCH- -grinden 5 mottar signal en FS i synkronism med hämtandet av instruktioner från minnet. 461 689 Den logiska ELLER-anordningen 4 har en speciell funktion som kommer att förklaras i detalj nedan. Såsom redan angivits innefattar inte alla instruktio- ner exklusiv tilläggsinformation; i detta utförande innefattar minnet 1 instruktioner för vilka alla tilläggsinformationsbitar har värdet noll (andra grupp). När tilläggsinfonmationen hos en instruktion består exklusivt av nollor kommer verifieringsförfarandet att vara annorlunda. Dessa nollor kommer emel- lertid alltid att föras till jämförarenheten 3, när en instruktion innehåller nollor, när tilläggsinformationen hämtas av behandlingsenheten. Som ett resul- tat kan Jämföringsförfarandet bli negativt när nollor finns. För att under- trycka ett sådant negativt resultat används en logisk ELLER-anordning 4. Denna logiska ELLER-anordning utför en logisk ELLER-operation på tilläggsinformatio- nens bitar. Detta innebär att resultatet på en utgång hos den logiska ELLER- -anordningen 4 antar det logiska värdet 'l“ när åtminstone en av bitarna hos tilläggsinformationen avviker från noll, medan det logiska värdet ”D” finns på utgången av den logiska ELLER-anordningen när alla bitar hos tilläggsinforma- tionen har värdet noll. Eftersom resultatet på den logiska ELLER-anordningens 4 utgång endast är av betydelse för nästa instruktions Jämföringsförfarande i jämförarenheten 3, skall det endast utmatas när den nästkmmnande instruktionen är hämtad. Resultatet av den logiska ELLER-operationen lagras därför i den logiska ELLER-anordningen 4, exempelvis genom att ställa en vippa.
Dessa fall kan urskiljas: 1. Resultatet av Jämföringsförfarandet är positivt. 2. Resultatet av jämföringsförfarandet är negativt och tilläggsinfonmationen innehåller inte endast nollor. 3. Resultatet av jämföringsförfarandet är irrelevant p.g.a. det faktu att tilläggsinformationen innehöll endast nollor.
Dessa tre fall kommer att beskrivas för sig nedan. 1. Resultatet av jämföringsförfarandet är positivt. I detta fall förs värdet ED = "D" fört till den andra ingången på den logiska OCH-grinden 5 via linjen 12; varvid den logiska ELLER-anordningens 4 utgång har värdet ELLER = '1' som förs till en tredje ingång på den logiska OCH-grinden 5. När en in- struktion hämtas från minnet 1, förs värdet E; = '1' till en första ingång på den logiska OCH-grinden 5.
Eftersom EÖ = "O". ELLER = "I" och ÉÉ = '1' lämnar en utgång på den logiska OCH-grinden 5 ett logiskt värde ”O” som förs till klockingången på vippan 6.
Denna logiska "D" omkopplar inte vippan 6, som exempelvis är en D-typ vippa 461 689 (varvid vippan är så inställd att den återställs efter inkopplingen av mat- ningskällan, d v s Q = 0), varigenom ett logiskt värde "D" även är utsignal på en utgång Q på vippan 6 för att presenteras för styringången S på valenheten 7.
På en utgång F utnatar valenheten 7 en signal med värdet F = Af + 8.5. Detta innebär att när ingången S mottar det logiska värdet "O" (S = "0", så är-'š = '1"), utmatar valenheten 7 den instruktion som är hämtad från minnet 1 (F = AJ). Detta sker på grund av att denna instruktion förs till ingången på valen- heten 7 via den första databussen 9. När resultatet av jämföringsförfarandet följaktligen är positivt, förs den korrekta instruktionen till en dataingång på databehandlingsenheten 15 eller en annan användare. 2. Resultatet av jânföringsförfarandet är negativt och tilläggsinfonna- tionen innehåller inte endast nollor. Detta innebär att E-Q = "1", ELLER = "1" och ä i "1" förs till ingångarna på den logiska OCH-grinden 5. Följaktligen är ett logiskt värde "1" utsignalen på den logiska OCH-grindens 5 utgång. Detta logiska värde "I" får vippan 6 att onukoppl as, så att värdet Q = ”l” blir utsig- nal på vi ppans 6 utgång Q som skall presenteras för val enhetens 7 ingång S. På utgången F lämnar valenheten signalen F = 8.1. Detta innebär att information från datakällan 8 presenteras för användaren istället för den från minnet 1 begärda instruktionen. En obehörig läsare komer således att mottaga störinfor- mation från datakällan 8. 3. Resultatet av jäxnföringsförfarandet är irrelevant på grund av det faktun att tilläggsinformationen innehåller endast nollor. Detta innebär att ÉÖ = "1", ELLER = "D" och CS = "1' presenteras för den logiska DCH-grindens 5 ingångar, så att sanna förhållande uppträder som i det första fallet. Härigenom uppnås att det inte är nödvändigt att tillägga exklusiv tilläggsinfomation till varje instruktion, så att det av tilläggsinformationen belagda utrynnet förblir begränsat.
Ett flertal utföranden av datakällan 8 är möjliga, exempelvis ett regis- ter, en sl unpgenerator, ett minne (skiljt från minnet 1) eller helt enkelt en anslutning till jord. Datakällan 8 förser den andra ingången på valenheten 7 med stördata som inte är lämpade för programmets exekvering. Ersättandet av instruktionerna hos minnet 1 med stördata från datakällan 8 säkerställer att det 'kopierade" programet är oanvändbart. Datakällan 8 lånar företrädesvis inte sanna störord till ingången B på valenheten. Ett sådant ord skulle snabbt kännas igen av en obehörig användare. Genom att presentera olika störord på valenhetens 7 utgång F när ingången B valts komer det att vara svårt att fast- sålla om informationen som är tillgänglig härrör från minnet eller från 461 689 datakällan 8.
Funktionen hos anordningen enligt Fi g. la komer att illustreras på grund- val av det nedan angivna exemplet. Tabellen I nedan ger ett exempel på -en del av minnets 1 innehåll.
IfiB-.F-.l-kï ' i _ '^“'?S§ šššífmatran (ru) i ågïšaïätídn oooooo 7' ooo eat a, b, a, a, a =_o 000001 000 a = a-c-l i ooooio oo1 gata ooiooo oooo11 ' ooo _ - - raaa p oooioo ooo display p 090101 000 enter b, note b oooi io ooo gata oooooi 000111 000 . c = c+l ooiooo oo1 gata ooioio if > 1 __ ooiooi ooo gata ooooii ooioio ooo ' \ a1ap1ay a ooioii ooo b = b-i- oo11_11 o1o gata oioooi if b<5 oioooo oo1 gata ooioio 010001 000 c = a-r-b 010101 000 e = a+c Antag nu att programmet kopieras genom sekventiell utlösning av de successiva instruktionerna (exempelvis genom att räkna upp en räknare). Inga problem komer att uppstå under utläsningen av den första och andra instruk- tionen (adresser 000000 och 000001), eftersom den obehöriga kopieraren följer den följd som är bestämd av dataprocessorn. När den tredje instruktionen (adress 000010) adresseras, hämtas den extra informationen 001 (lagrad i del 14 hos minnet I). bildad av de mest signifikanta adressbitarna och lagras i 1o 461 689 jmförarenhetens 3 register. Eftersom den extra informationen innefattar en bit med värdet 1 lagras värdet vid utgången på ELLER-grinden 4. , När den fjärde instruktionen (adress 000011) hämtas jämför jämförarenheten de mest signifikanta bitarna hos den presenterade adressen med minnet, d v s 000 med extrainfonnationen, d v s 001 lagrat i detta register. Resultatet av denna jämförel se är negativt (0). Detta jänföringsresul tat inverteras (0 (in- verterad) = 1) vid utgången på jhförarenheten 3. På GCH-grindens 5 ingång presenteras nu värdena 1, 1, 1 (jämförarenhet 3, ELLER-grind 4, (cs (två gånger inverterad) ). Utsignalen på OCH-grinden 5 har nu ett värde 1 som komer att orrkoppla vippan 6, vilket orsakar valet av ingången B på väljaren 7, d v s information från datakällan 8 och inte informationen 'read p" från minnet 1.
Den obehörige kopieraren komer inte att upptäcka detta, eftersom information utmatas. När den femte instruktionen (adress 000100) hämtas, komner jäsnförel sen mellan extrainfonnationen (000) som tillagts till den fjärde instruktionen och de mest signifikanta bitarna hos den presenterade adressen (000) att få ett positivt resultat, d v s jämförarenhetens inverterade utsignal = 0, ELLER- -grindens 4 utsignal = 0 (eller operation på 000), och cs (två gånger inverte- rad = 1). OCH-grindens 5 utsignal komer att ha värdet 0 som återställer vi ppan 6 så att ingången A på väljaren komer att väljas igen. En felaktig instruktion har således införts mellan två korrekta programinstruktioner.
Om hämtningsoperationen skulle ha exekverats av dataprocessorn under nor- mal programexekvering skulle den tredje instruktionen (goto 001000) ha exekve- rats. 1 detta fall skulle den adress som presenterats på minnets adressingång av nästa instruktion efter denna 'goto"-instruktion ha varit 001000, d v s med mest signifikanta bitar 001 som i detta fall är lika med den extra infor-matio- nen (001) vilken är tillagd till den tredje instruktionen, vilket således re- sul terar i ett positivt resultat hos jämförarenheten 3 (utsignal 0). Utsi gnalen på ELLER-grinden 4 för en extrainformation 001 är lika med 1. Den signal som ~ således presenteras på OCH-grindens 5 ingång är således 0, 1, 1, vilket ger en utsignal lika med 0, varigenom väljarens 7 ingång A väljs. Betrakta nu den in- struktion som är lagrad vid adressen 001000 (goto 001010 if a greater than 1) 'och antag att programmet kopieras. Genom att hämta denna instruktion lagras den extra informationen 001 i jänförarenhetens 3 register. Genom att hämta den in- struktion som är lagrad vid nästa adress (001001), komer jämförelsen att ha ett positivt resultat (001 extrainformation - 001 mest signifikanta adressbi- tar), även i det fall programet kopieras. Detta är nödvändigt eftersom den normala programexekveringen annars skulle vara störd av dataprocessorn om inte 'goto'-villkoret är uppfyllt. å» O) 11 461 689 Betrakta nu den instruktion som är lagrad på adressen 001001 (goto 000011) och antag igen att programmet kopieras. När den instruktion som är lag- rad på adressen 001010 läses blir resultatet av Jämförelsen negativt (0(inver- terad) = 1), eftersom 001 inte är lika med 000. På ELLER-grindens 4 utgång är en signal med värdet 0 presenterad (extrainformation är 000). Signalerna som är presenterade på OCH-grindens 5 ingång är 1, 0, 1, vilket ger en utsignal som har värdet 0 och lämnar således korrekta data på väljarens 7 utgång. Detta pro- blem ir löst genom anordningen enligt Fig. 2, där en Jämförelse görs på hela adressen och inte endast på de mest signifikanta bitarna. I det fall att hopp- instruktioner är lagrade på adresserna som har mest signifikanta bitar skilda från 000 störs kopieringsoperationen effektivt av en anordning enligt Fig. la.
Detta är illustrerat för de instruktioner som är lagrade på adresserna 001111 och 010000. ~ Fig. 2 visar ett ytterligare utförande av anordningen enligt uppfinningen.
Element som motsvarar element i Fig. la är betecknade med samma hänvisningsbe- teckningar. Eftersom detta utförande helt liknar utförandet enligt Fig. la kommer endast skillnaderna att beskrivas nedan. Verifieringsenhetens första ingång 21 är ansluten till en ingång på ett första register 16. En utgång på det första registret 16 är ansluten till en ingång på en minnestabell 17, vars ena utgång är ansluten till Jämförarenhetens 3 första ingång. Eftersom detta utförande innefattar ett första register och en minnestabell, innefattar Jäm- förarenheten 3' inte egenregistret såsom vid utförandet visat i Fig. la. Alla adressbitar på den adressignal som presenteras för minnets 1 adressingång pre- senteras för den andra ingången på jämförarenheten 3'.
När en första instruktion hämtas från minnet 1 av behandlingsenheten 15, överförs tilläggsinformationen som är förbunden med den första instruktionen (på signalens Öš i positiv riktning gående flank) till det första registret 16 i vilket den lagras. Tilläggsinfonmationen i detta utförande innefattar en adress för ett minnesläge i minnestabellen 17.
När en andra instruktion hämtas från minnet 1 adresseras minnestabellen 17 under styrning av signalens Eš flank i negativ riktning på linjen 11 av till- äggsinfonnation som är förbunden med den första instruktionen och som är lagrad i det första registret 16. Det adresserade minnesläget i minnestabellen 17 har i sig lagrad adressen för nästa instruktion som följer nämnda instruktion i den följd som är bestämd av databehandlingsenheten för dess programexekvering.
Adressen som är lagrad i det adresserade minnesläget i minnestabellen 17 12 461 689 presenteras sedan för jämförarenheten 3' för att jämföras med adressen hos den andra instruktionen. Övrig funktion hos minnesanordningen visad i Fig. 2 är fullständigt analog med den för anordningen med hänvisning till Fig. la beskrivna.
Fördel en med användning av ett första register och en minnestabell är att jämföringsförfarandet nu kan utföras på hela adressen istället för på delar av adressen utan att väsentligt utrymrne i minnet 1 krävs för lagring av adressin- formation. Detta därav att när exempelvis fyra bitar är reserverade i minnet 1 per instruktionsord för lagring av tilläggsinformation, en effektiv jämförelse- funktion (d v s en jämförel sefunktion är tilläggsinformationen inte har vär- det 0 för var och en av sina bitar) kan utföras på 15 fullständiga adresser l24-1=16-1=15, utan att ta 0000 i beräkning). Om den fullständiga adressen skulle vara skriven i minnet som tilläggsinformation skulle exempelvis 11 bitar krävas för att uppnå sanna resultat, medan det räcker med fyra bitar för före- liggande utförande. Ett jömföringsförfarande utfört på hela adressen är dess- utom mer tillförlitligt än ett jämförel seförfarande utfört på endast delar av adressen, eftersom i det senare fallet alla bitar undersöks.
Fi g. 3 visar ett utförande av en anordning enligt uppfinningen, i vilken verifieringsoperationen utförs på instruktionsordet. Element som motsvarar el e- ment i Fi g. la är igen betecknade med sanlna hänvisningsbeteckningar och endast skillnader konrner att beskrivas nedan. llinnets 1 första datautgäng är ansluten dels till den första ingången på val enheten 7 via den första databussen 9 och dels till den andra ingången pâ verifieringsenheten 21.
I det föreliggande utförandet innefattar tillöggsinformationen nägra fâ bitar, exenpelvis de mest signifikanta bitarna, av ett efterföljande instruk- tionsord som skall hämtas av den behandlande enheten. Under ett jämföringsför- farande jämförs denna tilläggsinformation i jömförarenheten 3 med ett hämtat andra instruktionsord. Åter kan tre fall urskiljas vad gäller resultatet av jämföringsförfarandet såsom beskrivet med hänvisning till Fig. la.
Uppenbarligen kan ett utförande såsom beskrivet med hänvisning till Fig. 2, i vilket verifieringsenheten även innefattar ett första register och en minnestabell, användas för en minnesanordning enligt uppfinningen i vilken verifieringsförfarandet utförs på instruktionsordet.
Delar med sl unpvis åtkomst hos minnet exempelvis indextabeller eller givna dataord kan skyddas genom att ligga p! exempelvis fiíljande val iditetskriteri um: Startadress indextabell f- nästa adress -š sista adress i ndextabellßkyddet av 'I 13 461 689 dessa delar kan emellertid utel ämnas om så önskas. Detta kan göras eftersom en obehörig läsare inte känner till vilken del av minnet som är skyddat. Detta beror bl a på det faktum att korrekt information intekan skiljas från infor- mation från datakällan 8.
Hela mi nnesanordningen 20 kan utföras i integrerad form. Det är att före- dra ett integrerat utförande framför ett utförande innefattande diskreta kompo- nenter, eftersom i det senare utförandet en skicklig obehörig läsare med fram- gång skulle kunna låsa valenheten 7 i ett tillstånd F = 14.1.
En anordning för att skydda mot obehörig läsning av-programord lagrade i ett minne av beskriven typ används särskilt i databehandlingssystem som säljs i jämförelsevis stora antal. Exempel på sådana system är videospel.

Claims (13)

4e1 689 'W Patentkrav.
1. . 1. Programminne (1) med adressingångsorgan (2), datautgångsorgan och ett skyddsarrangemang mot obehöriga läsoperationer, k ä-n n'e t e c k- n a t av att nämnda skyddsarrangemang innefattar: a. utrynne för tilläggsinformation delaktigt åtminstone ett valt flertal minnesord (14) för att i varje sådant minnesord lagra tilläggsinformation härrörande från ett parametervärde hos ett respektive särskilt annat minnes- ord; b. en verifieringsenhet (21) matad av en utgång (13) på nämnda tilläggslag- ringsutrymme och med lagringsmedel för tillfällig lagring av nända tilläggs- information förbunden med ett programord som då adresseras, verifieringsmedel (3) matade av nämnda lagringsmedel för att vid adressering av ett ytterligare minnesord i en adresseringssekvens mottaga parametervärdet för nämnda ytter- ligare ord för att verifiera om detta ytterligare minnesord svarar mot nämnda särskilda annat minnesord; c. datakälla för alstring av störningsinformation (8); och d. en valenhet (7) matad av en datautgång (9) på nämnda minne och av nämnda datakälla för att under styrning av ett positivt verifieringsresultat från nämnda verifieringsenhet överföra ett verkligen adresserat programord till en användarutgång, men under styrning av ett negativt verifieringsresultat överföra nämnda störningsinformation i stället för ett verkligen adresserat programord.
2. Programminne enligt patentkravet 1, k ä n n e t e c k n a t av att nämnda parametervärde representerar åtminstone en partiell adress hos nämnda särskilda andra minnesord och nämnda verifieringsmedel matas av nämnda adressingångsorgan (2).
3. Programminne enligt patentkravet 1, k ä n n e t e c k n a t av att mellan nämnda lagringsmedel (16) och nämnda verifieringsmedel (3') är en minnesadresstabell (17) anordnad, varvid nämnda parametervärde represen- terar en adress i nämnda minnesadresstabell och nämnda verifieringsmedel matas av nämnda adressingångsorgan (2).
4. Programminne enligt patentkravet 1, k ä n n e t e c k n a t av att nämnda parametervärde representerar åtminstone ett partiellt innehåll av nämnda särskilda andra minnesord och nämnda verifieringsmedel är matat av nämnda datautgång (9). I.)- 4 I" 461 689
5. Programminne enligt patentkravet 1, k ä n n e t e c k n a t av att en minnesadresstabell (17) är anordnad mellan nämnda lagringsmedel (16) och nämnda verifieringsmedel, varvid nämnda parametervärde representerar en adress i nämnda minnesadresstabell och verifieringsmedlet matas av nämnda datautgång.
6. Programminne enligt något av patentkraven 1-5, k ä n n e t e c k- n a t av att nämnda verifieringsmedel utgörs av en komparator.
7. Programminne enligt något av patentkraven 1-6, k ä n n e t e c k- n a t av att det vidare innefattar en identifieringsenhet (4) för att _ identifiera ett särskilt värde på nämnda tilläggsinformation för att sedan vid adressering av nämnda ytterligare nämnda minnesord söka efterlikna ett positivt verifieringsresultat.
8. Programminne enligt något av patentkraven 1-7, k ä n n e t e c k- n a t av att nämnda datakälla utgörs av enslumnmlsgenerator (8).
9. Programminne enligt något av patentkraven 1-7, k ä n n e t e c k- n a t av att datakällan utgöres av ett register.
10. Programminne enligt något av patentkraven 1-9, k ä n n e t e c k- n a t av att det vidare innefattar en dataprocessor (15) med en adress- utgång ansluten till nämnda adressingångsorgan (2) och en dataingång ma- tad av nämnda valenhet (7).
11. Programminne enligt något av patentkraven 1-10, k ä n n e t e c k- n a t av att det utgöres av ett icke flyktigt minne.
12. Programminne enligt något av patentkraven 1-11, k ä n n e t e c k- n a t av att nämnda skyddsarrangemang är samintegrerat med programminnet i form av ett enda integrerad kretsbricka.
13. Användning av ett programminne som är skyddat mot obehörig läsning enligt något av föregående patentkrav tillsammans med ett databehandlings- system som utgör ett videospel.
SE8302511A 1982-05-06 1983-05-03 Programminne med adressingaangsorgan, datautgaangsorgan och ett skyddsarrangemang mot obehoeriga laasoperationer SE461689B (sv)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
NL8201847A NL8201847A (nl) 1982-05-06 1982-05-06 Inrichting voor het beschermen tegen onbevoegd uitlezen van in een geheugen te memoriseren programmawoorden.

Publications (3)

Publication Number Publication Date
SE8302511D0 SE8302511D0 (sv) 1983-05-03
SE8302511L SE8302511L (sv) 1983-11-07
SE461689B true SE461689B (sv) 1990-03-12

Family

ID=19839688

Family Applications (1)

Application Number Title Priority Date Filing Date
SE8302511A SE461689B (sv) 1982-05-06 1983-05-03 Programminne med adressingaangsorgan, datautgaangsorgan och ett skyddsarrangemang mot obehoeriga laasoperationer

Country Status (10)

Country Link
US (1) US4584665A (sv)
JP (1) JPS58208849A (sv)
AT (1) AT389772B (sv)
CA (1) CA1201813A (sv)
DE (1) DE3315992A1 (sv)
FR (1) FR2526560B1 (sv)
GB (1) GB2119978B (sv)
IT (1) IT1170134B (sv)
NL (1) NL8201847A (sv)
SE (1) SE461689B (sv)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3415209A1 (de) * 1983-04-29 1984-10-31 N.V. Philips' Gloeilampenfabrieken, Eindhoven Speichereinheit mit einem speicher und einer schutzeinheit
JPS6068441A (ja) * 1983-09-22 1985-04-19 Fujitsu Ltd ワンチツプ・マイクロ・コンピユ−タ
US4646234A (en) * 1984-02-29 1987-02-24 Brigham Young University Anti-piracy system using separate storage and alternate execution of selected proprietary and public portions of computer programs
GB2163577B (en) * 1984-08-23 1988-01-13 Nat Res Dev Software protection device
DE3526130A1 (de) * 1985-07-22 1987-01-29 Lang Klaus Dipl Ing Digitaler programmschutzbaustein
FR2599525B1 (fr) * 1986-06-02 1988-07-29 Dassault Electronique Unite a clavier de securite, en particulier pour la composition d'un code confidentiel
JPH01129328A (ja) * 1987-11-13 1989-05-22 Toshiba Corp コピー防止装置
US4975878A (en) * 1988-01-28 1990-12-04 National Semiconductor Programmable memory data protection scheme
JPH01116847U (sv) * 1988-01-30 1989-08-07
US5014191A (en) * 1988-05-02 1991-05-07 Padgaonkar Ajay J Security for digital signal processor program memory
JPH01296361A (ja) * 1988-05-25 1989-11-29 Mitsubishi Electric Corp メモリカード
JP2820938B2 (ja) * 1988-07-21 1998-11-05 任天堂株式会社 外部メモリとそれを用いる情報処理装置
JPH02202642A (ja) * 1989-02-01 1990-08-10 Toshiba Corp プログラム動作監視装置
US5099516A (en) * 1989-06-12 1992-03-24 Dell Corporate Services Corporation Digital computer code word identification system
GB8919301D0 (en) * 1989-08-24 1989-10-11 Jonas Wayne A "electronic memory"
US5263158A (en) * 1990-02-15 1993-11-16 International Business Machines Corporation Method and system for variable authority level user access control in a distributed data processing system having multiple resource manager
JPH03276337A (ja) * 1990-03-27 1991-12-06 Toshiba Corp マイクロコントローラ
DE4103173C5 (de) * 1991-02-02 2017-07-20 SIA Soft Activation Vorrichtung zum Schutz gegen unautorisierte Benutzung von Software
DE4115152C2 (de) * 1991-05-08 2003-04-24 Gao Ges Automation Org Kartenförmiger Datenträger mit einer datenschützenden Mikroprozessorschaltung
US5860099A (en) * 1993-05-12 1999-01-12 Usar Systems, Inc. Stored program system with protected memory and secure signature extraction
US5463748A (en) * 1993-06-30 1995-10-31 Intel Corporation Instruction buffer for aligning instruction sets using boundary detection
IL110181A (en) * 1994-06-30 1998-02-08 Softchip Israel Ltd Install microprocessor and peripherals
US5682474A (en) * 1996-04-09 1997-10-28 United Microelectronics Corp. Method of dynamic protection and its apparatus
WO1998022879A1 (en) * 1996-11-15 1998-05-28 Philips Electronics N.V. A protection method against eeprom-directed intrusion into a mobile communication device that has a processor, and a device having such protection mechanism
EP1118924B1 (de) 2000-01-19 2016-07-20 Infineon Technologies AG Verfahren zum betrieb einer mikroprozessoranordnung und mikroprozessoranordnung
FR2815738B1 (fr) * 2000-10-25 2003-03-21 Dolphin Integration Sa Controle d'acces a une memoire integree avec un microprocesseur
JP3977592B2 (ja) 2000-12-28 2007-09-19 株式会社東芝 データ処理装置
US8181255B2 (en) 2004-06-22 2012-05-15 Nds Limited Digital rights management system
WO2005125072A2 (en) * 2004-06-22 2005-12-29 Nds Limited Digital rights management system
US8161353B2 (en) * 2007-12-06 2012-04-17 Fusion-Io, Inc. Apparatus, system, and method for validating that a correct data segment is read from a data storage device
US8151082B2 (en) * 2007-12-06 2012-04-03 Fusion-Io, Inc. Apparatus, system, and method for converting a storage request into an append data storage command
WO2008070191A2 (en) 2006-12-06 2008-06-12 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for a reconfigurable baseboard management controller

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1414126A (en) * 1971-11-22 1975-11-19 Key Tronic Ltd Secutity for computer systems
US3996449A (en) * 1975-08-25 1976-12-07 International Business Machines Corporation Operating system authenticator
GB1561482A (en) * 1976-11-18 1980-02-20 Ibm Protection of data processing system against unauthorised programmes
FR2392447A1 (fr) * 1977-05-26 1978-12-22 Cii Honeywell Bull Systeme de traitement d'informations protegeant le secret d'informations confidentielles
FR2471004B1 (fr) * 1979-11-30 1985-09-13 Dassault Electronique Installation et dispositif de controle de l'acces a une memoire electronique
US4446519A (en) * 1981-05-26 1984-05-01 Corban International, Ltd. Method and apparatus for providing security for computer software

Also Published As

Publication number Publication date
SE8302511D0 (sv) 1983-05-03
GB2119978B (en) 1986-01-22
FR2526560A1 (fr) 1983-11-10
GB8311764D0 (en) 1983-06-02
CA1201813A (en) 1986-03-11
JPS58208849A (ja) 1983-12-05
IT1170134B (it) 1987-06-03
DE3315992A1 (de) 1983-11-10
NL8201847A (nl) 1983-12-01
FR2526560B1 (fr) 1987-07-31
AT389772B (de) 1990-01-25
IT8320918A0 (it) 1983-05-03
ATA165583A (de) 1989-06-15
US4584665A (en) 1986-04-22
GB2119978A (en) 1983-11-23
JPH0317133B2 (sv) 1991-03-07
SE8302511L (sv) 1983-11-07

Similar Documents

Publication Publication Date Title
SE461689B (sv) Programminne med adressingaangsorgan, datautgaangsorgan och ett skyddsarrangemang mot obehoeriga laasoperationer
US5056009A (en) IC memory card incorporating software copy protection
GB2232281A (en) IC card memory protection
GB1437050A (en) Automatic switching of storage project keys
EP0048825B1 (en) Microprocessor controlled machine
US20070174622A1 (en) Protection of data of a memory associated with a microprocessor
EP0112622A2 (en) Error correction in buffer storage units
US6240493B1 (en) Method and apparatus for performing access censorship in a data processing system
JPH0877075A (ja) 情報処理装置
JPS5926059B2 (ja) 制御回路
GB1262359A (en) A computer system
US5237531A (en) Read-only memory having a security circuit preventing unauthorized memory retrieval
SE464052B (sv) Minneshanteringsenhet foer datorer
JPH06138992A (ja) コンピュータゲーム・システム用インタフエイス装置
US5428767A (en) Data retention circuit
EP0256134B1 (en) Central processing unit
JPH0244431A (ja) 保護命令取出し装置
JPH0827725B2 (ja) レジスタ回路
SE462188B (sv) Minnesenhet innefattande ett minne och en skyddsenhet
JPS61500992A (ja) コンピュ−タシステムにおける、またはそれに関する改良
GB2129586A (en) Improvements in or relating to memory systems
EP0285309A2 (en) Memory protection apparatus for use in an electronic calculator
JPS6074059A (ja) 記憶装置アクセス制御方式
CA1183608A (en) Key storage error processing system
JPS6220583B2 (sv)

Legal Events

Date Code Title Description
NUG Patent has lapsed

Ref document number: 8302511-4

Effective date: 19911209

Format of ref document f/p: F