A communication apparatus comprising: a storage that stores server names and a password table in association with each other, the password table having a predetermined number of rows and a predetermined number of columns; a receiver that receives an authentication request specifying a server name; a generator that generates a random table having the predetermined number of rows and the predetermined number of columns, wherein elements in the random table are character strings which have a common length and differ from one another; a presenter that presents the generated random table to a user; an acceptor that accepts a key from the user wherein the key is obtained by that the user selects and couples elements in the presented random table in a selection order that is owned by the user and is not recorded in the communication apparatus; an identification unit that separates the accepted key into character strings having the common length and identifies the selection order associated with the user by searching the separated character strings in the generated random table; an updater that, when the password table associated with the server name specified in the authentication request is not stored in the storage, ∘ updates the storage by generating a new password table having the predetermined number of rows and the predetermined number of columns, ∘ accepts a new password from the user's input or an additional information added into the received authentication request by the user, ∘ divides the accepted password into segments, ∘ stores the segments into elements in the new password table based on the identified selection order, ∘ sets other elements in the new password table at random, ∘ stores the new password table in the storage in association with the server name; an acquirer that acquires a password obtained by selecting and coupling elements included in the password table stored in the storage in association with the server name specified in the authentication request in the identified selection order; and an output unit that outputs the acquired password as a password for allowing the user to use a server apparatus with the server name specified in the authentication request. a storage that stores server names and a password table in association with each other, the password table having a predetermined number of rows and a predetermined number of columns; a receiver that receives an authentication request specifying a server name; a generator that generates a random table having the predetermined number of rows and the predetermined number of columns, wherein elements in the random table are character strings which have a common length and differ from one another; a presenter that presents the generated random table to a user; an acceptor that accepts a key from the user wherein the key is obtained by that the user selects and couples elements in the presented random table in a selection order that is owned by the user and is not recorded in the communication apparatus; an identification unit that separates the accepted key into character strings having the common length and identifies the selection order associated with the user by searching the separated character strings in the generated random table; an updater that, when the password table associated with the server name specified in the authentication request is not stored in the storage, ∘ updates the storage by generating a new password table having the predetermined number of rows and the predetermined number of columns, ∘ accepts a new password from the user's input or an additional information added into the received authentication request by the user, ∘ divides the accepted password into segments, ∘ stores the segments into elements in the new password table based on the identified selection order, ∘ sets other elements in the new password table at random, ∘ stores the new password table in the storage in association with the server name; ∘ updates the storage by generating a new password table having the predetermined number of rows and the predetermined number of columns, ∘ accepts a new password from the user's input or an additional information added into the received authentication request by the user, ∘ divides the accepted password into segments, ∘ stores the segments into elements in the new password table based on the identified selection order, ∘ sets other elements in the new password table at random, ∘ stores the new password table in the storage in association with the server name; an acquirer that acquires a password obtained by selecting and coupling elements included in the password table stored in the storage in association with the server name specified in the authentication request in the identified selection order; and an output unit that outputs the acquired password as a password for allowing the user to use a server apparatus with the server name specified in the authentication request.