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.