like numbered elements in these figures are either equivalent elements or perform the same function . elements which have been discussed previously will not necessarily be discussed in later figures if the function is equivalent . not all elements shown in one figure may be shown in subsequent figures . fig1 and 3 show an example of a key 100 with a three position switch 101 for entering authentication data . fig1 shows the key 100 in the first position 103 . fig2 shows the key 100 in the second position 200 . fig3 shows the key 100 in the third position 300 . the key 100 has a set of first contacts 102 that are connected when the key 100 is in the second position 200 and a second set of contacts 104 that are brought into electrical contact when the key 100 is in the third position 300 . in this example when the key 100 is in the third position 300 both the first set of contacts 102 and the second set of contacts 104 are closed . the key 100 for example may have a surface 112 which belongs to the keypad . the key 100 may then be moved in a motion direction 110 which is roughly perpendicular to the surface 112 . the surface 112 is not shown in fig2 and 3 . the key 100 has a first connecting element 106 which may be used to connect the first set of contacts 102 . the key 100 may have a second connecting element 108 which is used to connect the second set of electrical contacts 104 . it can be seen that the first connecting element 106 is compressed or depressed when the key 100 is moved from the first 102 to the second position 200 . it is also apparent from fig2 and 3 that as the key 100 is further depressed from the second position 200 to the third position 300 the first connecting element 106 is further compressed . there may be a spring or several springs within the key 100 which are used to provide the first force and the second force when the user presses the key 100 into the second position 200 it then requires additional force to press the key 100 into the third position . this may provide a tactile response to the user . fig4 shows an example of a keypad 400 . the keypad has multiple keys 402 . there are numeric keys 100 which are made with three position switches . the three position switch mechanisms are not shown in this figure . this particular keypad 400 also has an enter key 404 which is a normal key . however , in some examples the enter 404 or even additional keys could also be three position switches . the keys 402 are connected to a controller 406 via a connection to the multiple keys 408 . the controller 406 comprises a processor unit 410 which is in connection with a data connection 412 and a memory 411 . the processor 410 receives key presses 416 and key position data 418 from the multiple keys 402 via the connection to the multiple keys 408 . the processor unit 410 may for instance temporarily store the key presses 416 and the key position data 418 in the memory 411 . a set of instructions 414 or a program may be executed by the processor 410 which enables it to generate the authentication data 420 using the key presses 416 and the key position data 418 . the authentication data 420 may take different forms . for instance it may be simply a set of characters that were generated using the key presses 416 and by mapping the key position data 418 . in other examples the authentication data 420 may contain the key presses 416 and meta data which is descriptive of the key position data 418 . fig5 shows an example of a hardware token generator 500 . the hardware token generator 500 comprises a keypad 400 . the keypad 400 has a number of keys 100 with three - position switches . all of the keys 100 in this example are shown as being three - position switches . the three position switches are not shown in this figure . however , one or more of the keys labeled 100 may also be normal switches . the hardware security token 500 further comprises a display 502 for displaying a security token 504 . in this example the security token 504 is a six digit number or numeral which may be used to verify the identity of a user . also in this example there is a time bar 506 which shows the remaining time for which the security token 504 is valid . the hardware security token 500 further shows a processor 508 that is connected to the keypad 400 via a data connection 412 . the processor 508 is further shown as being connected to the display , a clock 510 and a memory 512 . in some examples the processor 508 may be identical with the processor 410 shown in fig4 . that is to say the processor 508 may incorporate the features of processor 410 in fig4 . the memory 512 may have a current time 514 that has been received from the clock 510 . the memory 512 may have authentication data which is received via the data connection 412 . the memory 512 is further shown as containing a cryptographic key 516 . the cryptographic key may be used as input with the authentication data 420 and the current time 514 as input to a cryptographic algorithm 518 . the cryptographic algorithm 518 is shown as being stored in the memory 512 . the output of the cryptographic algorithm 518 is then the security token 504 . the security token 504 is also shown as being stored in the memory 512 . when the time bar 506 indicates that the security token 504 has expired then the processor 508 may obtain a new time 510 and new authentication data 420 to go through and repeat the process of generating the security token 504 . fig6 shows an example of an automated teller machine 600 . the automated teller machine 600 comprises a processor 602 that is in communication with a keypad 400 via a data connection 412 . the processor 602 is also in contact or communication with a display 604 , a money dispenser 606 , a memory 608 , and a network interface 610 . the network interface 610 is used to establish a network connection 612 with a server 614 . the memory 608 is shown as containing authentication data 420 that was received from the keypad 400 via the data connection 412 . the memory 608 is also shown as containing a control module 616 that contains machine - executable instructions for execution by the processor 602 . the control module 616 contains instructions which enable the processor 602 to control the operation and function of the automated teller machine 600 . the memory 608 is also shown as containing a request 618 . the request 618 was entered into the automated teller machine 600 by the same user as who entered the authentication data 420 . the processor 602 could then execute the control module 616 and control the network interface 610 to send a request to the server 614 that comprises the authentication data 420 and the request 618 . the server 614 would then validate if the authentication data 420 is correct and if the request 618 is allowed . if the request 618 is allowed by the server 614 the server 614 sends a message back to the processor 602 and then the processor 602 is then able to execute the request 618 . this for instance may result in the cash dispenser 606 in dispensing cash or money . fig7 shows an example of an electronic system 700 . the electronic system 700 comprises a keypad 400 . the electronic system further comprises a processor 602 connected to a hardware interface 702 and a memory 608 . the hardware interface 702 is connected to the interface 412 of the keypad 400 . the memory 608 is shown as containing authentication data 420 received via the interface 412 . the memory 608 is further shown as containing a control module 704 . the control module 704 contains instructions which enable the processor 602 to control the operation and function of the electronic device 700 . the memory 608 is further shown as containing an authentication database 706 . when the processor 602 receives the authentication data 420 , the processor 602 can validate the authentication data 420 using the authentication database 706 . the control module 704 may contain instructions which enable the processor 602 to do that . if the processor 602 validates the authentication data 420 using the authentication database 706 then execution of the instructions 704 may cause the processor to grant access to the electronic system . a shoulder - surfer can only observe what they can see with their eyes , which is the sequence of characters , numbers , special characters etc . what they cannot see is all the meta information like touch pressure , rhythm of entering ( limited ), variable parts of a password etc . by implementing a meta information channel into password - based logon , the security posture can be significantly improved . when withdrawing money from an atm , you typically have to enter a 4 - or 5 - digit pin . there have been numerous cases in the past where an attacker has simply observed his / her victim entering the pin and then made a copy of the card and stole money from them . for the bank customer this often ends in a disaster as the bank &# 39 ; s standpoint is that they must have shared their pin or wrote it down somewhere . by adding meta data to the pin entering procedure , the attacker &# 39 ; s life can be made much harder . the pressure sensitive keyboard would have two pressure points ( i . e . press lightly and hard ) like with the shutter of a dslr camera . the bank would have to tell the customer which digits of the pin are to be pressed lightly ( i . e . beyond the 1st pressure point ) and which ones are to be pressed harder ( i . e . beyond the 2nd pressure point ). the two pressure points will give the user the necessary feedback that enough pressure has been applied . especially with an atm there is no way of having a training program or similar . a “ hard ” refers to manipulating the switch to the third position . “ soft ” refers to manipulating the switch to the second position . as an attacker , simply observing the sequence of numbers is now no longer enough . adding the hard and soft positions expands the number of passwords or pin numbers by a factor of 16 for a 4 digit password or pin number . this is illustrated below . the pressure points would have to be distinct enough to not add too much pressure by coincidence and not too hard to press to not reveal the pressure level ( soft or hard ) visually ( for the attacker ). the keypad would have to transmit in addition to the digits of the entered pin the pressure information ( soft / hard ) to the backend system . the transmission would be secured in the same way as before , just adding the meta information to it . in this case the meta information would come from pauses between entering the different digits of the pin . for example , the pin would require having a pause of more than 1 second between the 2nd and 3rd digit . in this case the backend system would have to start a timer after the 2nd digit of the pin has been received . if the 3rd digit arrives before pre - defined time is over , the pin will be rejected eventually . as outlined above , the user would be able to define rhythm characteristics with their passwords . for example a wait time between two characters or the rhythm of his / her favorite tune . also here , the device would have to offer a training mode for the end user to practice . traditional passwords are set with the backend once according to a password policy and then used — as they are — multiple times . a flexible - part password , in contrast , has 3 different parts . part 1 of the password is a fixed sequence of characters according to the password policy part 2 of the password is a sequence of placeholders that are filled at password - based logon with the restriction that the same sequence of variable characters is not repeated ( e . g . with a period of 10 which means after ten logon procedures you can use the first sequence again ). during password - based logon the user would type in the first part of the password ( i . e . a1b2c3 ), then type in 3 arbitrary characters ( e . g . $ tu ), then continue with the 3rd part of the password ( i . e . d4e5f6 ). the backend would then check if the first part is o . k ., the second part hasn &# 39 ; t been used before ( inside the pre - defined period of e . g . 10 times ), and the 3rd part is o . k . the attacker would observe the password entered and try to logon but would fail due to the fact that the second part is re - used and rejected . at the next logon the legitimate user would get a notification that an already expired password has been used which might give a hint that his / her account has been attacked and has a chance to change the password overall . you start typing your password , then deliberately type something wrong ( bogus characters ) and then continue with the real password . for example if the password were a1b2c3d4e5 , an accepted password would be a1b2zzuzc3d4e5 . another accepted password would be : henkja1b2c3d4e5 . the manipulation of the three way switches could also be included into this scheme . a character in the password is not considered correct unless it is correctly pressed into the second or third position using the three way switch . this is a combination of flexible part passwords together with rhythm meta data . again the password consists of three parts , part 1 fixed , part 2 flexible , and part 3 fixed again . during password - based logon , the user would enter part 1 ( rhythm doesn &# 39 ; t matter here ), the enter a number of arbitrary characters but in a certain rhythm that has been negotiated with the backend ( e . g . his / her favorite tune ), then continue with part 3 of the password . here it can be defined if the variable part should be reusable or not . the attacker would still be able to observe the password and to re - type it but due to the fact that he isn &# 39 ; t able to reproduce the rhythm metadata he &# 39 ; s bound to fail . the advantage of this method is that the passwords get a lot more complex from an attackers point of view but are still easy to remember from a user &# 39 ; s point of view as the user just needs to memorize the 1st and 3rd part of the password . a backend system would have a configuration utility wherein the administrator can define the positions of flexible characters in the overall password by policy . also here , a training program would be offered by the mobile device operating system . fig8 shows a further example of a key with a three position switch 100 ′. the switch 100 ′ is similar to the switch 100 shown in fig1 through 3 . in this example , there is a first spring 800 and a second spring 802 . the first spring is between the key 100 and the structure 803 with the first set of contacts 102 . the second spring is between the structure 803 with the first set of contacts 102 and the structure 804 with the second set of contacts 104 . the first spring 800 is weaker than the second spring 802 , it requires less force to compress it than the first spring . when the key is depressed , the first spring 800 compresses much more than the second spring and the first connecting element contacts the first set of contacts . this places the three position switch 100 ′ into the second position . if the force on the key 100 is increased further then the first connecting element 106 puts force onto the structure 803 with the first set of contacts . the second spring 802 may then be compressed bringing the second connecting element into contact with the second set of contacts 104 . in this example the surface 112 , the structure 803 with the first set of contacts 102 , and the structure 804 with the second set of contacts 104 may be able to move relative to each other in the direction 110 . this is however only an example and in other examples , these structures may be fixed relative to each other .