Sie sind auf Seite 1von 52

As of February 2007, Game Maker is at version 7. It still incorporates the use of Direct D, allo!

in" the usa"e of limite# D "raphics, an# a##s limite# support for simple D mo#els. $onverters make it possible to use more popular D formats such as . #s, an# .ob% for use in a D pro%ect. It also supports the ability to create certain particle effects like rain, sno!, an# clou#s easily. Game Maker is available in an unre"istere# version, free of char"e, an# a re"istere# version. &he re"istere# version, !hich costs '(), e*ten#s the features available in the pro"ram, such as the ability to incorporate D++s, take a#vanta"e of Direct D, use particles, an# utili,e a#vance# #ra!in" functions. &he free version #isplays a small Game Maker a#vertisement #urin" the e*ecution of the "ame, !hile the re"istere# version removes the a#vertisement, "ivin" a more professional feel to the finishe# "ame. Game Maker-s en"ine has improve# over the years an# has become much faster . especially in the "raphics area . allo!in" the use of alpha an# blen#in" functions for "amessprites.

/a"e 0 (

Game Maker itself is not limite# to the functions an# abilities inclu#e# in GM+. Game Maker can loa# an# utili,e D++s allo!in" it to perform tasks it other!ise coul# not. A number of D++s have been create# for the specific purpose of e*ten#in" Game Maker, such as provi#in" socket support an# allo!in" My12+ connectivity. In version 7 of the soft!are, a ne! e*tension mechanism !ill allo! for more e*tensions to Game Maker throu"h the use of #lls, "ml scripts an# action libraries. Game Maker can be use# free of char"e an# allo!s you to free #istribute the "ames you create, even sell them if you like. &hey #o ho!ever stron"ly encoura"e you to re"ister your copy to support the further #evelopment of Game Maker. &his also unlocks a number of a#vance# features an# removes the lo"o !hen runnin" "ames. 3n 4anuary 25, 2007, Mark 3vermars announce# that he !oul# be !orkin" !ith a small company in the 67 name# 8o8o Games. &he motive behin# the cooperation is that it !oul# brin" faster an# better #evelopment to Game Maker, as !ell as provi#e a better !ebsite for its users. &he !ebsite is planne# to be a community in !hich users can uploa# an# share their create# "ames an# revie! an# #iscuss submitte# "ames on the !ebsite. It !ill also provi#e a much e*ten#e# help system an# support for the sharin" of resources. 8oyo Games is recreatin" the GM$ 9Game Maker $ommunity: an# has publishe# Game Maker 7. [12] [13] Creating Games First of all, the "ames take place in one or more rooms. ;ach room can be use# to represent a level of your "ame. In these rooms you place ob%ects you have create# 9or

/a"e 0 2

multiple instances of the same ob%ect:. <ooms first of all have a back"roun#. &his can be a simple colour or an ima"e. &heses ima"es can be loa#e# from files or create# in Game Maker. An ob%ect is a piece of co#e in your "ame !orl# an# may be pro"ramme# to #o a variety of thin"s, ran"in" from simply occupyin" space in or#er to prevent the player from a#vancin" alon" a path to bein" as comple* as a pro"ramme# enemy !ith hun#re#s of lines of co#e to "ive it a small amount of artificial intelli"ence. 3b%ects are commonly represente# !ith sprites, thou"h they may be ren#ere# invisibly by not selectin" a sprite for them.

1prites are ima"es !hich can be importe# from most ima"e file types an# are "raphical representations of ob%ects !ithin the "ame. A sprite can be static, animate# or steppe# !hen use# in Game Maker. Game Maker allo!s you to loa# sprites from files or create your o!n sprites !ithin the application. $ertain thin"s !ill happen to ob%ects !ithin your "ame. &hese are kno!n as events. Game Maker allo!s you to instruct the ob%ect on !hat actions to take shoul# these events occur. ;vents can inclu#e an ob%ect bein" create#, a key bein" presse# by the user, or a collision !ith another ob%ect. For e*ample, !hen the user presses a #irectional key, the user ob%ect !ill move in the appropriate #irection, or !hen it colli#es !ith an enemy ob%ect, it is #estroye#. If you !ant the ob%ect to move in a specific pattern, you can #efine the path that the ob%ect !ill take by #ra!in" it out usin" the path function. &he first point is the start point an# the re# point is the current point that you are on. 8ou can chan"e the spee# of the path from point to point an# Game Maker provi#es you !ith options to make the path open or close#, an# the point connection to be strai"ht or smooth. /a"e 0

=ith all these elements #efine#, your "ame shoul# be rea#y to run. &he first room you #efine# !ill appear on screen an# the ob%ects you place# in it !ill act accor#in" to the actions you assi"ne# to them. [12] [21] [22]

Chapter 3 Design and Implementation

3.1 Introduction
In or#er to hi#e information, !e nee# to #evelop techni>ues that coul# be use# !ithin Game Maker, so that information coul# be covertly place# !ithin the "ame an# so that this information coul# be retrieve# by the inten#e# recipient.

3.2 Hiding Information Design


/a"e 0 ?

3.2.1 Sprites =e #eci#e# to be"in by hi#in" information usin" sprites. &his involve# allocatin" a piece of information to an in#ivi#ual sprite, so that it coul# represent this information !hen the receiver !as #eco#in" the messa"e. For e*ample !e !ill take the first sprite that !e have, calle# 1prite(, an# let it represent the binary #i"it 0. +ike!ise for the secon# sprite, 1prite2, !hich !e !ill allocate the binary #i"it (. @o! to be"in the hi#in" process, !e !ill place the sprites in the or#er that !e !ant so that they make up the byte !e are tryin" to represent. For e*ample, if !e !ere tryin" to create the letter AAB 9!hose binary number is 0(00000(: usin" these sprites, !e !oul# place the sprites !e are usin" in the follo!in" or#erC

1prite(, 1prite2, 1prite(, 1prite(, 1prite(, 1prite(, 1prite(, 1prite2

=ith the correct key in han#, the receiver shoul# no! be able to #eco#e this piece of information !ithout anyone else kno!in" there !as a piece of hi##en information bein" represente#. As !e a creatin" a ma,e "ame, !e !ill place our sprites from left to ri"ht to make it easier for the receiver to rea# an# #eco#e.

@o! that !e can let a sprite represent a sin"le binary #i"it, usin" the same metho# !e !ill no! try to let a sprite represent t!o binary #i"its. For this to !ork ho!ever, !e !ill nee# four sprites instea# of t!o. &his is because of the fact that there are four #ifferent combinations that t!o binary #i"its may be place# inC 00, 0(, (0, (( 1o no! !e !ill allocate sprites to the pairs of #i"its as follo!sC 1prite( DE 00 1prite2 DE 0( 1prite DE (0 1prite? DE (( @o! tryin" to represent the binary number of the letter AAB !e nee# only four sprites in the or#erC 1prite2, 1prite(, 1prite(, 1prite2 &he ne*t step !e !ill make is to let each sprite represent three binary #i"its. &his ho!ever leaves us !ith a possible ei"ht combinations of the three binary #i"its as follo!sC 000, 00(, 0(0, 0((, (00, (0(, ((0, (((

/a"e 0 )

As a result, !e !ill no! nee# ei"ht #ifferent sprites to allocate these combinations toC 1prite( DE 000 1prite2 DE 00( 1prite DE 0(0 1prite? DE 0(( 1prite) DE (00 1prite5 DE (0( 1prite7 DE ((0 1priteF DE ((( Go!ever, if as before, !e try to represent the binary representation of the letter AAB, !e run into a problem. &o represent the letter AAB in binary, as !e have seen before, !e nee# a combination of sprites that a## up to eight binary #i"its. Go!ever, if !e are only, as in this case, usin" sprites that are representin" combinations of three sprites, !e can only "et a possible si* or nine #i"it combination. &herefore, as it stan#s no!, three #i"it representation can not !ork on its o!n, ho!ever it can be use# as a combination of one binary #i"it an# t!o binary #i"it allocation as !e !ill see further on in this report. @e*t !e !ill try lettin" each sprite represent four binary #i"its. Hecause of the fact that !ith four binary #i"its it is possible to have si*teen possible combinations, !e !ill nee# si*teen sprites to allocate to. Hecause this seems like a lot of sprites, an# #ue to the fact that this may arouse suspicion amon"st users for !hich the messa"e is not inten#e#, !e !ill use #ifferent colours of the same sprite. @o! !e can allocate each combination to each sprite !ithout fear of as much suspicion as !e !oul# have if !e use# (5 #ifferent spritesC 1prite( DE 0000 1prite2 DE 000( 1prite DE 00(0 1priteI DE (000 1prite(0 DE (00( 1prite(( DE (0(0 1prite(2 DE (0(( 1prite( DE ((00 1prite(? DE ((0( 1prite() DE (((0 1prite(5 DE ((((

1prite? DE 00(( 1prite) DE 0(00 1prite5 DE 0(0( 1prite7 DE 0((0 1priteF DE 0(((

/a"e 0 5

@o! as before, to enco#e the binary byte of the letter AAB !e !ill only nee# t!o sprites in the follo!in" or#erC 1prite), 1prite2 1o as !e have seen !ith the above e*amples, the more #i"its that !e !ant a sprite to represent, the more sprites !e nee#e# to represent that information. &his can be represente# in a simple formulaC ; D 2^x =hereC An# ; D &he no. of 1prites * D number of bits to enco#e 3.2.2 aths &he ne*t i#ea !e !ill look at for usin" to represent binary #i"its is the path of a certain sprite. =e !ill be"in the e*amples e*actly the same as !e #i# for hi#in" information usin" the sprites, ho!ever unlike sprites, the binary #i"it or #i"its !e !ill be tryin" to sen# !ill be represente# by the movement of the sprite rather than the sprite itself. &o be"in, !e !ill allocate one #i"it to one movement. For e*ample, !e !ill let the pathC

ath1 ! " be e>ual to the binary #i"it 0, an# the ne*t pathC

ath2 ! 1 be e>ual to the binary #i"it (. @o!, !hen !e see a sprite movin" up !e !ill kno! to allocate the #i"it 0 to it an# similarly for the movement #o!n, !e !ill allocate the #i"it ( to it. 1o to repeat the process 9as in sprites: to represent the letter AAB !e !ill "etC

/a"e 0 7

#i.e. ath1$ ath2$ ath1$ ath1$ ath1$ ath1$ ath1$ ath2% !hich !hen #eco#e# is the binary co#e 0(00000(. @e*t !e !ill continue as !e #i# !ith sprites an# look at usin" paths to represent combinations of a pair of #i"its, of !hich there are four combinations.

DE

00

DE

0(

DE

(0

DE

((

1o no! that /ath( represents 00, /ath2 represents 0(, /ath represents (0 J /ath? represents ((, !e can no! be"in to co#e our messa"e, !hich a"ain !ill be the character AAB 9i.e. 0(00000(:. &his !ill "ive us a combination of paths as follo!s 9rea#in" from left to ri"ht:C /ath2, /ath(, /ath(, /ath2 &his !ill be represente# by ? in#ivi#ual sprites movin" in their o!n paths correspon#in" to the binary #i"its they are tryin" to represent. For e*ample, /ath( !ill have the sprite movin" from ri"ht to left, the left to ri"ht. 1imilarly, /ath2 !ill have the sprite movin" from #o!n to up, an# from up to #o!n 9or in the case of /ath J /ath?, from left to ri"htK ri"ht to left an# from #o!n to up.

&he ne*t step in the ApathsB section is to let each path represent a combination of three #i"its. As !e sa! before in the sprites section, there are F combinations of these #i"its, an# usin" our formula from before !e a"ain realise that !e !ill nee# F #ifferent paths for representation !hich are as follo!sC

DE 000

DE 00(

DE 0(0

DE

0((

/a"e 0 F

DE (00

DE (0(

DE ((0

DE (((

&his ho!ever, as !ith the sprites e*ample !ill !ork only !hen combine# !ith other sprites !hose value is represente# by one binary #i"it or t!o binary #i"its #ue to the fact that F #i"its make up a byte an# this can not be represente# by a combination of paths or sprites that are bein" use# to represent combinations of three #i"its.

@o! !e !ill use each path to represent four bits of binary co#e. As !as !ith the sprites, !e !ill no! nee# (5 #ifferent paths to represent the (5 combinations of binary #i"itsC

DE 0000

DE

000(

DE 00(0

DE

00((

DE 0(00

DE 0(0(

DE 0((0

DE 0(((

DE (000

DE (00( /a"e 0 I

DE (0(0

DE (0((

DE ((00

DE ((0(

DE (((0

DE ((((

=e !ill use these paths to move a sprite an# form a byte. Go!ever, !e have #eci#e#, for efficiency purposes, that it is better to use a coloure# sprite for one half of the byte an# the path for the other half. =e !ill be #ealin" !ith this further on in the A/aths ImplementationB part of the report.

3.2.3 Sound =ithin the Gamemaker environment, soun#s can be use# almost every!here, from the users footsteps, to collectin" coins. For almost every action in a "ame, it is possible to use a noise as the action is preforme#.

/a"e 0 (0

&here are numerous amounts of 1te"ano"raphy tools or 1L&ools as they are also kno!n, available online to#ay. Hy usin" the 1L&ools free!are that is available online, it is possible to hi#e a te*t file insi#e any soun# in Game Maker. &his coul# be use# as a valuable !ay of transmittin" information as it is only #etectable to !homever has the 1L&ool use# to enco#e the file, i.e. the receiver.

3.2.& 'essage (o)es Also available to users in the Game Maker environment, is the ability to use messa"e bo*es that can appear !hen an action is performe# by the user. For e*ample, !hen the user finishes a level, it is possible to #isplay a messa"e con"ratulatin" them or e*plainin" the storyline of the "ame to them. &his feature "ives us a fe! options to perform !ith respect to the te*t that is !ritten in the messa"e bo*. &he first option !e have is to use a key on the te*t in the messa"e bo*. =hen the receiver looks at the messa"e bo* they !ill kno! !hich !or#s to pick out of the para"raph because of the key they !ill have tellin" them !hich positions the !or#s !ith the information inten#e# for them are in. /a"e 0 ((

=e also have the option of usin" the blank spaces bet!een the !or#s in the para"raph to our a#vanta"e. For e*ample, if !e let one space bet!een t!o !or#s e>ual the binary #i"it (, an# t!o spaces bet!een t!o !or#s e>ual the binary #i"it 0, then it is possible to transmit information !ith "reat subtlety. &his ho!ever may allo! us to only transmit a very limite# amount of information as to transmit much information in this manner !oul# result us in havin" to have a very lar"e para"raph !hich may arouse suspicion to anyone !ho the information is not inten#e#. &he final option !e have is to use t!o types of font on the para"raph in the messa"e bo*. &his !ay the user !ill be able to select the letters that are in the #ifferent font, put them to"ether an# form the hi##en messa"e inten#e# for them. &his ho!ever is not a very safe option as it may look obvious to the unsuspectin" user that there are in fact t!o types of font bein" use#. 3.2.* +ooms &he option to create a room in Game Maker is one that is solely use# to create #ifferent levels for the "ame that the user of the application is creatin". <oom properties inclu#e options such as placin" ob%ects, name of the room, caption for the room, !i#th, hei"ht J spee# of the room an# the option to set a back#rop or back"roun# for the level. &his #oes not leave us, from a secret information transmittin" point of vie!, !ith many options. =hat !e can #o ho!ever, is have a secret room, unsuspectin" to the user that the information is not inten#e# for. =ithin this secret room, !e can have more enco#e# information so, shoul# a user other than our inten#e# receiver stumble across it, they !ill still have the %ob of #eco#in" the information, shoul# they e*pect it of course. 3.2., -d.anced 'ethods of transmitting information using Sprites Huffman Coding =e #eci#e# to look at Guffman co#in" as a !ay of transmittin" information mainly because of its compression capabilities. Guffman co#in" is a #ata compression scheme that assi"ns co#es to symbols so as to match co#e len"ths !ith the probabilities of the symbols an# is use# for lossless #ata compression. A Guffman tree is nee#e# ho!ever to create Guffman co#e for a "iven para"raph. [1*] Hy creatin" a Guffman tree for the para"raph !hich !e !ant to transmit secretly, !e hope to be able to re#uce the amount of #i"its nee#e# to represent each character, hence allo!in" more information to be transmitte# in each in#ivi#ual level. &o create a Guffman tree, one nee#s to note #o!n all the characters that they are usin" in the para"raph they !ant to compress, an# the fre>uency that they occur in the para"raph. For e*ample, letBs say !e have the follo!in" set of numbers an# the fre>uency !hich they occurC

/a"e 0 (2

FREQUENCY --------5 7 10 15 20 45

VALUE ----1 2 3 4 5 6

&o create a Guffman tree !e sort this list by its fre>uency an# make the t!o lo!est elements into leaves, creatin" a parent no#e !ith a fre>uency that is the a##ition of the t!o lo!er elementBs fre>uenciesC (2 C M K )C( N 7C2

@e*t those t!o elements are remove# from the list an# the ne! parent no#e !ith the fre>uency of (2 is entere# into the list, !hich is no! sorte# by fre>uencyC (0 C (2 C M () C ? 20 C ) ?) C 5 @o! !e repeat the above by combinin" the ne*t t!o lo!est elements, !hich "ives usC 22 C M K (0 C N (2 C M K )C( @o! the list isC N 7C2

/a"e 0 (

() C ? 20 C ) 22 C M ?) C 5 &he above steps are repeate# until all there is only one element left in the listC (02 C M OOOOOOOOOOOOOOOOOOOOK K )7 C M OOOOOK K 22 C M K (0 C N (2 C M K )C( N 7C2 )CM K () C ? N 20 C ) NOOOOO N NOOOOOOOOOO N ?) C 5

@o! that the list contains only one element 9i.e. (02 C M:, !e are finishe#. &his element no! becomes the root of our binary Guffman tree. @o!, to create our Guffman co#e for this tree, !e traverse the tree 9from top to bottom: to the value !e !ant, outputtin" a 0 every time !e take a leftLhan# branch, an# outputtin" a ( every time !e take a ri"htLhan# branch. For e*ample, if !e !ant to "et the Guffman co#e value for ? 9 () C ? :, !e traverse left, ri"ht, an# then left a"ain !hich leaves us !ith the value of 0(0. +ike!ise, if !e !ant to "et the value for 5 9 ?) C 5 :, !e traverse ri"ht an# !e are there, !hich leaves 5 !ith the Guffman co#e value of (. [1&] As !e can see from the above e*ample, the benefits of usin" Guffman co#in" to shorten ei"ht bit characters an# numbers are e*cellent.

Eulerian Path &he reason for our interest in ;ulerian paths !as purely because of the #iscreetness they hol#. /a"e 0 (?

An ;ulerian path is a path in a "raph !hich visits each e#"e e*actly once. &hey first came about by +eonhar# ;uler !hile solvin" the famous 1even Hri#"es of 7Pni"sber" problem in (7 5. &he problem inclu#e# t!o lar"e islan#s that !ere connecte# to the mainlan# by 7 bri#"es. &he >uestion ;uler ha# !as !either it !as possible to !alk !ith a route that crosses each bri#"e only once.

&he ans!er !as no, it is not possible. ;uler !alks are only possible if e*actly t!o no#es 9or in this case the coloure# circles above: have an o## number of e#"es. In this case, all of the no#es have an o## number of e#"es. If an ei"hth e#"e is a##e# ho!ever, !e then have t!o no#es !ith an o## number of e#"es, an# t!o no#es !ith an even number of e#"es. 1o no!, our "raph is ;ulerian.

As !e can see from the above "raph, our ;ulerian !alk is no! possible. 3ur i#ea for implementin" this in our pro%ect is to #esi"n t!o paths, one !here an ;ulerian !alk is possible, an# one !here it is not, an# allo!in" these to represent the binary #i"its 0, an# ( respectively. [1,]

Hamiltonian Cycle &he a#vanta"e of usin" Gamiltonian "raphs, as !ith ;uler "raphs, is the #iscreetness they provi#e.

/a"e 0 ()

A Gamiltonian /ath is a path in an un#irecte# "raph !hich visits each verte* e*actly once. A Gamiltonian $ycle is a Gamiltonian /ath !hich en#s on the same verte* it starte# on. Gamiltonian paths an# cycles are name# after =illiam <o!an Gamilton !ho invente# the Icosian Game, no! also kno!n as Gamilton-s pu,,le, !hich involves fin#in" a Gamiltonian cycle in the e#"e "raph of the #o#ecahe#ron. &his is an e*ample of a "raph containin" a Gamiltonian cycleC

Q20R

&his is an e*ample of a "raph that is not GamiltonianC

Q(IR 3nce a"ain, as !ith the ;ulerian paths, !e !ill be implementin" this in our !here a Gamiltonian cycle is possible, an# !here it is not, an# allo!in" these to represent the binary #i"its 0, an# ( respectively.

3.3 Hiding Information Implementation


=e #eci#e# to use the ma,e format for our "ame that !e create#. =e chose this option because of the si,e an# amount of information it coul# hol#. Althou"h there !ere many other types of "ames !e coul# have use#, !e felt that this !as the most efficient type of "ame available for the pro%ect.

3.3.1 Sprites (asic /e)t 0)ample /a"e 0 (5

Helo! is a section of the A1$II 9American 1tan#ar# $o#e for Information Interchan"e: table of characters that !e !ill be usin" in this pro%ect, an# especially their binary e>uivalent that !e !ill be most intereste# in. =e #eci#e# to use the sprite metho# of hi#in" information, as #escribe# in section 3.2.1. Hecause of the fact that there are ei"ht bits in a byte, !e #eci#e#, from an efficiency point of vie!, that it !oul# be best if !e use# the A?LbitsLperL spriteB metho# as !e have seen earlier.

Decimal ------032 033 034 03% 03) 03+ 0303/ 040 041 042 043 044 04% 04) 04+ 0404/ 0%0 0%1 0%2 0%3 0%4 0%% 0%) 0%+ 0%0%/ 0)0 0)1 0)2 0)3 0)4 0)% 0)) 0)+ 0)0)/

Octal ----040 041 042 043 044 04% 04) 04+ 0%0 0%1 0%2 0%3 0%4 0%% 0%) 0%+ 0)0 0)1 0)2 0)3 0)4 0)% 0)) 0)+ 0+0 0+1 0+2 0+3 0+4 0+% 0+) 0++ 100 101 102 103 104 10%

Hex --020 021 022 023 024 02% 02) 02+ 0202/ 024 02B 027 02D 029 02; 030 031 032 033 034 03% 03) 03+ 0303/ 034 03B 037 03D 039 03; 040 041 042 043 044 04%

Binary -----00100000 00100001 00100010 00100011 00100100 00100101 00100110 00100111 00101000 00101001 00101010 00101011 00101100 00101101 00101110 00101111 00110000 00110001 00110010 00110011 00110100 00110101 00110110 00110111 00111000 00111001 00111010 00111011 00111100 00111101 00111110 00111111 01000000 01000001 01000010 01000011 01000100 01000101

Value ----SP ! ! & * , . 0 ( ) 5 6 8 : 2 0 1 2 3 4 % ) + / = > ? @ A B C 4 B 7 D 9

(Space) (exclamation mar ) ("ou#le $uote) (num#er 'i(n) ("ollar 'i(n) (percent) (amper'an") ('in(le $uote) (le1t2openin(parent3e'i') (ri(3t2clo'in( parent3e'i') (a'teri' ) (plu') (comma) (minu' or "a'3) ("ot) (1or<ar" 'la'3)

(colon) ('emi-colon) (le'' t3an) (e$ual 'i(n) ((reater t3an) ($ue'tion mar ) (4D 'ym#ol)

/a"e 0 (7

0+0 0+1 0+2 0+3 0+4 0+% 0+) 0++ 0+0+/ 0-0 0-1 0-2 0-3 0-4 0-% 0-) 0-+ 0-0-/ 0/0 0/2

10) 10+ 110 111 112 113 114 11% 11) 11+ 120 121 122 123 124 12% 12) 12+ 130 131 132 134

04) 04+ 0404/ 044 04B 047 04D 049 04; 0%0 0%1 0%2 0%3 0%4 0%% 0%) 0%+ 0%0%/ 0%4 0%7

01000110 01000111 01001000 01001001 01001010 01001011 01001100 01001101 01001110 01001111 01010000 01010001 01010010 01010011 01010100 01010101 01010110 01010111 01011000 01011001 01011010 01011100

; E H F G H I J K O P L M S D N V O P Q R S

(#ac

'la'3)

&o #o this, !e !ill nee# si*teen #ifferent sprites. &o make this easier on us, an# the receiver that !ill be #eco#in" the messa"e, !e have use# some sprites a number of times, chan"in" the colour an# hence chan"in" there binary meanin"C

DE 0000

DE 000(

DE 00(0

DE 00((

DE 0(00

DE 0(0(

DE 0((0

DE 0(((

DE (000

DE (00(

DE (0(0

DE (0((

DE ((00

DE ((0(

DE (((0

DE ((((

@o! that !e have allocate# the combinations of #i"its to our sprites, !e are rea#y to enco#e a messa"e. As !e are tryin" to sho! ho! 1te"ano"raphy can be use# to

/a"e 0 (F

transmit lar"e amounts of important information, !e have #eci#e# to use a comment by 4ohn F. 7enne#y on the $uban missile crisisC We will not prematurely or unnecessarily risk the costs of a worldwide nuclear war in which even the fruits of victory would be ashes in our mouth but neither shall we shrink from that risk any time it must be faced. In binary this messa"e !oul# start off like thisC 0(0(0(((0(000(0( 0(0(0(((0(00(00(0(00((000(00((00 0(00(((00(00((((0(0(0(00 0(0(00000(0(00(00(000(0(0(00((0(0(00000(0(0(0(000(0(0(0(0(0(00(00(000(0(0(00 ((000(0((00(SS. &o "et the ma*imum space out of the levels !e are usin", !e #eci#e# to not use the ei"ht bit binary number for AspaceB, instea# !e !ill %ust leave a "ap in bet!een the t!o !or#s !e are usin" as follo!sC

/a"e 0 (I

& diamonds 1ith 2inar3 num2ers of "1"1$ "111$ "1""$ "1"1 1hich is the 1ord 57e6

4 diamonds representing the 1ord 5e.en6

&he first !or# in the >uote !e are usin" is the !or# T=eU or in binary, 0(0(0((( J 0(000(0(. As !e can see from the above screenshot, startin" from the top left corner an# rea#in" from left to ri"ht, the first four sprites that !e see are represente# by the binary #i"its 0(0(, 0(((, 0(00 J 0(0(. &he ne*t !or# !hich is the !or# T!illU is ne*t !hich is also /a"e 0 20

represente# throu"h the sprites by its binary e>uivalent as !e can see from the above. &he remain#er of the screenshot spells out 9in binary:C We will not prematurely or unnecessarily risk the costs of a worldwide nuclear war in which even the fruits of victory would be ashes in our mouth but neither shall we shrink!

&he ne*t screenshot sho!s the remain#er of the messa"e, !ith some A#an"erousB sprites a##e# to fill out the rest of the level, an# to re#uce suspicion. DE ;nemy 1prite

"1""$ "11"$ "1"1$ ""1"$ "1""$ 111$ "1""$ 11"1 !8 5from6 "1"1$ ""1"$ "1""$ 1""1$ "1"1$ ""11$ "1""$ 1"11 !8 5ris96 /a"e 0 2(

As !e can see from the above screenshot, the last of the messa"e can be #eco#e# from the remainin" sprites that the receiver reco"nises to be part of the messa"eC !.from that risk any time it must be faced. As you can see from the above level, !e still ha# a lot of space in !hich to a## more information, such is the si,e of the ma,e level.

Asi#eC

DE =all

DE Finish

3.3.2 aths (asic /e)t 0)ample @e*t !e implemente# the paths in a te*t e*ample of our "ame.

/a"e 0 22

+ed Sprite mo.ing up : left !8 "1"" """1; 5-6 Green Sprite mo.ing up : do1n !8 "1"1 ""11; 5S6 +ed Sprite$ circular motion !8 "1"" 1111; 5<6

Asi#eC

DE /ath A rea# lineB

DE Diamon#

DE Finish +ine

DE Door 9must be opene# by collectin" all #iamon#s to reach finish line, use# to lessen suspicion:

&he above messa"e translates to " message using paths to say hello## . 3nce a"ain, to ma*imise the potential out of the si,e of the level, an# to "et the most out of the amount of information !e are transmittin" over the level, !e #eci#e# to use the sprites in correspon#ence !ith the paths. For e*ample, as !e can see from the A1$II chart in section 3.3.1, the characters that !e re>uire for the #emonstration of this pro%ect be"in !ith only four #ifferent combinations of the first four #i"its in the binary number. &he four combinations !e nee# are as follo!sC 00(0, 00((, 0(00 J 0(0(. =e #eci#e# to let these four binary sets as the colour of the sprites as follo!sC DE 00(0 DE 00(( DE 0(00 DE 0(0(

1o no! that !e kno! that the first four #i"its of our binary number are represente# by the colour of the sprite, !e !ill no! look at the paths to #etermine the last four #i"its of the binary number. Hecause this is a still room, i.e. the enemies #o not leave the screen, !e ha# to have the enemies on a loop so as not to arouse suspicion. =e realise# that this mi"ht cause some confusion to the receiver as they mi"ht not kno! !here the startin" point is. For e*ample, lets take the first enemy at the top left of the above screenshot. &his enemy is meant to "o up an# left !hich has the binary numbers 000( allocate# to it. Go!ever, this in reverse is ri"ht an# #o!n !hich coul# be misinterprete# by the receiver as 0((0. &o balance this out an# make sure the receiver kno!s !here to start the path from, !e have #eci#e# to put in re# blocks in the normal !all an# in a strai"ht line across the level, so as the receiver has a startin" point to rea# the path from. For e*ample, take the first enemy that !e talke# about earlier. If the enemy "oes ri"ht an# then #o!n, then it is enterin" the line of re# blocks so !e kno! that this can not be the /a"e 0 2

correct path for #eco#in". Go!ever, if the path be"ins by "oin" up, out of the re# blocke# line, then !e kno! that this path is correct, an# !e can #eco#e it accor#in" to our key. @o! that !e kno! ho! to #eco#e the hi##en information, !e can start to translate it into binary co#e an# then into characters. As !e no! kno!, the first enemy is coloure# re#, an# is follo!in" a path up J left. &his correspon#s to the binary number 0(00 000( !hich is the letter A. &he rest of the messa"e shoul# be #eco#e# easily in the same manner, en#in" !ith the !hite enemies follo!in" the path up J left !hich leaves us !ith AVVB. 3.3.3 Sound (asic /e)t =ile 0)ample &he ne*t think !e looke# at as a means of hi#in" information !as the use of a free!are 1te"ano"raphy tool to hi#e a te*t file in a soun# that !e !ill be usin" in our "ame. &he use of soun#s in Gamemaker is en#less, from back"roun# music to collectin" a #iamon#, from "ettin" kille# by an enemy, to crossin" the finish line. In this case !e !ill be usin" the soun# file door.wav !hich !ill be use# !hen a #oor is opene# after a certain action is performe#, i.e. all the #iamon#s in the level bein" collecte#. &o hi#e a te*t file !ithin this soun#, !e !ill use a 1te"ano"raphy tool calle# 1L &ools !hich is freely available at many 1te"ano"raphy sites online. &his soft!are is nicely constructe# an# very user frien#ly. &o start the process of hi#in" a te*t file in the soun# file, once the 1L&ools pro"ram has been #o!nloa#e# an# opene#, !e click an# #ra" our te*t file across to the main actions !in#o! of the pro"ram !hich then sho!s us the soun# !ave form !hich visually allo!s us to check the shape of the !ave so that !hen it is combine# !ith our te*t file, !e can see if it looks #ifferent or similar to the ori"inal soun# fileC

/a"e 0 2?

Screenshot of the original shape of the 1a.e file @e*t !e click an# #ra" the te*t file that !e !ant to hi#e, an# #rop it on the above !in#o!. &his then prompts us !ith a !in#o! for enterin" a passphrase or pass!or# for the enco#in"K#eco#in" of the te*t file an# a selection of al"orithms for the encryptionC

After !e verify our pass!or# an# press 37, !e are sho!n the ne! shape of the !ave !ith our te*t file hi##en in itC

/a"e 0 2)

&o save the ne! soun#, the user must ri"ht click on the above !ave an# save. 3nce the receiver receives the "ame, to #eco#e the soun# file, they must open it in Gamemaker an# have 1L&ools at the rea#y. &o save the soun# file !ith the hi##en te*t file, kno!in" !hich soun# it is hi##en in, the receiver must open the soun# in Gamemaker an# save the file. &hey then must click an# #ra" it into 1L&ools as before. &hey must then ri"ht click on the shape of the !ave an# click on reveal. &he receiver !ill then be prompte# to enter the pass!or# or passphrase an# select the correct encryption al"orithm. 3nce the pro"ram recovers the file from the soun#, it !ill be available for savin" by ri"ht clickin" on the name.

3.3.& 'essage (o) (asic /e)t : Space 0)ample /a"e 0 25

For the messa"e bo*es implementation !e looke# at t!o aspects, firstly usin" a te*t keyKtemplate, an# secon#ly usin" the spaces bet!een the !or#s to sen# a short messa"e. =e have inserte# this messa"e bo* at the en# of our paths te*t e*ample an# it "oes as follo!sC Congratulations$ you have successfully passed the first level by escaping the evil army. %ow you must keep travelling and e&tinguishing the fires at the south east of every room so you can stop the fires from hurting our people again # =e have space# out the !or#s in such a pattern !here t!o spaces represent the binary #i"it 0 an# one space represents the binary #i"it (. 6sin" this information to analyse the above para"raph leaves us !ith the binary numbers "1""1""""1"""1"1"1""11"""1""11"""1""1111 !hich spells the !or# Hello . =e also create# a key for the inten# receiver. &his key !oul# be place# over the above para"raph an# pick out !or#s relevant to the sen#er an# more importantly, the receiverC you have army travelling passed the south

&his in a certain scenario coul# be an effective !ay of transmittin" secret information !ithout anyone kno!in" e*actly !hat is bein" sent. 'essage prompted at the end of a le.el

3.3.* Sprites (asic$ Intermediate : -d.anced /e)t 0)ample demonstrating Hidden +ooms$ >ogic Circuits : Huffman Coding =e #eci#e# ne*t to look at !ays of usin" sprites in a more Interme#iate !ay to transmit more information on a lar"er scale. 3ur first i#ea !e #eci#e# to look at !as a !ay of lookin" at usin" sprites to transmit lo"ic circuits in our computer "ame.[14] A lo"ic "ate performs a lo"ical operation on one or more lo"ic inputs an# pro#uces a sin"le lo"ic output. &he lo"ic normally performe# is Hoolean lo"ic an# is most commonly foun# in #i"ital circuits. [1?] /a"e 0 27

=e felt a"ain that because of the si,e of the levels !e are usin", !e coul# mask circuits such as a half a##er an# a full a##er >uite easily.

Half -dder circuit 1here@

!8 A<+ Gate

!8 -BD Gate

=ull -dder Circuit 1here@

!8 <+ Gate

#A<+ Gate : -BD Gate are as a2o.e%

=e first be"an by allocatin" a particular sprite to each +o"ic "ate that !e nee#e# in both of the circuits. Hecause of the reason that in a ma,e "ame, the user "enerally collects /a"e 0 2F

items such as #iamon#s an# other bonus sprites to boost thin"s such as 'score( an# 'health(, !e be"an to look at the possibility of usin" sprites to mask the path of the inputs an# the outputs of each of the circuits. Firstly, for the half a##er, !e let the input '"( be represente# by the sprite the input ')( be represente# by the sprite . @e*t, !e nee# to allocate sprites to the lo"ic "ates that !e are usin" in this lo"ic "ate !hich !ill be as follo!sC an#

DE

DE

@o! that !e ha# our sprites allocate#, it !as time to #ra! the lo"ic "ate in our level of the "ameC

Half -dder Screenshot -BD Gate <utput 5C6 <utput 5S6 /a"e 0 2I

A<+ Gate

As !e can see from the above screenshot, the half a##er is blen#e# into the level by a##in" a fe! monsters an# #iamon#s that are there to lessen suspicion. =e #eci#e# also to allo! the outputs to be the same colour as the main input. For e*ample, !e can see from the above that the input '"( "oes into the purple #iamon#KW3< Gate. Hecause the input AHB is splittin" off into AAB, !e #eci#e# that the output of the W3< Gate be the same colour as the input of AAB. &he same applies for the input of AHB !here, as !e can see from the above screenshot, !e can see that the blue input is splittin" an# enterin" the re# #iamon# at the bottom of the level. Hecause the blue input is the input that split, !e !ill let the output be the re# input !hich #i# not split. &his metho# maybe a small bit confusin" to a person !ho it has not been e*plaine# to, but the inten#e# receiver !ill be !ell a!are of the metho#s that !ill be use# to transmit this kin# of lo"ic circuit covertly. &hese same metho#s also apply for the Full A##er lo"ic circuit !hich !ill be implemente# as follo!sC

/a"e 0 0

=ull -dder Screenshot Input 5-6 Input 5(6 Input 5Cin6 <utput 5S6 <utput 5Cout6

-lso@

!8

#A<+ Gate : -BD Gate are as a2o.e%

As !e can see from the Full A##er screenshot, there is a lot more "oin" on in this level than in the half a##er level. &here are three #ifferent types of monstersKenemies as !ell as yello! #iamon#s. &hese e*tra items, once a"ain, are a##e# to fill up the level an# not make it obvious !hat is "oin" on. &o enforce this, all #iamon#s must be collecte# before the fire #isappears an# the user can "et to the finish line.

/a"e 0 (

A"ain to e*plain the lo"ic circuit !e !ill start by follo!in" the input AAB, or the trail of blue sprites. As !e can see, the blue trail splits from its ori"inal path, an# "oes #o!n an# then ri"ht. =e can then see that it connects !ith the re# #iamon#KA@D Gate. =e !ill then let the output of this "ate become the "reen trail, !hich as !e can see "oes on to enter the "reen #iamon#K3< Gate. Goin" back to the top ri"ht han# corner of the level, !e start a"ain !ith the blue trail, but this time !e #o not take the first split. Instea# !e see that the trail enters the purple #iamon#KW3< Gate, this is combine# !ith the re# trail, ')(, !hich also enters the "ate. =e let the resultin" output of this combination remain the colour blue !hich then continues on, firstly into an W3< Gate to be combine# !ith the input 'Cin(K"reen trail !hich "ives us the resultin" output '*(, an# secon#ly into the re# #iamon#KA@D Gate to be combine# a"ain !ith the "reen trail !hich continues into the 3< "ate to be combine# !ith the first trail that !e #escribe# above. &he final combination "ives us the resultin" output, 'Cout(. &his "ives us the #escription of the full a##er lo"ic circuitC

[1?]

&he ne*t think !e #eci#e# to #o !as to use the Hasic hi##en rooms metho#, usin" sprites, in bet!een the Galf A##er J Full A##er +o"ic $ircuits. For this to !ork, !e !oul# nee# to firstly, make a secret !ay of accessin" these hi##en rooms. =e came up !ith the i#ea of havin", in the Galf A##er level, secret blocks that the user can pass throu"h, but that are i#entical to the ones that the user canBt pass throu"h. 6sin" this techni>ue !ill allo! the inten#e# receiver to access these rooms, !ith the uninten#e# receivers carryin" out the "ame as normal. 1o letBs take a look at the level containin" the hi##en Galf A##er a"ainC

/a"e 0 2

7al9 through 2loc9s

Secret finish line ta9ing the user to the secret room X =inish >ine ta9ing the user to the =ull -dder le.el As !e can see from the above screenshot, if !e look at the position of the user, !e see that the ne*t obvious step to an unsuspectin" user is to continue "oin" left, then back ri"ht collectin" all the items, an# then enterin" the finish line takin" them to the ne*t level, the Full A##er level, skippin" all secret rooms. &o an inten#e# receiver in this position ho!ever, movin" the user #o!n !oul# be their ne*t step, throu"h the !alk throu"h blocks, an# crossin" the secret finish line.

/a"e 0

3ur ne*t step in this part of the implementation process !as to #eci#e !hat to put in the secret rooms that !e have create#. After much pon#erin", !e #eci#e# to combine the metho#s of usin" sprites to create a more a#vance# metho# to represent various combinations of binary #i"its !ith Guffman compression to transmit, over three secret levels, the follo!in" para"raphC +(m not an atheist and + don(t think + can call myself a pantheist. We are in the position of a little child entering a huge library filled with books in many different languages. ,he child knows someone must have written those books. +t does not know how. ,he child dimly suspects a mysterious order in the arrangement of the books but doesn(t know what it is. ,hat$ it seems to me$ is the attitude of even the most intelligent human being toward -od. LAlbert ;instein

As you can see this is a very lar"e para"raph !hich sho!s that this metho# of 1te"ano"raphy is very useful for transmittin" lar"e amounts of information. Firstly ho!ever, !e nee#e# to #evise a Guffman tree to come up !ith a table of binary numbers than coul# represent our letters that !e are usin" in the above para"raph. In or#er to #o this, !e first came up !ith a Guffman tree usin" the metho# #escribe# previously in this reportC

/a"e 0 ?

1o this allo!s us to come up !ith the follo!in" list of characters an# their Guffman representationsC +etter Guffman

A H $ D ; F G G I 7 + M @ 3 / < 1 & 6 Y = 8 full stop comma apostrophe

(((0 00000( 000000( 0(((0 0(0 (000(0 ((((0 (00( 000( LLLLLLLLLLLLLLLLLLLLL 0000(( 00((( 0(((( 00(0 ((0 0000000( LLLLLLLLLLLLLLLLLLLL 00((0 0((0 (0( ((((( 0000(000 (0000 LLLLLLLLLLLLLLLLLLLLLLLL 0000(0( LLLLLLLLLLLLLLLLLLLLLLLLL (000(( 0000(00( 00000000

@ote there are some characters missin" in this chart as they #o not appear in our para"raph an# hence can be omitte#. @o! that !e have the binary representations usin" Guffman for our letters, !e can #eci#e !hich combinations of binary numbers !e nee# to allocate to our sprites.

/a"e 0 )

=e #eci#e# that for the most efficient !ay of transmittin" the information !e !oul# nee#C 2 1prites representin" ( binary #i"it 9i.e. 0 J (:, ? 1prites representin" 2 binary #i"its 9i.e. 00, (0, 0( J ((:, an# 2 1prites representin" ? binary #i"its 9I.e. 0000 J ((((:. @e*t !e allocate# those #i"its to spritesC DE 0 DE (

DE 00

DE 0(

DE (0

DE ((

DE 0000

DE ((((

=e #eci#e# to have the t!o sprites representin" four #i"its be enemies that move up an# #o!n, once a"ain to lessen suspicion 9by a##in" enemies that move to #istract the uninten#e# receiver:. @e*t !e be"an placin" the sprites from left to ri"ht in or#er correspon#in" to the characters in the para"raph !e are transmittin"C

/a"e 0 5

Screenshot of Secret +oom 1 9containin" the !or#s T+(m not an atheist and + don(t think + can call myself a pantheist. We are in the position of a little child entering a huge library filled with books in many! . 7ord 5-BD6 #using ? sprites% sprites% >etter 5-6 #using t1o

/a"e 0 7

Screenshot of Secret +oom 2 9containin" the !or#s TS.different languages. ,he child knows someone must have written those books. +t does not know how. ,he child dimly suspects a mysterious order in the! :

/a"e 0 F

Screenshot of Secret +oom 3 9containin" the !or#s Tthe arrangement of the books but doesn(t know what it is. ,hat$ it seems to me$ is the attitude of even the most intelligent human being toward -od. :

3.3., -d.anced Sprites 0)ample 0ulerian ath /a"e 0 I

1o no! that !e ha# sho!n the amount of information !e !ere able to transmit over the "ame, !e #eci#e# to try somethin" more a#vance#. Instea# of the actual si,e of the information bein" transmitte#, !e be"an to look more to!ar#s the #iscreetness of !hat !e coul# transmit. =e felt that transmittin" somethin" such as an ;ulerian path !oul# prove that some thin"s transmitte# over a me#ium available for everyone to see coul# prove invisible to the unsuspectin" eye. =e be"an by creatin" a level that !as similar to the bri#"es of 7Pni"sber", as previously e*plaine# in this reportC

Image of a hidden graph 1here an 0ulerian path is not possi2le #2inar3 digit 1%

Certices;Bodes ath;0dge

/a"e 0 ?0

As !e state# earlier, an ;ulerian path is not possible here as an ;ulerian path is one !here e*actly t!o no#es have an o## number of e#"es. In the 7Pni"sber" problem, all four no#es have an o## number of e#"es. =e #eci#e# to let this scenario !here an ;ulerian path is not possible represent the binary #i"it (. Also as !e state# earlier an ;ulerian path is possible by a##in" a path so that e*actly t!o no#es have an o## number of e#"es. =e #eci#e# to let this scenario represent the binary #i"it 0.

Image of a hidden graph 1here an 0ulerian path is possi2le #2inar3 digit "%

As !e can see from the pair of screenshots, !e #eci#e# to a## enemies an# #iamon#s to the level so as the user #oes not become suspicious to anythin" "oin" on.

/a"e 0 ?(

3.3.? -d.anced Sprites 0)ample Hamiltonian C3cle A"ain, as !ith the ;ulerian /ath e*ample, !e #eci#e# to use the Gamiltonian ;*ample as a more a#vance# e*ample of ho! somethin" can be transmitte# !ithout suspicion from anyone other than the inten#e# receiver. =e be"an a"ain by implementin" Gamiltonian $ycles into our "ame by creatin" levels in !hich inclu#e# cycles that !ere Gamiltonian an# that !ere not Gamiltonian, an# allocate# a binary #i"it to eachC

Image of a hidden graph 1here a Hamiltonian C3cle is possi2le #2inar3 digit "%

/a"e 0 ?2

Image of a hidden graph 1here a Hamiltonian C3cle is not possi2le #2inar3 digit 1%

Chapter & 0.aluation


/a"e 0 ?

&.1 Introduction &he aim of 1te"ano"raphy an# its associate# techni>ues is to transfer information covertly. &he most common ste"o techni>ues involve placin" information at the en# of a file or in the least si"nificant bits of the #ata. &here are many applications freely available that allo! the user to hi#e information in various me#ia, such as ima"es, au#io files an# te*t files. &here are no! also many applications available !hich can #etect information that has been hi##en usin" conventional ste"o metho#s. &his is !hy it is important that the science of ste"ano"raphy continues to evolve an# to branch into other me#ia, like computer "ames. $omputer "ames are an i#eal me#ium for ste"ano"raphy. &here are many computer "ames freely available, so "ames containin" hi##en information !oul# be unlikely to cause suspicion. =e also feel that, usin" statistical analysis, it !oul# not be possible to #etect a messa"e hi##en usin" the techni>ues !e have create#. In this section, !e !ill analyse the techni>ues !e have create#, outlinin" the main a#vanta"es an# #isa#vanta"es of each. &.2 roDect Goals =hen !e be"an this pro%ect, !e "ave #efine# a set of pro%ect "oals !hich !e felt nee#e# to be achieve#. &he first of these "oals !as to research the back"roun# of ste"ano"raphy. =e spent a "oo# #eal of time stu#yin" both the history of an# the techni>ues use# in ste"ano"raphy. =e feel that this "ave us an e*cellent un#erstan#in" an# insi"ht into ste"ano"raphy !hich prove# invaluable to us throu"hout the rest of the pro%ect. &he secon# "oal !e set out !as to choose an appropriate platform on !hich to create our "ame environment. =e researche# some #ifferent "ame creation tools, as !ell as consi#erin" !rite a "ame in a nonL"ame specific lan"ua"e. In the en# !e choose Game Maker as !e felt that it best suite# our nee#s. &he thir# "oal !e ha# to achieve !as to #evelop ste"ano"raphy techni>ues !ith !hich to hi#e information in our "ame. =e !ere able to #evelop several #ifferent techni>ues for this. 1ome of our techni>ues !ere relatively basic, !hile some of them !ere more a#vance#. &he fourth "oal !as the creation of the "ame itself usin" the techni>ues !e ha# #evelope#. =e create# several #ifferent "ames, each usin" the #ifferent ste"ano"raphy techni>ues !e ha# create#. &he #esi"n of these techni>ues an# ho! !e implemente# them !ere #escribe# in #etail in the previous chapter.

/a"e 0 ??

&he final "oal !e #efine# !as the techni>ues !e ha# #evelope#, an# the a#vanta"es an# #isa#vanta"es of each. &his !as carrie# out an# our conclusions are presente# later in this chapter.

&.3 Hiding Information E Sprite /echniFue =e foun# the sprite hi#in" techni>ues to be very effective. Given the amount of sprites !e !ere able to inclu#e in each room, !e mana"e# to hi#e a si"nificant amount of information in every level of our ma,e. =e use# one sprite to represent ? bits, meanin" that !e only nee#e# (5 #ifferent sprites to represent any FLbit binary representation of an A1$II character. Hy optin" to simply leave a space bet!een sprites, rather than usin" the binary representation, !e !ere able to fit even more bits into each level. &he information hi##en can still be retrieve# if the "ame is converte# into an e*ecutable file. &he main #isa#vanta"es of this techni>ue are the amount of time re>uire# to enco#e the messa"e an# the time re>uire# for the recipient to #eco#e the messa"e a"ain. &his metho# !oul# be ineffective to enco#e lar"e messa"es, or #ocuments, as it !oul# re>uire a suspiciously lar"e "ame. &.& Hiding Information E aths /echniFue &he paths techni>ue is >uite similar to the sprites techni>ue. =e use# (5 #ifferent paths, each representin" ? bits. &he colour of the sprite !as use# to si"nify the first four bits of a letter, !ith the path of that sprite representin" the secon# four bits. +ike !ith sprites, path hi#in" is not suite# to hi#in" lar"e amounts of te*t. Also, the #eco#in" of the information is more #ifficult than in the sprite e*ample, as the recipient has to follo! the path of each sprite to #etermine its meanin".

&.* Hiding Information 'essage (o) /echniFue &he messa"e bo* option in Game Maker is not particularly useful for hi#in" information, as any messa"e of si"nificant len"th !oul# look out of place an# #ra! attention. =e !ere, ho!ever, able to use a messa"e bo* to sen# messa"es in t!o !ays. Firstly, !e !ere able to enco#e a small messa"e usin" the template metho#. =e also enco#e# a sin"le !or# in binary format, usin" e*tra spaces bet!een !or#s to represent the #ifference bet!een ( an# 0. Hoth of these !orke# !ell, but !oul# not be suitable for a lar"e messa"e. &he inclusion of information in this manner also increases the likelihoo# of the messa"e bein" #eciphere#. 3ne ma%or problem !ith the use of spacin" to represent bits is that it is not possible to tell ho! many space characters are present !hen the te*t !raps to the ne*t line.

&., Hiding Information E Sound /echniFue

/a"e 0 ?)

&here are many #ifferent soun#s !ithin Game Maker, !hich makes it possible to hi#e a lot of information in a level. For our e*ample, !e #eci#e# simply to a## a te*t file to a sin"le soun# to illustrate ho! this !orks. =hile the te*t file can be a##e#, an# retrieve#, !ith relative ease usin" the ste"ano"raphy application */,ools, it can be #etecte# usin" !i#ely available ste"analysis soft!are. Another problem !ith this metho# is that it is very #ifficult to e*tract the soun# file from the "ame !hen the "ame is in the format of an e*ecutable file. &.? Hiding Information E +oom /echniFue Gi#in" information !ithin rooms prove# to be the !eakest techni>ue as none of the room functions can be utilise# for hi#in" information. =hile the rooms themselves offere# very little in the !ay of options for hi#in" information, !e #eci#e# that !e !oul# use hi##en rooms, !hich !oul# contain information hi##en usin" various other techni>ues. =e felt that this !orke# !ell as it offere# an a##e# level of security for especially sensitive information. ;ntry to the hi##en room is achieve# by passin" throu"h a seemin"ly soli# !all ob%ect. &his meant that it !oul# be hi"hly unlikely that a player !ho !as una!are of the roomBs e*istence !oul# fin# it acci#entally, an# in the unlikely case the room !as foun#, the player !oul# still nee# to kno! ho! to #eco#e the hi##en information. &.4 Hiding Information Huffman Coding &he Guffman co#in" approach is very similar to the sprite approach, e*cept that it is possible to fit more information into each level. =e use# only sprites to hi#e the information, an# !e only nee#e# F #ifferent sprites. 3nce !e ha# create# a Guffman tree for the messa"e !e !ante# to hi#e, it !as easy to enco#e the messa"e. &his techni>ue prove# very effective, as it improve# further upon the amount of information !e !ere able to hi#e in each level. As !ith sprites an# paths, the information can still be retrieve# even if the "ame is converte# to an e*ecutable file. &.G Hiding Information >ogic Circuit =e felt that this techni>ue !orke# very !ell. =e use# #ifferent coloure# sprites to represent the #ifferent types of "ates in our circuit, as !ell as coloure# sprites to represent the #ifferent inputs an# outputs of the circuit. =hen the player has the key to #eco#in" the circuit, it is very easy to #ecipher, but someone !ithout the key !oul# have "reat #ifficulty #ecipherin" it, or even kno!in" !hat it !as they !ere tryin" to #ecipher. &.1" Hiding Information E 0ulerian Graph 6nlike the other metho#s !e utilise# for concealin" information !ithin our "ame, the ;ulerian Graph approach focuse# on the >uality of information hi#in" rather than the >uantity. &his techni>ue !orke# !ell. =e feel that it !oul# be nearly impossible for anyone to notice the presence of an ;ulerian "raph !ithout havin" been a!are that this techni>ue ha# been use#. ;ven if an ;ulerian "raph !as #etecte#, the #etector !oul# not kno! !hat it represente#. &he obvious #o!nsi#e of this techni>ue is that it can only be use# to represent one bit 90 or (:, or a &<6; or FA+1; response in each level.

/a"e 0 ?5

&.11 Hiding Information Hamiltonian Graph &his techni>ue also !orke# !ell. It !orks on the same principle as the ;ulerian Graph approach. As !ith that metho#, the main #o!nsi#e of this techni>ue is that it can only be use# to represent one bit 90 or (:, or a &<6; or FA+1; response in each level, althou"h this techni>ue is e>ually #ifficult to #etect. &.12 Game 'a9er 0.aluation =e foun# Game Maker to be an i#eal application for our "ame creation nee#s. Its uni>ue #ra" an# #rop features let us create "ames easily an# allo!e# us to position sprites in specific locations, !hich ai#e# "reatly in the information hi#in" process. Also, the ability to create specific paths for our sprites an# #isplay messa"e bo*es !ere very useful for hi#in" information. =e #i# fin#, ho!ever, that the rooms in Game Maker ha# very little functionality other than to contain other ob%ects an# that ima"es importe# !ere converte# from ."if to .bmp format, thus corruptin" any information hi##en !ithin the ima"e. 3verall, !hen taken as a "ame creation tool, Game Maker is a very useful pro"ram. &.13 Conclusion Althou"h !e fully met our "oals, an# in the process e*cee#in" our o!n e*pectations to the e*tent of the amount of information !e coul# transmit as !ell as !hat !e coul# transmit, !e #i# encounter some problems over the course of this pro%ect. &he first problem !e encountere# !as "ettin" to "rips as to !hat 1te"ano"raphy actually !as. As neither of us ha# hear# of it before, it !as al!ays "oin" to be a challen"e, albeit an en%oyable one. &o overcome this problem, !e ha# to immerse ourselves in the back"roun# an# kno!le#"e of 1te"ano"raphy. &his involve# fre>uently researchin" various books as !ell as "atherin" #ata from the internet about the topic. Althou"h this took time, !e eventually came to a point !here !e !ere comfortable talkin" an# #iscussin" the topic of 1te"ano"raphy. 3nce !e ha# the back"roun# of the topic covere#, our ne*t problem that !e encountere# !as "ettin" to "rips !ith the soft!are !e !ere usin" to create the "ame that !e !oul# be transmittin" the information over, !hich of course !as Game Maker. &his piece of soft!are can be very frustratin" to use at first an# some tutorials available online are not very strai"ht for!ar#. 1olvin" this problem took many hours of har# !ork "ettin" to kno! Game Maker insi#e out for the specific tasks that !e re>uire# it to perform for our pro%ect. Althou"h it !as frustratin" at times, !e sa! at the en# that even thou"h it cause# us some problems, !e "ot throu"h them an# pro#uce# the results that !e !ante#. 3nce !e ha# Game Maker cracke#, our ne*t #ifficulty !as comin" up !ith i#eas of !ays of transmittin" information over this me#ium. &his took much brainstormin", as !ell as consultin" !ith our supervisor for potential i#eas, before !e actually #i# come up !ith some soli# i#eas that !e coul# use to take our pro%ect to the ne*t level.

/a"e 0 ?7

Alon" !ith other minor problems that !e encountere#, !e felt that !e #ealt !ith all our problems !ell an# solve# them accor#in"ly. For us, this pro%ect !as very en%oyable an# !e !oul# not feel half as satisfie# as !e #o no! if !e #i# not have problems such as the above to overcome.

Chapter * Conclusion

/a"e 0 ?F

*.1 Conclusion &he aim of this pro%ect !as to e*plore the relatively untouche# area of usin" ste"ano"raphy !ith computer "ames. &here are several #ifferent approaches a novice "ame pro"rammer can use to "o about creatin" a computer "ame. =e consi#ere# creatin" a "ame usin" establishe# pro"rammin" lan"ua"es, like 4ava or $Z, but !e opte# instea# to use a "ame creation tool. =e #eci#e# on this option because the main "oal of this pro%ect !as information hi#in", as oppose# to "ame creation, an# creatin" a "ame from scratch !oul# take up a consi#erable amount of our pro%ect time. After researchin" several #ifferent applications, !e foun# that Game Maker !oul# be an i#eal choice for our re>uirements. &he type of "ame !e chose to create !as a ma,e. =e felt that creatin" an environment for effective an# efficient information hi#in" !as more important than creatin" an overly comple* "ame. After e*plorin" various options !ith re"ar# to the type of "ame !e mi"ht create, !e #eci#e# that the ma,e mi"ht be the most suitable. =e chose the ma,e #ue to the amount of information that !e !oul# be able to hi#e !ithin each level. 3ur research "ave us a clear un#erstan#in" of the theory behin# ste"ano"raphy an# the various techni>ues involve# in its implementation. As part of this pro%ect, !e also #evelope# several ne! metho#s for hi#in" information, !hich !ere specific to "ames an#, in some cases, to our "ame in particular. =ith these techni>ues !e have #evelope#, !e believe that !ithout the specific enco#in" information, it !oul# be nearly impossible for anyone to #ecipher the hi##en messa"e, shoul# it be #iscovere#. =e feel that !e have set a "oo# platform upon !hich future !ork can be built, hopefully lea#in" to the creation of improve# ste"o techni>ues. *.2 =uture 7or9 For future !ork in this area, !e believe that the !eaknesses in the techni>ues !e create# coul# be a##resse#. &he main !eakness !ith these techni>ues is that it re>uires any messa"es to be manually enco#e# into the "ame. &his can take a "reat #eal of time, even for a relatively short messa"e. &he user !oul# also be re>uire# to create a ne! "ame from nothin" each time they !ante# to sen# a ne! messa"e. +ike!ise, there is a si"nificant amount of effort re>uire# from the inten#e# recipient to #eco#e the messa"e once the "ame has been receive#. =e believe that the ne*t step !oul# be to create applications for enco#in" an# #eco#in" this information, !hich !oul# make it possible to enco#e an# #eco#e messa"es much more >uickly an# also allo! for much bi""er messa"es to be sent usin" this me#ium. Another possible improvement !oul# be the a##ition of #i"ital !atermarkin" !ithin the "ame. &his !oul# allo! a recipient to be certain that the "ame, an# the information it containe#, ha# not been tampere# !ith or altere#. /a"e 0 ?I

+eferences

[1] 2005 $1IKFHI $omputer $rime an# 1ecurity 1urvey [2] An 3vervie! of 1te"ano"raphy for the $omputer Forensics ;*aminer LhttpCKK!!!.fbi."ovKh>KlabKfscKbackissuK%uly200?KresearchK200?O0 Oresearch0(.htm

/a"e 0 )0

[3] 7eepin" 1ecrets 1ecretC 1te"ano"raphy !ith .@;& [ httpCKK!!!.#ev*.comK#otnetKArticleK22557 [&] $ole, ;ric. L \Gi#in" in /lain 1i"htC 1te"ano"raphy an# the Art of $overt $ommunication\. [*] 1te"ano"raphyC Gi#in" Data =ithin Data L httpCKK!!!."arykessler.netKlibraryKste"ano"raphy.html [,] 1te"analysis [ =ikipe#ia, the free encyclope#ia L httpCKKen.!ikipe#ia.or"K!ikiK1te"analysis [?] 1te"analysis of Ima"es $reate# 6sin" $urrent 1te"ano"raphy 1oft!are L httpCKK!!!.%%tc.comKih!sIFK%%"mu.html [4] Gistory of $omputer Games [ =ikipe#ia, the free encyclope#ia L httpCKKen.!ikipe#ia.or"K!ikiKGistoryOofOcomputerO"ames [G] ;ntertainment 1oft!are AssociationL Facts J <esearch L httpCKK!!!.theesa.comKfactsKin#e*.php [1"] Yi#eo Game In#ustry [ =ikipe#ia, the free encyclope#ia LhttpCKKen.!ikipe#ia.or"K!ikiKYi#eoO"ameOin#ustry [11] ;ntertainment 1oft!are AssociationL 1ales J Genre Data L httpCKK!!!.theesa.comKfactsKsalesO"enreO#ata.php [12] Game Maker /a"es L httpCKK!!!."amemaker.nl [13] Game Maker [ =ikipe#ia, the free encyclope#ia L httpCKKen.!ikipe#ia.or"K!ikiKGameOMaker [1&] A >uick tutorial on "eneratin" a huffman tree LhttpCKK!!!.si""raph.or"Ke#ucationKmaterialsKGyperGraphKvi#eoKmpe"Kmpe"fa>KhuffmanOtutoria l.html [1*] Guffman co#in" L =ikipe#ia, the free encyclope#ia L httpCKKen.!ikipe#ia.or"K!ikiKGuffmanOco#in" [1,] 1even Hri#"es of 7Pni"sber" L =ikipe#ia, the free encyclope#ia L httpCKKen.!ikipe#ia.or"K!ikiK1evenOHri#"esOofO7]$ ]H5ni"sber" [1?] +o"ic "ate L =ikipe#ia, the free encyclope#ia L httpCKKen.!ikipe#ia.or"K!ikiK+o"icO"ate [14] ;*plorin" 1te"ano"raphy as a means of &ransferrin" $ircuit Dia"ram Information L httpCKK"emin"a.it.nui"al!ay.ieK^00)( 0)uK

/a"e 0 )(

[1G] Graph &heory 3pen /roblems L


http://dimacs.rutgers.edu/~hochberg/undopen/graphtheory/graphtheory.html

[2"] Math ((F [ Information about Mi#term Z2 L


http://www.math.sunysb.edu/~sorin/118/E2info.html

[21] 1te"ano"raphy J Games 200), Fit,"eral# an# Galla"her [22] 1te"ano"raphy J Games 2005, Murray an# 3-$onnor

/a"e 0 )2

Das könnte Ihnen auch gefallen