A generalized way of Vigenere Cipher is proposed here. Here, instead of using a Vigenere square for encryption and decryption, any two reversible square matrices whose rows or columns are unique are used for encryption and decryption purpose. One matrix can be easily obtained from the other and hence any one of them can be used for encryption while the other can be derived from the other for decryption. This avoids the necessity of using two separate reversible matrices for encryption and decryption. Also, a new algorithm for generation of key-stream with or without using a random symbol sequence is suggested. The key streams are generated from a small key word. The key streams are different for any slight difference of keywords either in length or content. Moreover, a key stream would be effectively random and as long as we please.