Asal-usul keris belum sepenuhnya terjelaskan karena tidak ada sumber tertulis yang deskriptif mengenainya dari masa sebelum abad ke-15, meskipun penyebutan istilah "keris" telah tercantum pada prasasti dari abad ke-9 Masehi. Kajian ilmiah perkembangan bentuk keris kebanyakan didasarkan pada analisis figur di relief candi atau patung. Sementara itu, pengetahuan mengenai fungsi keris dapat dilacak dari beberapa prasasti dan laporan-laporan penjelajah asing ke Nusantara.
Sudah banyak ahli kebudayaan yang membahas tentang sejarah keberadaan dan perkembangan keris dan tosan aji lainnya. G.B. GARDNER pada tahun 1936 pernah berteori bahwa keris adalah perkembangan bentuk dari senjata tikam zaman prasejarah, yaitu tulang ekor atau sengat ikan pari dihilangkan pangkalnya, kemudian dibalut dengan kain pada tangkainya. Dengan begitu senjata itu dapat digenggam dan dibawa-bawa. Maka jadilah sebuah senjata tikam yang berbahaya, menurut ukuran kala itu.
Sementara itu GRIFFITH WILKENS pada tahun 1937 berpendapat bahwa budaya keris baru timbul pada abad ke-14 dan 15. Katanya, bentuk keris merupakan pertumbuhan dari bentuk tombak yang banyak digunakan oleh bangsa-bangsa yang mendiami kepulauan antara Asia dan Australia. Dari mata lembing itulah kelak timbul jenis senjata pendek atau senjata tikam, yang kemudian dikenal dengan nama keris. Alasan lainnya, lembing atau tombak yang tangkainya panjang, tidak mudah dibawa kemana-mana. Sukar dibawa menyusup masuk hutan. Karena pada waktu itu tidak mudah orang mendapatkan bahan besi, maka mata tombak dilepas dari tangkainya sehingga menjadi senjata genggam.
Lain lagi pendapat A.J. BARNET KEMPERS. Pada tahun 1954 ahli purbakala itu menduga bentuk prototipe keris merupakan perkembangan bentuk dari senjata penusuk pada zaman perunggu. Keris yang hulunya berbentuk patung kecil yang menggambarkan manusia dan menyatu dengan bilahnya, oleh Barnet Kempers bukan dianggap sebagai barang yang luar biasa.
Katanya, senjata tikam dari kebudayaan perunggu Dong-son juga berbentuk mirip itu. Hulunya merupakan patung kecil yang menggambarkan manusia sedang berdiri sambil berkacak pinggang (malang-kerik, bahasa Jawa). Sedangkan senjata tikam kuno yang pernah ditemukan di Kalimantan, pada bagian hulunya juga distilir dari bentuk orang berkacak pinggang.Perkembangan bentuk dasar senjata tikam itu dapat dibandingkan dengan perkembangan bentuk senjata di Eropa. Di benua itu, dulu, pedang juga distilir dari bentuk menusia dengan kedua tangan terentang lurus ke samping. Bentuk hulu pedang itu, setelah menyebarnya agama Kristen, kemudian dikembangkan menjadi bentuk yang serupa salib.
Dalam kaitannya dengan bentuk keris di Indonesia, hulu keris yang berbentuk manusia (yang distilir), ada yang berdiri, ada yang membungkuk, dan ada pula yang berjongkok, Bentuk ini serupa dengan patung megalitik yang ditemukan di Playen, Gunung Kidul, Yogyakarta. Dalam perkembangan kemudian, bentuk-bentuk itu makin distilir lagi dan kini menjadi bentuk hulu keris (Di Pulau Jawa disebut deder, jejeran, atau ukiran) dengan ragam hias cecek, patra gandul, patra ageng, umpak-umpak, dlsb.
Dalam sejarah budaya kita, patung atau arca orang berdiri dengan agak membungkuk, oleh sebagian ahli, diartikan sebagai lambang orang mati. Sedangkan patung yang menggambarkan manusia dengan sikap sedang jongkok dengan kaki ditekuk, dianggap melambangkan kelahiran, persalinan, kesuburan, atau kehidupan. Sama dengan sikap bayi atau janin dalam kandungan ibunya.Ada sebgian ahli bangsa Barat yang tidak yakin bahwa keris sudah dibuat di Indonesia sebelum abad ke-14 atau 15. Mereka mendasarkan teorinya pada kenyataan bahwa tidak ada gambar yang jelas pada relief candi-candi yang dibangun sebelum abad ke-10. SIR THOMAS STAMFORD RAFFLES dalam bukunya History of Java (1817) mengatakan, tidak kurang dari 30 jenis senjata yang dimiliki dan digunakan prajurit Jawa waktu itu, termasuk juga senjata api. Tetapi dari aneka ragam senjata itu, keris menempati kedudukan yang istimewa.Disebutkan dalam bukunya itu, prajurit Jawa pada umumnya menyandang tiga buah keris sekaligus. Keris yang dikenakan di pinggang sebelah kiri, berasal dari pemberian mertua waktu pernikahan (dalam budaya Jawa disebut kancing gelung). Keris yang dikenakan di pinggang kanan, berasal dari pemberian orang tuanya sendiri. Selain itu berbagai tata cara dan etika dalam dunia perkerisan juga termuat dalam buku Raffles itu. Sayangnya dalam buku yang terkenal itu, penguasa Inggris itu tidak menyebut-nyebut tentang sejarah dan asal usul budaya keris.
Sementara itu istilah ‘keris’ sudah dijumpai pada beberapa prasasti kuno. Lempengan perunggu bertulis yang ditemukan di Karangtengah, berangka tahun 748 Saka, atau 842 Masehi, menyebut-nyebut beberapa jenis sesaji untuk menetapkan Poh sebagai daerah bebas pajak, sesaji itu antara lain berupa ‘kres’, wangkiul, tewek punukan, wesi penghatap.Kres yang dimaksudkan pada kedua prasasti itu adalah keris. Sedangkan wangkiul adalah sejenis tombak, tewek punukan adalah senjata bermata dua, semacam dwisula.
Pada lukisan gambar timbul (relief) Candi Borobudur, Jawa Tengah, di sudut bawah bagian tenggara, tergambar beberapa orang prajurit membawa senjata tajam yang serupa dengan keris yang kita kenal sekarang. Di Candi Prambanan, Jawa Tengah, juga tergambar pada reliefnya, raksasa membawa senjata tikam yang serupa benar dengan keris. Di Candi Sewu, dekat Candi Prambanan, juga ada. Arca raksasa penjaga, menyelipkan sebilah senjata tajam, mirip keris.Sementara itu edisi pertama dan kedua yang disusun oleh Prof. P.A VAN DER LITH menyebutkan, sewaktu stupa induk Candi Borobudur, yang dibangun tahun 875 Masehi, itu dibongkar, ditemukan sebilah keris tua. Keris itu menyatu antara bilah dan hulunya. Tetapi bentuk keris itu tidak serupa dengan bentuk keris yang tergambar pada relief candi. Keris temuan ini kini tersimpan di Museum Ethnografi, Leiden, Belanda. Keterangan mengenai keris temuan itu ditulis oleh Dr. H.H. JUYNBOHL dalam Katalog Kerajaan (Belanda) jilid V, Tahun 1909. Di katalog itu dikatakan, keris itu tergolong ‘keris Majapahit‘, hulunya berbentuk patung orang, bilahnya sangat tua. Salah satu sisi bilah telah rusak. Keris, yang diberi nomor seri 1834, itu adalah pemberian G.J. HEYLIGERS, sekretaris kantor Residen Kedu, pada bulan Oktober 1845. Yang menjadi residennya pada waktu itu adalah Hartman. Ukuran panjang bilah keris temuan itu 28.3 cm, panjang hulunya 20,2 cm, dan lebarnya 4,8 cm. Bentuknya lurus, tidak memakai luk.
Mengenai keris ini, banyak yang menyangsikan apakah sejak awalnya memang telah diletakkan di tengah lubang stupa induk Candi Borobudur. Barnet Kempres sendiri menduga keris itu diletakkan oleh seseorang pada masa-masa kemudian, jauh hari setelah Candi Borobudur selesai dibangun. Jadi bukan pada waktu pembangunannya.
Ada pula yang menduga, budaya keris sudah berkembang sejak menjelang tahun 1.000 Masehi. Pendapat ini didasarkan atas laporan seeorang musafir Cina pada tahun 922 Masehi. Jadi laporan itu dibuat kira-kira zaman Kahuripan berkembang di tepian Kali Brantas, Jawa Timur. Menurut laporan itu, ada seseorang Maharaja Jawa menghadiahkan kepada Kaisar Tiongkok "a short swords with hilts of rhinoceros horn or gold (pedang pendek dengan hulu terbuat dari dari cula badak atau emas). Bisa jadi pedang pendek yang dimaksuddalam laporan itu adalah protoptipe keris seperti yang tergambar pada relief Candi Borobudur dan Prambanan.
Sebilah keris yang ditandai dengan angka tahun pada bilahnya, dimiliki oleh seorang Belanda bernama Knaud di Batavia (pada zaman Belanda dulu). Pada bilah keris itu selain terdapat gamabar timbul wayang, juga berangka tahun Saka 1264, atau 1324 Masehi. Jadi kira-kira sezaman dengan saat pembangunan Candi Penataran di dekat kota Blitar, Jawa Timur. Pada candi ini memang terdapat patung raksasa Kala yang menyandang keris pendek lurus.
Gambar yang jelas mengenai keris dijumpai pada sebuah patung siwa yang berasal dari zaman Kerajaan Singasari, pada abad ke-14. Digambarkan dengan Dewa Siwa sedang memegang keris panjang di tangan kanannya. Jelasini bukan tiruan patung Dewa Siwa dari India, karena di India tak pernah ditemui adanya patung Siwa memegang keris. Patung itu kini tersimpan di Museum Leiden, Belanda.
Pada zaman-zaman berikutnya, makin banyak candi yang dibangun di Jawa Timur, yang memiliki gambaran keris pada dinding reliefnya. Misalnya pada Candi Jago atau Candi Jajagu, yang dibangun tahun 1268 Masehi. Di candi itu terdapat relief yang menggambarkan Pandawa (tokoh wayang) sedang bermain dadu. Punakawan yang terlukis di belakangnya digambarkan sedang membawa keris. Begitu pula pada candi yang terdapat di Tegalwangi, Pare, dekat Kediri, dan Candi Panataran. Pada kedua candi itu tergambar relief tokoh-tokoh yang memegang keris.
Cerita mengenai keris yang lebih jelas dapat dibaca dari laporan seorang musafir Cina bernama Ma Huan. Dalam laporannya Yingyai Sheng-lan di tahun 1416 Masehi ia menuliskan pengalamannya sewaktu mengunjungi Kerajaan Majapahit.
Ketika itu ia datang bersama rombongan Laksamana Cheng-ho atas perintah Kaisar Yen Tsung dari dinasti Ming. Di Majapahit, Ma Huan menyaksikan bahwa hampir semua lelaki di negeri itu memakai pulak, sejak masih kanak-kanak, bahkan sejak berumur tiga tahun. Yang disebut pulak oleh Ma Huan adalah semacam belati lurus atau berkelok-kelok. Jelas ayang dimaksud adalah keris.Kata Ma Huan dalam laoparan itu: These daggers have very thin stripes and within flowers and made of very best steel; the handle is of gold, rhinoceros, or ivory, cut into the shapeof human or devil faces and finished carefully.
Laporan ini membuktikan bahwa pada zaman itu telah dikenal teknik pembuatan senjata tikam dengan hiasan pamor dengan gambaran garis-garis amat tipis serta bunga-bunga keputihan. Senjata ini dibuat dengan baja berkualitas prima. Pegangannya, atau hulunya, terbuat dari emas, cula badak, atau gading.Tak pelak lagi, tentunya yang dimaksudkan Ma Huan dalam laporannya adalah keris yang kita kenal sekarang ini.
Gambar timbul mengenai cara pembuatan keris, dapat disaksikan di Candi Sukuh, di lereng Gunung Lawu, di perbatasan Jawa Tengah dan Jawa Timur. Pada candra sengkala memet di candi itu, terbaca angka tahun 1316 Saka atau 1439 Masehi.